Depois de iniciar um determinado contêiner LXC com um IP estático, nenhuma rota de gateway padrão é configurada

4

Eu tenho um contêiner LXC que funciona muito bem, mas um segundo agora está se comportando mal.

Configurei uma rota estática para ela, mas ela não define um gateway depois de sudo services networking restart ou depois de um reboot now ou lxc-restart ... , o mesmo para os servidores DNS. Apenas o IP é definido (que é definido no arquivo de configuração dos contêineres do LXC).

Ele pode executar ping no gateway padrão (10.1.0.1), mas não define a rota do gateway padrão ou os servidores de nomes.

davidparks21@WebApp:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
 address 10.1.3.10
 netmask 255.255.0.0
 broadcast 10.1.255.255
 gateway 10.1.0.1
 dns-nameservers 8.8.8.8
 dns-nameservers 8.8.4.4
davidparks21@WebApp:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.1.0.0        *               255.255.0.0     U     0      0        0 eth0
lxc.network.type=veth
lxc.network.name=eth0
lxc.network.link=br0
lxc.network.ipv4 = 10.1.3.10/16
lxc.network.flags=up
lxc.rootfs = /var/lib/lxc/WebApp/rootfs
lxc.utsname = prodweb1
root@WebApp:/var/log# ifdown eth0 && ifup eth0
ifdown: interface eth0 not configured
RTNETLINK answers: File exists
Failed to bring up eth0.

Observação: No outro contêiner LXC que funciona, esse comando é bem-sucedido.

Adicionando esta nota:

root@WebApp:/var/log# ethtool eth0
Settings for eth0:
        Supported ports: [ ]
        Supported link modes:   Not reported
        Supported pause frame use: No
        Supports auto-negotiation: No
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Speed: 10000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        MDI-X: Unknown
        Link detected: yes

Acho que a pergunta deveria ser: "por que a eth0 não está sendo configurada quando eu reinicio ou executo service networking restart "

root@WebApp:/var/log# ls /run/network/
ifstate  ifup.lo
root@WebApp:/var/log# ifconfig
eth0      Link encap:Ethernet  HWaddr ee:1d:b6:c7:8d:3d
          inet addr:10.1.3.10  Bcast:10.1.255.255  Mask:255.255.0.0
          inet6 addr: fe80::ec1d:b6ff:fec7:8d3d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:196 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:70482 (70.4 KB)  TX bytes:1174 (1.1 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:48 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3840 (3.8 KB)  TX bytes:3840 (3.8 KB)
    
por David Parks 04.04.2013 / 09:39

2 respostas

8

Estou trabalhando nesse assunto há algum tempo. Estou executando 12.04 LXC 0.7.5 no host e uma mistura de 12.04 e 11.04 nos containers.

Não tive sucesso com a edição: /run/networking/ifstate , pois parece não persistir depois que um contêiner é reiniciado.

Resolvi o problema comentando a seguinte linha dos contêineres config file:

lxc.network.ipv4 = 10.1.3.10/16

Outra solução que funcionou para mim foi instalar o LXC 8.0 por meio de backports. Primeiro você precisa ativar backports em /etc/apt/sources.list .

sudo apt-get install -t precise-backports lxc

O LXC 8.0 permite que o arquivo config dos contêineres configure o gateway padrão.

lxc.network.ipv4.gateway = 10.1.0.1
    
por abrongersma 14.08.2013 / 22:21
1

Com base em algumas outras pesquisas, descobri que adicionar:

  eth0=eth0 

para:

  /run/networking/ifstate

consertou o problema, eu consegui derrubá-lo e configurá-lo conforme o esperado.

    
por David Parks 04.04.2013 / 11:14