Назад | Перейти на главную страницу

Настройте qemu-system для использования виртуального моста на стороне хоста

Я собираюсь запустить следующую настройку с qemu-system в качестве гипервизора:

Hostsetup:

Hypervisor machine (Ubuntu 16.04)           Second Machine 
qemuVm--tap0--br123--eth0--|Hardware hub|--eth42--SecondPC

Итак, это сеть, содержащая виртуальную машину, размещенную на qemu-system, и подключенную через интерфейс Tap к виртуальному мосту. Виртуальный мост создается хостом. Виртуальный мост НЕ является мостом по умолчанию для libvirt / virt-manager или других систем. Виртуальный мост имеет настоящую сетевую карту eth0. Эта сетевая карта подключена по проводам к настоящему концентратору. К хабу подключен другой Реальный ПК. Все клиенты используют статические IP-адреса. Я хотел бы использовать все службы, такие как ICMP, UDP, TCP, FTP и т. Д., Между всеми подключенными машинами

IP-список:

Я хотел бы работать с -netdev / -device не со старым -net nic.

Какие параметры командной строки мне нужны для моего win7qemuVm, чтобы подключить его к устройству Tap?

Есть IP-маршруты, ipforwarding и iptables. Нужно ли мне изменить настройки ubuntu по умолчанию, чтобы сделать такую ​​сеть возможной?

Моя хост-сеть уже настроена следующим образом:

iface tap11 inet manual
    pre-up tunctl -t tap0
    up ifconfig tap0 up
    down ifconfig tap0 down

auto br123
iface br123 inet static
   address 10.0.0.100
   netmask 255.255.255.0
   bridge_ports eth0
   bridge_ports tap0
   bridge_stp off
   bridge_fd 0.0
   pre-up ifdown eth0
   pre-up ifdown tap0
   pre-up ifup eth0
   pre-up ifup tap0
   post-down ifdown eth0
   post-down ifdown tap0

Сетевой менеджер отключен.

Верхняя конфигурация верна для решения проблемы. Первый успех - это когда ваша невеста / тапка и т.д. Итак, это слово используется, система работает. должно выглядеть так:

$ ip link show
# Output modified and formatted:
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
   master br123 state UP 
   mode DEFAULT group default qlen 1000
   link/ether 68:05:ca:51:8e:ff brd ff:ff:ff:ff:ff:ff
5: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 
   master br123 state UP
   mode DEFAULT group default qlen 1000
   link/ether ce:c4:55:91:86:6f brd ff:ff:ff:ff:ff:ff
6: br123: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 
   state UP mode DEFAULT group default qlen 1000
   link/ether 68:05:ca:51:8e:ff brd ff:ff:ff:ff:ff:ff

Вы можете увидеть строку, в которой указаны master и state, это самые важные из них.

Следующая задача - найти сетевое устройство, поддерживающее этот кран. Я использовал virtio network device и скачал virtio driver для моей XP. Я еще не тестировал другие ОС и только некоторые виртуальные сетевые карты, так что, возможно, другие тоже будут работать. Но важно то, что не все драйверы виртуальных устройств работают с tap-устройствами. Итак, например, сетевая карта в Windows может быть запущена и работать, но вы не можете входить и выходить с помощью пинга. Если ваш брандмауэр не работает, а все остальное настроено правильно, возможно, вы добавили адаптер, для которого устройство с ответвлением не поддерживается.

Сетевое соединение представляет собой пару 1: 1, поэтому для этого нужно выполнить два шага. Конфигурация на стороне хоста начинается с -netdev, где вы определяете сетевой адаптер, подключенный к (здесь) хосту. tap0 является частью этого. Важно определить ID.

это ID используется в конфигурации на стороне клиента, где определяется интерфейс для гостя. -device. virtio-net-pci сетевой адаптер, используемый в этом примере.

exec qemu-system-x86_64 \
-enable-kvm \
-hda W_XP.img \
-m 1G \
-monitor stdio \
-cdrom /media/img/SharedImages/driver/W_XP/virtio-win-0.1.126.iso \
-netdev tap,id=mynet0,ifname=tap0,script=no,downscript=no \
-device virtio-net-pci,netdev=mynet0,id=mynet0,mac=52:54:00:c9:18:27 \
$@

Источник команд

Контроль состояния моста во время или после работы машины

$ dmesg
[time in sec ]
[13649.332345] br123: port 2(tap0) entered blocking state
[13649.332346] br123: port 2(tap0) entered forwarding state
  machine running
[13674.309067] br132: port 2(tap0) entered disabled state
  machine stopped

Я проверил настройку со следующими адаптерами с winXP SP3, все работают с тап-устройством:

Только для некоторых нужно установить внешний драйвер.

rtl8139 Realtak RTL8139-Familie-PCI-Fast Ethernet-NIC   
   5.398.613.2003 RTL8139.sys   100 
ne2k_pci    Realtek RTL8029(AS)-basierender Ethernetadapter (Standard)
   5.508.803.2000 RTL8029.sys   10
e1000-82545em   Intel(R) PRO/1000 MT Network Connectiion
   Intel 8.10.3.0 e1000325.sys uvm. 1000
e1000   Intel(R) PRO/1000 MT Network Connectiion
   Intel 8.10.3.0 e1000325.sys uvm. 1000
virtio-net-pci  Red Hat VirtIO Ethnernet Adapter    
   51.73.104.12600 netkvm.sys 1000