systemdネットワークは起動時にネットワーク構成ファイルを無視します。

systemdネットワークは起動時にネットワーク構成ファイルを無視します。

systemdを使用してYoctoにコンパイルされた組み込みLinuxシステムがあります。にネットワーク設定ファイルがあります/etc/systemd/network/20-wired.network。ファイルの内容は次のとおりです。

[Match]
Name=eth0

[Network]
Address=192.168.5.40/24
Gateway=192.168.5.1
DNS=192.168.5.1

ただし、コンピュータを再起動すると、静的IPアドレスが割り当てられるのではなく、DHCPを使用してeth0インターフェイスが正常に設定されました。このip aコマンドは次のようになります。

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether f8:dc:7a:3c:27:82 brd ff:ff:ff:ff:ff:ff
    inet 10.1.1.223/16 brd 10.1.255.255 scope global dynamic noprefixroute eth0
       valid_lft 85898sec preferred_lft 85898sec
    inet6 fe80::43ec:fd39:e1c0:3c05/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

ただし、起動後約5秒待ってから実行すると、systemctl restart systemd-networkdシステムは通常次のように正しく設定されます。

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether f8:dc:7a:3c:27:82 brd ff:ff:ff:ff:ff:ff
    inet 192.168.5.40/24 brd 192.168.5.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::43ec:fd39:e1c0:3c05/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

最後に、タイムリーにネットワークサービスを再起動すると、次のような結果(予想される固定アドレスと不要なDHCPアドレスの両方)が得られるようです。

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether f8:dc:7a:3c:27:82 brd ff:ff:ff:ff:ff:ff
    inet 192.168.5.40/24 brd 192.168.5.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.1.1.223/16 brd 10.1.255.255 scope global dynamic noprefixroute eth0
       valid_lft 86246sec preferred_lft 86246sec
    inet6 fe80::43ec:fd39:e1c0:3c05/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

ここで何が起こっているのか、またはデバッグする方法を知っている人はいますか?私の設定に間違いなく間違っていますか?

systemctl status systemd-networkd起動直後、次のものが表示されます(特にnetwork-online.target以降)。

* systemd-networkd.service - Network Service
     Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
     Active: activating (start) since Tue 2021-07-20 12:58:52 UTC; 65ms ago
TriggeredBy: * systemd-networkd.socket
       Docs: man:systemd-networkd.service(8)
   Main PID: 282 ((networkd))
      Tasks: 1 (limit: 3576)
     Memory: 416.0K
     CGroup: /system.slice/systemd-networkd.service
             `-282 (networkd)

数秒後、次のように表示されます。

* systemd-networkd.service - Network Service
     Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-07-20 12:58:52 UTC; 3min 20s ago
TriggeredBy: * systemd-networkd.socket
       Docs: man:systemd-networkd.service(8)
   Main PID: 282 (systemd-network)
     Status: "Processing requests..."
      Tasks: 1 (limit: 3576)
     Memory: 2.0M
     CGroup: /system.slice/systemd-networkd.service
             `-282 /lib/systemd/systemd-networkd

したがって、network-online.target サービスが実行されている場合、サービスはまだ「アクティブ」であるように見えます。しかし、それが何を意味するのか、問題があるのか​​はよくわかりません。

ベストアンサー1

systemd-networkdとNetworkManagerの両方が実行されていることを確認しました。それは正常ではありませんか?一般的に、次のいずれかをしたいですか? systemctl disable /lib/systemd/system/NetworkManager.service && reboot問題が解決したようです。

編集:これは答えではないか、少なくとも完全な答えではありません。 NetworkManagerが無効になっても、この現象が再発生します。

おすすめ記事