LetÆs look at how DHCP works to begin with. When a client workstation initializes and the TCP/IP stack is loaded, code is initiated to locate an IP address.
An IP packet is sent out. ItÆs a ônormalö IP packet with the following parameters:
protocol type: UDP
source address: 0.0.0.0 (because itÆs not known)
destination address: 255.255.255.255 (broadcast!)
source port: 68 (BOOTPc/DHCP)
destination port: 67 (BOOTPc/DHCP)
Being that the packet is sent to an all-subnets-broadcast, it wonÆt normally be forwarded by a router. This means if you donÆt have a DHCP server on the local subnet, then the request will be lost.
To solve this problem, routers can set up an ôip helper-address,ö used to intercept and forward certain types of broadcasts on to a specific device on a separate subnet that knows how to handle the requests.
The IP helper will forward UDP broadcast packets of the following types:
* Trivial File Transfer Protocol (TFTP)
* Domain Name Service (DNS)
* Network Time Service
* NetBIOS Name Server
* NetBIOS Datagram Server
* BootPC and DHCP
* TACACS requests
With an IP helper-address in place, the router forwards packets on to the designated server. When this occurs, the encapsulated packet can be identified as originating from the network segment where the router was. Responses sent back are again intercepted by the router and passed to the workstation just as if the transaction were happening locally.
On the DHCP server, separate subnet records need to be set up. Within each subnet, a range of addresses to allocate is specified. Again, the DHCP server will learn the appropriate subnet to allocate from based on the IP address of the router forwarding the packets.
The specific setup of the DHCP server will depend on what software/platform you are running. If youÆre running a Unix version of DHCPD (DHCP Daemon), then you can type ôman dhcpd.confö to view the manual pages for the configuration file of the DHCP server.