LXC 容器没有桥接网络和公共 IP 地址的传出流量

LXC 容器没有桥接网络和公共 IP 地址的传出流量

我尝试在 ubuntu 14.04.1 上设置一个带桥接网络的 LXC 容器,但传出流量似乎被阻止了。无法 ping 容器 IP 以外的其他 IP。实际上,我尝试使用已移至新硬件的 ubuntu 12.04 主机的工作容器和最近的 ubuntu 14.04,但该问题也适用于新创建的 ubuntu 14.04 容器。

我应该提到,如果我将 IP 地址直接绑定到主机的别名接口,则对主机内部和外部的 ping 操作就可以正常工作。

我希望有人知道我做错了什么。

我使用以下内容创建了新容器:

lxc-create -t ubuntu -n ubuntu-test

这是我的配置文件:

# Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu
# Parameters passed to the template: -r trusty
# For additional config options, please look at lxc.container.conf(5)

# Common configuration
lxc.include = /usr/share/lxc/config/ubuntu.common.conf

# Container specific configuration
lxc.rootfs = /var/lib/lxc/ubuntu-test/rootfs
lxc.mount = /var/lib/lxc/ubuntu-test/fstab
lxc.utsname = ubuntu-test
lxc.arch = amd64

# Network configuration
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 00:16:3e:6c:7c:79
lxc.network.ipv4=91.143.88.119/24
lxc.network.ipv4.gateway=91.143.88.1
lxc.network.name=eth0

我的主机上的“/etc/network/interfaces”:

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
    address 81.7.15.233
    netmask 255.255.255.0
    broadcast 81.7.15.255
    gateway 81.7.15.1
    bridge_ports eth0
    bridge_fd 0
    bridge_stp off
    bridge_waitport 0
    bridge_maxwait 0

在客户端上:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 91.143.88.119
    netmask 255.255.255.0
    broadcast 91.143.88.255
    gateway 91.143.88.1

已启用 IP 转发:

cat /proc/sys/net/ipv4/ip_forward 
1

‘iptables-save’ 显示

# Generated by iptables-save v1.4.21 on Wed Sep 10 18:26:23 2014
*mangle
:PREROUTING ACCEPT [20035:4192692]
:INPUT ACCEPT [7193:3225426]
:FORWARD ACCEPT [2677:191017]
:OUTPUT ACCEPT [381:36624]
:POSTROUTING ACCEPT [3058:227641]
-A POSTROUTING -o lxcbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Wed Sep 10 18:26:23 2014
# Generated by iptables-save v1.4.21 on Wed Sep 10 18:26:23 2014
*nat
:PREROUTING ACCEPT [10474:819973]
:INPUT ACCEPT [282:41644]
:OUTPUT ACCEPT [7:537]
:POSTROUTING ACCEPT [57:4274]
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
COMMIT
# Completed on Wed Sep 10 18:26:23 2014
# Generated by iptables-save v1.4.21 on Wed Sep 10 18:26:23 2014
*filter
:INPUT ACCEPT [7193:3225426]
:FORWARD ACCEPT [2677:191017]
:OUTPUT ACCEPT [381:36624]
-A INPUT -i lxcbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i lxcbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i lxcbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A INPUT -i lxcbr0 -p udp -m udp --dport 67 -j ACCEPT
-A FORWARD -o lxcbr0 -j ACCEPT
-A FORWARD -i lxcbr0 -j ACCEPT
COMMIT
# Completed on Wed Sep 10 18:26:23 2014

‘brctl show’ 的输出

bridge name bridge id       STP enabled interfaces
br0         8000.0025905700f8   no      eth0
                                        vethRTX30H
lxcbr0      8000.000000000000   no      

我的主机的 ifconfig:

br0       Link encap:Ethernet  Hardware Adresse 00:25:90:57:00:f8  
      inet Adresse:81.7.15.233  Bcast:81.7.15.255  Maske:255.255.255.0
      inet6-Adresse: fe80::225:90ff:fe57:f8/64 Gültigkeitsbereich:Verbindung
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
      RX-Pakete:128248 Fehler:0 Verloren:15 Überläufe:0 Fenster:0
      TX-Pakete:3835 Fehler:0 Verloren:0 Überläufe:0 Träger:0
      Kollisionen:0 Sendewarteschlangenlänge:0 
      RX-Bytes:11076138 (11.0 MB)  TX-Bytes:343557 (343.5 KB)

eth0      Link encap:Ethernet  Hardware Adresse 00:25:90:57:00:f8  
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
      RX-Pakete:129421 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
      TX-Pakete:4046 Fehler:0 Verloren:0 Überläufe:0 Träger:0
      Kollisionen:0 Sendewarteschlangenlänge:1000 
      RX-Bytes:13510902 (13.5 MB)  TX-Bytes:449527 (449.5 KB)
      Interrupt:16 Speicher:fb900000-fb920000 

lo        Link encap:Lokale Schleife  
      inet Adresse:127.0.0.1  Maske:255.0.0.0
      inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
      UP LOOPBACK RUNNING  MTU:65536  Metrik:1
      RX-Pakete:2 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
      TX-Pakete:2 Fehler:0 Verloren:0 Überläufe:0 Träger:0
      Kollisionen:0 Sendewarteschlangenlänge:0 
      RX-Bytes:176 (176.0 B)  TX-Bytes:176 (176.0 B)

lxcbr0    Link encap:Ethernet  Hardware Adresse ae:2c:57:c2:f0:24  
      inet Adresse:10.0.3.1  Bcast:10.0.3.255  Maske:255.255.255.0
      inet6-Adresse: fe80::ac2c:57ff:fec2:f024/64 Gültigkeitsbereich:Verbindung
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
      RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
      TX-Pakete:8 Fehler:0 Verloren:0 Überläufe:0 Träger:0
      Kollisionen:0 Sendewarteschlangenlänge:0 
      RX-Bytes:0 (0.0 B)  TX-Bytes:648 (648.0 B)

vethRTX30H Link encap:Ethernet  Hardware Adresse fe:97:2b:8e:90:8a  
      inet6-Adresse: fe80::fc97:2bff:fe8e:908a/64 Gültigkeitsbereich:Verbindung
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
      RX-Pakete:39 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
      TX-Pakete:14826 Fehler:0 Verloren:0 Überläufe:0 Träger:0
      Kollisionen:0 Sendewarteschlangenlänge:1000 
      RX-Bytes:3282 (3.2 KB)  TX-Bytes:1466740 (1.4 MB)

我的容器的“ifconfig”

eth0      Link encap:Ethernet  Hardware Adresse 00:16:3e:6c:7c:79  
      inet Adresse:91.143.88.119  Bcast:91.143.88.255  Maske:255.255.255.0
      inet6-Adresse: fe80::216:3eff:fe6c:7c79/64 Gültigkeitsbereich:Verbindung
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
      RX-Pakete:20082 Fehler:0 Verloren:2 Überläufe:0 Fenster:0
      TX-Pakete:40 Fehler:0 Verloren:0 Überläufe:0 Träger:0
      Kollisionen:0 Sendewarteschlangenlänge:1000 
      RX-Bytes:2005479 (2.0 MB)  TX-Bytes:3368 (3.3 KB)

lo        Link encap:Lokale Schleife  
      inet Adresse:127.0.0.1  Maske:255.0.0.0
      inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
      UP LOOPBACK RUNNING  MTU:65536  Metrik:1
      RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
      TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
      Kollisionen:0 Sendewarteschlangenlänge:0 
      RX-Bytes:0 (0.0 B)  TX-Bytes:0 (0.0 B)

主机上的“tail /proc/sys/net/bridge/*”

==> /proc/sys/net/bridge/bridge-nf-call-arptables <==
0

==> /proc/sys/net/bridge/bridge-nf-call-ip6tables <==
0

==> /proc/sys/net/bridge/bridge-nf-call-iptables <==
0

==> /proc/sys/net/bridge/bridge-nf-filter-pppoe-tagged <==
0

==> /proc/sys/net/bridge/bridge-nf-filter-vlan-tagged <==
0

==> /proc/sys/net/bridge/bridge-nf-pass-vlan-input-dev <==
0

最后在容器中“ping 8.8.8.8”:

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2015ms

相关内容