web-dev-qa-db-ja.com

systemd-networkdデーモンがDHCPクライアントを起動しません

DHCPを有効にした適切なネットワークファイルがあります。

$ cat /etc/systemd/network/20-dhcp.network 
[Match]
Name=enp3*

[Network]
DHCP=ipv4

[DHCP]
UseDomains=true

適切な/etc/resolv.confもあります。私はsystemd-resolvdデーモンを使用していません(それを使用しようとしたが、とにかく役に立たなかったため、それは何の関係もないかもしれません)。 DHCPクライアントを手動で実行して動作させる必要がある理由はありますか?

2
Salil

2つのネットワークファイルがあることがわかりました。 Arch Linuxのsystemd-networkdのドキュメント( https://wiki.archlinux.org/index.php/systemd-networkd#Wireless_adapter )に従い、1つのネットワークファイルを作成しました。

/etc/systemd/network/25-wireless.network
[Match]
Name=wlp2s0

[Network]
DHCP=ipv4

そして、それは機能しています。

2
Salil

人々が気付いていない場合のために-systemd-networkdには独自の組み込みDHCPクライアント実装が含まれているため、外部DHCPクライアントは他で設定しない限り起動されません。

systemd-networkd manページで説明されているように、構成はいくつかの構成ファイルによって制御されます。 Ubuntu18.04では、ネットワーク構成(/{lib,etc,run}/netplan/*.yaml)は netplan によって制御されるようになり、systemd-networkd(/{lib,etc,run}/systemd/network/)の構成ファイルが生成されます。

4
Pierz

man systemd.networkを読むと、.network/etc/systemd/networkファイルはsystemd-networkdによって制御されているように聞こえます。ファイルが読み取られていない場合は、systemdのこの部分を使用していない可能性があります。

たとえば、Ubuntu 16.04デスクトップでは、systemd-networkdが使用されていないことがわかります。

 systemctl status systemd-networkd

●systemd-networkd.service-ネットワークサービスのロード:ロード済み(/lib/systemd/system/systemd-networkd.service;無効、ベンダープリセット:有効)アクティブ:非アクティブ(デッド)ドキュメント:man:systemd-networkd.service(8 )

代わりに、NetworkManagerサービスが実行されています。そのため、その場合、NetworkManagerを介してDHCPクライアントを設定するか、NetworkManagerを停止して無効にし、systemd-networkdを起動して有効にする必要があります。

0
Mark Stosberg