Назад | Перейти на главную страницу

Подключение хоста к гостю через SSH (с использованием qemu vm)

У меня возникли проблемы с включением связи между хостами и гостями с использованием виртуальных машин qemu. Цель состоит в том, чтобы подключиться через SSH от хоста к гостевой виртуальной машине.

У меня такая настройка:

-netdev tap,ifname=tap0,id=mw,script=no,downscript=no -device virtio-net,netdev=mw,mac=52:54:01:34:AD:EF

Виртуальные машины связаны через мост br0, но не физический интерфейс eth0.

Вопрос / гипотеза: Думаю, чтобы это заработало, мне нужно добавить eth0 к мосту первый и второй создать статический маршрут через

route add -host <any chosen internal IP, e.g. 192.168.1.2> dev tap0

где у меня есть третий назначен перед дополнительным внутренним IP-адресом eth0 через

ip addr add <any chosen internal IP on the same subnet as route, e.g. 192.168.1.3> dev eth0

?

Если это так, моя проблема в том, что я привязан к удаленному доступу, поскольку все происходит на сервере. Поэтому я не могу добавлять / удалять интерфейсы через brctl так как я теряю ssh-соединение с сервером!

Таким образом, я постарался поместить все в /etc/network/interfaces, вот мой код:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  hostname 'actual hostname here'
  address 'actual IP here'
  netmask 'actual netmask here'
  gateway 'actual gateway IP here'

auto br0
iface br0 inet manual
   pre-up /sbin/tunctl -t tap0 -u 'actual user here' -g netdev
   pre-up /sbin/tunctl -t tap1 -u 'actual user here' -g netdev
   pre-up /sbin/tunctl -t tap2 -u 'actual user here' -g netdev
   pre-up /sbin/tunctl -t tap3 -u 'actual user here' -g netdev
   pre-up ip link set tap0 up
   pre-up ip link set tap1 up
   pre-up ip link set tap2 up
   pre-up ip link set tap3 up
   bridge-ports tap0 tap1 tap2 tap3
   bridge-stp 0
   bridge_maxwait  0
   bridge_fd       0
   post-down ip link set tap0 down
   post-down /sbin/tunctl -d tap0
   post-down ip link set tap1 down
   post-down /sbin/tunctl -d tap1
   post-down ip link set tap2 down
   post-down /sbin/tunctl -d tap2
   post-down ip link set tap3 down
   post-down /sbin/tunctl -d tap3

Теперь, когда я добавляю eth0 к линии bridge-ports eth0 tap0 tap1 tap2 tap3 Я больше не могу подключиться к серверу по ssh. После спасения и проверки файла журнала я не вижу ошибок или подсказок, почему eth0 с бридж-интерфейсом не получилось !?

В чем моя вина? Заранее большое спасибо!

РЕДАКТИРОВАТЬ: Я тоже зря пробовал

auto lo
iface lo inet loopback

iface eth0 inet manual

auto br0
iface br0 inet manual
   pre-up /sbin/tunctl -t tap0 -u 'actual user here' -g netdev
   pre-up /sbin/tunctl -t tap1 -u 'actual user here' -g netdev
   pre-up /sbin/tunctl -t tap2 -u 'actual user here' -g netdev
   pre-up /sbin/tunctl -t tap3 -u 'actual user here' -g netdev

  pre-up ip link set eth0 up

   pre-up ip link set tap0 up
   pre-up ip link set tap1 up
   pre-up ip link set tap2 up
   pre-up ip link set tap3 up

  hostname 'actual hostname here'
  address 'actual IP here'
  netmask 'actual netmask here'
  gateway 'actual gateway IP here'

  bridge-ports eth0 tap0 tap1 tap2 tap3

   bridge-stp 0
   bridge_maxwait  0
   bridge_fd       0
   post-down ip link set tap0 down
   post-down /sbin/tunctl -d tap0
   post-down ip link set tap1 down
   post-down /sbin/tunctl -d tap1
   post-down ip link set tap2 down
   post-down /sbin/tunctl -d tap2
   post-down ip link set tap3 down
   post-down /sbin/tunctl -d tap3

Есть идеи?

Вам необходимо установить IP-адрес на интерфейсе моста, а не на нижележащем eth0 интерфейс, если вы подключите eth0 в.