web-dev-qa-db-ja.com

LXCコンテナはブリッジ経由でのみホストにアクセスできます

X86_64 Ubuntu12.04ホストで実行されているi686Ubuntu12.04を含むLXCコンテナーがあります。手順を使用してブリッジを設定しました ここ 。ただし、コンテナからのpingはホストにのみ送信され、ローカルネットワーク上の他のマシンには送信されません。同様に、他のマシンではなくホストのみがコンテナOSを認識します。

ホストの/etc/network/interfacesファイルは次のようになります。

auto lo
iface lo inet loopback

iface eth0 inet manual

auto br0
iface br0 inet dhcp
    bridge_ports eth0
    bridge_fd 0
    bridge_maxwait 0

コンテナの/etc/network/interfacesファイルは次のようになります。

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

そして、これがコンテナの設定の関連部分です:

lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up

私が間違っていることについて何か考えはありますか?

追加情報:

ホストでのiptables-saveの出力:

$ Sudo iptables-save
# Generated by iptables-save v1.4.12 on Sat Oct 26 06:06:48 2013
*filter
:INPUT ACCEPT [6854:721708]
:FORWARD ACCEPT [4067:538895]
:OUTPUT ACCEPT [4967:522405]
COMMIT
# Completed on Sat Oct 26 06:06:48 2013
# Generated by iptables-save v1.4.12 on Sat Oct 26 06:06:48 2013
*nat
:PREROUTING ACCEPT [82235:21547307]
:INPUT ACCEPT [16:1070]
:OUTPUT ACCEPT [9386:583359]
:POSTROUTING ACCEPT [14693:1291952]
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
COMMIT
# Completed on Sat Oct 26 06:06:48 2013

ホストでのbrctl showの出力:

$ brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.080027409684   no      eth0
                            vethBkwWyV

ホストでのifconfig br0の出力:

$ ifconfig br0
br0       Link encap:Ethernet  HWaddr 08:00:27:40:96:84  
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe40:9684/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:232863 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59518 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:34437354 (34.4 MB)  TX bytes:198492871 (198.4 MB)

ホストでのifconfig eth0の出力:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 08:00:27:40:96:84  
          inet6 addr: fe80::a00:27ff:fe40:9684/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:299419 errors:0 dropped:0 overruns:0 frame:0
          TX packets:203569 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:59077446 (59.0 MB)  TX bytes:372056540 (372.0 MB)

コンテナでのifconfig eth0の出力:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:16:3e:74:08:2b  
          inet addr:192.168.1.12  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe74:82b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:81 errors:0 dropped:0 overruns:0 frame:0
          TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8506 (8.5 KB)  TX bytes:9021 (9.0 KB)
3
vitaut

この問題を解決するには、次のことを確認してください。

  1. br0(ホスト)とeth0(コンテナ)のIPアドレスは同じサブネットにあります。
  2. iP転送がオンになっています:cat/proc/sys/net/ipv4/ip_forward
  3. トラフィックはiptablesによってブロックされません。

UPD:上記で問題が解決しない場合:

  1. コンテナおよびLANホストのarpキャッシュ状態を確認しますarp -n
  2. tcpdumpを使用してarpおよびicmpパケットをデバッグします。/usr/sbin/tcpdump -n -i <ifname> arp or icmp
  3. routeでルートテーブルを確認してください
1
Veniamin