Ubuntu 16.04 - загрузка системы ждёт сообщения «Поднять сетевые интерфейсы»

Ubuntu 16.04 - загрузка системы ждёт сообщения «Поднять сетевые интерфейсы»

У меня есть система Ubuntu 16.04 с двумя интерфейсами — eth0, настроенный с DHCP, и eth1, настроенный со статическими IP-адресами.

Файл /etc/network/interfaces имеет следующую конфигурацию

# 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

Проблема в том, что когда DHCP-сервер недоступен на канале eth0 или канал eth0 не работает, система зависает на 5 минут, что значительно замедляет процесс загрузки.

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

Я попробовал сократить время в файле /etc/systemd/system/network-online.target.wants/networking.service, что ускоряет загрузку системы без ожидания сетевой службы, однако это не позволяет загрузить виртуальные интерфейсы на eth1.

Есть ли более чистый способ позволить системе загрузиться без полной конфигурации сети на интерфейсе eth0 и по-прежнему загружать всю статическую конфигурацию сети на интерфейсе eth1?

решение1

Кажется, кто-то был параноидально настроен по поводу того, что клиент не получит DHCP вовремя.

Отредактируйте этот файл /etc/dhcp/dhclient.confи установите timeoutразумное значение, например

timeout 15

Значение по умолчанию 300 секунд слишком велико. Предлагаемое значение замены 15 было протестировано и работает нормально.

решение2

Итак, в вашем /etc/network/interfaces, измените это:

# The primary network interface
auto eth0
iface eth0 inet dhcp

к этому:

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

Это запустит интерфейс eth0, когда ядро ​​обнаружит событие горячего подключения от интерфейса (т. е. когда вы подключаете кабель), вместо того, чтобы запускать его при загрузке.

решение3

Как указано вВы можете изменить значение тайм-аута для поднятия сетевого интерфейса (если запущен systemd):

Откройте окно терминала и введите команду:

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

Затем измените строку TimeoutStartSec=5minна значение, которое вы выберете. Сохраните файл, нажав Ctrl+ o, а затем Ctrl+ x.

Наконец, перезапустите демон:

sudo systemctl daemon-reload

Связанный контент