Skip to content
Explore the learning library ☟
SanchitGurukulTechnology · Education · Innovation Take a quiz

DHCP Relay Agent Explained: GIADDR, Option 82, IP Helper and Troubleshooting


A DHCP Relay Agent allows DHCP clients and DHCP servers located on different IP subnets to communicate.

DHCPv4 clients normally begin the address-assignment process using local broadcast messages because they do not yet have a usable IPv4 address and may not know where the DHCP server is located.

Routers normally do not forward these local broadcasts between IP subnets.

A DHCP Relay Agent solves this problem by receiving DHCP messages on the client subnet and forwarding them toward a DHCP server located elsewhere in the routed network.

A relay can commonly operate on a:

  • Router
  • Layer 3 switch
  • Firewall
  • Server
  • Other supported network device
DHCP Relay Network Infographic

Why DHCP Relay Is Required

Consider this network:

ConfigurationTEXT
Client Network: 192.168.10.0/24
Default Gateway: 192.168.10.1

DHCP Server Network: 10.10.10.0/24
DHCP Server: 10.10.10.20

A new client connects to:

ConfigurationTEXT
192.168.10.0/24

The client does not yet have an address such as:

ConfigurationTEXT
192.168.10.50

because DHCP has not completed.

During initial address acquisition, the client may send traffic similar to:

ConfigurationTEXT
Source IP: 0.0.0.0
Destination IP: 255.255.255.255

Client UDP Port: 68
Server UDP Port: 67

The DHCPDISCOVER is limited to the local broadcast domain.

The router separating:

ConfigurationTEXT
192.168.10.0/24

from:

ConfigurationTEXT
10.10.10.0/24

does not normally forward this local broadcast as an ordinary routed packet.

The DHCP Relay Agent receives the message and forwards it toward:

ConfigurationTEXT
10.10.10.20

Centralized DHCP Design

With DHCP Relay, a single DHCP infrastructure can serve many networks.

For example:

ConfigurationTEXT
VLAN 10: 192.168.10.0/24
VLAN 20: 192.168.20.0/24
VLAN 30: 192.168.30.0/24

DHCP Server: 10.10.10.20

The Layer 3 gateway for each VLAN can act as a DHCP Relay Agent.

The DHCP server can then maintain separate scopes for:

  • VLAN 10
  • VLAN 20
  • VLAN 30

This avoids the need to deploy a separate DHCP server in every subnet.

How DHCP Relay Works

DHCP Relay participates in the familiar DHCPv4 DORA process:

  1. Discover
  2. Offer
  3. Request
  4. Acknowledge

The DORA exchange still occurs between the client and DHCP server, but the relay carries the DHCP messages between routed networks.

Step 1 — Client Sends DHCPDISCOVER

A new client sends a DHCPDISCOVER on its local network.

ConfigurationTEXT
Client State: No usable IPv4 address

Source IP: 0.0.0.0
Destination IP: 255.255.255.255

Message: DHCPDISCOVER

The DHCP Relay Agent receives the request on the client-facing interface.

Step 2 — Relay Forwards the Request

The relay processes the client request and forwards the DHCP message toward one or more configured DHCP servers.

For example:

ConfigurationTEXT
DHCP Server: 10.10.10.20

One of the most important fields involved in DHCPv4 relay operation is:

ConfigurationTEXT
giaddr

giaddr stands for:

Gateway IP Address

Step 3 — Relay Populates GIADDR

Suppose the client-facing Layer 3 interface is:

ConfigurationTEXT
192.168.10.1/24

The relay may forward the DHCP request with:

ConfigurationTEXT
giaddr: 192.168.10.1

This provides the DHCP server with relay and subnet context associated with:

ConfigurationTEXT
192.168.10.0/24

Step 4 — Server Selects the Correct Scope

The DHCP server receives the relayed request.

It can use giaddr to determine which address pool should be used.

Example:

ConfigurationTEXT
giaddr: 192.168.10.1

Matching DHCP Scope:
192.168.10.0/24

Available Address:
192.168.10.50

The DHCP server can then generate a:

DHCPOFFER

containing configuration appropriate for the client’s subnet.

Step 5 — Server Sends DHCPOFFER

When giaddr is populated, the server sends its response toward the relay according to DHCP relay behavior.

The relay then delivers the offer to the client network.

Step 6 — Client Sends DHCPREQUEST

The client selects an offer and sends:

DHCPREQUEST

The relay again forwards the request toward the DHCP server.

Step 7 — Server Sends DHCPACK

The DHCP server confirms the allocation with:

DHCPACK

The response may contain:

ConfigurationTEXT
IP Address: 192.168.10.50
Subnet Mask: 255.255.255.0
Default Gateway: 192.168.10.1
DNS Server: 10.10.10.53
Lease: 8 Hours

Step 8 — Relay Delivers the ACK

The relay delivers the server response to the client network.

The client can now configure:

ConfigurationTEXT
192.168.10.50/24

and begin normal IPv4 communication.

DHCP DORA Relay Agent Infographic

GIADDR and DHCP Option 82

Two important DHCP Relay concepts are:

  • giaddr
  • DHCP Option 82

They are related to relay operation but serve different purposes.

What Is GIADDR?

giaddr is a field in the DHCP/BOOTP message header.

A DHCP Relay Agent normally uses it to provide information about the network from which the client request arrived.

Example:

ConfigurationTEXT
Client Subnet: 192.168.20.0/24
Relay Interface: 192.168.20.1
giaddr: 192.168.20.1

The DHCP server can associate:

ConfigurationTEXT
192.168.20.1

with the scope:

ConfigurationTEXT
192.168.20.0/24

and select an address from the correct pool.

Why GIADDR Matters

Imagine one DHCP server serving:

ConfigurationTEXT
192.168.10.0/24
192.168.20.0/24
192.168.30.0/24

Without information identifying the client’s network, the server may not know which address pool should be used.

giaddr provides this important relay and subnet context.

What Is DHCP Option 82?

DHCP Option 82 is called:

Relay Agent Information Option

It can provide additional information about where the DHCP client is connected.

Common Option 82 sub-options include:

  • Circuit ID
  • Remote ID

Circuit ID

The Circuit ID may identify information such as:

  • Physical interface
  • VLAN
  • Access circuit

The exact value depends on vendor implementation and configuration.

Remote ID

Remote ID can provide information identifying the relay or access device.

Again, the exact format depends on the implementation.

Option 82 Example

Conceptually:

ConfigurationTEXT
giaddr: 192.168.20.1

Option 82:

Circuit ID:
VLAN20-GigabitEthernet1/0/10

Remote ID:
Access-Switch-01

A DHCP platform supporting Option 82 may use this information for:

  • Address-assignment policies
  • Subscriber identification
  • Access-network management
  • Troubleshooting
  • Security controls

Does Every DHCP Relay Use Option 82?

No.

Option 82 is optional and implementation dependent.

A DHCP Relay can operate using giaddr without inserting Option 82.

What Happens to Option 82 in the Reply?

When the DHCP server supports RFC 3046 relay-agent information, it can return the Option 82 information in its response.

The relay that inserted the information can process the reply and remove its relay-agent information before delivering the message to the client.

The exact behavior should always be verified for the actual vendor and configuration.

Configuring DHCP Relay

DHCP Relay configuration depends on the router, Layer 3 switch, firewall, or operating system acting as the relay.

Cisco IOS / IOS XE Example

Assume:

ConfigurationTEXT
Client VLAN: 192.168.10.0/24

Gateway Interface:
Vlan10

Gateway:
192.168.10.1

DHCP Server:
10.10.10.20

A common Cisco IOS / IOS XE configuration is:

Command
configure terminal
interface Vlan10
 ip address 192.168.10.1 255.255.255.0
 ip helper-address 10.10.10.20
end

The important command is:

Command
ip helper-address 10.10.10.20

It is configured on the Layer 3 interface receiving DHCP client broadcasts.

Multiple DHCP Servers

For redundancy, a platform can often forward requests toward more than one DHCP server.

Example:

Command
configure terminal
interface Vlan10
 ip helper-address 10.10.10.20
 ip helper-address 10.10.10.21
end

However, multiple helper addresses do not automatically create DHCP server failover or synchronize leases.

The servers also require an appropriate:

  • High-availability design
  • Scope configuration
  • Lease-management strategy

Multiple VLANs

Each client subnet normally requires relay configuration on its corresponding Layer 3 interface.

Example:

Command
configure terminal

interface Vlan10
 ip helper-address 10.10.10.20

interface Vlan20
 ip helper-address 10.10.10.20

interface Vlan30
 ip helper-address 10.10.10.20

end

The DHCP server should also contain appropriate scopes for all three networks.

Windows Server DHCP Relay

Windows Server can also operate as a DHCP Relay Agent through supported routing capabilities.

The relay is configured on the network interface serving the remote subnet and directed toward the required DHCP server.

This can be useful in Windows-based routing environments.

In many enterprise campus networks, however, the router or Layer 3 switch acting as the subnet gateway is the more natural location for DHCP Relay.

Security and Troubleshooting

DHCP Relay simplifies centralized address management, but a relay or routing misconfiguration can affect an entire subnet.

Security Considerations

Protect communication between:

  • DHCP clients
  • Relay agents
  • DHCP servers

Consider controls such as:

  • DHCP snooping
  • ACLs
  • Trusted relay paths
  • DHCP server hardening
  • Option 82 validation where used
  • Monitoring and logging

Rogue DHCP Servers

DHCP Relay does not by itself prevent a rogue DHCP server from operating directly on the client VLAN.

Switch security features such as:

DHCP Snooping

can help control which interfaces are permitted to send DHCP server responses.

Protect the DHCP Server

Only authorized relay infrastructure and expected networks should normally be able to reach the DHCP service where network security policy permits.

Do not expose DHCP services unnecessarily.

Client Sends DISCOVER but Gets No OFFER

Check:

  1. Is the correct VLAN configured?
  2. Is the Layer 3 gateway operational?
  3. Is DHCP Relay configured on the correct interface?
  4. Is the correct DHCP server address configured?
  5. Can the relay route to the server?
  6. Can the server route back toward the relay?
  7. Is the correct DHCP scope configured?
  8. Are free addresses available?
  9. Are ACLs or firewalls blocking DHCP?
  10. Is DHCP snooping affecting the exchange?

Verify Cisco Helper Configuration

Use:

Command
show running-config interface Vlan10

Look for:

Output / Result
ip helper-address 10.10.10.20

Verify Routing

From the relay, test connectivity to the DHCP server.

Command
ping 10.10.10.20

Also verify that the DHCP server has a valid route back toward the relay networks.

Check the DHCP Scope

If the relay sends:

ConfigurationTEXT
giaddr: 192.168.10.1

the DHCP server should have an appropriate scope for:

ConfigurationTEXT
192.168.10.0/24

A common failure is:

Packet Capture

On a supported Linux observation point:

Command
sudo tcpdump -nn -i any 'udp port 67 or udp port 68'

A useful Wireshark display filter is:

ConfigurationTEXT
dhcp

Inspect:

  • DHCP message type
  • giaddr
  • Server Identifier
  • Offered address
  • Option 82 when used

Troubleshooting Example

DHCP Relay Troubleshooting Workflow

DHCPv6 Relay Is Different

This article primarily covers:

DHCPv4 Relay

DHCPv6 also supports relay agents, but its protocol behavior is different.

DHCPv6 uses messages such as:

  • Relay-forward
  • Relay-reply

rather than the DHCPv4 giaddr mechanism.

Do not directly apply DHCPv4 relay field behavior to DHCPv6.

Key Takeaways

  1. A DHCP Relay Agent allows DHCP clients to communicate with DHCP servers located on different routed subnets.
  2. DHCP clients initially use local broadcasts that routers normally do not forward as ordinary routed traffic.
  3. The relay receives DHCP client messages and forwards them toward configured DHCP servers.
  4. The DHCPv4 giaddr field provides relay and subnet context that helps the server select the correct DHCP scope.
  5. DHCP Option 82 is optional and can provide additional relay information such as Circuit ID and Remote ID.
  6. Cisco IOS and IOS XE commonly use ip helper-address on the client-facing Layer 3 interface to configure DHCP Relay.
  7. A centralized DHCP environment can serve many VLANs when relay configuration and server scopes are designed correctly.
  8. Configuring multiple helper addresses does not by itself create DHCP server failover or lease synchronization.
  9. Troubleshooting should verify the complete path: client VLAN, relay, routing, giaddr, DHCP scope, server response, security controls, and return path.
  10. DHCPv6 Relay uses a different mechanism and should not be treated as identical to DHCPv4 Relay.

A DHCP Relay Agent provides the bridge between a local client broadcast domain and a DHCP server elsewhere in the routed network.

A typical DHCPv4 relay:

  • Receives client DHCP messages
  • Provides relay/subnet context through giaddr
  • Forwards requests toward the DHCP server
  • Receives DHCP server responses
  • Delivers those responses back to the client network

Example:

ConfigurationTEXT
Client Network: 192.168.10.0/24
Client Gateway / Relay: 192.168.10.1
DHCP Server: 10.10.10.20

On Cisco IOS / IOS XE:

Command
interface Vlan10
 ip helper-address 10.10.10.20

The DHCP server then requires an appropriate scope for:

ConfigurationTEXT
192.168.10.0/24

Option 82 can optionally provide additional information about the client’s network attachment point.

When troubleshooting, follow the DHCP packet through the entire path:

  1. Did the client send DHCPDISCOVER?
  2. Did the relay receive it?
  3. Did the relay forward it to the correct DHCP server?
  4. What giaddr did the server receive?
  5. Does a matching DHCP scope exist?
  6. Did the server generate DHCPOFFER?
  7. Did the response reach the relay?
  8. Did the client receive the offer and final lease?

Following this sequence makes DHCP Relay problems much easier to isolate.

SanchitGurukul Resources

Official Technical References

Your feedback matters

Was this post helpful?

0 reactions

SanchitGurukul — Technology • Education • Innovation

Discussion

0 approved comments

No approved comments yet. You can start the discussion below.

Leave a Comment

No login is required. Name and email are used for moderation/security. Your email is never displayed publicly. All comments require administrator approval.

This field is not used to determine whether a comment is safe.

Plain text only. File uploads, scripts, executable code, abuse and spam are not accepted.


Discover more from SanchitGurukul

Subscribe to get the latest posts sent to your email.

Keep exploring

Related guides

Namaste! I’m SG Saarthi 👋Need help learning or finding something?