我有一台运行内核版本 5.15 的 Linux 机器。我安装了 systemd 版本 250.5+,并将其配置为在物理以太网端口上运行 DHCP 服务器。我有一个树莓派,运行今天的最新版本。如果我将树莓派直接连接到以太网端口,那么树莓派就会获得一个 IP 地址,并且两个设备可以正常通信。如果我将非托管交换机直接放在 2 之间,则 DHCP 不起作用,并且树莓派无法获取 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
结果我必须将链接速度设置为 100Mb/s。如果我运行以下命令,然后断开客户端连接,然后将客户端重新连接到交换机,则 DHCP 通过交换机工作: