Warum wird / etc / network / interfaces ignoriert?

10

Ich habe in den letzten 2 Stunden im Internet gesucht und kann anscheinend keine Lösung für das folgende Problem finden.

Ich habe Xen gerade in einem neuen Xubuntu 13.04 installiert und um das Netzwerk einzurichten, musste ich network_manager entfernen. Die gesamte Netzwerkkonfiguration erfolgt also über / etc / network / interfaces. Zumindest sollte das passieren. Es scheint jedoch, dass das, was ich dort eingegeben habe, einfach ignoriert wird: Meiner xenbr0-Schnittstelle wird keine IPv4-Adresse zugewiesen, es gibt kein Standard-Gateway und es ist kein Nameserver eingerichtet.

Folgendes befindet sich in der Datei / etc / network / interfaces:

auto lo
iface lo inet loopback

# There are no IP configurations for eth0, it’s all defined under xenbr0:
#auto eth0

# Static configuration
auto xenbr0
iface xenbr0 inet static
  bridge_ports    eth0
  address         192.168.1.200 # the IP address of the Ethernet port
  broadcast       192.168.1.255
  netmask         255.255.255.0
  gateway         192.168.1.1   # the address of the router
  bridge_stp      off           # disable Spanning Tree Protocol - optional
  bridge_waitport 0             # no delay before a port becomes available - optional, comment out if this gives you troubles
  bridge_fd       0             # no forwarding delay - optional
  dns-nameservers 192.168.1.1

Um meine Netzwerkverbindung zu reparieren, führe ich ein kleines "Fix" -Skript aus:

#!/bin/bash
ifconfig xenbr0 192.168.1.200 netmask 255.255.255.0 up
route add default gw 192.168.1.1 xenbr0

Ich möchte jedoch im Kern beheben. Derzeit dauert das Booten mindestens 1 Minute länger, da das System auf eine funktionierende Netzwerkverbindung wartet.

Bearbeiten : Ich musste auch Folgendes zu /etc/resolvconf/resolv.conf.d/base hinzufügen und ausführen sudo resolvconf -u:

nameserver 192.168.1.1

Ohne dies kann ich nur IP-Adressen pingen, es werden keine DNS-Anfragen weitergeleitet. Dies hat mich tatsächlich davon überzeugt, dass die Schnittstellendatei vollständig ignoriert wird.

Bearbeiten 2 : Entweder tun sudo restart networkingoder sudo /etc/init.d/networking restartnichts tun.

Edit 3 : Einige zusätzliche Informationen. So ifconfigsollte die Ausgabe aussehen (funktionierendes Netzwerk / Internetverbindung):

eth0      Link encap:Ethernet  HWaddr 00:1c:c0:77:09:9d  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3346 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2903 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2931429 (2.9 MB)  TX bytes:661616 (661.6 KB)
          Interrupt:20 Memory:e3200000-e3220000 

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:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1720 (1.7 KB)  TX bytes:1720 (1.7 KB)

xenbr0    Link encap:Ethernet  HWaddr 00:1c:c0:77:09:9d  
          inet addr:192.168.1.200  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:c0ff:fe77:99d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3329 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2875 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2870029 (2.8 MB)  TX bytes:647394 (647.3 KB)

So sieht es direkt nach dem Booten aus. Das einzige, was fehlt, ist die xenbr0-IPv4-Adresse (und die Routing- / DNS-Daten, aber das können Sie in der Ausgabe von ifconfig nicht sehen):

eth0      Link encap:Ethernet  HWaddr 00:1c:c0:77:09:9d  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0 B)  TX bytes:0 (0 B)

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:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0 B)  TX bytes:0 (0 B)

xenbr0    Link encap:Ethernet  HWaddr 00:1c:c0:77:09:9d  
          inet6 addr: fe80::21c:c0ff:fe77:99d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0 B)  TX bytes:0 (0 B)
Darhuuk
quelle
Überprüfen Sie init.d und die anderen Startskripte auf die fehlenden Informationen zur Initialisierung der Netzwerkschnittstelle. Lassen Sie uns wissen, was Sie gefunden haben.
RGS
Bei der Eingabe /etc/init.d/networking restarthaben Sie die Konfiguration der Schnittstellen - Datei erhalten?
Ortang
Versuchen Sie es mit auto eth0und iface eth0 inet manual.
Eric Carvalho
Wenn Sie ifconfigdirekt nach dem Booten ausgeführt werden, ist eine Schnittstelle vorhanden?
Eric Carvalho
@ortang: Nein, das habe ich auch versucht, nichts passiert.
Darhuuk

Antworten:

16

Du hast:

address         192.168.1.200 # the IP address of the Ethernet port

und berichten, dass dies die Leitung ist, die nicht funktioniert. Ist Ihnen aus den Schnittstellen (5) bekannt, dass:

   Lines starting with `#' are ignored. Note  that  end-of-line  comments
   are NOT supported, comments must be on a line of their own.

Haben Sie die Zeilenende-Kommentare für die Frage hinzugefügt oder haben Sie sie tatsächlich in Ihrer /etc/network/intefacesDatei? Wenn ja, entfernen Sie sie.

Robie Basak
quelle
@ Darhuuk Robie ist richtig. Ich denke, das ist, was in Ihrer Schnittstellendatei falsch ist.
Eric Carvalho
Ah, schöner Fund. Diese Kommentare wurden von der Xen-Installation hinzugefügt und stehen tatsächlich am Ende der Zeile. Das Kommentieren auto eth0scheint mein Problem behoben zu haben, obwohl die Kommentare noch vorhanden sind.
Darhuuk
Inline-Kommentare werden anscheinend auch in / etc / network / interfaces nicht unterstützt. Vielen Dank, so konnte ich meine zweite Netzwerkschnittstelle in meinem VPS zum Laufen bringen.
Escher
3

Vielleicht haben Sie trotz des Entfernens des Netzwerk-Manager-Pakets immer noch die Datei /etc/NetworkManager/NetworkManager.confmit

[ifupdown]
managed=true

Dies führt ifupnicht automatisch dazu, dass Schnittstellen aufgerufen werden.

Wenn dies die Ursache des Problems ist, schlage ich entweder dpkg --purge network-manageroder Einstellung vor managed=false.

Ich habe einen Fehlerbericht dazu eingereicht: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1187693

jdthood
quelle
Ich werde das heute Abend überprüfen, wenn ich nach Hause komme. Die Schnittstellen sind jedoch nach dem Booten aktiv und nur nicht richtig konfiguriert. Manuelles Ausführen sudo restart networkingbehebt das Problem ebenfalls nicht.
Darhuuk
@jdthood, willst du nicht sagen, dass ifupdown möglicherweise bereits eingestellt managed=falseist und dass er es einstellen muss, truedamit es die Einstellungen in verwendet /etc/network/interfaces?
Alaa Ali
@Alaa, nein, ich habe nicht gemeint, was du vorschlägst. In Ubuntu wird ifuptatsächlich nach /etc/NetworkManager/NetworkManager.confautomatischen Schnittstellen gesucht und davon Abstand genommen, wenn NM so konfiguriert ist, dass diese Schnittstellen mit " [ifupdown] managed=true" konfiguriert werden .
jdthood
Ich habe es gerade mit beiden versucht, sowohl wahr als auch falsch (das war es, worauf es eingestellt war), keiner von beiden hat funktioniert. Dann habe ich ein dpkg --purge gemacht, was auch nicht geholfen hat, meine / etc / network / interfaces werden immer noch nicht berücksichtigt.
Darhuuk
3

Ich konnte mein Problem beheben, indem ich 2 Dateien änderte. Zunächst einmal, wie von Eric Carvalho vorgeschlagen, unkommentiert ich auto eth0in /etc/networking/interfaces. (Beachten Sie, dass dies ziemlich seltsam ist. Mehrere Online-Tutorials scheinen darauf hinzudeuten, dass dies für Xen nicht erforderlich sein sollte.)

Das allein hat den langsamen Start jedoch nicht behoben. Es scheint, dass es beim Start noch einige Sekunden dauerte, bis die Schnittstellen hochgefahren waren und Ubuntu in der Zwischenzeit bereits 60 Sekunden im Leerlauf gewartet hatte. Dies habe ich behoben, indem ich die Verzögerungszeit /etc/init/failsafe.confvon 60 Sekunden auf 1 Sekunde geändert habe. (Ich habe über Google von dieser Datei erfahren, keine Ahnung, um welche es sich genau handelt.)

Darhuuk
quelle