Nach dem Starten eines bestimmten LXC-Containers mit einer statischen IP ist keine Standard-Gateway-Route konfiguriert

Nach dem Starten eines bestimmten LXC-Containers mit einer statischen IP ist keine Standard-Gateway-Route konfiguriert

Ich habe einen LXC-Container, der einwandfrei funktioniert, aber bei einem zweiten treten derzeit Probleme auf.

Ich habe eine statische Route dafür konfiguriert, aber es wird einfach kein Gateway nach sudo services networking restartoder nach einem reboot now, oder definiert lxc-restart ..., dasselbe gilt für die DNS-Server. Es wird nur die IP festgelegt (die in der Konfigurationsdatei des LXC-Containers definiert ist).

Es kann das Standard-Gateway (10.1.0.1) problemlos anpingen, legt aber weder die Standard-Gateway-Route noch die Nameserver fest.

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.

Notiz:Auf dem anderen LXC-Container, der funktioniert, ist dieser Befehl erfolgreich.


Ich füge diese Anmerkung hinzu:

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

Ich denke, die Frage sollte eigentlich lauten: „Warum wird eth0 nicht konfiguriert, wenn ich neu starte oder ausführe 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)

Antwort1

Ich arbeite jetzt schon seit einiger Zeit an diesem Problem. Ich verwende 12.04 LXC 0.7.5 auf dem Host und eine Mischung aus 12.04 und 11.04 in den Containern.

Beim Bearbeiten hatte ich keinen Erfolg: /run/networking/ifstateda es nach dem Neustart eines Containers nicht bestehen zu bleiben scheint.

Ich habe das Problem gelöst, indem ich die folgende Zeile der Containerdatei auskommentiert habe config:

lxc.network.ipv4 = 10.1.3.10/16

Eine andere Lösung, die bei mir funktioniert hat, war die Installation von LXC 8.0 über Backports. Sie müssen zuerst Backports in aktivieren /etc/apt/sources.list.

sudo apt-get install -t precise-backports lxc

LXC 8.0 ermöglicht configdie Konfiguration des Standard-Gateways über die Containerdatei.

lxc.network.ipv4.gateway = 10.1.0.1

Antwort2

Basierend auf anderen Untersuchungen habe ich herausgefunden, dass das Hinzufügen von:

  eth0=eth0 

Zu:

  /run/networking/ifstate

das Problem wurde behoben. Ich konnte es dann herunter- und wieder hochfahren und die Konfiguration verlief wie erwartet.

verwandte Informationen