Проблемы с TAP в KVM / QEMU с помощью libvirt - PullRequest
5 голосов
/ 18 сентября 2008

Я пытаюсь использовать libvirt с virsh для управления моим kvm / qemu vms. У меня проблема с тем, чтобы заставить его работать с публичными IP-адресами. Сервер работает под управлением Ubuntu 8.04.

libvirt пытается запустить его как:

/usr/bin/kvm -M pc -m 256 -smp 3 -monitor pty -no-acpi \ 
  -drive file=/opt/virtual-machines/calculon/root.qcow2,if=ide,boot=on \ 
  -net nic,vlan=0,model=virtio -net tap,fd=10,vlan=0 -usb -vnc 127.0.0.1:0

Который загружается, но не имеет доступа к сети (нигде не проверяется пинг). Запуск без fd = 10 делает его работоспособным, kvm создает необходимое для меня устройство TAP и функционирует сеть внутри хоста. Все руководства по настройке, которые я видел, фокусируются на настройке маскарадинга, хотя я просто хочу простой мост и нефильтрованный доступ к сети (и гости, и хост должны использовать публичные IP-адреса).

Запуск ifconfig на хосте дает это, мост настраивается вручную в моем файле / etc / network / interfaces. :

br0   Link encap:Ethernet  HWaddr 00:1e:c9:3c:59:b8
      inet addr:12.34.56.78  Bcast:12.34.56.79  Mask:255.255.255.240
      inet6 addr: fe80::21e:c9ff:fe3c:59b8/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:3359 errors:0 dropped:0 overruns:0 frame:0
      TX packets:3025 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:180646 (176.4 KB)  TX bytes:230908 (225.4 KB)

eth0  Link encap:Ethernet  HWaddr 00:1e:c9:3c:59:b8
      inet6 addr: fe80::21e:c9ff:fe3c:59b8/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:6088386 errors:0 dropped:0 overruns:0 frame:0
      TX packets:3058 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:680236624 (648.7 MB)  TX bytes:261696 (255.5 KB)
      Interrupt:33

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

5 голосов
/ 18 сентября 2008

Я следовал руководству по мостовым сетям в https://help.ubuntu.com/community/KVM и имею следующее в / etc / network / interfaces:

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.0.10
        network 192.168.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off

Я не изменил никаких сетевых настроек libvirt, и мои kvm-образы загружаются как:

/usr/bin/kvm -M pc -no-kqemu -m 256 -smp 1 -monitor pty -boot c -hda \
    /libvirt/apt.img -net nic,macaddr=00:16:3e:77:32:1d,vlan=0 -net \
    tap,fd=11,script=,vlan=0 -usb -vnc 127.0.0.1:0

Затем я задаю статические сетевые настройки в образе kvm как обычно. Все работает нормально, так как я следовал за руководством.

У меня есть следующие настройки в моих файлах xml в / etc / libvirt / qemu /, хотя под устройствами:

<interface type='bridge'>
  <mac address='00:16:3e:77:32:1d'/>
  <source bridge='br0'/>
</interface>
0 голосов
/ 22 октября 2008

Полагаю, ваше устройство должно отображаться в ifconfig.

запустить "brctl show"

будет показано соединение между мостом и туннелем.

вам может потребоваться поставить запись iptable, показывающую, что все пакеты будут маршрутизироваться через мост

iptables -I INPUT -i br0 -j ПРИНЯТЬ

...