Say you have two dhcp servers, A and B.
Server A has two IP addresses, 10.0.0.1 and 10.0.0.2. Server B has one IP address, 10.0.0.3.
Server A has two instances of isc-dhcp running, one specifying a local-address of 10.0.0.1 and the other specifying the local-address of 10.0.0.2.
Server B has one instance of isc-dhcp running, specifying a local-address of 10.0.0.3.
If you have another subnet separate from the dhcp servers, 192.168.0.0/24. This subnet's pool is hosted under the instance of isc-dhcp on Server A with IP 10.0.0.1. This subnet is behind a cisco device with the statement "ip helper-address 10.0.0.1". Routes are in place to reach that subnet just fine.
If a device is plugged into the switch/router with the ip helper statement and subnet of 192.168.0.0/24, how does both instances on Server A receive the discover while Server B does not? Both 10.0.0.1 and 10.0.0.2 on Server A are on the same interface.
What I don't understand is why an interface would share discovers with both IPs on it, if that is indeed what happens. If it does share it, why doesn't isc-dhcp see what IP the packets are intended for rather than assuming because it hit the IP it's listening on then it must be for it.
My only guesses:
- Either it's a networking thing I don't know about or understand.
- The interface itself passes the packet to all IPs on it and isc-dhcp assumes regardless of what IP it listens on that all packets hitting that IP should be looked at and used.
- There's nothing in the packet once it gets to the server identifying that it's for a specific IP only, both IPs get the data much like a hub would function, and therefore isc-dhcp HAS to assume if it hits the IP it listens on that it's to be used.
Rewrote the entire question to hopefully clarify the situation. Hopefully I didn't make it worse..