Я собираюсь запустить следующую настройку с 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-список:
win7qemuVm: 10.0.0.10
br123: 10.0.0.100
(Я не хочу использовать мост по умолчанию от qemu)tap0: ?
Можно / нужно назначить IP-адрес?eth0: ?
нужно назначить ip адрес?eth42 10.0.0.201
(интерфейс второго ПК)Я хотел бы работать с -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