DHCP 服务器未将静态 IP 地址分配给 systemd-networkd 桥接器某个接口上的主机

DHCP 服务器未将静态 IP 地址分配给 systemd-networkd 桥接器某个接口上的主机

我有一个盒子,我将其配置为有线/无线路由器,用于定义(有线)和(无线)接口之间的systemd-networkd桥接(br0) ,桥接上运行 DHCP 服务器。客户端的静态租约在桥接的网络配置文件中使用指令定义。但是我发现定义的静态 IP 并没有提供给连接在桥接接口上的客户端,而提供给了连接在 上的客户端。 上的客户端从 DHCP 池中获得 IP 地址,而我希望它按照下面的指令进行。enp3s0wlp1s0systemd-networkd[DHCPServerStaticLease]enp3s0wlp1s0enp3s010.0.0.14710.0.0.10[DHCPServerStaticLease]

以下是定义各种接口的配置:

/etc/systemd/network/10-br0.netdev

[NetDev]
Name=br0
Kind=bridge

/etc/systemd/network/15-br0.network

[Match]
Name=br0

[Network]
Address=10.0.0.1/24
DHCPServer=yes
DNS=10.0.0.1
Domains=lan

[DHCPServer]
PoolOffset=100
PoolSize=100

[DHCPServerStaticLease]
# Wired client - this IP does not get assigned (I've triple checked this MAC and it's correctly entered on client and server)
MACAddress=01:23:45:67:89:10
Address=10.0.0.10

[DHCPServerStaticLease]
# Wireless client - this IP gets assigned correctly
MACAddress=12:34:56:78:90:12
Address=10.0.0.20

/etc/systemd/network/20-lan.network

[Match]
Name=enp3s0

[Network]
Bridge=br0

无线接口由 提供hostapd/etc/hostapd/hostapd.conf其中包括将无线接口添加到网桥的命令:

interface=wlp1s0
bridge=br0

一切正常运转后,连接有线客户端时,我没有在日志中看到有关 IP 地址分配的任何信息(启用调试日志记录以systemd-networkd按照这个答案),只是表示请求已被确认,但这似乎对了解正在发生的事情没有什么帮助:

$ journalctl --unit systemd-networkd -r | grep "br0: DHCPv4"
Jan 01 21:36:59 router systemd-networkd[753]: br0: DHCPv4 server: ACK (0x6c2c7b71)
Jan 01 21:36:59 router systemd-networkd[753]: br0: DHCPv4 server: REQUEST (rebinding/renewing) (0x6c2c7b71)

是否有人看到我的设置出了什么问题,或者至少知道当 DHCP 服务器决定忽略有线客户端的静态分配时如何从 DHCP 服务器获取更多信息?

答案1

问题

这似乎是 Systemd <= 253 中的一个错误。当客户端不在 DHCP 客户端标识符中发送其 MAC 地址时,MAC 比较将不起作用。就您而言,无线客户端可能会发送 MAC,而有线客户端则不会。

此问题已在以下拉取请求中修复:https://github.com/systemd/systemd/pull/27313

客户端解决方法

作为一种解决方法,请确保 DHCP 客户端将客户端标识符作为 DHCP 请求的一部分发送。

systemd-networkd

对于 Systemd 的网络,默认使用 DUID。要将其更改为 MAC 地址,请添加以下网络配置:

[DHCPv4]
ClientIdentifier=mac

您可以在 中找到更多信息man 5 systemd.network

dh客户端

如果您使用 dhclient,则可以关闭 DUID 的使用:在 Debian Buster 上强制使用 MAC 地址作为 DHCP 客户端 ID

解决方案

升级到 Systemd >= 254 或应用补丁的反向移植。

相关内容