A DHCP relay agent is a network function that forwards DHCP messages between clients and servers on different IP subnets by converting client broadcasts into unicast packets and recording the originating subnet in the giaddr field, enabling centralized DHCP server management across hundreds of VLANs. Without relay agents, each subnet would require its own DHCP server, multiplying hardware and maintenance overhead, but relay configuration is a critical dependency that is easy to misconfigure, leading to client address assignment failures when server addresses are wrong, helper configurations are missing, or firewalls block UDP port 67. Proper relay agent deployment, combined with security measures like DHCP snooping and option 82 for port-level visibility, enables reliable and scalable network address management across complex multi-subnet environments.
So funktioniert der DHCP-Relay-Agent
DHCP-Clients finden Server über Broadcasts, und Router leiten Broadcasts nicht zwischen Subnetzen weiter. Ein Relay-Agent, der in der Regel auf dem Router oder der den Clients zugewandten Layer-3-Schnittstelle konfiguriert ist, überbrückt diese Lücke.
- Client-Broadcast: Ein Client ohne Adresse sendet eine DHCP-Discover-Nachricht in seinem lokalen Subnetz.
- Der Relay-Agent empfängt die Nachricht: Der Relay-Agent, der auf dieser Schnittstelle auf Verbindungen wartet, empfängt die Broadcast-Nachricht und setzt das Feld „giaddr“ auf die IP-Adresse der Schnittstelle, die die Nachricht empfangen hat.
- Unicast an den Server: Der Relay leitet die Nachricht als Unicast an eine oder mehrere konfigurierte DHCP-Serveradressen weiter. Dabei können auch Informationen zum Relay-Agenten hinzugefügt werden, die als Option 82 bezeichnet werden.
- Der Server wählt einen Bereich aus: Der DHCP-Server verwendet den giaddr-Wert, um die Anfrage einem Bereich für dieses Subnetz zuzuordnen, und erstellt daraus ein Angebot.
- Antwort wird an den Client zurückgesendet: Der Server sendet die Antwort an die giaddr-Adresse. Das Relay leitet sie dann per Broadcast oder Unicast im Client-Subnetz an den Client weiter.
Der gleiche Relay-Pfad überträgt die Anfrage- und Bestätigungsnachrichten, die den Austausch abschließen. Spätere Verlängerungen erfolgen in der Regel per Unicast direkt zwischen Client und Server und benötigen den Relay nicht. Die Informationen zum Relay-Agenten werden entfernt, bevor die Antwort den Client erreicht.
Häufige Probleme mit DHCP-Relay-Agenten
Ein neues VLAN wird erstellt und seiner Schnittstelle wird eine Adresse zugewiesen, es ist jedoch kein Relay-Ziel konfiguriert. Clients in diesem VLAN können keine Leases erhalten und greifen auf Link-Local-Adressen zurück, während andere VLANs normal funktionieren.
Der Server verfügt über keinen Bereich, dessen Subnetz die Adresse der Relay-Schnittstelle enthält, sodass er Anfragen ignoriert oder zurückweist. Dies geschieht häufig nach der Umnummerierung eines Subnetzes oder wenn eine sekundäre Adresse auf der Schnittstelle als giaddr verwendet wird.
Eine Firewall zwischen Relay und Server blockiert die UDP-Ports 67 oder 68 bzw. den Rückweg für Serverantworten. In den Serverprotokollen werden keine Anfragen angezeigt, oder Angebote werden gesendet, erreichen die Clients jedoch nie.
Nachdem ein Server ausgetauscht oder neu adressiert wurde, verweisen Relays weiterhin auf die alte Adresse. Failover-Paare erscheinen dann als funktionsfähig, doch manche Relays erreichen nur einen Peer oder gar keinen.
Ein Relay fügt Option-82-Daten ein, die der Server nicht erwartet, oder ein nachgeschaltetes Gerät fügt sie ein zweites Mal hinzu. Der Server lehnt das Paket möglicherweise ab oder wendet die falsche Richtlinie an, sodass Clients an bestimmten Ports abgelehnt oder falsch zugeordnet werden.