Недавно я настраивал сервер, и я должен был назначить один из общедоступных IP-адресов, доступных для сервера, гостю KVM. Сервер имеет следующую настройку:
eno1 - основное интернет-соединение хоста, назначенное общедоступным ip lo - loopback virbr0 - мост к виртуальному нику, созданный KVM
с помощью Open Nebula я назначил virbr0 виртуальной сети, назначенной гостевой машине, и настроил конкретную конфигурацию для гостевой машины:
гостевая машина - / etc / network / interfaces
auto ens3
iface ens3 inet static
address y.y.y.y
netmask 255.255.255.255
pointopoint <provided by host provider>
gateway <provided by host provider>
Завершив настройку гостя, я запускаю на хосте следующее:
brctl addif virbr0 eno1
После запуска я смог получить доступ к гостевой машине через только что назначенный IP. Однако я больше не могу получить доступ к хосту через SSH или Open Nebula.
Почему это происходит? Есть ли способ настроить конфигурацию virbr0 на /etc/network/interfaces
чтобы он оставался устойчивым даже при сбое хоста?
Вам нужен мост на хосте. Допустим, теперь у него адрес x.x.x.x.
auto eno1
iface eno1 inet manual
auto br1
iface br1 inet static
address x.x.x.x
netmask <hostnetmask>
gateway <hostgateway>
bridge_ports eno1
bridge_stp off
bridge_maxwait 0
bridge_fd 0
Это настройки для настройки сети при загрузке.
Если у вас есть только один ник, перезагрузите хост с этими настройками, чтобы активировать мост. Или перезапустите сеть с помощью экран или tmux.
Если у вас есть двойная установка nic, вам не нужно перезагружаться, просто подключитесь к вашей машине по SSH через адрес на nic2 (eno2), а затем
ifdown eno1
ip link add name br1 type bridge
ip link set dev br1 up
ip link set dev eno1 master br1
ip addr flush eno1
ifup eno1
Наконец, запустите гостя с сетевым интерфейсом br1.
sudo kvm -net nic -net bridge,br=br1 ...
Вам необходимо поместить IP-адрес на устройство-мост "virbr0:
ip addr add y.y.y.y/32 dev virbr0
Посмотрите ответ @ stefaan-ghysels, чтобы узнать, как настроить во время загрузки.