我有一台 DHCP 服务器,我专门将 IP 范围设置为 10.53.70.100 -- 10.53.70.200 之间,但有时我会得到超出此范围的 IP。例如,我创建的最后一个服务器的 IP 为 10.53.70.245,所以我只想知道为什么我的 IP 范围设置不起作用。
这是来自 DHCP 服务器的日志:
Mar 20 10:32:46 dhcp dnsmasq-dhcp[7657]: 1927259932 available DHCP range: 10.53.70.100 -- 10.53.70.200
Mar 20 10:32:46 dhcp dnsmasq-dhcp[7657]: 1927259932 client provides name: dnstest
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 DHCPDISCOVER(ens192) 10.53.70.245 00:50:56:8f:d4:6f
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 tags: ens192
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 DHCPOFFER(ens192) 10.53.70.177 00:50:56:8f:d4:6f
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 requested options: 1:netmask, 28:broadcast, 2:time-offset, 121:classless-static-route,
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 requested options: 15:domain-name, 6:dns-server, 12:hostname,
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 requested options: 40:nis-domain, 41:nis-server, 42:ntp-server,
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 requested options: 26:mtu, 119:domain-search, 3:router, 121:classless-static-route,
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 requested options: 249, 33:static-route, 252, 42:ntp-server
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 next server: 10.53.70.5
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 sent size: 1 option: 53 message-type 2
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 sent size: 4 option: 54 server-identifier 10.53.70.5
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 sent size: 4 option: 51 lease-time 12h
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 sent size: 4 option: 58 T1 6h
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 sent size: 4 option: 59 T2 10h30m
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 sent size: 4 option: 1 netmask 255.255.255.0
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 sent size: 4 option: 28 broadcast 10.53.70.255
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 sent size: 4 option: 6 dns-server 10.53.70.5
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 sent size: 9 option: 15 domain-name example.io
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 sent size: 4 option: 3 router 10.53.70.1
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 available DHCP range: 10.53.70.100 -- 10.53.70.200
Mar 20 10:32:49 dhcp dnsmasq-dhcp[7657]: 1927259932 client provides name: dnstest
Mar 20 10:32:52 dhcp dnsmasq-dhcp[7657]: 2099714365 available DHCP range: 10.53.70.100 -- 10.53.70.200
Mar 20 10:32:52 dhcp dnsmasq-dhcp[7657]: 2099714365 client provides name: dnstest
正如你所见,有这样一行:
DHCPOFFER(ens192) 10.53.70.177 00:50:56:8f:d4:6f
这将是正确的 IP,因为它在范围内。但是我看到了这样一行:
DHCPDISCOVER(ens192) 10.53.70.245 00:50:56:8f:d4:6f
因此,服务器最终采用以 .245 结尾的这个 IP,所以我的问题是为什么它采用超出允许范围的 IP?
谢谢。
答案1
DHCPDISCOVER
可以包含重新使用最后使用的 IP 的请求,并且似乎该请求正在被授予。
根据维基百科DHCP文章:
DHCP 客户端也可能请求其最后已知的 IP 地址。如果客户端仍连接到同一网络,服务器可能会批准该请求。否则,这取决于服务器是否设置为权威服务器。
你可能要考虑的一件事(基于以下问题的答案)这个问题) 正在删除该客户端的 DHCP 租约,并且可能删除您的 DHCP 服务器的租约。
您没有显示任何 DHCPREQUEST/DHCPACK 事件,所以实际上可能是 DHCP 失败了,但由于底层网络(但不是客户端范围)保持不变,客户端重新使用其最后的租约并能够保持连接。
至于配置dnsmasq
,手册页建议这样的事情可以工作:
dhcp-range=10.53.70.100,10.53.70.200
dhcp-option=3,10.53.70.1
dhcp-lease-max=7200
dhcp-authoritative
您可能还需要删除 DHCP 客户端上的租约文件。