У меня есть система 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?
Кажется, что кто-то был параноиком о клиенте, не добирающемся, это - DHCP вовремя.
Редактирование этот файл /etc/dhcp/dhclient.conf
и набор timeout
к рыночной стоимости, как
timeout 15
значение по умолчанию 300 секунд слишком высоко. Предложенное заменяющее значение 15 было протестировано и хорошо работает.
Таким образом в Вашем /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
, когда ядро обнаружит событие замены в горячем режиме от интерфейса (т.е. когда Вы включаете кабель), вместо того, чтобы запустить его при начальной загрузке.
, Как ссылается в можно изменить значение тайм-аута для повышения сетевого интерфейса (при выполнении systemd
):
Открывают окно терминала и вводят команду:
sudo nano /etc/systemd/system/network-online.target.wants/networking.service
Затем изменяют строку TimeoutStartSec=5min
на значение, которое Вы выбираете. Сохраните файл путем нажатия Ctrl + o и затем Ctrl + x .
Наконец, перезапустите демона:
sudo systemctl daemon-reload