我已dnsmasq
配置在两个网络上提供静态 dhcp;一个在主接口上,另一个在连接到主接口的 vlan 上。接口配置如下所示:
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 172.16.0.1/24 brd 172.16.0.255 scope global noprefixroute enp2s0
valid_lft forever preferred_lft forever
13: enp2s0.200@enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 172.16.1.1/24 brd 172.16.1.255 scope global noprefixroute enp2s0.200
valid_lft forever preferred_lft forever
看起来dnsmasq.conf
像:
log-dhcp
log-facility=-
dhcp-range=172.16.0.1,static
dhcp-range=172.16.1.1,static
dhcp-leasefile=/dnsmasq/leases
dhcp-hostsdir=/dnsmasq/hosts
dhcp-authoritative
我在同一个网络上还有另一台主机,它有类似的接口配置:一个接口在本机 VLAN 上,一个接口在 VLAN 200 上。我为该主机设置了一对静态地址,如下
/dnsmasq/hosts/52:54:00:e1:e6:4b
所示:
52:54:00:e1:e6:4b,172.16.0.73,10m
52:54:00:e1:e6:4b,172.16.1.63,10m
当主机上的第一个接口启动时,我在
dnsmasq
日志中看到:
dnsmasq-dhcp[6]: 3876724415 available DHCP subnet: 172.16.0.1/255.255.255.0
dnsmasq-dhcp[6]: 3876724415 DHCPREQUEST(enp2s0) 172.16.0.73 52:54:00:e1:e6:4b
dnsmasq-dhcp[6]: 3876724415 tags: known, enp2s0
dnsmasq-dhcp[6]: 3876724415 DHCPACK(enp2s0) 172.16.0.73 52:54:00:e1:e6:4b
这正是我所期望的。但当第二界面出现,我看到:
dnsmasq-dhcp[6]: 2375610969 available DHCP subnet: 172.16.1.1/255.255.255.0
dnsmasq-dhcp[6]: 2375610969 DHCPREQUEST(enp2s0.200) 172.16.1.63 52:54:00:e1:e6:4b
dnsmasq-dhcp[6]: 2375610969 DHCPNAK(enp2s0.200) 172.16.1.63 52:54:00:e1:e6:4b wrong address
...
dnsmasq-dhcp[6]: 367379373 available DHCP subnet: 172.16.1.1/255.255.255.0
dnsmasq-dhcp[6]: 367379373 DHCPDISCOVER(enp2s0.200) 172.16.1.63 52:54:00:e1:e6:4b
dnsmasq-dhcp[6]: 367379373 tags: known, enp2s0.200
dnsmasq-dhcp[6]: 367379373 DHCPOFFER(enp2s0.200) 172.16.1.63 52:54:00:e1:e6:4b
...
dnsmasq-dhcp[6]: 367379373 DHCPREQUEST(enp2s0.200) 172.16.1.63 52:54:00:e1:e6:4b
dnsmasq-dhcp[6]: 367379373 tags: known, enp2s0.200
dnsmasq-dhcp[6]: 367379373 DHCPACK(enp2s0.200) 172.16.1.63 52:54:00:e1:e6:4b
初始DHCPDISCOVER
结果为DHCPNAK
,可能是因为给定的 MAC 地址已有租约。但该租约位于不同的网络上,因此这种行为似乎是错误的。
现在,当第一个接口更新时,它将经历相同的
DISCOVER/NAK/DISCOVER/OFFER/REQUEST/ACK
序列。
当同一个 MAC 地址出现在不同的网络上时,如何正确配置以便为其提供不同的租约?