我刚刚从 Ubuntu 18.04 升级到 20.04。我在办公室局域网上有几台计算机,并且一直使用嵌入在 DD-WRT 路由器中的 dnsmasq 充当我的 DHCP 服务器和 DNS 服务器。我需要一些主机具有相同的 IP 地址,并已按如下方式配置 DHCP:
local=/lan/
expand-hosts
dhcp-authoritative
dhcp-host=20:cf:30:6c:07:0e,micah,192.168.1.10,infinite
dhcp-host=FC:AA:14:E3:2F:48,jonah,192.168.1.11,infinite
dhcp-host=EC:B1:D7:F8:79:97,hp1,192.168.1.20,infinite
dhcp-host=34:64:A9:64:E9:73,hp2,192.168.1.21,infinite
dhcp-host=00:A0:D1:EB:4D:05,s16,192.168.1.30,infinite
dhcp-host=00:A0:D1:EB:4F:15,db1,192.168.1.31,infinite
#Example zeroconf
txt-record=_http._tcp.lan,paper=letter
# TFTP Server (must be set up on named server)
# Network booting from micah
# dhcp-boot=pxelinux.0
# dhcp-boot=pxelinux.0,micah.lan,192.168.1.10
自升级以来,主机“micah”原本应获得 IP 地址 192.168.1.10,现在获得的是 192.168.1.188。我在重新连接网络时执行了 dhcpdump,结果如下:
TIME: 2020-10-01 16:06:32.582
IP: 0.0.0.0 (20:cf:30:6c:7:e) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 0
XID: 36f77027
SECS: 1
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 20:cf:30:6c:07:0e:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 3 (DHCPREQUEST)
OPTION: 61 ( 6) Client-identifier 00:6d:69:63:61:68
OPTION: 55 ( 17) Parameter Request List 1 (Subnet mask)
2 (Time offset)
6 (DNS server)
12 (Host name)
15 (Domainname)
26 (Interface MTU)
28 (Broadcast address)
121 (Classless Static Route)
3 (Routers)
33 (Static route)
40 (NIS domain)
41 (NIS servers)
42 (NTP servers)
119 (Domain Search)
249 (MSFT - Classless route)
252 (MSFT - WinSock Proxy Auto Detect)
17 (Root path)
OPTION: 57 ( 2) Maximum DHCP message size 576
OPTION: 50 ( 4) Request IP address 192.168.1.188
OPTION: 12 ( 5) Host name micah
---------------------------------------------------------------------------
TIME: 2020-10-01 16:06:32.582
IP: 192.168.1.1 (10:c3:7b:54:10:78) > 192.168.1.188 (20:cf:30:6c:7:e)
OP: 2 (BOOTPREPLY)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 0
XID: 36f77027
SECS: 1
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 192.168.1.188
SIADDR: 192.168.1.1
GIADDR: 0.0.0.0
CHADDR: 20:cf:30:6c:07:0e:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 5 (DHCPACK)
OPTION: 54 ( 4) Server identifier 192.168.1.1
OPTION: 51 ( 4) IP address leasetime -1 ()
OPTION: 1 ( 4) Subnet mask 255.255.255.0
OPTION: 28 ( 4) Broadcast address 192.168.1.255
OPTION: 6 ( 4) DNS server 192.168.1.1
OPTION: 15 ( 3) Domainname lan
OPTION: 12 ( 5) Host name micah
OPTION: 3 ( 4) Routers 192.168.1.1
我不是网络专家,希望得到一些帮助来弄清楚为什么不遵守 micah 的 dhcp-host 指令。
答案1
好的。重新启动后问题就解决了。我注意到 DD-WRT 网络界面的 Status/LAN 部分显示已分配 192.168.1.10 号码,尽管没有分配主机名。点击该 IP 租约记录上的“删除”没有效果。因此,我放弃了,并重新启动了路由器。
我认为发生了以下事情:
升级时,我将 micah 主机启动到 ubuntu live USB 拇指驱动器中作为安装的一部分。
Dnsmasq 注意到了我的以太网设备的 MAC 地址,并按照我的 dhcp-host 设置的指示,将 192.168.1.10 分配给主机。
自然,主机名“micah”未在 ubuntu live 版本中设置,因此未设置。
但租赁期限是无限的。
当我的实际主机向 Dsnmasq 的 DHCP 服务器请求 IP 时,它认为该 IP 已被保留,因此它从动态范围中发出一个 IP。
因此,许多服务(例如 ssh)都指向一个死主机并且挂起。