
Tengo un sistema Ubuntu 16.04 con dos interfaces: eth0 configurado con DHCP y eth1 configurado con direcciones IP estáticas.
El archivo /etc/network/interfaces tiene la siguiente configuración
# 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
El problema es que, cuando el servidor DHCP no está disponible en el enlace eth0 o si el enlace eth0 no funciona, el sistema se bloquea durante 5 minutos, lo que ralentiza significativamente el proceso de arranque.
violet@ubuntu-xenial:~$ systemd-analyze blame
5min 241ms networking.service
1.529s nmbd.service
1.524s winbind.service
Intenté reducir el tiempo en el archivo /etc/systemd/system/network-online.target.wants/networking.service lo que hace que el sistema arranque más rápido sin esperar el servicio de red, sin embargo, eso no carga las interfaces virtuales en eth1.
¿Existe una forma más limpia de permitir que el sistema arranque sin una configuración de red completa en la interfaz eth0 y aún cargar toda la configuración de red estática en eth1?
Respuesta1
Parece que alguien estaba paranoico porque un cliente no recibía su DHCP a tiempo.
Edite este archivo /etc/dhcp/dhclient.conf
y configúrelo timeout
en un valor razonable, como
timeout 15
El valor predeterminado de 300 segundos es demasiado alto. El valor de reemplazo sugerido de 15 fue probado y funciona bien.
Respuesta2
Entonces en tu /etc/network/interfaces
, cambia esto:
# The primary network interface
auto eth0
iface eth0 inet dhcp
a esto:
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Esto iniciará la interfaz eth0
cuando el kernel detecte un evento de conexión en caliente desde la interfaz (es decir, cuando conecte un cable), en lugar de iniciarla en el arranque.
Respuesta3
Como se hace referencia enpuede cambiar el valor del tiempo de espera para activar la interfaz de red (si está ejecutando systemd
):
Abra una ventana de terminal e ingrese el comando:
sudo nano /etc/systemd/system/network-online.target.wants/networking.service
Luego cambie la línea TimeoutStartSec=5min
a un valor que usted elija. Guarde el archivo presionando Ctrl+ oy luego Ctrl+ x.
Finalmente, reinicie el demonio:
sudo systemctl daemon-reload