Проблемы со связью в сети Libvirt
Я хочу настроить мост так, чтобы гостевые виртуальные машины на моем сервере без заголовка использовали DHCP локальной сети, а не dnsmasq. Я следовал этим инструкциям: https://jamielinux.com/docs/libvirt-networking-handbook/bridged-network.html. Глядя на ifconfig
Результаты, кажется, дают мне именно то, что я искал:
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.210 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::4216:7eff:fe63:7516 prefixlen 64 scopeid 0x20<link>
ether 40:16:7e:63:75:16 txqueuelen 1000 (Ethernet)
RX packets 8255 bytes 653898 (653.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 633 bytes 60185 (60.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.195 netmask 255.255.255.0 broadcast 192.168.1.255
ether 40:16:7e:63:75:16 txqueuelen 1000 (Ethernet)
RX packets 42190 bytes 48646124 (48.6 MB)
RX errors 0 dropped 3 overruns 0 frame 0
TX packets 9808 bytes 889965 (889.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2215 bytes 510180 (510.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2215 bytes 510180 (510.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:7a:ca:5e txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Однако, если я пытаюсь подключиться по SSH к моему серверу (192.168.1.195) с другого компьютера (192.168.1.196), я не могу подключиться. Пинг с сервера не может достичь других устройств в моей локальной сети, но пинг с сервера до 8.8.8.8, кажется, работает нормально. мой /etc/network/interfaces
Файл выглядит следующим образом (MAC-адрес сетевой карты моего сервера):
iface enp3s0 inet manual
auto br0
iface br0 inet static
# Use the MAC address identified above.
hwaddress ether 40:16:7e:63:75:16
address 192.168.1.210
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports enp3s0
# If you want to turn on Spanning Tree Protocol, ask your hosting
# provider first as it may conflict with their network.
bridge_stp on
# If STP is off, set to 0. If STP is on, set to 2 (or greater).
bridge_fd 0
Последние два дня я потратил на поиски в Интернете, а также несколько раз переизображал свой сервер, когда что-то слишком ломалось, и я думаю, что я просто теряю сюжет... Мой сервер - Ubuntu 18.04.2, полностью стоковый, кроме установленных пакетов libvirt и ssh. Как сделать так, чтобы сервер был доступен для других моих сетевых компьютеров?
1 ответ
Иногда стоит просто оставить вещи на день или два, а не смотреть на них. Тогда возвращайся к нему свежим. В конце концов, настройка моста, казалось, была довольно простой, со следующими двумя шагами:
- Обновление /etc/sysctl.conf
Раскомментируйте строку с надписью ".net.ipv4.ip_forward=1"
- Обновите /etc/network/interfaces
Для меня это был весь файл. Если у вас есть больше интерфейсов, вы можете настроить соответственно. enp3s0 был идентификатором моего физического интерфейса.
# ifupdown has been replaced by netplan(5) on this system. See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
# sudo apt install ifupdown
iface enp3s0 inet manual
auto lo
iface lo inet loopback
auto br0
iface br0 inet dhcp
bridge_ports enp3s0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
Я использовал резервирование IP-адреса в моем маршрутизаторе, чтобы убедиться, что моя виртуальная машина всегда получала один и тот же IP-адрес. Использование DHCP сделало настройку в целом немного проще для меня.
Еще раз спасибо RobertRSeattle и Doug Smythies за то, что терпели меня.
У меня был рабочий мост, который обрушился. Все перепробовала. Пошел на охоту на ведьм в поисках файлов докеров, думая, что докер разрушил мою сеть. Оказалось, что имя сетевого интерфейса внутри гостя изменилось, и enp1s0 стал enp7s0. исправил yaml /etc/netplan и все вернулось.