A Linux DHCP server that will listen on an non-broadcast (tap) interface

dhcpisc-dhcpnetworking

Are there any Linux DHCP servers that will listen to what Cisco calls an "unnumbered" interface, or what others might call a "NBMA" (non-broadcast) interface.

I have a Linux system that connects to a number of others using GRE tunnels. The machines on the other end send DHCP requests to this machine, I can see them with tcpdump. However, ISC DHCP 3.0.3 refuses to listen to the interface because it is non-broadcast.

The interface I'd like DHCP to listen to is:

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)

Best Answer

This is an old question, but:

You need to compile dhcpd with USE_SOCKETS. If you don't, it uses some pcap code to receive packets, and that pcap code has hard-coded assumptions that the link layer is Ethernet, so doesn't work on tunnel interfaces.