Gentooでvirt-managerでbridge

Gentoovirt-managerとかlibvirtって今のところmaskされてるんだけど、なんでかというといくつかの機能がまだうまく動かないからっぽい。

例えば、localhost(QEMU)の「詳細」を表示して「ネットワークインタフェース」を選ぶと「libvirt接続はインターフェース管理をサポートしていません。」などと出てくるが、ここの部分の機能がRHEL/Fedoraに依存していてGentooでは動かないという事らしい。

で、普通にネットワークつくってVMNICに割り当てるとNATになっちゃう訳だがこれだと使い勝手悪いからちょっとつっついてみた。

/etc/conf.d/net
bridge_br0="eth0"
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
rc_need_br0="net.eth0"
config_br0=( "dhcp" )
config_eth0=("null")

こんなのを定義してみる。(元々eth0が外向きのインタフェースで、dhcpでIPをとってる前提。

sudo rc-update add net.br0 default
sudo /etc/init.d/net.eth0 restart

で、virt-managerVMのウインドウから「表示」→「詳細」を出し、仮想ネットワークインタフェースを選んで「ソースデバイス:」に「共有デバイス名を指定」を選ぶと「ブリッジ名:」という入力項目が現れるのでbr0と入力。

これでVM起動時にeth0へブリッジされるようになる。

ちなみにlibvirtXMLはこんな感じになってた。

    <interface type='bridge'>
      <mac address='52:54:00:xx:xx:xx'/>
      <source bridge='br0'/>
      <model type='e1000'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

もちろん、virshな人でもXMLをこのように書いてやればOKな筈だ。