systemd-networkdは静的IPを設定しません

systemd-networkdは静的IPを設定しません

静的IPアドレスに切り替えようとしましたが、systemdは引き続きDHCPを使用します。これは私の/etc/systemd/network/eth0.networkファイルです:

[Match]
Name=eth0

[Network]
Address=192.168.5.100/24
DHCP=no

ファイルに誤った設定を入れると、systemctl状態に警告メッセージが表示されるため、ファイルを読み込んでいることがわかります。

結果は次のとおりですsystemctl status systemd-networkd

[[0;1;32m●[[0m systemd-networkd.service - Network Service
     Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
     Active: [[0;1;32mactive (running)[[0m since Wed 2020-12-16 17:25:20 UTC; 32s ago
TriggeredBy: [[0;1;32m●[[0m systemd-networkd.socket
       Docs: man:systemd-networkd.service(8)
   Main PID: 137 (systemd-network)
     Status: "Processing requests..."
      Tasks: 1 (limit: 1141)
     Memory: 1.5M
     CGroup: /system.slice/systemd-networkd.service
             └─137 /lib/systemd/systemd-networkd

Dec 16 17:25:19 beaglebone-yocto systemd[1]: Starting Network Service...
Dec 16 17:25:20 beaglebone-yocto systemd-networkd[137]: Enumeration completed
Dec 16 17:25:20 beaglebone-yocto systemd[1]: Started Network Service.
Dec 16 17:25:21 beaglebone-yocto systemd-networkd[137]: eth0: IPv6 successfully enabled
Dec 16 17:25:21 beaglebone-yocto systemd-networkd[137]: eth0: Link UP
Dec 16 17:25:24 beaglebone-yocto systemd-networkd[137]: eth0: Gained carrier
Dec 16 17:25:25 beaglebone-yocto systemd-networkd[137]: eth0: Gained IPv6LL
Dec 16 17:25:28 beaglebone-yocto systemd-networkd[137]: eth0: DHCPv4 address 10.1.1.61/16 via 10.1.0.1

最後に、結果は次のようになりますip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether 04:a3:16:bb:c6:0a brd ff:ff:ff:ff:ff:ff
    inet 10.1.1.61/16 brd 10.1.255.255 scope global dynamic eth0
       valid_lft 86322sec preferred_lft 86322sec
    inet6 fe80::6a3:16ff:febb:c60a/64 scope link
       valid_lft forever preferred_lft forever
3: sit0@NONE: <NOARP> mtu 1480 qdisc noop qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0

私は何が間違っているのかわかりません。ファイルを読み込んでエラーは発生しませんが、まだDHCPを使用しています。

ベストアンサー1

静的IPアドレスに切り替えようとしましたが、systemdは引き続きDHCPを使用します。

はい!まさに。 /lib/systemd/network には、すべての有線ネットワークに対して DHCP を設定するファイルがあります。良いアイデア。ありがとうございます!

これは、ファイルの前に数字を付けなかったためです。引用するman systemd.network

各ファイル名の前に数字を付けることをお勧めします(例10-eth0.network:)。そうしないと、systemd-network-generator.service(8)によって生成されたデフォルト.networkファイルがユーザー設定ファイルより優先されます。

したがって、システムのデフォルト値はカスタム構成よりも優先されます。これを防ぐには、ファイル名をeth0.network次のように10-eth0.network変更します。

おすすめ記事