Dnsmasq 不遵守 dhcp-host 指令

Dnsmasq 不遵守 dhcp-host 指令

我刚刚从 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 租约记录上的“删除”没有效果。因此,我放弃了,并重新启动了路由器。

我认为发生了以下事情:

  1. 升级时,我将 micah 主机启动到 ubuntu live USB 拇指驱动器中作为安装的一部分。

  2. Dnsmasq 注意到了我的以太网设备的 MAC 地址,并按照我的 dhcp-host 设置的指示,将 192.168.1.10 分配给主机。

  3. 自然,主机名“micah”未在 ubuntu live 版本中设置,因此未设置。

  4. 但租赁期限是无限的。

  5. 当我的实际主机向 Dsnmasq 的 DHCP 服务器请求 IP 时,它认为该 IP 已被保留,因此它从动态范围中发出一个 IP。

  6. 因此,许多服务(例如 ssh)都指向一个死主机并且挂起。

相关内容