Después de iniciar un contenedor LXC particular con una IP estática, no se configura ninguna ruta de puerta de enlace predeterminada

Después de iniciar un contenedor LXC particular con una IP estática, no se configura ninguna ruta de puerta de enlace predeterminada

Tengo un contenedor LXC que funciona bien, pero ahora hay un segundo que no se comporta correctamente.

He configurado una ruta estática para ello, pero simplemente no definirá una puerta de enlace después sudo services networking restarto después de reboot now, o lxc-restart ..., lo mismo para los servidores DNS. Solo se configura la IP (que se define en el archivo de configuración de los contenedores LXC).

Puede hacer ping a la puerta de enlace predeterminada (10.1.0.1) sin problemas, pero simplemente no configura la ruta de la puerta de enlace predeterminada ni los servidores de nombres.

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.

Nota:En el otro contenedor LXC que funciona, este comando tiene éxito.


Añadiendo 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

Creo que la pregunta realmente debería ser "¿por qué no se configura eth0 cuando reinicio o ejecuto? 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)

Respuesta1

He estado trabajando en este tema por un tiempo. Estoy ejecutando 12.04 LXC 0.7.5 en el host y una combinación de 12.04 y 11.04 en los contenedores.

No tuve éxito con la edición: /run/networking/ifstateya que parece no persistir después de reiniciar un contenedor.

Resolví el problema comentando la siguiente línea del configarchivo de contenedores:

lxc.network.ipv4 = 10.1.3.10/16

Otra solución que funcionó para mí fue instalar LXC 8.0 mediante backports. Primero deberá habilitar los backports en /etc/apt/sources.list.

sudo apt-get install -t precise-backports lxc

LXC 8.0 permite que el configarchivo de contenedores configure la puerta de enlace predeterminada.

lxc.network.ipv4.gateway = 10.1.0.1

Respuesta2

Basado en alguna otra investigación, descubrí que agregar:

  eth0=eth0 

a:

  /run/networking/ifstate

solucionó el problema, luego pude bajarlo y subirlo y configuró las cosas como se esperaba.

información relacionada