将在非广播(tap)接口上侦听的Linux DHCP服务器?

是否有任何Linux DHCP服务器可以听取思科称为“无编号”接口的内容,或者其他人可能称之为“NBMA”(非广播)接口的内容。

我有一个使用GRE隧道连接到许多其他的Linux系统。 另一端的机器发送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) 

这是一个老问题,但是:

您需要使用USE_SOCKETS编译dhcpd。 如果你不这样做,它使用一些pcap代码来接收数据包,pcap代码有硬编码的假设,即链路层是以太网,所以不适用于隧道接口。

呃,好的,但为什么? 您的DHCP服务器拒绝在非广播接口上进行监听,因为它的要点是回复它监听的接口上的这些请求。 这就是DHCP协议…在本地获取子网上IPconfiguration信息的一种方法。 你不想在一个子网上收听并在另一个子网上广播,因为请求主机不在那里…

你可以在该接口上运行DHCP中继,并在其他地方运行实际的服务器吗?