web-dev-qa-db-ja.com

Ubuntu 16.04-「ネットワークインターフェイスを上げる」と言ってシステムブートが待機する

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ですべての静的ネットワーク設定をロードするよりクリーンな方法はありますか?

40
jana

クライアントがDHCPを時間内に取得できないことについて、誰かが妄想的だったようです。

このファイル/etc/dhcp/dhclient.confを編集し、timeoutを次のような妥当な値に設定します

timeout 15

デフォルト値の300秒は大きすぎます。推奨される置換値15がテストされ、正常に機能します。

47
boutch55555

/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が起動します。

26
Jonathan Walter

参照 ネットワークインターフェイスを上げるためのタイムアウト値を変更できます(systemdを実行している場合):

ターミナルウィンドウを開き、次のコマンドを入力します。

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

次に、行TimeoutStartSec=5minを選択した値に変更します。を押してファイルを保存します Ctrl+o その後 Ctrl+x

最後に、デーモンを再起動します。

Sudo systemctl daemon-reload
2
Mike