systemd-networkd-wait-online.service が失敗し続ける

systemd-networkd-wait-online.service が失敗し続ける

systemd を使用して Linux 上でネットワークを動作させようとすると、奇妙な問題が発生します。

私のネットワークは、eth0DHCP サーバーを備えた企業ネットワークに接続されています。

# more /etc/systemd/network/main.network

#Main connection to the outside world
[Match]
Name=eth0
[Network]
DHCP=yes 
IPForward=yes
# networkctl status eth0

2: eth0
           Link File: n/a
        Network File: /etc/systemd/network/main.network
                Type: ether
               State: routable (configured)
          HW Address: 00:03:2d:32:85:3a (IBASE Technology, Inc.)
                 MTU: 1500
             Address: 10.0.7.134
                      fe80::203:2dff:fe32:853a
             Gateway: 10.0.7.1
                 DNS: 10.0.7.10

ただし、wait-online サービスは失敗します。

# /lib/systemd/systemd-networkd-wait-online --interface eth0 --timeout=10

ignoring: sit0
Event loop failed: Connection timed out

システムは有効な IP アドレスを取得していたのでeth0、なぜオンラインにならないのかわかりません。

システムにはeth1、接続されていない別のインターフェースがあります。

答え1

systemd-networkd-wait-onlineフラグを指定したにもかかわらず、他のインターフェイスが起動するのを待機している可能性があります--interface。 最初に指定したフラグのフォーマットは ですが、man ページではそのフラグのフォーマットは またはの--interface eth0いずれかである必要があると示されているため、これが問題である可能性があります。-i eth0--interface=eth0

マニュアルページによると、この問題を解決するもう 1 つの方法は、 でコマンドを実行し--any、インターフェースがオンラインになるまで待機することです。

つまり
systemd-networkd-wait-online --any


回答この質問systemd-networkd、そして私が見つけた設定に関する情報ここまた、次のコマンドを実行して、この待機を実行する systemd サービスを編集する方法も示します。

sudo systemctl edit systemd-networkd-wait-online.service

次に次のように入力します:

[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any

関連情報