Dynamic Host Configuration Protocol |
A relay agent is a small program that relays a certain type of message to other hosts on a network. In TCP/IP networking, routers are used to interconnect hardware and software on different subnets and forward IP packets between the subnets.
To support and use the DHCP service across multiple subnets, routers connecting each subnet should comply with the DHCP/BOOTP relay agent capabilities described in RFC 1542. To comply with RFC 1542 and provide relay agent support, each router must be able to recognize BOOTP and DHCP protocol messages and process (relay) them appropriately. Because routers interpret DHCP messages as BOOTP messages (such as a UDP message sent through the same UDP port number and containing shared message structure), a router with BOOTP–relay agent capability typically relays DHCP packets and any BOOTP packets sent on the network.
In most cases, routers support DHCP/BOOTP relay. If your routers do not, contact your router manufacturer or supplier to find out if a software or firmware upgrade is available to support this feature.
Alternatively, if a router cannot function as a DHCP/BOOTP relay agent, each subnet must have either its own DHCP server or another computer that can function as a relay agent on that subnet.
In cases where it is impractical or impossible to configure routers to support DHCP/BOOTP relay, you can configure a computer running Windows 2000 or Windows NT Server 4.0 to act as a relay agent by installing the DHCP Relay Agent service. A DHCP relay agent is a hardware device or software program that can pass DHCP/BOOTP broadcast messages from one subnet to another subnet according to the RFC 2131 specification for DHCP. DHCP/BOOTP relay agents act as proxies, forwarding messages from one subnet to the next. By default, DHCP is a broadcast-based protocol, so without relay agents and the ability to pass DHCP and BOOTP messages across routers, every subnet on a network must have its own DHCP server.
Figure 4.24 shows how Client C on Subnet 2 obtains a DHCP address lease from DHCP Server 1 on Subnet 1.
Figure 4.24 Using a Relay Agent
For example, if the giaddr field has an IP address of 201.2.45.2, the DHCP server checks its available set of address scopes for a scope range of addresses that matches the Class C IP network that includes the gateway address of the computer. In this case, the DHCP server checks to see which scope includes addresses between 201.2.45.1 and 201.2.45.254. If a scope exists that matches this criterion, the DHCP server selects an available address from the matched scope to use in an IP address lease offer response to the client.
The client's IP address is still unknown, so it has to be a broadcast on the local subnet. Similarly, a DHCPRequest message is relayed from client to server, and a DHCPAck message is relayed from server to client, according to RFC 1542.