У меня возникли проблемы с включением связи между хостами и гостями с использованием виртуальных машин 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 в.