LXCはデフォルトだと、勝手に作られたブリッジに接続し、勝手なローカルアドレスがDHCPで割り振られますが、既存のネットワークに直接繋ぎたくなったため、設定を変更してみました。
まずは、network-managerが動いていると何かと邪魔なので、ネットワークの設定を手動に切り替えます。
# service network-manager stop # update-rc.d -f network-manager remove
一旦eth0に手動でIPを設定し、通信できることを確認しておきます。自分のNWにあわせてIP等は設定してください。
NW設定。
# vi /etc/network/interfaces
ファイル設定例
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 192.168.0.1
pingで確認
# ifup eth0 # ping 192.168.0.1
ここでpingが通ればeth0を停止し、ブリッジ(br0)を作っていきます。
# ifdown eth0 # brctl addbr br0 # vi /etc/network/interfaces
ファイル設定例
auto lo iface lo inet loopback auto br0 iface br0 inet static address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 192.168.0.1 bridge_ports eth0 bridge_stp off bridge_maxwait 10 auto eth0 iface eth0 inet static address 0.0.0.0
ブリッジ起動
# ifup br0
br0にeth0が入っていることを確認
# brctl show bridge name bridge id STP enabled interfaces br0 8000.00270e120a0d no eth0 lxcbr0 8000.000000000000 no
最後に、コンテナがlxcbr0ではなく、br0を使用するように設定する。
# vi /var/lib/lxc/コンテナ名/config
変更点
lxc.network.link = br0
あとは、起動すると既存LANにブリッジ接続されます。
※既存LAN上でDHCPが動いている必要があります。