systemd-networkd DHCPServerは、クライアントが管理されていないスイッチを介さずに直接接続するときに機能します。

systemd-networkd DHCPServerは、クライアントが管理されていないスイッチを介さずに直接接続するときに機能します。

カーネルバージョン5.15を実行するLinuxボックスがあります。 systemdバージョン250.5+をインストールし、物理イーサネットポートでDHCPサーバーを実行するように構成しました。今日の最新バージョンを実行するRaspberry Piがあります。 Raspberry Piをイーサネットポートに直接接続すると、PiはIPアドレスを取得し、両方のデバイスが正常に通信できます。管理されていないスイッチを2つの間に直接配置すると、DHCPは機能せず、Raspberry PiはIPアドレスを取得できません。私のホームルーターと他のコンピュータの間でスイッチを使うことができるので、スイッチが動作することを知っています。スイッチなしで動作し、スイッチは他のデバイスとも動作しますが、スイッチを使用するとsystemd networkdのDHCPサーバーが失敗するのはなぜですか?

systemd-networkdのDHCPサーバー機能に関する文書には明らかに欠けているものはありません。 https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html

これは、DHCP サーバーで使用する systemd ネットワーク構成ファイルです。

cat /etc/systemd/network/eth0.network
[Match]
Name=eth0
Type=ether

[DHCPV4]
DUIDType=link-layer
ClientIdentifier=mac

[Network]
Address=172.1.16.1/24
DHCPServer=yes
#IPMasquerade=ipv4

[DHCPServer]
PoolOffset=1
PoolSize=4

ここに画像の説明を入力してください。

答え1

リンク速度を100 Mb / sに設定する必要があることがわかりました。次のコマンドを実行してクライアントを切断してクライアントをスイッチに再接続すると、DHCPはスイッチを介して機能します。

ethtool -s eth0 speed 100 duplex full autoneg off

関連情報