Options

These scenarios check the functionality of different options in DHCP server.

Test One Lease Per Client

Description

This scenario checks one-lease-per-client option. For this scenario you need two active leases at the same time. First you check that these leases are active and then, activate this option and check that there aren’t two leases at the same time for the same client (same MAC address).

Scenario

Step 1: Set the following configuration in DUT0:

set interfaces eth1 address 10.215.168.64/24
set interfaces eth0.100 address 10.0.0.1/24
set interfaces eth0.200 address 10.0.0.2/24
set service dhcp-server shared-network dhcp subnet 10.0.0.0/24 start 10.0.0.5 stop 10.0.0.6
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 options lease 4

Step 2: Set the following configuration in DUT1:

set interfaces eth0.100 mac 10:00:00:00:00:01
set interfaces eth0.200 mac 10:00:00:00:00:01

Step 3: Set the following configuration in DUT1:

set interfaces eth0.100 address dhcp
set interfaces eth0.200 address dhcp

Warning

If you do not see changes after enabling the options, you should renew 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  2024/10/10 08:22:28  2024/10/10 08:22:32  2024/10/10 08:22:28

Step 6: Set the following configuration 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  2024/10/10 08:22:30  2024/10/10 08:22:34  2024/10/10 08:22:30

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:6c20/64  up     up    up    1500                     ethernet  de:ad:be:ef:6c:20
eth0.100  31   10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c20/64
eth0.200  32   10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c20/64
    eth1  3                                  down   down  down  1500                     ethernet  de:ad:be:ef:6c:21

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:6c20/64  up     up    up    1500                     ethernet  de:ad:be:ef:6c:20
eth0.100  31   10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c20/64
eth0.200  32   10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c20/64
    eth1  3                                  down   down  down  1500                     ethernet  de:ad:be:ef:6c:21

Test One Lease Per Client VRF

Description

This scenario checks one-lease-per-client option for DHCP-server but it is configured with VRF instead of regular interfaces. First this scenario checks there are 2 leases for the same client at the same time and then enable the option and check there are not two leases active at the same time for the same client.

Scenario

Step 1: Set the following configuration in DUT0:

set interfaces eth1 address 10.215.168.64/24
set interfaces eth0.100 address 10.0.0.1/24
set interfaces eth0.100 vrf VRF0
set interfaces eth0.200 address 10.0.0.2/24
set interfaces eth0.200 vrf VRF0
set service dhcp-server shared-network dhcp local-vrf VRF0
set service dhcp-server shared-network dhcp subnet 10.0.0.0/24 start 10.0.0.5 stop 10.0.0.6
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 options lease 4
set system vrf VRF0

Step 2: Set the following configuration in DUT1:

set interfaces eth0.100 mac 10:00:00:00:00:01
set interfaces eth0.200 mac 10:00:00:00:00:01

Step 3: Set the following configuration in DUT1:

set interfaces eth0.100 address dhcp
set interfaces eth0.200 address dhcp

Warning

If you do not see changes after enabling the options, you should renew 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  2024/10/10 08:22:52  2024/10/10 08:22:56  2024/10/10 08:22:52

Step 6: Set the following configuration 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  2024/10/10 08:22:54  2024/10/10 08:22:58  2024/10/10 08:22:54

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:6c20/64  up     up    up    1500                     ethernet  de:ad:be:ef:6c:20
eth0.100  33   10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c20/64
eth0.200  34   10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c20/64
    eth1  3                                  down   down  down  1500                     ethernet  de:ad:be:ef:6c:21

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:6c20/64  up     up    up    1500                     ethernet  de:ad:be:ef:6c:20
eth0.100  33   10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c20/64
eth0.200  34   10.0.0.6/24                   up     up    up    1500              eth0   ethernet  10:00:00:00:00:01
               fe80::dcad:beff:feef:6c20/64
    eth1  3                                  down   down  down  1500                     ethernet  de:ad:be:ef:6c:21

Test Authoritative

Description

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

Scenario

Step 1: Set the following configuration in DUT0:

set interfaces 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

Step 2: Set the following configuration in DUT1:

set interfaces ethernet eth0 mac 10:00:00:00:00:01

Step 3: Set the following configuration in DUT1:

set interfaces ethernet eth0 address dhcp

Warning

If you do not see changes after enabling the options, you should renew 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:6c20/64

Step 5: Set the following configuration in DUT0:

delete service
delete interfaces

Step 6: Set the following configuration in DUT0:

set interfaces 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:6c20/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
Oct 10 08:23:11.266094 osdx OSDxCLI[31706]: User 'admin' added a new cfg line: 'set interfaces eth0 address 11.0.0.1/24'.
Oct 10 08:23:11.399037 osdx OSDxCLI[31706]: User 'admin' added a new cfg line: 'set service dhcp-server shared-network authoritative subnet 11.0.0.0/24 start 11.0.0.5 stop 11.0.0.5'.
Oct 10 08:23:11.577658 osdx kernel: 8021q: adding VLAN 0 to HW filter on device eth0
Oct 10 08:23:11.643244 osdx systemd[1]: Started "DHCP Server Service instance main".
Oct 10 08:23:11.646081 osdx cfgd[1328]: [31706]Completed change to active configuration
Oct 10 08:23:11.649949 osdx OSDxCLI[31706]: User 'admin' committed the configuration.
Oct 10 08:23:11.653434 osdx dhcpd[32221]: Wrote 0 leases to leases file.
Oct 10 08:23:11.713431 osdx OSDxCLI[31706]: User 'admin' left the configuration menu.
Oct 10 08:23:11.757972 osdx dhcpd[32221]: Server starting service.
Oct 10 08:23:12.105682 osdx dhcpd[32221]: DHCPREQUEST for 10.0.0.5 from 10:00:00:00:00:01 via eth0: ignored (not authoritative).

Step 9: Set the following configuration 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
Oct 10 08:23:12.894265 osdx systemd[1]: Stopped "DHCP Server Service instance main".
Oct 10 08:23:12.895536 osdx systemd[1]: Started "DHCP Server Service instance main".
Oct 10 08:23:12.897925 osdx cfgd[1328]: [31706]Completed change to active configuration
Oct 10 08:23:12.901164 osdx OSDxCLI[31706]: User 'admin' committed the configuration.
Oct 10 08:23:12.904227 osdx dhcpd[32258]: Wrote 0 leases to leases file.
Oct 10 08:23:12.943805 osdx OSDxCLI[31706]: User 'admin' left the configuration menu.
Oct 10 08:23:12.997818 osdx dhcpd[32258]: Server starting service.
Oct 10 08:23:13.340892 osdx dhcpd[32258]: DHCPREQUEST for 10.0.0.5 from 10:00:00:00:00:01 via eth0: wrong network.
Oct 10 08:23:13.340936 osdx dhcpd[32258]: DHCPNAK on 10.0.0.5 to 10:00:00:00:00:01 via eth0
Oct 10 08:23:13.387780 osdx zebra[1281]: [RZ3YY-GPH41][EC 100663310] snmp[warning]: Warning: Failed to connect to the agentx master agent ([NIL]):

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:6c20/64

Test Authoritative VRF

Description

This scenario checks authoritative option but 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. In addition, renew the interfaces and you will see the server cannot. 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 eth0 address 10.0.0.1/24
set interfaces eth0 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 service dhcp-server shared-network authoritative local-vrf VRF0
set system vrf VRF0

Step 2: Set the following configuration in DUT1:

set interfaces ethernet eth0 mac 10:00:00:00:00:01

Step 3: Set the following configuration in DUT1:

set interfaces ethernet eth0 address dhcp

Warning

If you do not see changes after enabling the options, you should renew 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:6c20/64

Step 5: Set the following configuration in DUT0:

delete service
delete interfaces

Step 6: Set the following configuration in DUT0:

set interfaces eth0 address 11.0.0.1/24
set interfaces eth0 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
set service dhcp-server shared-network authoritative local-vrf VRF0

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:6c20/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
Oct 10 08:23:41.923766 osdx OSDxCLI[31706]: User 'admin' added a new cfg line: 'set service dhcp-server shared-network authoritative local-vrf VRF0'.
Oct 10 08:23:42.087446 osdx kernel: 8021q: adding VLAN 0 to HW filter on device eth0
Oct 10 08:23:42.123422 osdx kernel: 8021q: adding VLAN 0 to HW filter on device eth0
Oct 10 08:23:42.186616 osdx systemd[1]: Started "DHCP Server Service instance VRF0".
Oct 10 08:23:42.189960 osdx cfgd[1328]: [31706]Completed change to active configuration
Oct 10 08:23:42.193347 osdx OSDxCLI[31706]: User 'admin' committed the configuration.
Oct 10 08:23:42.195031 osdx dhcpd[32654]: Wrote 0 leases to leases file.
Oct 10 08:23:42.255476 osdx OSDxCLI[31706]: User 'admin' left the configuration menu.
Oct 10 08:23:42.348140 osdx dhcpd[32654]: Server starting service.
Oct 10 08:23:42.658331 osdx dhcpd[32654]: DHCPREQUEST for 10.0.0.5 from 10:00:00:00:00:01 via eth0: ignored (not authoritative).

Step 9: Set the following configuration 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
Oct 10 08:23:43.475723 osdx systemd[1]: dhcpd@VRF0.service: Succeeded.
Oct 10 08:23:43.476114 osdx systemd[1]: Stopped "DHCP Server Service instance VRF0".
Oct 10 08:23:43.477960 osdx systemd[1]: Started "DHCP Server Service instance VRF0".
Oct 10 08:23:43.480155 osdx cfgd[1328]: [31706]Completed change to active configuration
Oct 10 08:23:43.484583 osdx OSDxCLI[31706]: User 'admin' committed the configuration.
Oct 10 08:23:43.487867 osdx dhcpd[32691]: Wrote 0 leases to leases file.
Oct 10 08:23:43.541308 osdx OSDxCLI[31706]: User 'admin' left the configuration menu.
Oct 10 08:23:43.579621 osdx dhcpd[32691]: Server starting service.
Oct 10 08:23:43.917170 osdx dhcpd[32691]: DHCPREQUEST for 10.0.0.5 from 10:00:00:00:00:01 via eth0: wrong network.
Oct 10 08:23:43.917204 osdx dhcpd[32691]: 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:6c20/64