Я изо всех сил пытаюсь подключить свою виртуальную машину KVM к локальной сети.
$ brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.4c5262097e59 yes enp0s31f6
vnet0
enp0s31f6 является ethenet картой и vnet0 хостов карта гостя KVM.
На хосте у меня есть полное сетевое соединение. Никакие проблемы.
На vm у меня нет сетевого соединения вообще:
$ping 8.8.8.8
connect: Network is unreachable
Таким образом, я пытаюсь выяснить то, что является неправильным. Уже здесь, я озадачен, потому что я думал, что мост является эквивалентом аппаратного переключателя и если это так, как может, одно устройство включило переключатель, достигают сети, но не другого?
Давайте посмотрим на их IP-адреса:
$ ip a show enp0s31f6
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether 4c:52:62:09:7e:59 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.4/24 brd 192.168.1.255 scope global enp0s31f6
valid_lft forever preferred_lft forever
$ ip a show vnet0
26: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UNKNOWN group default qlen 1000
link/ether fe:54:00:f0:0e:f8 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fef0:ef8/64 scope link
valid_lft forever preferred_lft forever
Так, хост имеет IP 192.168.1.4, но vm не делает (за исключением IPv6, никакая идея почему).
Хост получил, это - IP с сервера DHCP на LAN:
sudo dhclient -v enp0s31f6
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/enp0s31f6/4c:52:62:09:7e:59
Sending on LPF/enp0s31f6/4c:52:62:09:7e:59
Sending on Socket/fallback
DHCPREQUEST of 192.168.1.4 on enp0s31f6 to 255.255.255.255 port 67 (xid=0x64e68ab1)
DHCPACK of 192.168.1.4 from 192.168.1.1
RTNETLINK answers: File exists
bound to 192.168.1.4 -- renewal in 40526 seconds.
Поэтому давайте попытаемся добраться один для vm также:
$ sudo dhclient -v vnet0
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/vnet0/fe:54:00:f0:0e:f8
Sending on LPF/vnet0/fe:54:00:f0:0e:f8
Sending on Socket/fallback
DHCPDISCOVER on vnet0 to 255.255.255.255 port 67 interval 3 (xid=0xf64429)
DHCPDISCOVER on vnet0 to 255.255.255.255 port 67 interval 3 (xid=0xf64429)
DHCPDISCOVER on vnet0 to 255.255.255.255 port 67 interval 7 (xid=0xf64429)
DHCPDISCOVER on vnet0 to 255.255.255.255 port 67 interval 13 (xid=0xf64429)
DHCPDISCOVER on vnet0 to 255.255.255.255 port 67 interval 14 (xid=0xf64429)
DHCPDISCOVER on vnet0 to 255.255.255.255 port 67 interval 18 (xid=0xf64429)
DHCPDISCOVER on vnet0 to 255.255.255.255 port 67 interval 10 (xid=0xf64429)
DHCPDISCOVER on vnet0 to 255.255.255.255 port 67 interval 15 (xid=0xf64429)
DHCPDISCOVER on vnet0 to 255.255.255.255 port 67 interval 18 (xid=0xf64429)
^C
Это не получает тот.:-(
Таким образом, возможно, мост повреждается, и хост все еще получает IP, потому что он физически подключен к LAN? Нет, потому что сам мост, кажется, говорит сервер DHCP также:
$ sudo dhclient -v br0
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/br0/4c:52:62:09:7e:59
Sending on LPF/br0/4c:52:62:09:7e:59
Sending on Socket/fallback
DHCPREQUEST of 192.168.1.4 on br0 to 255.255.255.255 port 67 (xid=0x58c2333c)
DHCPACK of 192.168.1.4 from 192.168.1.1
RTNETLINK answers: File exists
bound to 192.168.1.4 -- renewal in 42819 seconds.
Как я продолжаю отсюда?
(Чувствует, что я попробовал проверенное примерно все, но я экономлю Вас информация о том здесь, поскольку я теперь пытаюсь систематически определить, где я иду не так, как надо на вышеупомянутых шагах.)
Я не эксперт, но я думаю, что STP должен быть отключен в Вашем мосту. Это отключено в моем. У меня нет IP-адреса в моем списке сетевого интерфейса, шоу IP-адреса хоста в интерфейсе br0:
doug@s15:~/idle/k56wtteo/idle$ ip a show enp3s0
3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether f4:6d:04:65:2d:8e brd ff:ff:ff:ff:ff:ff
doug@s15:~/idle/k56wtteo/idle$ ip a show br0
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether f4:6d:04:65:2d:8e brd ff:ff:ff:ff:ff:ff
inet 192.168.111.112/24 brd 192.168.111.255 scope global dynamic br0
valid_lft 84590sec preferred_lft 84590sec
Однако мостом материал действительно похож на Ваш:
doug@s15:~/idle/k56wtteo/idle$ brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.f46d04652d8e no enp3s0
vnet0
Ваше определение VM указывает для использования мостового интерфейса? Пример (/etc/libvirt/qemu/serv-ff.xml
в этом примере (я думаю, что считал где-нибудь, что Вы используете kvm)):
<interface type='bridge'>
<mac address='52:54:00:27:1b:4e'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
Если я смотрю на arp таблицу своей LAN i, видят VM:
doug@DOUG-64:~$ arp | grep serv-ff
serv-ff.smythies.com ether 52:54:00:27:1b:4e C enp2s0
И если я установил tcpdump на хосте, контролирующем интерфейс моста, я могу заметить, что поиски VM просят и получают IP-адрес от моей LAN через DHCP на перезагрузку поисков:
doug@s15:~/idle/k56wtteo/idle$ sudo tcpdump -tttt -n -i br0 port 67 and port 68
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
2020-03-05 18:12:35.522302 IP 192.168.111.217.68 > 192.168.111.1.67: BOOTP/DHCP, Request from 52:54:00:27:1b:4e, length 265
2020-03-05 18:12:48.534782 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 52:54:00:27:1b:4e, length 291
2020-03-05 18:12:48.535118 IP 192.168.111.1.67 > 192.168.111.217.68: BOOTP/DHCP, Reply, length 300
2020-03-05 18:12:48.535243 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 52:54:00:27:1b:4e, length 303
2020-03-05 18:12:48.535460 IP 192.168.111.1.67 > 192.168.111.217.68: BOOTP/DHCP, Reply, length 300
И на самом VM:
doug@serv-ff:~$ ip a show ens3
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:27:1b:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.111.217/24 brd 192.168.111.255 scope global dynamic ens3
valid_lft 86044sec preferred_lft 86044sec
inet6 fe80::5054:ff:fe27:1b4e/64 scope link
valid_lft forever preferred_lft forever