DHCPで構成されたeth0と静的IPアドレスで構成されたeth1の2つのインターフェースを持つUbuntu 16.04システムがあります。
/ 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
問題は、eth0リンクでDHCPサーバーが利用できない場合、または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
これにより、起動時に起動するのではなく、カーネルがインターフェイスからhotplugイベントを検出したとき(つまり、ケーブルを差し込んだとき)にインターフェイスeth0
が起動します。
参照 ネットワークインターフェイスを上げるためのタイムアウト値を変更できます(systemd
を実行している場合):
ターミナルウィンドウを開き、次のコマンドを入力します。
Sudo nano /etc/systemd/system/network-online.target.wants/networking.service
次に、行TimeoutStartSec=5min
を選択した値に変更します。を押してファイルを保存します Ctrl+o その後 Ctrl+x。
最後に、デーモンを再起動します。
Sudo systemctl daemon-reload