eth0 em lxc não funciona

3

Estou enfrentando alguns problemas que o contêiner eth0 on lxc não funciona. Eu já tentei Colocar recipientes LXC no host eth0 para que eles possam ter um IP público , mas isso não ajuda.

No meu host (Ubuntu no VirtualBox):

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

config

# cat /var/lib/lxc/config
lxc.config
lxc.utsname=ubuntu
lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up

Eu criei um container com a configuração acima

# lxc-create -t centos -f config -n centos1

depois, inicie

# lxc-start -d -n centos1
# lxc-console -n centos1

Parece que veth está conectado corretamente porque a máquina host diz

# brctl show
bridge name    bridge id           STP enabled    interfaces
br0            8000.080027bb0aca   no             eth0
                                                  veth48BKPz
lxcbr0         8000.000000000000   no

E o gateway padrão também está configurado corretamente no host

# route -n
Kernel IP routing table
Destination    Gateway        Genmask          Flags    Metric  Ref   Use  Iface
0.0.0.0        192.168.11.1   0.0.0.0          UG       100     0       0  br0
10.0.3.0       0.0.0.0        255.255.255.0    U        0       0       0  lxcbr0
192.168.11.0   0.0.0.0        255.255.255.0    U        0       0       0  br0

No contêiner lxc

# route -n
Kernel IP routing table
Destination    Gateway        Genmask          Flags    Metric  Ref   Use  Iface
0.0.0.0        192.168.11.1   0.0.0.0          UG       0       0       0  eth0
169.254.0.0    0.0.0.0        255.255.0.0      U        1009    0       0  eth0
192.168.11.0   0.0.0.0        255.255.255.0    U        0       0       0  eth0

Alguma ajuda?

    
por akry 28.01.2013 / 12:39

1 resposta

1

Você tem o iptables (ou ip6tables) ativado em seu host? Se você fizer isso, você precisa ACEITAR o tráfego na cadeia FORWARD de sua ponte com :

iptables -A FORWARD -p all -i br0 -j ACCEPT

A razão é que a opção br-nf (bridge-net filter) é ativada por padrão no kernel 2.6, então o o tráfego em ponte passa pelo iptables. Você poderia desativá-lo fazendo:

echo 0 > /proc/sys/net/bridge/bridge-nf-call-arptables
echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

Siga este link para obter mais informações sobre interação do ebtables / iptables em uma ponte baseada em Linux .

    
por 03.02.2013 / 17:09