Ubuntu 16.04 - Systemstart wartet mit der Meldung "Netzwerkschnittstellen erhöhen"

42

Ich habe ein Ubuntu 16.04-System mit zwei Schnittstellen - eth0 mit DHCP konfiguriert und eth1 mit statischen IP-Adressen konfiguriert.

Die Datei / etc / network / interfaces hat die folgende Konfiguration

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The Secondary network interface
auto eth1
iface eth1 inet static
address 10.10.1.10
netmask 255.255.255.0
dns-nameservers 74.82.42.42 4.2.2.2

## Virtual Interfaces for virtual hosts
auto eth1:11
iface eth1:11 inet static
address 10.10.1.11
netmask 255.255.255.0

auto eth1:12
iface eth1:12 inet static
address 10.10.1.12
netmask 255.255.255.0

auto eth1:13
iface eth1:13 inet static
address 10.10.1.13
netmask 255.255.255.0

Das Problem ist, wenn der DHCP-Server auf der eth0-Verbindung nicht verfügbar ist oder die eth0-Verbindung ausgefallen ist, das System 5 Minuten lang hängt und der Startvorgang erheblich verlangsamt wird.

violet@ubuntu-xenial:~$ systemd-analyze blame
      5min 241ms networking.service
          1.529s nmbd.service
          1.524s winbind.service

Ich habe versucht, die Zeit in der Datei /etc/systemd/system/network-online.target.wants/networking.service zu reduzieren, wodurch das System schneller gestartet wird, ohne auf den Netzwerkdienst zu warten, der jedoch die virtuellen Schnittstellen auf eth1 nicht lädt.

Gibt es eine sauberere Möglichkeit, das System ohne vollständige Netzwerkkonfiguration auf der eth0-Schnittstelle starten zu lassen und dennoch die gesamte statische Netzwerkkonfiguration auf eth1 zu laden?

jana
quelle
.. oder dazu: askubuntu.com/questions/203157/…
ElHeineken

Antworten:

51

Es scheint, als wäre jemand paranoid, wenn ein Client nicht rechtzeitig DHCP erhält.

Bearbeiten Sie diese Datei /etc/dhcp/dhclient.confund setzen Sie sie timeoutauf einen angemessenen Wert, wie z

timeout 15

Der Standardwert von 300 Sekunden ist viel zu hoch. Der empfohlene Wiederbeschaffungswert von 15 wurde getestet und funktioniert einwandfrei.

boutch55555
quelle
3
Danke. Ich war gerade mit DNS / DHCP beschäftigt und die 5 Minuten Wartezeit haben mich umgebracht.
Ashley Hughes
1
Ubuntu hat eine Reihe von ungeraden Standardkonfigurationen. Es war interessant ...
William T Froggard
Wow, das wird in weiteren Konfigurationen wirklich nützlich sein.
David Tabernero M.
1
Dies funktioniert unter Ubuntu 18 nicht, diese Antwort jedoch.
Xinthose
Nach all den Jahren gilt es immer noch für mich :)
Wajih
27

Also in deinem /etc/network/interfaces, ändere das:

# The primary network interface
auto eth0
iface eth0 inet dhcp

dazu:

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

Dies startet die Schnittstelle, eth0wenn der Kernel ein Hotplug-Ereignis von der Schnittstelle erkennt (dh wenn Sie ein Kabel anschließen), anstatt es beim Booten zu starten.

Jonathan Walter
quelle
1
Dieser Ansatz funktioniert gut auf physischer Hardware, schlägt jedoch in virtualisierten Umgebungen (bewährte VMware und VirtualBox) fehl. Es sieht so aus, als ob der virtualisierte Kernel keine richtigen Ereignisse generiert.
Dtoubelis
Dieser Ansatz behebt auch meine Probleme nach der Installation eines neuen 10G-Netzwerkadapters in einer Box, in der zuvor nur 1G integriert war. Ubuntu konnte die Karte sehen und die Treiber laden, aber der Start blieb stehen und wartete auf Raise Network Interfaces. Das Anpassen des Gerätenamens von eth0 behebt es dementsprechend.
Joseph Jaramillo
2

Wie in angegeben , können Sie den Timeout-Wert für das Erhöhen der Netzwerkschnittstelle ändern (sofern ausgeführt systemd):

Öffnen Sie ein Terminalfenster und geben Sie den folgenden Befehl ein:

sudo nano /etc/systemd/system/network-online.target.wants/networking.service

Ändern Sie dann die Zeile TimeoutStartSec=5minin einen von Ihnen gewählten Wert. Speichern Sie die Datei, indem Sie Ctrl+ ound dann Ctrl+ drücken x.

Starten Sie zum Schluss den Daemon neu:

sudo systemctl daemon-reload
Mike
quelle
4
Es ist im Allgemeinen eine schlechte Idee, ein GUI-Programm mit sudo zu starten ... Ich habe Ihre Antwort geändert, um Tools zu verwenden, die sich etwas besser verhalten.
Charles Green
Das ist die richtige Antwort für mich. Mein Computer ist beim Booten nicht immer mit dem Netzwerk verbunden. Ich möchte nicht 5 Minuten warten, bis Ubuntu das herausgefunden hat.
Yitz
2
Ich würde gerne wissen, wer der Idiot ist, dass ein Timeout von 5 Minuten eine "gute Idee" war.
Clayton Dukes