hnakamur’s blog

ものすごい勢いで忘れる私のために未整理でもいいからとりあえずメモ

2010-12-19

CentOSのKVMのゲストOSに2枚目のネットワークカードを追加

ゲストOSが1枚のネットワークカードでブリッジで動いていることとホスト側では2枚のネットワークカードの両方をブリッジに設定済みであることを前提とします。
なお、この方法は試しにやってみたらできたという手順なので、もっとよい手順があるかもしれません。

ゲストOSで/etc/sysconfig/network-scripts/ifcfg-eth0をコピーしてifcfg-eth1を作成し、適宜編集。MACアドレスを適当に変更(但し頭の54:52:00:は変えずに下3オクテットのみを変えます。上3オクテットはKVMで決まっている値のため(ソース失念))。
また/etc/sysconfig/networkのGATEWAYも編集(hnakamur’s blog: CentOSでネットワークカード2枚挿しの場合のゲートウェイの設定を参照)。

ゲストOSをシャットダウン。

ホストOSでドメインのxml(/etc/libvirt/qemu/<ドメイン名>.xml)を編集。interfaceのタグをコピペして、mac addressを先程ゲストOSでeth1に割り当てた値にし、bridgeをホストのもう一つのブリッジデバイス(br1)にします。
<domain type='kvm'>
  …(略)…
  <devices>
    …(略)…
    <interface type='bridge'>
      <mac address='54:52:00:4f:0a:85'/>
      <source bridge='br0'/>
    </interface>
    <interface type='bridge'>
      <mac address='54:52:00:4f:0a:86'/>
      <source bridge='br1'/>
    </interface>
    …(略)…
  </devices>
</domain>

以下のコマンドで設定を反映。
# virsh define /etc/libvirt/qemu/<ドメイン名>.xml

CentOSでネットワークカード2枚挿しの場合のゲートウェイの設定

この説明ではeth0をLAN側、eth1をWAN側とします。
GATEWAYの設定は/etc/sysconfig/network-scripts/のifcfg-eth0とifcfg-eth1ではコメントアウトして/etc/sysconfig/networkにeth1のGATEWAYを書く(GATEWAYDEVは書かなくても大丈夫でした)。
DNS1、DNS2の設定は/etc/sysconfig/network-scripts/のifcfg-eth0ではコメントアウトしてifcfg-eth1では有効にする。

その後以下のコマンドで設定を反映。
# /etc/init.d/network reload

参考:
Reference Guide
ルータにするための基本設定

CentOSでネットワークをブリッジにする手順

bridge-utilsのインストール

bridge-utilsをインストールするのを忘れずに。
# yum install bridge-utils

設定ファイルの編集

以下の説明のMACアドレスとIPアドレスは実際の環境に合わせて適宜読み替えてください。
/etc/sysconfig/network-scripts/以下のifcfg-eth0を修正し、ifcfg-br0を作成します。

修正前

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:01:02:03:04:05
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1


修正後

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:01:02:03:04:05
ONBOOT=yes
BRIDGE=br0
#BOOTPROTO=static
#IPADDR=192.168.0.100
#NETMASK=255.255.255.0
#DNS1=192.168.0.1
#GATEWAY=192.168.0.1

/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BRIDGE=br0
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
DNS1=192.168.0.1
#HWADDR=00:01:02:03:04:05


設定を反映

# /etc/init.d/network reload
リモートから操作している場合は端末の接続が切れるので、端末を閉じて別途開きなおします。
ただしすぐには繋がりませんでした。20~30秒待ってから接続すると大丈夫でした。

"Shutting down interface br0:"で表示が10秒程度止まりますが、その後"Bringing up interface br0:"も表示されて元の端末で引き続き作業可能でした。

ブログ アーカイブ