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)
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.
Uhh, ok, but why? Your DHCP server refuses to listen on a non-broadcast interface because it's whole point is to reply to those requests on the interface it listens on. That's what the DHCP protocol is... A way to locally get IP configuration information on a subnet. You wouldn't want to listen on one subnet and broadcast on another because the requesting host wouldn't be there...
Can you run a DHCP relay on that interface and the actual server somewhere else?