qphoney記

beta

KVMからbr0(ブリッジインターフェイス)が選択できないけど何故か解決した件

これまた鮮やかにハマって何故か解決したので情報共有(する意味があるのかな?)

やりたいこと

KVMのゲストにブリッジインターフェイスを割り当てたい

症状

作成したはずのブリッジインターフェイス(br0)が使えない、表示されない

環境

CentOS 5.7(x86_64)
kernel 2.6.18-274.7.1.el5

状態

GUIで確認するとこんな感じで共有物理装置のプルダウンに何も表示されない
f:id:qphoney:20111201181445p:image

原因

不明

対処

対象VMのxmlを直接編集

詳細

結果的には何故かbr0が使える状態になった。

まず、eth0をpromiscuous modeにしてbr0を作成。
ここらへんはGoogle先生や書籍を参考。
ifconfigとかvirsh net-listとかの結果

# ifconfig
br0       Link encap:Ethernet  HWaddr 00:22:19:23:00:D4
          inet addr:192.168.0.1    Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::222:19ff:fe23:d4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:29723 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6056 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1856457 (1.7 MiB)  TX bytes:10598278 (10.1 MiB)

eth0      Link encap:Ethernet  HWaddr 00:22:19:23:00:D4
          inet6 addr: fe80::222:19ff:fe23:d4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:67750 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11249 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4837846 (4.6 MiB)  TX bytes:10986150 (10.4 MiB)
          Interrupt:177 Memory:efcf0000-efd00000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:400 (400.0 b)  TX bytes:400 (400.0 b)

# virsh net-list
名前               状態     自動起動
-----------------------------------------
default              動作中  no

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0022192300d4       no              eth0

CUIから無理矢理インストールしてみた。無理矢理。

# virt-install -n test1 \
    -r 1024 \
    -f /var/lib/libvirt/images/test1.img \
    -s 10 \
    --vcpus=1 \
    --os-type linux \
    --os-variant=rhel5.4 \
    --network bridge=br0 \
    --nographics \
    --location='http://ftp.riken.jp/Linux/centos/5/os/x86_64/' \
    --extra-args='console=tty0 console=ttyS0,115200n8'

.
.
.

ACPI: Core revision 20060707
..MP-BIOS bug: 8254 timer not connected to IO-APIC
Kernel panic - not syncing: IO-APIC + timer doesn't work! Try using the 'noapic' kernel parameter

ここらへんでぱにっく
Google先生に聞いても分からなかったのでxmlを直接編集してbr0を使わせてみた。

# vi /etc/libvirt/qemu/test1.xml

    <interface type='network'>
      <mac address='54:52:00:0d:1d:c4'/>
      <source network='default'/>
      <model type='virtio'/>
    </interface>

ここらへんを

    <interface type='bridge'>
      <mac address='54:52:00:2b:ea:38'/>
      <source bridge='br0'/>
      <model type='virtio'/>
    </interface>

こんな感じに

そんでvirshに喰わせて起動

# virsh define /etc/libvirt/qemu/test1.xml
ドメイン test1 が /etc/libvirt/qemu/test1.xml から定義されました

# virsh start test1

普通に起動してブリッジ通信も問題ないぞ…
なんでだろ?
ifconfigの様子を見てみる

# ifconfig
br0       Link encap:Ethernet  HWaddr 00:22:19:23:00:D4
          inet addr:192.168.0.1    Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::222:19ff:fe23:d4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:72031 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35930 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:18099271 (17.2 MiB)  TX bytes:51559745 (49.1 MiB)

eth0      Link encap:Ethernet  HWaddr 00:22:19:23:00:D4
          inet6 addr: fe80::222:19ff:fe23:d4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:116393 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59772 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:22249558 (21.2 MiB)  TX bytes:53388905 (50.9 MiB)
          Interrupt:177 Memory:efcf0000-efd00000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2540 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2540 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5601594 (5.3 MiB)  TX bytes:5601594 (5.3 MiB)

vnet0     Link encap:Ethernet  HWaddr FE:52:00:2B:EA:38
          inet6 addr: fe80::fc52:ff:fe2b:ea38/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:0 (0.0 b)  TX bytes:2236 (2.1 KiB)

vnet0君がいつのまにかあがってる...
VMとの通信も問題ないし、まったくもって謎い...