DHCPd 从 VirtualBox Guest 收到错误的 MAC 地址

DHCPd 从 VirtualBox Guest 收到错误的 MAC 地址

我有一个正在使用“仅主机适配器”的虚拟机。我禁用了 VirtualBox 的内置 DHCP 服务器。我已经安装isc-dhcp-server在我的虚拟机管理程序上。然后我添加了子网

subnet 10.10.54.0 netmask 255.255.255.0 {
  range 10.10.54.2 10.10.54.254;
  option routers 10.10.54.1;
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  default-lease-time 600;
  max-lease-time 7200;
}

并为虚拟机添加了固定地址。

host 10-10-54-11 {
  hardware ethernet 08:00:27:de:7e:cc;
  fixed-address 10.10.54.11;
}

我的虚拟机有 MAC 地址08:00:27:de:7e:cc。我正在尝试通过以下命令从我的虚拟机发送 DHCP 请求:nmap --script broadcast-dhcp-discover。但是,当 DHCPd 收到为 VM 提供 IP 地址的请求时,DHCPd 显示完全不同的 MAC 地址,并且不发送固定地址

root@hypervisor:/etc/dhcp# systemctl status isc-dhcp-server
● isc-dhcp-server.service - ISC DHCP IPv4 server
   Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2023-11-13 12:28:09 +05; 9min ago
     Docs: man:dhcpd(8)
 Main PID: 12274 (dhcpd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/isc-dhcp-server.service
           └─12274 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/dhcp/dhcpd.conf

Nov 13 12:28:09 hypervisor dhcpd[12274]:    you want, please write a subnet declaration
Nov 13 12:28:09 hypervisor dhcpd[12274]:    in your dhcpd.conf file for the network segment
Nov 13 12:28:09 hypervisor dhcpd[12274]:    to which interface eth0 is attached. **
Nov 13 12:28:09 hypervisor dhcpd[12274]: 
Nov 13 12:28:09 hypervisor dhcpd[12274]: Sending on   Socket/fallback/fallback-net
Nov 13 12:28:09 hypervisor dhcpd[12274]: Server starting service.
Nov 13 12:28:14 hypervisor dhcpd[12274]: DHCPDISCOVER from de:ad:c0:de:ca:fe via vboxnet4
Nov 13 12:28:15 hypervisor dhcpd[12274]: DHCPOFFER on 10.10.54.3 to de:ad:c0:de:ca:fe via vboxnet4
Nov 13 12:32:39 hypervisor dhcpd[12274]: DHCPDISCOVER from de:ad:c0:de:ca:fe via vboxnet4
Nov 13 12:32:40 hypervisor dhcpd[12274]: DHCPOFFER on 10.10.54.3 to de:ad:c0:de:ca:fe via vboxnet4

这是一个错误吗?如何解决这个问题?

答案1

来自评论:

只是尝试在我的 netplan 配置中设置 dhcp4: true ,然后重新启动虚拟机,我收到了固定地址。也许 nmap 会向 DHCP 服务器发送随机 MAC 地址。

就是这样,但它并不完全是随机的。从脚本的开头/usr/share/nmap/scripts/broadcast-dhcp-discover.nse

description = [[
Sends a DHCP request to the broadcast address (255.255.255.255) and reports
the results. By default, the script uses a static MAC address
(DE:AD:CO:DE:CA:FE) in order to prevent IP pool exhaustion.

[...]

DHCP 请求中的 MAC 地址与记录的地址完全相同:

DHCPDISCOVER from de:ad:c0:de:ca:fe via vboxnet4

我应该意识到 MAC 地址实际上拼写出“死代码咖啡馆”。这种有趣的十六进制模式在各种诊断/识别目的中很常见,例如经典 IBM 内存填充模式 0xDEADBEEF或者标识 Java 类文件的幻数 0xCAFEBABE

通过使用这样一个“有意义的”MAC 地址,读取 DHCP 服务器日志的人可能会猜测查询不是来自常规 DHCP 客户端(nmap在本例中为脚本)。

相关内容