LINUX.ORG.RU

Настройка сети в QEMU/KVM

 , , ,


1

2

Для тестирования помимо Linux нужна Windows, так что осваиваю QEMU/KVM. После чтения документации и ArchWiki с созданием ВМ более-менее разобрался, осталось настроить сеть. Наиболее простой и медленный с точки зрения производительности способ — user-mode networking. Мне же хотелось бы получить максимальную производительность сети. Как понимаю, для этой цели лучше использовать tap-networking и включить vhost.

Собственно вопрос в том, как наиболее правильно настроить сеть. Стоит ли использовать qemu-bridge-helper или лучше создавать устройство tap и настраивать мост вручную? Буду признателен за совет и/или ссылки.

OC Debian Jessie, QEMU 2.1.2 из стандартного репозитория. Если это важно — сеть на хосте через wifi.

P.S.: про virt-mananger знаю, как и про то, что он делает всё необходимое без дополнительных действий с моей стороны. Но хотелось бы для себя разобраться как сделать требуемое на «чистом» QEMU.


Ответ на: комментарий от Difrex

Спасибо. Тогда ещё один вопрос. Вот здесь, в разделе Public bridge пишут

The method shown here will not work with most (if not all) wireless drivers as these do not support bridging.

т.е. мне надо делать virtual bridge, правильно?

sergs
() автор топика
Ответ на: комментарий от sergs

т.е. мне надо делать virtual bridge, правильно?

Да, если твой драйвер не умеет в бриджи. Проверь через brctl

brctl addbr br127
brctl addif br127 wlan0
Difrex ★★★★
()

Мне же хотелось бы получить максимальную производительность сети.

-net nic,vlan=0,model=virtio -net bridge,vlan=0,br=<имя твоего моста>

Твой мост настраивается либо скриптами, либо твоим менеджером сети. В этом случае создается tap интерфейс и привязывается к твоему мосту. При этом qemu-bridge-helper просто вспомогательная утилита имеющая suid которая, избавляет от необходимости запускать qemu с привилегиями root`а.

surefire ★★★
()

Для сравнения, чего ожидать (данные для моего домашнего компьютера):

-net nic,model=rtl8139
scp=38MB/s, http=54MB/s

virtio
scp=122MB/s, http=560MB/s

virtio+vhost
scp=133MB/s, http=950MB/s

Что тебе нужно:

1. Настроить bridge, зависит от дистрибутива, в моем случае это просто правка /etc/conf.d/net

# Qemu
config_eth0=«null»

config_tap0=«null»
tunctl_tap0="-g users"
tuntap_tap0=«tap»

config_tap1=«null»
tunctl_tap1="-g users"
tuntap_tap1=«tap»

config_tap2=«null»
tunctl_tap2="-g users"
tuntap_tap2=«tap»

config_tap3=«null»
tunctl_tap3="-g users"
tuntap_tap3=«tap»

config_tap4=«null»
tunctl_tap4="-g users"
tuntap_tap4=«tap»

bridge_br0=«eth0 tap0 tap1 tap2 tap3 tap4»
config_br0=«192.168.23.108/24»
routes_br0=«default via 192.168.23.1»
 brctl_br0=«stp off setfd 0 sethello 1»

rc_net_br0_need=«net.eth0 net.tap0 net.tap1 net.tap2 net.tap3 net.tap4»

dns_servers_br0=«192.168.23.1 8.8.8.8»

2. Параметры запуска qemu

-netdev tap,id=g1_net0,ifname=tap1,vhost=on,script=no,downscript=no \
-device virtio-net-pci,netdev=g1_net0,mac=00:12:34:56:78:9a,addr=06.0

3. Дополнительно к ядру:

HOST:
    CONFIG_BRIDGE=y
    CONFIG_VHOST_NET=y (потребуется ее включить CAIF)
GUEST:
    CONFIG_PCI_MSI=y
    ну и VIRTIO драйвер
еще правило нужо в udev (host системы)
KERNEL==«vhost-net», GROUP=«kvm», MODE=«0660»

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

Спасибо! К сожалению, похоже, в моём случае с мостом ничего не получится, т.к. WiFi.

sergs
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.