Options

These scenarios check the functionality of different DHCP server options.

Test One Lease Per Client

Description

This scenario checks the one-lease-per-client option. In this scenario, you need two active leases at the same time. First, check those leases are active and then activate this option and check that no two leases belonging to the same client (same MAC address) are active at the same time.

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 vif 100 address 10.0.0.1/24
set interfaces ethernet eth0 vif 200 address 10.0.0.2/24
set interfaces ethernet eth1 address 10.215.168.64/24
set service dhcp-server shared-network dhcp subnet 10.0.0.0/24 options lease 4
set service dhcp-server shared-network dhcp subnet 10.0.0.0/24 options max-lease 4
set service dhcp-server shared-network dhcp subnet 10.0.0.0/24 start 10.0.0.5 stop 10.0.0.6
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 mac '10:00:00:00:00:01'
set interfaces ethernet eth0 vif 200 mac '10:00:00:00:00:01'
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Modify the following configuration lines in DUT1 :

set interfaces ethernet eth0 vif 100 address dhcp
set interfaces ethernet eth0 vif 200 address dhcp

Warning

If you do not see changes after enabling the options, refresh all your interfaces

Step 4: Run command service dhcp-server show leases main | grep 10.0.0.5 at DUT0 and check if output contains the following tokens:

10:00:00:00:00:01
Show output
10.0.0.5   10:00:00:00:00:01  2020/11/08 08:43:51

Step 5: Run command service dhcp-server show leases main | grep 10.0.0.6 at DUT0 and check if output contains the following tokens:

10:00:00:00:00:01
Show output
10.0.0.6   10:00:00:00:00:01  2026/04/06 14:12:32  2026/04/06 14:12:36  2026/04/06 14:12:32

Step 6: Modify the following configuration lines in DUT0 :

set service dhcp-server shared-network dhcp subnet 10.0.0.0/24 options one-lease-per-client

Step 7: Run command service dhcp-server show leases main | grep 10.0.0.5 at DUT0 and check if output does not contain the following tokens:

10:00:00:00:00:01

Step 8: Run command service dhcp-server show leases main | grep 10.0.0.6 at DUT0 and check if output contains the following tokens:

10:00:00:00:00:01
Show output
10.0.0.6   10:00:00:00:00:01  2026/04/06 14:12:34  2026/04/06 14:12:38  2026/04/06 14:12:34

Step 9: Run command service dhcp-server clear main lease all at DUT0.

Step 10: Run command interfaces show detailed at DUT1 and check if output does not contain the following tokens:

10.0.0.5
Show output
--------------------------------------------------------------------------------------------------------------------
  Name    Idx           IP Address           Admin  Oper  Link  MTU   Vrf  Upper  Lower    Type        Phys addr
--------------------------------------------------------------------------------------------------------------------
    eth0  2    fe80::dcad:beff:feef:6c10/64  up     up    up    1500                     ethernet  de:ad:be:ef:6c:10
eth0.100  7    10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c10/64
eth0.200  8    10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c10/64
    eth1  3                                  down   down  down  1500                     ethernet  de:ad:be:ef:6c:11

Step 11: Run command interfaces show detailed at DUT1 and check if output contains the following tokens:

10.0.0.6
Show output
--------------------------------------------------------------------------------------------------------------------
  Name    Idx           IP Address           Admin  Oper  Link  MTU   Vrf  Upper  Lower    Type        Phys addr
--------------------------------------------------------------------------------------------------------------------
    eth0  2    fe80::dcad:beff:feef:6c10/64  up     up    up    1500                     ethernet  de:ad:be:ef:6c:10
eth0.100  7    10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c10/64
eth0.200  8    10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c10/64
    eth1  3                                  down   down  down  1500                     ethernet  de:ad:be:ef:6c:11

Test One Lease Per Client VRF

Description

This scenario checks the one-lease-per-client option for DHCP-server, but it is configured with VRF instead of regular interfaces. It first checks whether there are 2 simultaneous leases for the same client. When the option is enabled, it checks there are no two active leases for the same client at the same time.

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 vif 100 address 10.0.0.1/24
set interfaces ethernet eth0 vif 100 vrf VRF0
set interfaces ethernet eth0 vif 200 address 10.0.0.2/24
set interfaces ethernet eth0 vif 200 vrf VRF0
set interfaces ethernet eth1 address 10.215.168.64/24
set service dhcp-server shared-network dhcp local-vrf VRF0
set service dhcp-server shared-network dhcp subnet 10.0.0.0/24 options lease 4
set service dhcp-server shared-network dhcp subnet 10.0.0.0/24 options max-lease 4
set service dhcp-server shared-network dhcp subnet 10.0.0.0/24 start 10.0.0.5 stop 10.0.0.6
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
set system vrf VRF0

Step 2: Set the following configuration in DUT1 :

set interfaces ethernet eth0 vif 100 mac '10:00:00:00:00:01'
set interfaces ethernet eth0 vif 200 mac '10:00:00:00:00:01'
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Modify the following configuration lines in DUT1 :

set interfaces ethernet eth0 vif 100 address dhcp
set interfaces ethernet eth0 vif 200 address dhcp

Warning

If you do not see changes after enabling the options, refresh all your interfaces

Step 4: Run command service dhcp-server show leases VRF0 | grep 10.0.0.5 at DUT0 and check if output contains the following tokens:

10:00:00:00:00:01
Show output
10.0.0.5   10:00:00:00:00:01  2020/11/08 08:43:51

Step 5: Run command service dhcp-server show leases VRF0 | grep 10.0.0.6 at DUT0 and check if output contains the following tokens:

10:00:00:00:00:01
Show output
10.0.0.6   10:00:00:00:00:01  2026/04/06 14:12:49  2026/04/06 14:12:53  2026/04/06 14:12:49

Step 6: Modify the following configuration lines in DUT0 :

set service dhcp-server shared-network dhcp subnet 10.0.0.0/24 options one-lease-per-client

Step 7: Run command service dhcp-server show leases VRF0 | grep 10.0.0.5 at DUT0 and check if output does not contain the following tokens:

10:00:00:00:00:01

Step 8: Run command service dhcp-server show leases VRF0 | grep 10.0.0.6 at DUT0 and check if output contains the following tokens:

10:00:00:00:00:01
Show output
10.0.0.6   10:00:00:00:00:01  2026/04/06 14:12:51  2026/04/06 14:12:55  2026/04/06 14:12:51

Step 9: Run command service dhcp-server clear VRF0 lease all at DUT0.

Step 10: Run command interfaces show detailed at DUT1 and check if output does not contain the following tokens:

10.0.0.5
Show output
--------------------------------------------------------------------------------------------------------------------
  Name    Idx           IP Address           Admin  Oper  Link  MTU   Vrf  Upper  Lower    Type        Phys addr
--------------------------------------------------------------------------------------------------------------------
    eth0  2    fe80::dcad:beff:feef:6c10/64  up     up    up    1500                     ethernet  de:ad:be:ef:6c:10
eth0.100  9    10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c10/64
eth0.200  10   10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c10/64
    eth1  3                                  down   down  down  1500                     ethernet  de:ad:be:ef:6c:11

Step 11: Run command interfaces show detailed at DUT1 and check if output contains the following tokens:

10.0.0.6
Show output
--------------------------------------------------------------------------------------------------------------------
  Name    Idx           IP Address           Admin  Oper  Link  MTU   Vrf  Upper  Lower    Type        Phys addr
--------------------------------------------------------------------------------------------------------------------
    eth0  2    fe80::dcad:beff:feef:6c10/64  up     up    up    1500                     ethernet  de:ad:be:ef:6c:10
eth0.100  9    10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c10/64
eth0.200  10   10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c10/64
    eth1  3                                  down   down  down  1500                     ethernet  de:ad:be:ef:6c:11

Test Authoritative

Description

This scenario checks the authoritative option. First, you need to configure a DHCP server without enabling the option and give a lease to the client. Then, change the configuration of the server for another subnet. The client will refresh his lease and see a problem: the new server is not in the same subnet and is not authorized to give a lease. Finally, if you enable the option and refresh the interface, you will see the server is authorized and can provide the lease to the client.

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.0.0.1/24
set service dhcp-server shared-network authoritative subnet 10.0.0.0/24 start 10.0.0.5 stop 10.0.0.5
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 2: Set the following configuration in DUT1 :

set interfaces ethernet eth0 mac '10:00:00:00:00:01'
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Modify the following configuration lines in DUT1 :

set interfaces ethernet eth0 address dhcp

Warning

If you do not see changes after enabling the options, refresh all your interfaces

Step 4: Run command interfaces ethernet eth0 show at DUT1 and check if output contains the following tokens:

10.0.0.5
Show output
-----------------------------------------------------------------
Name           IP Address           Admin  Oper  Vrf  Description
-----------------------------------------------------------------
eth0  10.0.0.5/24                   up     up
      fe80::dcad:beff:feef:6c10/64

Step 5: Modify the following configuration lines in DUT0 :

delete interfaces
delete service

Step 6: Modify the following configuration lines in DUT0 :

set interfaces ethernet eth0 address 11.0.0.1/24
set service dhcp-server shared-network authoritative subnet 11.0.0.0/24 start 11.0.0.5 stop 11.0.0.5

Step 7: Run command interfaces ethernet eth0 show at DUT1 and check if output contains the following tokens:

10.0.0.5
Show output
-----------------------------------------------------------------
Name           IP Address           Admin  Oper  Vrf  Description
-----------------------------------------------------------------
eth0  10.0.0.5/24                   up     up
      fe80::dcad:beff:feef:6c10/64

Step 8: Run command system journal show | tail at DUT0 and check if output contains the following tokens:

DHCPREQUEST for 10.0.0.5 from 10:00:00:00:00:01 via eth0: ignored (not authoritative)
Show output
Apr 06 14:13:05.687673 osdx modulelauncher[10996]: Command '/sbin/ethtool -A eth0 autoneg on' returned non-zero exit status 76.
Apr 06 14:13:05.688773 osdx modulelauncher[10996]: osdx.utils.xos cmd error: /sbin/ethtool -s eth0 autoneg on advertise Asym_Pause off Pause off --
Apr 06 14:13:05.688781 osdx modulelauncher[10996]: Command '/sbin/ethtool -s eth0 autoneg on advertise Asym_Pause off Pause off --' returned non-zero exit status 75.
Apr 06 14:13:05.788739 osdx systemd[1]: Started dhcpd@main.service - "DHCP Server Service instance main".
Apr 06 14:13:05.790112 osdx cfgd[1666]: [10275]Completed change to active configuration
Apr 06 14:13:05.790952 osdx dhcpd[11022]: Wrote 0 leases to leases file.
Apr 06 14:13:05.800710 osdx OSDxCLI[10275]: User 'admin' committed the configuration.
Apr 06 14:13:05.828480 osdx dhcpd[11022]: Server starting service.
Apr 06 14:13:05.838266 osdx OSDxCLI[10275]: User 'admin' left the configuration menu.
Apr 06 14:13:06.170904 osdx dhcpd[11022]: DHCPREQUEST for 10.0.0.5 from 10:00:00:00:00:01 via eth0: ignored (not authoritative).

Step 9: Modify the following configuration lines in DUT0 :

set service dhcp-server options authoritative

Step 10: Run command system journal show | tail at DUT0 and check if output contains the following tokens:

DHCPNAK on 10.0.0.5 to 10:00:00:00:00:01 via eth0
Show output
Apr 06 14:13:06.876934 osdx systemd[1]: dhcpd@main.service: Deactivated successfully.
Apr 06 14:13:06.877104 osdx systemd[1]: Stopped dhcpd@main.service - "DHCP Server Service instance main".
Apr 06 14:13:06.900792 osdx systemd[1]: Started dhcpd@main.service - "DHCP Server Service instance main".
Apr 06 14:13:06.901970 osdx cfgd[1666]: [10275]Completed change to active configuration
Apr 06 14:13:06.903233 osdx dhcpd[11073]: Wrote 0 leases to leases file.
Apr 06 14:13:06.903834 osdx OSDxCLI[10275]: User 'admin' committed the configuration.
Apr 06 14:13:06.934521 osdx OSDxCLI[10275]: User 'admin' left the configuration menu.
Apr 06 14:13:06.952543 osdx dhcpd[11073]: Server starting service.
Apr 06 14:13:07.278835 osdx dhcpd[11073]: DHCPREQUEST for 10.0.0.5 from 10:00:00:00:00:01 via eth0: wrong network.
Apr 06 14:13:07.278855 osdx dhcpd[11073]: DHCPNAK on 10.0.0.5 to 10:00:00:00:00:01 via eth0

Step 11: Run command interfaces ethernet eth0 show at DUT1 and check if output contains the following tokens:

11.0.0.5
Show output
-----------------------------------------------------------------
Name           IP Address           Admin  Oper  Vrf  Description
-----------------------------------------------------------------
eth0  11.0.0.5/24                   up     up
      fe80::dcad:beff:feef:6c10/64

Test Authoritative VRF

Description

This scenario checks the authoritative option when the server is configured with VRF instead of regular interfaces. First, configure the server and give a lease to the client. Then, change the configuration of the server and put it on a different subnet. Refresh the interfaces and you will see the server cannot do it. Change the configuration again and add the authoritative option. With this change, the server will be able to give a lease to the client.

Scenario

Step 1: Set the following configuration in DUT0 :

set interfaces ethernet eth0 address 10.0.0.1/24
set interfaces ethernet eth0 vrf VRF0
set service dhcp-server shared-network authoritative local-vrf VRF0
set service dhcp-server shared-network authoritative subnet 10.0.0.0/24 start 10.0.0.5 stop 10.0.0.5
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
set system vrf VRF0

Step 2: Set the following configuration in DUT1 :

set interfaces ethernet eth0 mac '10:00:00:00:00:01'
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 3: Modify the following configuration lines in DUT1 :

set interfaces ethernet eth0 address dhcp

Warning

If you do not see changes after enabling the options, refresh all your interfaces

Step 4: Run command interfaces ethernet eth0 show at DUT1 and check if output contains the following tokens:

10.0.0.5
Show output
-----------------------------------------------------------------
Name           IP Address           Admin  Oper  Vrf  Description
-----------------------------------------------------------------
eth0  10.0.0.5/24                   up     up
      fe80::dcad:beff:feef:6c10/64

Step 5: Modify the following configuration lines in DUT0 :

delete interfaces
delete service

Step 6: Modify the following configuration lines in DUT0 :

set interfaces ethernet eth0 address 11.0.0.1/24
set interfaces ethernet eth0 vrf VRF0
set service dhcp-server shared-network authoritative local-vrf VRF0
set service dhcp-server shared-network authoritative subnet 11.0.0.0/24 start 11.0.0.5 stop 11.0.0.5

Step 7: Run command interfaces ethernet eth0 show at DUT1 and check if output contains the following tokens:

10.0.0.5
Show output
-----------------------------------------------------------------
Name           IP Address           Admin  Oper  Vrf  Description
-----------------------------------------------------------------
eth0  10.0.0.5/24                   up     up
      fe80::dcad:beff:feef:6c10/64

Step 8: Run command system journal show | tail at DUT0 and check if output contains the following tokens:

DHCPREQUEST for 10.0.0.5 from 10:00:00:00:00:01 via eth0: ignored (not authoritative)
Show output
Apr 06 14:13:19.352066 osdx modulelauncher[11644]: osdx.utils.xos cmd error: /sbin/ethtool -s eth0 autoneg on advertise Asym_Pause off Pause off --
Apr 06 14:13:19.352073 osdx modulelauncher[11644]: Command '/sbin/ethtool -s eth0 autoneg on advertise Asym_Pause off Pause off --' returned non-zero exit status 75.
Apr 06 14:13:19.362699 osdx kernel: 8021q: adding VLAN 0 to HW filter on device eth0
Apr 06 14:13:19.482982 osdx systemd[1]: Started dhcpd@VRF0.service - "DHCP Server Service instance VRF0".
Apr 06 14:13:19.484337 osdx cfgd[1666]: [10275]Completed change to active configuration
Apr 06 14:13:19.485008 osdx dhcpd[11705]: Wrote 0 leases to leases file.
Apr 06 14:13:19.495307 osdx OSDxCLI[10275]: User 'admin' committed the configuration.
Apr 06 14:13:19.509882 osdx OSDxCLI[10275]: User 'admin' left the configuration menu.
Apr 06 14:13:19.526954 osdx dhcpd[11705]: Server starting service.
Apr 06 14:13:19.829232 osdx dhcpd[11705]: DHCPREQUEST for 10.0.0.5 from 10:00:00:00:00:01 via eth0: ignored (not authoritative).

Step 9: Modify the following configuration lines in DUT0 :

set service dhcp-server options authoritative

Step 10: Run command system journal show | tail at DUT0 and check if output contains the following tokens:

DHCPNAK on 10.0.0.5 to 10:00:00:00:00:01 via eth0
Show output
Apr 06 14:13:20.518939 osdx systemd[1]: dhcpd@VRF0.service: Deactivated successfully.
Apr 06 14:13:20.519041 osdx systemd[1]: Stopped dhcpd@VRF0.service - "DHCP Server Service instance VRF0".
Apr 06 14:13:20.543067 osdx systemd[1]: Started dhcpd@VRF0.service - "DHCP Server Service instance VRF0".
Apr 06 14:13:20.544161 osdx cfgd[1666]: [10275]Completed change to active configuration
Apr 06 14:13:20.545704 osdx dhcpd[11756]: Wrote 0 leases to leases file.
Apr 06 14:13:20.546035 osdx OSDxCLI[10275]: User 'admin' committed the configuration.
Apr 06 14:13:20.560399 osdx OSDxCLI[10275]: User 'admin' left the configuration menu.
Apr 06 14:13:20.590815 osdx dhcpd[11756]: Server starting service.
Apr 06 14:13:20.905320 osdx dhcpd[11756]: DHCPREQUEST for 10.0.0.5 from 10:00:00:00:00:01 via eth0: wrong network.
Apr 06 14:13:20.905343 osdx dhcpd[11756]: DHCPNAK on 10.0.0.5 to 10:00:00:00:00:01 via eth0

Step 11: Run command interfaces ethernet eth0 show at DUT1 and check if output contains the following tokens:

11.0.0.5
Show output
-----------------------------------------------------------------
Name           IP Address           Admin  Oper  Vrf  Description
-----------------------------------------------------------------
eth0  11.0.0.5/24                   up     up
      fe80::dcad:beff:feef:6c10/64