Relay-Modes
This suite tests the relay-agents-packets configuration option,
which controls how the DHCP relay handles Option 82 (Relay Agent Information).
Option 82 is automatically added by relays to identify where DHCP requests
originated. The modes (append, replace, forward, discard) determine what
happens when a packet already contains Option 82 from another relay.
Each test verifies the client can obtain a DHCP lease with each mode.
Test Relay Agent Packets Append Mode
Description
This test configures the relay with relay-agents-packets append.
In append mode, the relay adds its Option 82 information to DHCP
requests. If the packet already has Option 82 from another relay,
the new information is appended to the existing option.
This is the default and safest mode for most deployments.
Scenario
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 vif 100 address 10.0.0.2/24 set interfaces ethernet eth1 vif 200 address 20.0.0.2/24 set service dhcp-relay INS downstream-interface eth1.200 set service dhcp-relay INS relay-agents-packets append set service dhcp-relay INS server 10.0.0.1 set service dhcp-relay INS upstream-interface eth0.100 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 2: Set the following configuration in DUT1 :
set interfaces ethernet eth0 vif 100 address 10.0.0.1/24 set protocols static route 0.0.0.0/0 next-hop 10.0.0.2 set service dhcp-server shared-network dummy subnet 10.0.0.1/32 set service dhcp-server shared-network remote subnet 20.0.0.0/24 start 20.0.0.50 stop 20.0.0.50 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 3: Set the following configuration in DUT2 :
set interfaces ethernet eth0 vif 200 address dhcp set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 4: Ping IP address 10.0.0.1 from DUT0:
admin@DUT0$ ping 10.0.0.1 count 1 size 56 timeout 1Show output
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.290 ms --- 10.0.0.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.290/0.290/0.290/0.000 ms
Step 5: Run command interfaces ethernet show at DUT2 and check if output contains the following tokens:
20.0.0.50Show output
--------------------------------------------------------------------- Name IP Address Admin Oper Vrf Description --------------------------------------------------------------------- eth0 fe80::dcad:beff:feef:6c20/64 up up eth0.200 20.0.0.50/24 up up fe80::dcad:beff:feef:6c20/64 eth1 down down eth2 down down eth3 down down
Test Relay Agent Packets Replace Mode
Description
This test configures the relay with relay-agents-packets replace.
In replace mode, the relay overwrites any existing Option 82 with
its own information. This is useful in cascaded relay topologies
where only the last relay’s information is relevant to the server.
Scenario
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 vif 100 address 10.0.0.2/24 set interfaces ethernet eth1 vif 200 address 20.0.0.2/24 set service dhcp-relay INS downstream-interface eth1.200 set service dhcp-relay INS relay-agents-packets replace set service dhcp-relay INS server 10.0.0.1 set service dhcp-relay INS upstream-interface eth0.100 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 2: Set the following configuration in DUT1 :
set interfaces ethernet eth0 vif 100 address 10.0.0.1/24 set protocols static route 0.0.0.0/0 next-hop 10.0.0.2 set service dhcp-server shared-network dummy subnet 10.0.0.1/32 set service dhcp-server shared-network remote subnet 20.0.0.0/24 start 20.0.0.50 stop 20.0.0.50 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 3: Set the following configuration in DUT2 :
set interfaces ethernet eth0 vif 200 address dhcp set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 4: Ping IP address 10.0.0.1 from DUT0:
admin@DUT0$ ping 10.0.0.1 count 1 size 56 timeout 1Show output
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.244 ms --- 10.0.0.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.244/0.244/0.244/0.000 ms
Step 5: Run command interfaces ethernet show at DUT2 and check if output contains the following tokens:
20.0.0.50Show output
--------------------------------------------------------------------- Name IP Address Admin Oper Vrf Description --------------------------------------------------------------------- eth0 fe80::dcad:beff:feef:6c20/64 up up eth0.200 20.0.0.50/24 up up fe80::dcad:beff:feef:6c20/64 eth1 down down eth2 down down eth3 down down
Test Relay Agent Packets Forward Mode
Description
This test configures the relay with relay-agents-packets forward.
In forward mode, the relay passes DHCP packets through without
modifying Option 82. This preserves the original relay information,
which is useful when the first relay’s circuit ID is needed for
billing or access control decisions.
Scenario
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 vif 100 address 10.0.0.2/24 set interfaces ethernet eth1 vif 200 address 20.0.0.2/24 set service dhcp-relay INS downstream-interface eth1.200 set service dhcp-relay INS relay-agents-packets forward set service dhcp-relay INS server 10.0.0.1 set service dhcp-relay INS upstream-interface eth0.100 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 2: Set the following configuration in DUT1 :
set interfaces ethernet eth0 vif 100 address 10.0.0.1/24 set protocols static route 0.0.0.0/0 next-hop 10.0.0.2 set service dhcp-server shared-network dummy subnet 10.0.0.1/32 set service dhcp-server shared-network remote subnet 20.0.0.0/24 start 20.0.0.50 stop 20.0.0.50 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 3: Set the following configuration in DUT2 :
set interfaces ethernet eth0 vif 200 address dhcp set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 4: Ping IP address 10.0.0.1 from DUT0:
admin@DUT0$ ping 10.0.0.1 count 1 size 56 timeout 1Show output
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.439 ms --- 10.0.0.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.439/0.439/0.439/0.000 ms
Step 5: Run command interfaces ethernet show at DUT2 and check if output contains the following tokens:
20.0.0.50Show output
--------------------------------------------------------------------- Name IP Address Admin Oper Vrf Description --------------------------------------------------------------------- eth0 fe80::dcad:beff:feef:6c20/64 up up eth0.200 20.0.0.50/24 up up fe80::dcad:beff:feef:6c20/64 eth1 down down eth2 down down eth3 down down
Test Relay Agent Packets Discard Mode
Description
This test configures the relay with relay-agents-packets discard.
In discard mode, the relay drops packets that already contain
Option 82. This prevents relay loops in complex topologies.
The client still obtains an IP because its initial DHCPDISCOVER
does not contain Option 82 (only relayed packets would have it).
Scenario
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 vif 100 address 10.0.0.2/24 set interfaces ethernet eth1 vif 200 address 20.0.0.2/24 set service dhcp-relay INS downstream-interface eth1.200 set service dhcp-relay INS relay-agents-packets discard set service dhcp-relay INS server 10.0.0.1 set service dhcp-relay INS upstream-interface eth0.100 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 2: Set the following configuration in DUT1 :
set interfaces ethernet eth0 vif 100 address 10.0.0.1/24 set protocols static route 0.0.0.0/0 next-hop 10.0.0.2 set service dhcp-server shared-network dummy subnet 10.0.0.1/32 set service dhcp-server shared-network remote subnet 20.0.0.0/24 start 20.0.0.50 stop 20.0.0.50 set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 3: Set the following configuration in DUT2 :
set interfaces ethernet eth0 vif 200 address dhcp set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 4: Ping IP address 10.0.0.1 from DUT0:
admin@DUT0$ ping 10.0.0.1 count 1 size 56 timeout 1Show output
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.354 ms --- 10.0.0.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.354/0.354/0.354/0.000 ms
Step 5: Run command interfaces ethernet show at DUT2 and check if output contains the following tokens:
20.0.0.50Show output
--------------------------------------------------------------------- Name IP Address Admin Oper Vrf Description --------------------------------------------------------------------- eth0 fe80::dcad:beff:feef:6c20/64 up up eth0.200 20.0.0.50/24 up up fe80::dcad:beff:feef:6c20/64 eth1 down down eth2 down down eth3 down down