У меня неизвестная проблема с созданием сетевого моста для KVM. Что я сделал: Моя ОС: Ubuntu 18.04
sudo apt-get install bridge-utils
network:
version: 2
ethernets:
eno1:
addresses: []
dhcp4: true
eno2:
addresses: [192.168.0.101/24]
gateway4: 192.168.0.1
dhcp4: false
enp4s0f0:
addresses: []
dhcp4: true
optional: true
enp4s0f1:
addresses: []
dhcp4: true
optional: true
enp5s0f0:
addresses: []
dhcp4: true
optional: true
enp5s0f1:
addresses: []
dhcp4: true
optional: true
bridges:
br0:
interfaces: [eno2]
dhcp4: false
addresses: [192.168.0.100/24]
gateway4: 192.168.0.1
nameservers:
addresses: [192.168.0.1]
parameters:
stp: true
forward-delay: 4
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
link/ether 78:2b:cb:33:29:3d brd ff:ff:ff:ff:ff:ff
inet 192.168.0.101/24 brd 192.168.0.255 scope global eno2
valid_lft forever preferred_lft forever
8: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:43:8d:69 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
virsh # net-dumpxml host-bridge
<network connections='1'>
<name>host-bridge</name>
<uuid>1823e6a7-3a86-4d7f-b612-27c003066faa</uuid>
<forward mode='bridge'/>
<bridge name='br0'/>
</network>
virt-install --name=debian-tutorial4 \
--vcpus=4 \
--memory=8192 \
--cdrom=/vm-images/debian-10.0.0-amd64-netinst.iso \
--disk size=10,format=raw \
--os-variant=debian9 \
--network network=default \
--network network=host-bridge
virsh dumpxml debian-tutorial4
, Я могу видеть:<interface type='network'>
<mac address='52:54:00:48:0d:a2'/>
<source network='default' bridge='virbr0'/>
<target dev='vnet3'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:ca:51:97'/>
<source network='host-bridge' bridge='br0'/>
<target dev='vnet4'/>
<model type='virtio'/>
<alias name='net1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</interface>
Когда я вхожу в виртуальную машину и запускаю ip a
, я могу видеть:
daniel@debian4:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:48:0d:a2 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.173/24 brd 192.168.122.255 scope global dynamic ens3
valid_lft 3534sec preferred_lft 3534sec
inet6 fe80::5054:ff:fe48:da2/64 scope link
valid_lft forever preferred_lft forever
3: ens4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 52:54:00:ca:51:97 brd ff:ff:ff:ff:ff:ff
Что мне нужно сделать, чтобы подключить мою виртуальную машину к мостовой сети?
Благодарю за ваш ответ.
Интерфейс на хосте работает.
root@smaug:/home/daniel# ip a show br0 up
94: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 82:43:74:4e:8d:c4 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.100/24 brd 192.168.0.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::8043:74ff:fe4e:8dc4/64 scope link
valid_lft forever preferred_lft forever
Удален IP из eno2
eno2:
addresses: []
dhcp4: false
Но я по-прежнему не вижу IP на моем интерфейсе на виртуальной машине.
В хост-системе проверьте состояние br0
интерфейс. Он должен встать.
В вашем случае вам следует настроить ens4
интерфейс в гостевой системе. Этот интерфейс соответствует вашей сети моста.
Кроме того, вам не следует назначать IP-адрес на eno2
интерфейс, потому что это интерфейс порта моста (подчиненный br0
интерфейс).
Кажется, что все остальное настроено правильно.
Решение:
На хост-сайте все было нормально. Это проблема с установленным мной Debian.
Я зашел туда через virt-viewer, затем изменил /etc/network/interfaces
:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens3
iface ens3 inet dhcp
iface ens4 inet static
address 192.168.0.110/24
gateway 192.168.0.1
Затем вниз и вверх интерфейсы и перезапустите сеть
ip link set dev ens3 down
ip link set dev ens4 down
ip link set dev ens3 up
ip link set dev ens4 up
systemctl restart networking
Затем перезагрузите dhcp:
/sbin/dhclient
И наконец моя виртуальная машина получила IP
root@debian4:/home/daniel# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:fa:76:1b brd ff:ff:ff:ff:ff:ff
inet 192.168.122.71/24 brd 192.168.122.255 scope global dynamic ens3
valid_lft 3277sec preferred_lft 3277sec
inet6 fe80::5054:ff:fefa:761b/64 scope link
valid_lft forever preferred_lft forever
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:71:c1:ed brd ff:ff:ff:ff:ff:ff
inet 192.168.0.110/24 brd 192.168.0.255 scope global ens4
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe71:c1ed/64 scope link
valid_lft forever preferred_lft forever
Вы прикрепляете оба default
и host-bridge
сети в домен. Не делай этого. Используя мост, определенный в netplan, вы замените
--network network=default \
--network network=host-bridge
с участием
--network=host-bridge
Это должно решить вашу проблему, поскольку гость попытается настроить первый интерфейс с помощью DHCP.
Я бы также отключил STP на мосту.
После запуска виртуальной машины brctl show br0
должно выглядеть так:
bridge name bridge id STP enabled interfaces
br0 8000.4ccc6a27d838 no eth0
vnet0