是否有任何 Linux DHCP 服务器可以监听 Cisco 所称的“未编号”接口,或其他人可能称之为“NBMA”(非广播)接口。
我有一个 Linux 系统,它使用 GRE 隧道连接到许多其他系统。另一端的机器向这台机器发送 DHCP 请求,我可以用 tcpdump 查看它们。但是,ISC DHCP 3.0.3 拒绝侦听该接口,因为它是非广播的。
我希望 DHCP 监听的接口是:
tap2 Link encap:Ethernet HWaddr removed-for-privacy
inet6 addr: removed-for-privacy/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:518 errors:0 dropped:0 overruns:0 frame:0
TX packets:510 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:196242 (191.6 KiB) TX bytes:52425 (51.1 KiB)
答案1
这是一个老问题,但是:
您需要使用 USE_SOCKETS 编译 dhcpd。如果不这样做,它会使用一些 pcap 代码来接收数据包,而该 pcap 代码硬编码假设链路层是以太网,因此无法在隧道接口上工作。
答案2
嗯,好吧,但是为什么呢?您的 DHCP 服务器拒绝在非广播接口上侦听,因为它的全部目的是在其侦听的接口上回复这些请求。这就是 DHCP 协议……一种在子网上本地获取 IP 配置信息的方法。您不会想在一个子网上侦听并在另一个子网上广播,因为请求主机不在那里……
答案3
您可以在该接口和其他地方的实际服务器上运行 DHCP 中继吗?