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が動いている必要があります。