LINUX.ORG.RU
ФорумAdmin

Настройка сети между QEMU/KVM и хостами

 


0

1

Добрый день! Подскажите пожалуйста. Неделю бьюсь, не пойму в чём дело.

Есть обычная сеть из двух машин. На обоих Astra Linux. На одной IP 192.168.1.20, а на другой есть виртуальная машина qemu. Установка:

sudo apt install qemu qemu-kvm libvirt0 libvirt-daemon-system bridge-utils virt*

Оконного менеджера нет. Создал раздел, установил

sudo qemu-img create -f qcow2 /var/lib/libvirt/images/OS.img 20G

sudo qemu-system-x86_64 -hda /var/lib/libvirt/images/OS.img -m 4096  -boot d -cdrom /var/lib/libvirt/boot/good.iso -enable-kvm -smp 2 -device e1000,netdev=net0,mac=5a:ff:ff:ff:ff:ff -netdev tap,id=net0

Сделал мост:

auto lo 
iface lo inet loopback 
auto eth0 
iface eth0 inet manual 
auto br0 
iface br0 inet static 
bridge_ports eth0 
bridge_stp off 
bridge_fd 0 
address 192.168.1.10/24 
netmask 255.255.255.0 
gateway 192.168.1.1 
broadcast 192.168.1.255

Все установилось и запускаю так:

sudo qemu-system-x86_64 -hda /var/lib/libvirt/images/OS.img -m 4096 -enable-kvm -smp 2 -device e1000,netdev=net0,
mac=5a:ff:ff:ff:ff:ff -netdev tap,id=net0,ifname=tap0

Виртуалка стартует. В ней ставлю IP интерфейса 192,168,1,1.

ifconfig хоста с виртуалкой:

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 
       inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255 
       ether 10:c3:7b:8c:9f:06  txqueuelen 1000  (Ethernet) 
       RX packets 20  bytes 1098 (1.0 KiB) 
       RX errors 0  dropped 17  overruns 0  frame 0 
       TX packets 5  bytes 492 (492.0 B) 
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 

eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500 
       ether 10:c3:7b:8c:9f:06  txqueuelen 1000  (Ethernet) 
       RX packets 0  bytes 0 (0.0 B) 
       RX errors 0  dropped 0  overruns 0  frame 0 
       TX packets 16  bytes 960 (960.0 B) 
       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 
       loop  txqueuelen 1000  (Local Loopback) 
       RX packets 316  bytes 25512 (24.9 KiB) 
       RX errors 0  dropped 0  overruns 0  frame 0 
       TX packets 316  bytes 25512 (24.9 KiB) 
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 

tap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 
       ether da:79:36:41:62:d0  txqueuelen 1000  (Ethernet) 
       RX packets 20  bytes 1378 (1.3 KiB) 
       RX errors 0  dropped 0  overruns 0  frame 0 
       TX packets 1  bytes 120 (120.0 B) 
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

При старте виртуалки tap0 стартовал и вот:

my_user@astra:~$ sudo brctl show 
bridge name     bridge id               STP enabled     interfaces 
br0             8000.10c37b8c9f06       no              eth0 
                                                       tap0

Вроде как и мост заработал. Получается картина такая: Виртуалка 192,168,1,1 мост 192,168,1,10 и удаленная машина 192,168,1,20.

И вот пинг от виртуалки до моста (хоста) есть, от моста (хоста) до виртуалки есть. Но удалённая машина 192,168,1,20 не пингует не виртуалку, не мост. И удаленную машину тоже не пингует.

Вот маршрутизация хоста с KVM:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
default         192.168.1.1     0.0.0.0         UG    0      0        0 br0 
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br0

Я уже что только не делал, нужно просто что бы из сети была видна виртуалка и наоборот.

Может с маршрутизацией что-то… IP моста, не пойму, где-то должен участвовать. Может быть строка запуска виртуалки неправильная.



Последнее исправление: McCake (всего исправлений: 2)

21 июня 2023 г.