Need Help DHCP Server

Simon Hobson dhcp1 at thehobsons.co.uk
Sun Mar 17 18:09:27 UTC 2013


To expand on a couple of points I wrote earlier :



> Just to be clear, a VLAN interface is not the same thing as a logical interface.


With a VLAN, you can (largely) think of each VLAN as being like taking multiple switches, with multiple interfaces etc. The VLAN technology effectively wraps this up and allows them to share one set of switches, cabling etc. But the key things is that they still behave like separate networks. With Linux, the interfaces appear as sub interfaces of the "real" interface (eg eth0.10). It's not quite so simple when DHCP is concerned because teh ISC server at least does some raw packet handling - and I don't know how this impacts on VLANs.



A logical interface is merely as way to have additional functions on one interface. Historically, it was the easiest way to have multiple IP addresses for example - now it's easy enough to simply add additional addresses without the logical ones. However, at the packet level, all packets are received by the one interfacer, then the IP stack separates them according to IP subnet. Under Linux they appear like eth0:1. Since there is no way to identify which interface a broadcast packet was intended for, you cannot (say) run a DHCP instance on a logical interface.



What this means is that with VLANs, the broadcast request from a client will be received only on the VLAN interface for the clients network - it won't appear in the VLAN interface for any other network, just as (in a normal network) you would see the packet arrive on eth2 if the client is connected to the network on eth0. With logical interfaces, any broadcasts will be received on the base interface (eg eth0). Because sub interfaces (eth0:0, eth0:1, etc) are actually the same interface, they will not receive broadcast packets - as it's impossible to determine that the packet should have gone to any logicval interface rather than the base interface.



> It is **NOT** required that the server have an IP address in every subnet ir serves.



Where the server is serving a remote networm, then the packets are relayed to the server by a relay agent on the remote network. The server won't have an IP address in any subnet on the remote network, and it cannot determine the source of any requests from the interface it's received on. Instead it uses the Gateway Interface Address (GIAddr) field whiuch the relay agent fills in prior to forwarding the request. This will be an IP address the relay agent has in the remote subnet, and so allows the server to determine the network the packet came from.



If you can get hold of "The DHCP Handbook" by Ralph Droms and Ted Lemon, then you will find a wealth of information in there. It's considered "the reference" for DHCP. There's a second edition out there, but for your needs, either the first or second edition will cover you (if getting hold of a specific edition is a problem).


More information about the dhcp-users mailing list