DHCP Relay Operations
Verify DHCP Relay Configuration
A good starting point for any troubleshooting is to get an overview about the configuration.
First check the DHCP server configuration and optionally
check the reachability using additional commands like ping
.
supervisor@rtbrick>LEAF01: cfg> show config access dhcp-server { "rtbrick-config:dhcp-server": [ { "server-name": "server1", "address": "198.51.100.15", "source-address": "198.51.100.101", "routing-instance": "default" } ] }
In the next step it should be verified that the DHCP relay function is enabled for the desired logical interfaces. Those interfaces must be configured with a valid local or borrowed (unnumbered) IPv4 address.
supervisor@rtbrick>LEAF01: cfg> show config access dhcp-relay { "rtbrick-config:dhcp-relay": [ { "interface": "ifl-0/0/1/1", "dhcp-server": [ "server1", "server2" ] } ] }
Verify DHCP Relay Packet Processing
All DHCP packets processed by RBFS will be handled by the IPoE daemon
(rtbrick-ipoed.1
) which separates between DHCP relay and subscriber packets.
The command show dhcp statistics
gives some statistics about the DHCP
packets send and received by the IPoE daemon.
supervisor@rtbrick>LEAF01: op> show dhcp statistics Packets received : 0 Decode error : 0 Relay packets received : 0 Relay packets sent : 0 Relay send error : 0 Subscriber packets received : 0 Subscriber packets sent : 0 Subscriber send error : 0
Received malformed packets will be counted here as part of the shared DHCP packet infrastructure.
Those statistics can be reset with the command clear dhcp statistics
.
In the next step, the command show dhcp relay statistics
provides
more detailed statistics for those packets handled by the DHCP
relay function.
supervisor@rtbrick>LEAF01: op> show dhcp relay statistics Packet Received Sent DHCP DISCOVER : 0 0 DHCP OFFER : 0 0 DHCP REQUEST : 0 0 DHCP DECLINE : 0 0 DHCP ACK : 0 0 DHCP NAK : 0 0 DHCP RELEASE : 0 0 DHCP INFORM : 0 0 Errors: Invalid client packets received : 0 Invalid server packets received : 0 I/O errors : 0 Configuration errors : 0
A DHCP packet is consider as invalid if correctly formed but some invalid or unexpected values like a DHCP hop count greater than 16, messages from server without server identifier option, non-matching transaction (XID) and many more.
Those statistics can be reset with the command clear dhcp relay statistics
.
Verify DHCP Relay Bindings
The DHCP relay function tracks all active DHCP communications
as so called bindings. The command show dhcp relay binding
allows
to verify those bindings with extensive filters to better navigate in
scaled environments with thousands of bindings.
supervisor@rtbrick>LEAF01: op> show dhcp relay binding ? <cr> detail Detailed binding information filter Filter DHCP relay binding interface Interface
supervisor@rtbrick>LEAF01: op> show dhcp relay binding filter ? address Client IP address count Count matching bindings detail Detailed binding information interface Interface interface-regex Interface regex mac Hardware address mac-regex Hardware address regex server Server identifier
supervisor@rtbrick>LEAF01: op> show dhcp relay binding detail Interface : ifp-0/0/1/3 Hardware Address : 02:00:00:00:00:01 Client IP Address : 198.51.100.58 Routing Instance : default Proxy Mode : enabled Server Identifier : 198.51.100.15 Gateway IP Address : 198.51.100.35 Lease Time : 120.0 sec Lease Start : Tue Nov 16 22:27:15 GMT +0000 2021 Lease Expires : 66.0 sec Last Packet Received : Tue Nov 16 22:27:15 GMT +0000 2021 Last Received Packet Type : ACK Last Packet Sent : Tue Nov 16 22:27:15 GMT +0000 2021 Last Sent Packet Type : ACK
The most extensive output is provided by selecting a particular binding using the interface and client MAC address as key.
supervisor@rtbrick>LEAF01: op> show dhcp relay binding interface ifp-0/0/1/3 mac 02:00:00:00:00:01 Interface : ifp-0/0/1/3 Hardware Address : 02:00:00:00:00:01 Client IP Address : 198.51.100.58 Routing Instance : default Proxy Mode : enabled Server Identifier : 198.51.100.15 Gateway IP Address : 198.51.100.35 Lease Time : 120.0 sec Lease Start : Tue Nov 16 22:31:15 GMT +0000 2021 Lease Expires : 104.0 sec Last Packet Received : Tue Nov 16 22:31:15 GMT +0000 2021 Last Received Packet Type : ACK Last Packet Sent : Tue Nov 16 22:31:15 GMT +0000 2021 Last Sent Packet Type : ACK Statistics: Packet Received Sent DHCP DISCOVER : 1 1 DHCP OFFER : 1 1 DHCP REQUEST : 36 36 DHCP DECLINE : 0 0 DHCP ACK : 36 36 DHCP NAK : 0 0 DHCP RELEASE : 0 0 DHCP INFORM : 0 0 Errors: Invalid client packets received : 0 Invalid server packets received : 0 I/O errors : 0 Configuration errors : 0
This output returns additional statistics per DHCP relay binding.
The command clear dhcp relay binding
removes either all bindings,
all bindings of a corresponding interface or only one particular binding.
supervisor@rtbrick>LEAF01: op> clear dhcp relay binding ? all Clear all DHCP relay bindings interface Interface
supervisor@rtbrick>LEAF01: op> clear dhcp relay binding all supervisor@rtbrick>LEAF01: op> clear dhcp relay binding interface ifp-0/0/1/3 supervisor@rtbrick>LEAF01: op> clear dhcp relay binding interface ifp-0/0/1/3 mac 02:00:00:00:00:01