J'ai un système Ubuntu 16.04 avec deux interfaces - eth0 configuré avec DHCP et eth1 configuré avec des adresses IP statiques.
Le fichier/etc/network/interfaces a la configuration suivante
# 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
Le problème est que, lorsque le serveur DHCP n'est pas disponible sur le lien eth0 ou si le lien eth0 est en panne, le système se bloque pendant 5 minutes, ce qui ralentit considérablement le processus de démarrage.
Violet@ubuntu-xenial:~$ systemd-analyze blame
5min 241ms networking.service
1.529s nmbd.service
1.524s winbind.service
J'ai essayé de réduire le temps dans /etc/systemd/system/network-online.target.wants/networking.service qui accélère le démarrage du système sans attendre le service réseau, mais ne parvient pas à charger les interfaces virtuelles sur eth1.
Existe-t-il un moyen plus simple de laisser le système démarrer sans configuration réseau complète sur l'interface eth0 tout en chargeant la configuration réseau statique sur eth1?
Il semble que quelqu'un était paranoïaque à propos d'un client qui ne reçoit pas son DHCP à temps.
Editez ce fichier /etc/dhcp/dhclient.conf
et définissez timeout
sur une valeur raisonnable, comme
timeout 15
La valeur par défaut de 300 secondes est beaucoup trop élevée. La valeur de remplacement suggérée de 15 a été testée et fonctionne bien.
Donc, dans votre /etc/network/interfaces
, changez ceci:
# The primary network interface
auto eth0
iface eth0 inet dhcp
pour ça:
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Ceci démarrera l'interface eth0
lorsque le noyau détectera un événement hotplug à partir de l'interface (c'est-à-dire lorsque vous branchez un câble), au lieu de le démarrer au démarrage.
Comme indiqué dans vous pouvez modifier la valeur du délai d’expiration pour la remontée de l’interface réseau (si vous exécutez systemd
):
Ouvrez une fenêtre de terminal et entrez la commande suivante:
Sudo nano /etc/systemd/system/network-online.target.wants/networking.service
Puis changez la ligne TimeoutStartSec=5min
en une valeur que vous choisissez. Enregistrez le fichier en appuyant sur Ctrl+o et alors Ctrl+x.
Enfin, redémarrez le démon:
Sudo systemctl daemon-reload