web-dev-qa-db-fra.com

Après le démarrage d’un conteneur LXC particulier avec une adresse IP statique, aucune route de passerelle par défaut n’est configurée.

J'ai un conteneur LXC qui fonctionne très bien, mais un second se comporte mal.

J'ai configuré un itinéraire statique pour cela, mais il ne définit pas de passerelle après Sudo services networking restart ou après un reboot now, ou lxc-restart ..., identique pour les serveurs DNS. Seule l'adresse IP est définie (définie dans le fichier de configuration des conteneurs LXC).

Il peut envoyer un ping à la passerelle par défaut (10.1.0.1), mais ne définit pas la route de passerelle par défaut ni les serveurs de noms.

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.

Remarque: Sur l'autre conteneur LXC qui fonctionne, cette commande aboutit.


Ajout de cette note:

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

Je pense que la question devrait vraiment être, "pourquoi eth0 n'est-il pas configuré lorsque je redémarre ou que je lance 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)
4
David Parks

Je travaille sur cette question depuis un moment maintenant. Je cours 12.04 LXC 0.7.5 sur l'hôte et un mélange de 12.04 et 11.04 dans les conteneurs.

J'ai eu zéro succès avec l'édition: /run/networking/ifstate car il semble ne pas persister après le redémarrage d'un conteneur.

J'ai résolu le problème en commentant la ligne suivante du fichier de conteneurs config:

lxc.network.ipv4 = 10.1.3.10/16

Une autre solution qui a fonctionné pour moi a été d'installer LXC 8.0 via des backports. Vous devez d’abord activer les backports dans /etc/apt/sources.list.

Sudo apt-get install -t precise-backports lxc

LXC 8.0 permet au fichier de conteneurs config de configurer la passerelle par défaut.

lxc.network.ipv4.gateway = 10.1.0.1
8
abrongersma

Sur la base d’autres recherches, j’ai découvert que l’ajout:

  eth0=eth0 

à:

  /run/networking/ifstate

résolu le problème, je pouvais ensuite le baisser et le configurer et configurer les choses comme prévu.

1
David Parks