KVMのブリッジの作成メモ

『KVM徹底入門』P157に仮想化用のブリッジ設定の記載例がある。

あとStray Penguin - Linux Memo (KVM)にもある

インターフェースのオプション /etc/sysconfig/network-script/ifcfg-eth* 設定項目 — server-memo.net

ifcfg-br0

  • ブリッジインターフェース側にはMACアドレスは書かないこと。

  • ブリッジ側設定には『DELAY=0』を加える事、これがないとゲストOSのPXEブートで失敗する。

  • ブリッジ側、eth側ともに『NM_CONTROLLED=no』を加える事。これは既存のnetwork-managerというデーモンがブリッジに対応していない事に対する対応なので将来的には変わる可能性がある。

    Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet

DEVICE="br0"
TYPE=Bridge
ONBOOT="yes"
DELAY=0
NM_CONTROLLED=no
BOOTPROTO="static"
IPADDR="203.0.113.63"
NETWORK=203.0.113.0
NETMASK="255.255.255.0"
BROADCAST=203.0.113.255

ifcfg-eth0

IPアドレスは書かない。元々のファイルにMACアドレスが記載されていたら記載する(RHEl6から/dev配下の管理がudevに統一されたので、RHEL的には書かなくて良いのかも)

# Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet
DEVICE="eth0"
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
IPV6INIT="no"
HWADDR=00:1B:78:31:1C:3A

コマンドライン、スクリプト内で自動的に作成する

これは古いような気がする、sedの使いかた程度に捉えること

eth_no="0" && cd /etc/sysconfig/network-scripts && \
mkdir -p /etc/sysconfig/network-scripts/conf_bk && \
cp -p ifcfg-eth${eth_no} conf_bk/ifcfg-eth${eth_no}.`date +%Y%m%d` && \
cp -p ifcfg-eth${eth_no} ifcfg-br${eth_no} && \
sed -i -e "s/eth${eth_no}/br${eth_no}/" -e '3iTYPE=Bridge' -e '4iNM_CONTROLLED=no' -e '5iDELAY=0' /etc/sysconfig/network-scripts/ifcfg-br${eth_no} && \
sed -i -e "3iBRIDGE=br${eth_no}"  -e '/NETMASK.*/d' -e '/IPADDR.*/d'   -e '4iNM_CONTROLLED=no' /etc/sysconfig/network-scripts/ifcfg-eth${eth_no}

Stray Penguin - Linux Memo (KVM)

あとは `service network restart' すればインターフェイスが出来上がる。
ただしひとつだけ注意がある
-- この設定以後、ホストマシンのゲートウェイデバイスは eth0 ではなく br0 になるので、
サーバデーモンなどの設定ファイルでインターフェイス名を指定してあるものは、
eth0 を br0 に書き換えなくてはならない。