作業ログ源泉垂れ流し

しがないIT技術者の作業ログを垂れ流す

KVMのデフォルトネットワークをブリッジへ変更

KVMのデフォルトネットワークは通常、ブリッジでプライベートアドレスのサブネットを作ってNATで外部に出ていくものになっているが、これをホスト環境のネットワークインタフェースに直接ブリッジするもの(ホストブリッジ)に変えてみる。

まずは現状の確認。

$ export LIBVIRT_DEFAULT_URI='qemu:///system'
$ virsh net-list --all
 Name      State      Autostart   Persistent
----------------------------------------------
 default   inactive   no          yes

デフォルトのネットワークが定義されている。

いったんdefaultネットワークの定義を削除する。

$ virsh net-undefine default
$ virsh net-list --all
 Name   State   Autostart   Persistent
----------------------------------------

続いて、ブリッジbr0を使うホストブリッジ用ネットワークを定義する。
ブリッジを作成する方法は各ディストリビューションのドキュメントを参照のこと。

defaultネットワークをXMLを使って定義する。
なお <( ... ) の部分はbashのprocess substitution(プロセス置換)という機能。

$ virsh net-define <(cat <<EOF
<network>
  <name>default</name>
  <forward mode="bridge"/>
  <bridge name="br0"/>
</network>
EOF
)
Network default defined from /tmp/br0.xml

$ virsh net-list --all
 Name      State      Autostart   Persistent
----------------------------------------------
 default   inactive   no          yes

最後に、defaultネットワークを開始し、自動開始を設定する。

$ virsh net-start default
Network default started

$ virsh net-autostart default
Network default marked as autostarted

$ virsh net-list --all
 Name      State    Autostart   Persistent
--------------------------------------------
 default   active   yes         yes

KVMのデフォルトネットワークをホストブリッジに変更できた!