DHCPv6 - Dynamic Host Configuration Protocol for IPv6 ======================================================== .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **What is DHCPv6?** DHCPv6 stands for Dynamic Host Configuration Protocol for IPv6. It is the version of DHCP designed to assign IPv6 addresses and configuration settings to devices on an IPv6 network. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Why is DHCPv6 useful?** * Automatically assigns IPv6 addresses to devices * Provides additional configuration like DNS servers and domain names * Works alongside or instead of Stateless Address Autoconfiguration (SLAAC) * Simplifies network management in enterprise and ISP environments .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **How it works (in simple steps):** * Device joins the network – It sends a DHCPv6 Solicit message to find a DHCPv6 server. * Server responds – The server replies with an Advertise message offering configuration. * Device requests configuration – It sends a Request message to accept the offer. * Server confirms – The server sends a Reply with the assigned IPv6 address and settings. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Where is DHCPv6 used?** * Enterprise networks – For centralized control of IPv6 address assignments * ISPs – To assign IPv6 addresses to customer devices * Data centers – For managing large-scale IPv6 deployments * Dual-stack networks – Where both IPv4 and IPv6 are used .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which OSI layer does this protocol belong to?** * DHCPv6 operates at the Application Layer (Layer 7) of the OSI model. * It provides network configuration services directly to devices. * Although it uses UDP (Layer 4) for transport (ports 546 and 547), the protocol’s logic and message handling occur at Layer 7. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **IS DHCPv6 windows specific?** * No, DHCPv6 is **not Windows-specific**. * Supported by various operating systems including Windows. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **IS DHCPv6 Linux Specific?** * No, DHCPv6 is **not Linux-specific**. * Linux systems support DHCPv6 clients and servers. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which Transport Protocol is used by DHCPv6?** * DHCPv6 uses **UDP (User Datagram Protocol)** as its transport protocol. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which Port is used by DHCPv6?** * DHCPv6 uses UDP ports **546** (client) and **547** (server). .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is DHCPv6 using Client server model?** * Yes, DHCPv6 follows a **client-server model**. * The client requests IPv6 configuration and the server provides addresses and options. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`DHCPv6 Version&RFC Details ` * :ref:`DHCPv6 Basic Setup on Ubuntu using IPv6 ` * :ref:`DHCPv6 Protocol Packet Details ` * :ref:`DHCPv6 Usecases ` * :ref:`DHCPv6 Basic Features ` * :ref:`DHCPv6 Feature : IPv6 Address Assignment ` * :ref:`DHCPv6 Feature : Prefix Delegation ` * :ref:`DHCPv6 Feature : Stateless Configuration ` * :ref:`DHCPv6 Feature : Lease Management ` * :ref:`DHCPv6 Feature : DHCPv6 Options ` * :ref:`DHCPv6 Feature : Reconfigure Support ` * :ref:`DHCPv6 Feature : Relay Agent Support ` * :ref:`DHCPv6 Feature : Authentication Support ` * :ref:`DHCPv6 Feature : Dual Stack Coexistence ` * :ref:`DHCPv6 Feature : Support for Mobile & IoT ` * :ref:`Reference links ` .. _DHCPv6_step1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. _DHCPv6_step2: .. tab-set:: .. tab-item:: Terminology * Terminology .. _DHCPv6_step3: .. tab-set:: .. tab-item:: Version Info * Version Info .. _DHCPv6_step5: .. tab-set:: .. tab-item:: DHCPv6 Version&RFC Details .. csv-table:: :file: ./DHCPv6/DHCPv6_Version_&_RFC_Details.csv :widths: 10,10,10,30 :header-rows: 1 .. _DHCPv6_step20: .. tab-set:: .. tab-item:: Test Case 1: Successful Stateful Address Lease (DHCPv6) **verify that a client obtains a unique IPv6 address and other parameters from a DHCPv6 server** **Server (Machine A) — DHCP Server Setup** * Step-1 : Install the DHCPv6 server Assign a static IPv6 address to the server's interface and bring it up. .. code-block:: shell test:~$ sudo ip -6 addr add 2001:db8:1::1/64 dev enp0s8 test:~$ sudo ip link set enp0s8 up Install the isc-dhcp-server package. .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-server * Step-2 : Configure the DHCP server daemon .. code-block:: shell test:~$ sudo nano /etc/dhcp/dhcpd6.conf default-lease-time 600; max-lease-time 7200; subnet6 2001:db8:1::/64 { range6 2001:db8:1::100 2001:db8:1::199; option dhcp6.name-servers 2001:4860:4860::8888, 2001:4860:4860::8844; option dhcp6.domain-search "example.com"; } .. note:: * This configuration defines the subnet and the IP address range for clients. * Step-3 : Enable IPv6 forwarding and RA processing Set kernel parameters to enable IPv6 forwarding and allow the interface to process Router Advertisements. .. code-block:: shell test:~$ sudo sysctl -w net.ipv6.conf.all.forwarding=1 test:~$ sudo sysctl -w net.ipv6.conf.enp0s8.accept_ra=2 * Step-4 : Configure the interface for the DHCPv6 server .. code-block:: shell test:~$ sudo nano /etc/default/isc-dhcp-server6 INTERFACESv6="enp0s8" .. note:: * The server will listen for DHCP requests on the `enp0s8` interface. * Step-5 : Restart and check the status of the DHCP server .. code-block:: shell test:~$ sudo systemctl restart isc-dhcp-server6 test:~$ sudo systemctl status isc-dhcp-server6 .. note:: * The server should be running without any errors and listening for DHCP requests. **Client (Machine B) — DHCP Client Setup** * Step-1 : Install the DHCP client software .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-client * Step-2 : Request an IPv6 address from the server .. code-block:: shell test:~$ sudo dhclient -6 -v enp0s8 .. note:: * The `-v` flag provides verbose output to show the SARR process. * The client should receive an IPv6 address within the configured range of 2001:db8:1::100 to 2001:db8:1::199. * Step-3 : Wireshark Capture :download:`Download wireshark capture ` .. note:: * Observe the server logs to confirm a full Solicit -> Advertise -> Request -> Reply (SARR) message exchange. * The Reply message should contain the server and client identifiers, valid and preferred lifetimes, and the configured options. .. tab-item:: Test Case 2: Successful Stateless Information Retrieval (DHCPv6) **verify that a client can obtain configuration information without an IPv6 address from a DHCPv6 server** **Server (Machine A) — DHCP Server Setup** * Step-1 : Install the DHCPv6 server Assign a static IPv6 address to the server's interface and bring it up. .. code-block:: shell test:~$ sudo ip -6 addr add 2001:db8:1::1/64 dev enp0s8 test:~$ sudo ip link set enp0s8 up Install the isc-dhcp-server package. .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-server * Step-2 : Configure the DHCPv6 server daemon .. code-block:: shell test:~$ sudo nano /etc/dhcp/dhcpd6.conf subnet6 2001:db8:1::/64 { option dhcp6.name-servers 2001:4860:4860::8888; option dhcp6.domain-search "example.com"; } .. note:: * This file include configuration options but without an address range. * Step-3 : Enable IPv6 forwarding and RA processing Set kernel parameters to enable IPv6 forwarding and allow the interface to process Router Advertisements. .. code-block:: shell test:~$ echo 1 | sudo tee /proc/sys/net/ipv6/conf/all/forwarding test:~$ sudo sysctl -w net.ipv6.conf.enp0s8.accept_ra=2 * Step-4 : Configure the interface for the DHCPv6 server .. code-block:: shell test:~$ sudo nano /etc/default/isc-dhcp-server6 INTERFACESv6="enp0s8" .. note:: * The server will listen for DHCP requests on the `enp0s8` interface. * Step-5 : Restart and check the status of the DHCP server .. code-block:: shell test:~$ sudo systemctl restart isc-dhcp-server6 test:~$ sudo systemctl status isc-dhcp-server6 .. note:: * The server should be running without any errors and listening for DHCP requests. **Client (Machine B) — DHCP Client Setup** * Step-1 : Install the DHCP client software .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-client * Step-2 : Request configuration information in stateless mode .. code-block:: shell test:~$ sudo dhclient -6 -S -v enp0s8 .. note:: * The `-v` flag provides verbose output to show the SARR process. * Use the -S flag to send an Information-Request message instead of a full address request. * No IPv6 address should be assigned to the client by the DHCPv6 server. The client will use its link-local address for communication. * Step-3 : Wireshark observation .. note:: * Observe the message exchange. The client sends an Information-Request message to a multicast address. * The server responds with a Reply message containing the configured options. * Step-4 : Wireshark Capture :download:`Download wireshark capture ` .. tab-item:: Test Case 3: Address Renewal (Renew, Reply) **verify that a client renews its lease with the original DHCPv6 server before expiration** **Server (Machine A) — DHCP Server Setup** * Step-1 : Install the DHCPv6 server Assign a static IPv6 address to the server's interface and bring it up. .. code-block:: shell test:~$ sudo ip -6 addr add 2001:db8:1::1/64 dev enp0s8 test:~$ sudo ip link set enp0s8 up Install the isc-dhcp-server package. .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-server * Step-2 : Configure the DHCP server daemon .. code-block:: shell test:~$ sudo nano /etc/dhcp/dhcpd6.conf preferred-lifetime 120; option dhcp6-renewal-time 60; option dhcp6-rebinding-time 90; subnet6 2001:db8:1::/64 { range6 2001:db8:1::100 2001:db8:1::199; option dhcp6.name-servers 2001:4860:4860::8888; } .. note:: * This file configure short lease times to easily observe the renewal process. * Step-3 : Clean up old lease files Remove any existing server lease files to ensure a clean test state. .. code-block:: shell test:~$ sudo rm /var/lib/dhcp/dhcpd6.leases * Step-4 : Configure the interface for the DHCPv6 server .. code-block:: shell test:~$ sudo nano /etc/default/isc-dhcp-server6 INTERFACESv6="enp0s8" .. note:: * The server will listen for DHCP requests on the `enp0s8` interface. * Step-5 : Restart and check the status of the DHCP server test:~$ sudo systemctl restart isc-dhcp-server test:~$ sudo systemctl status isc-dhcp-server .. note:: * The server should be running without any errors and listening for DHCP requests. **Client (Machine B) — DHCP Client Setup** * Step-1 : Install the DHCP client software .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-client * Step-2 : Clean up old lease files and request an IPv6 address Remove any existing client lease files, then run the DHCPv6 client. .. code-block:: shell test:~$ sudo rm /var/lib/dhcp/dhclient6.leases test:~$ sudo dhclient -6 -v enp0s8 .. note:: * The `-v` flag provides verbose output to show the SARR process. * Observe the initial SARR packet exchange. The client should obtain an IPv6 address from the server. * Step-3 : Wireshark Capture :download:`Download wireshark capture ` .. note:: * Wait for the renewal timer (T1) to expire. * The client should send a Renew message directly to the server, and the server should respond with a Reply message to extend the lease time. * Verify that the client's IPv6 address and DUID remain the same. .. tab-item:: Test Case 4: Address Rebind (Rebind) **verify that a client can rebind its lease when the original server is unavailable** **Server (Machine A) — DHCP Server Setup** * Step-1 : Install the DHCPv6 server Assign a static IPv6 address to the server's interface and bring it up. .. code-block:: shell test:~$ sudo ip -6 addr add 2001:db8:1::1/64 dev enp0s8 test:~$ sudo ip link set enp0s8 up Install the isc-dhcp-server package. .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-server * Step-2 : Configure the DHCP server daemon .. code-block:: shell test:~$ sudo nano /etc/dhcp/dhcpd6.conf preferred-lifetime 120; option dhcp6-renewal-time 60; option dhcp6-rebinding-time 90; subnet6 2001:db8:1::/64 { range6 2001:db8:1::100 2001:db8:1::199; option dhcp6.name-servers 2001:4860:4860::8888; } .. note:: * This file configure short lease times, which will make it easier to observe the rebind process. * Step-3 : Clean up old lease files Remove any existing server lease files to ensure a clean test state. .. code-block:: shell test:~$ sudo rm /var/lib/dhcp/dhcpd6.leases * Step-4 : Configure the interface for the DHCPv6 server .. code-block:: shell test:~$ sudo nano /etc/default/isc-dhcp-server6 INTERFACESv6="enp0s8" .. note:: * The server will listen for DHCP requests on the `enp0s8` interface. * Step-5 : Restart and check the status of the DHCP server test:~$ sudo systemctl restart isc-dhcp-server test:~$ sudo systemctl status isc-dhcp-server .. note:: * The server should be running without any errors and listening for DHCP requests. **Client (Machine B) — DHCP Client Setup** * Step-1 : Install the DHCP client software .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-client * Step-2 : Clean up old lease files and request an IPv6 address Remove any existing client lease files, then run the DHCPv6 client. .. code-block:: shell test:~$ sudo rm /var/lib/dhcp/dhclient6.leases test:~$ sudo dhclient -6 -v enp0s8 .. note:: * The `-v` flag provides verbose output to show the SARR process. * Observe the initial SARR packet exchange. The client should obtain an IPv6 address from the server. * Step-3 : Simulate server unavailability After the client has received an IPv6 address, stop the DHCPv6 server on the server VM. .. code-block:: shell test:~$ sudo systemctl stop isc-dhcp-server6 * Step-4 : Wireshark Capture :download:`Download wireshark capture ` .. note:: * Wait until the rebinding timer (T2) expires. * Observe the network traffic for a Rebind packet sent from the client. * The Rebind packet should be sent to a multicast address since the client cannot reach the original server. .. tab-item:: Test Case 5: Client Release Address (Release, Reply) **verify that a client can explicitly release its assigned IPv6 Address** **Server (Machine A) — DHCP Server Setup** * Step-1 : Install the DHCPv6 server Assign a static IPv6 address to the server's interface and bring it up. .. code-block:: shell test:~$ sudo ip -6 addr add 2001:db8:1::1/64 dev enp0s8 test:~$ sudo ip link set enp0s8 up Install the isc-dhcp-server package. .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-server * Step-2 : Configure the DHCP server daemon .. code-block:: shell test:~$ sudo nano /etc/dhcp/dhcpd6.conf preferred-lifetime 120; option dhcp6-renewal-time 60; option dhcp6-rebinding-time 90; subnet6 2001:db8:1::/64 { range6 2001:db8:1::100 2001:db8:1::199; option dhcp6.name-servers 2001:4860:4860::8888; } .. note:: * This file configure the address range and options. * Step-3 : Clean up old lease files Remove any existing server lease files to ensure a clean test state. .. code-block:: shell test:~$ sudo rm /var/lib/dhcp/dhcpd6.leases * Step-4 : Configure the interface for the DHCPv6 server .. code-block:: shell test:~$ sudo nano /etc/default/isc-dhcp-server6 INTERFACESv6="enp0s8" .. note:: * The server will listen for DHCP requests on the `enp0s8` interface. * Step-5 : Restart and check the status of the DHCP server test:~$ sudo systemctl restart isc-dhcp-server test:~$ sudo systemctl status isc-dhcp-server .. note:: * The server should be running without any errors and listening for DHCP requests. **Client (Machine B) — DHCP Client Setup** * Step-1 : Install the DHCP client software .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-client * Step-2 : Clean up old lease files and request an IPv6 address Remove any existing client lease files, then run the DHCPv6 client to obtain an IPv6 address from the server. .. code-block:: shell test:~$ sudo rm /var/lib/dhcp/dhclient6.leases test:~$ sudo dhclient -6 -v enp0s8 .. note:: * The `-v` flag provides verbose output to show the SARR process. * Observe the initial SARR packet exchange. The client should obtain an IPv6 address from the server. * Step-3 : Release the assigned IPv6 address After the client has successfully acquired an IPv6 address, run the following command to explicitly release it. .. code-block:: shell test:~$ sudo dhclient -6 -r enp0s8 * Step-4 : Wireshark Capture :download:`Download wireshark capture ` .. note:: * Verify that the client sends a Release message to the server, and the server responds with a Reply message. * On the client, the IPv7 address should be removed from the interface, and on the server, the address in the lease file should be marked as "Deallocated". .. tab-item:: Test Case 6: Client Confirms Address (Confirm, Reply) **verify that a client sends a confirm message to validate its address on a new link or after a network change** **Server (Machine A) — DHCP Server Setup** * Step-1 : Install the DHCPv6 server Assign a static IPv6 address to the server's interface and bring it up. .. code-block:: shell test:~$ sudo ip -6 addr add 2001:db8:1::1/64 dev enp0s8 test:~$ sudo ip link set enp0s8 up Install the isc-dhcp-server package. .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-server * Step-2 : Configure the DHCP server daemon .. code-block:: shell test:~$ sudo nano /etc/dhcp/dhcpd6.conf default-lease-time 600; max-lease-time 7200; subnet6 2001:db8:1::/64 { range6 2001:db8:1::100 2001:db8:1::199; option dhcp6.name-servers 2001:4860:4860::8888; option dhcp6.domain-search "example.com"; } * Step-3 : Enable IPv6 forwarding and RA processing Set kernel parameters to enable IPv6 forwarding and allow the interface to process Router Advertisements. .. code-block:: shell test:~$ sudo sysctl -w net.ipv6.conf.all.forwarding=1 test:~$ sudo sysctl -w net.ipv6.conf.enp0s8.accept_ra=2 * Step-4 : Configure the interface for the DHCPv6 server .. code-block:: shell test:~$ sudo nano /etc/default/isc-dhcp-server6 INTERFACESv6="enp0s8" .. note:: * The server will listen for DHCP requests on the `enp0s8` interface. * Step-5 : Restart and check the status of the DHCP server test:~$ sudo systemctl restart isc-dhcp-server test:~$ sudo systemctl status isc-dhcp-server .. note:: * The server should be running without any errors and listening for DHCP requests. **Client (Machine B) — DHCP Client Setup** * Step-1 : Install the DHCP client and obtain an IP Install the isc-dhcp-client and run dhclient to obtain an IPv6 address. .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-client test:~$ sudo dhclient -6 -v enp0s8 * Step-2 : Trigger the Confirm message Run the dhclient command again. This will cause the client to send a Confirm message to validate its address. .. code-block:: shell test:~$ sudo dhclient -6 -v enp0s8 .. note:: * The `-v` flag provides verbose output to show the SARR process. * Observe the network traffic. The client sends a Confirm message to the multicast address. The server responds with a Reply message. * The reply's status will indicate if the address is still valid ("Success") or if it is "Not on Link". * Step-3 : Wireshark Capture :download:`Download wireshark capture ` .. tab-item:: Test Case 7: Client Obtains Address via Relay Agent **verify a client can obtain an IPv6 Address and options when separated from a DHCPv6 server by a Relay Agent** **Network Topology** * The test environment consists of a DHCPv6 server, a DHCPv6 relay agent, and a client, separated by two different subnets. * DHCPv6 Server: Interface on 2001:db8:0:1::/64. * DHCPv6 Relay Agent: Connects 2001:db8:0:1::/64 to 2001:db8:0:2::/64. * DHCPv6 Client: Interface on 2001:db8:0:2::/64. **Server Setup** * Step-1 : Install the DHCPv6 server Assign a static IPv6 address to the server's interface and bring it up. .. code-block:: shell test:~$ sudo ip -6 addr add 2001:db8:0:1::10/64 dev enp0s8 test:~$ sudo ip link set enp0s8 up Install the isc-dhcp-server package. .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-server * Step-2 : Configure the DHCP server daemon .. code-block:: shell test:~$ sudo nano /etc/dhcp/dhcpd6.conf default-lease-time 600; max-lease-time 7200; log-facility local7; subnet6 2001:db8:0:2::/64 { range6 2001:db8:0:2::100 2001:db8:0:2::200; option dhcp6.name-servers 2001:db8:0:1::19; option dhcp6.domain-search "mydomain.local"; } subnet6 2001:db8:0:1::/64 {} .. note:: * This file configure both subnets. * Step-3 : Configure the interface for the DHCPv6 server .. code-block:: shell test:~$ sudo nano /etc/default/isc-dhcp-server6 INTERFACESv6="enp0s8" .. note:: * The server will listen for DHCP requests on the `enp0s8` interface. * Step-4 : Restart and check the status of the DHCP server test:~$ sudo systemctl restart isc-dhcp-server test:~$ sudo systemctl status isc-dhcp-server .. note:: * The server should be running without any errors and listening for DHCP requests. **Relay Agent Setup** * Step-1 : Install the DHCPv6 relay agent Assign IPv6 addresses to both interfaces of the relay agent. .. code-block:: shell test:~$ sudo ip -6 addr add 2001:db8:0:1::1/64 dev enp0s3 test:~$ sudo ip -6 addr add 2001:db8:0:2::1/64 dev enp0s8 Install the isc-dhcp-relay package. .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-relay * Step-2 : Configure the DHCP Relay daemon .. code-block:: shell test:~$ sudo nano /etc/default/isc-dhcp-relay OPTIONS="-6" LOWER_INTERFACES="enp0s8" UPPER_INTERFACES="enp0s3" SERVERS="2001:db8:0:1::10" .. note:: * This file Configure the relay agent's interfaces and the server's IP address. * Step-3 : Start the relay agent service test:~$ sudo systemctl daemon-reload test:~$ sudo systemctl restart isc-dhcp-relay .. note:: * The server should be running without any errors **Client Setup and Verification** * Step-1 : Install the DHCP client .. code-block:: shell test:~$ sudo apt update test:~$ sudo apt install isc-dhcp-client * Step-2 : Request an IPv6 address .. code-block:: shell test:~$ sudo dhclient -6 -v enp0s8 .. note:: * The `-v` flag provides verbose output to show the SARR process. * Observe the initial SARR packet exchange. The client should obtain an IPv6 address from the server. * Step-3 : Wireshark Capture * Server capture :download:`Download wireshark capture ` * Client capture :download:`Download wireshark capture ` .. note:: * The client sends a Solicit message. The relay agent encapsulates it in a Relay-Forward message and sends it to the server. * The server responds with a Reply message, which the relay agent encapsulates in a Relay-Reply and forwards back to the client. .. _DHCPv6_step6: .. tab-set:: .. tab-item:: DHCPv6 Protocol Packet Details **DHCPv6 Solicit** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails1.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Advertise** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails2.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Request** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails3.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Confirm** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails4.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Renew** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails5.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Rebind** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails6.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Reply** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails7.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Release** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails8.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Decline** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails9.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Reconfigure** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails10.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Information-Request** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails11.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Relay-Forward** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails12.csv :widths: 10,20,30,10 :header-rows: 1 **DHCPv6 Relay-Reply** .. csv-table:: :file: ./DHCPv6/DHCPv6_packetdetails13.csv :widths: 10,20,30,10 :header-rows: 1 .. _DHCPv6_step7: .. tab-set:: .. tab-item:: DHCPv6 Usecases .. csv-table:: :file: ./DHCPv6/DHCPv6_Use_Cases.csv :widths: 10,20,30 :header-rows: 1 .. _DHCPv6_step8: .. tab-set:: .. tab-item:: DHCPv6 Basic Features .. csv-table:: :file: ./DHCPv6/DHCPv6_Basic_Features.csv :widths: 10,10,30 :header-rows: 1 .. _DHCPv6_step9: .. tab-set:: .. tab-item:: DHCPv6 Feature : IPv6 Address Assignment **IPv6 Address Assignment - Testcases** .. csv-table:: :file: ./DHCPv6/DHCPv6_Feature1_IPv6_Address_Assignment_Test_Cases.csv :widths: 10,10,30,20 :header-rows: 1 .. _DHCPv6_step10: .. tab-set:: .. tab-item:: DHCPv6 Feature : Prefix Delegation **Prefix Delegation - Testcases** .. csv-table:: :file: ./DHCPv6/DHCPv6_Feature2_Prefix_Delegation_Test_Cases.csv :widths: 10,10,30,20 :header-rows: 1 .. _DHCPv6_step11: .. tab-set:: .. tab-item:: DHCPv6 Feature : Stateless Configuration **Stateless Configuration - Testcases** .. csv-table:: :file: ./DHCPv6/DHCPv6_Feature3_Stateless_Configuration_Test_Cases.csv :widths: 10,10,30,20 :header-rows: 1 .. _DHCPv6_step12: .. tab-set:: .. tab-item:: DHCPv6 Feature : Lease Management **Lease Management - Testcases** .. csv-table:: :file: ./DHCPv6/DHCPv6_Feature4_Lease_Management_Test_Cases.csv :widths: 10,10,30,20 :header-rows: 1 .. _DHCPv6_step13: .. tab-set:: .. tab-item:: DHCPv6 Feature : DHCPv6 Options **DHCPv6 Options - Testcases** .. csv-table:: :file: ./DHCPv6/DHCPv6_Feature5_DHCPv6_Options_Test_Cases.csv :widths: 10,10,30,20 :header-rows: 1 .. _DHCPv6_step14: .. tab-set:: .. tab-item:: DHCPv6 Feature : Reconfigure Support **Reconfigure Support - Testcases** .. csv-table:: :file: ./DHCPv6/DHCPv6_Feature6_Reconfigure_Support_Test_Cases.csv :widths: 10,10,30,20 :header-rows: 1 .. _DHCPv6_step15: .. tab-set:: .. tab-item:: DHCPv6 Feature : Relay Agent Support **Relay Agent Support - Testcases** .. csv-table:: :file: ./DHCPv6/DHCPv6_Feature7_Relay_Agent_Support_Test_Cases.csv :widths: 10,10,30,20 :header-rows: 1 .. _DHCPv6_step16: .. tab-set:: .. tab-item:: DHCPv6 Feature : Authentication Support **Authentication Support - Testcases** .. csv-table:: :file: ./DHCPv6/DHCPv6_Feature8_Authentication_Support_Test_Cases.csv :widths: 10,10,30,20 :header-rows: 1 .. _DHCPv6_step17: .. tab-set:: .. tab-item:: DHCPv6 Feature : Dual Stack Coexistence **Dual Stack Coexistence - Testcases** .. csv-table:: :file: ./DHCPv6/DHCPv6_Feature9_Dual_Stack_Coexistence_Test_Cases.csv :widths: 10,10,30,20 :header-rows: 1 .. _DHCPv6_step18: .. tab-set:: .. tab-item:: DHCPv6 Feature : Support for Mobile & IoT **Support for Mobile & IoT - Testcases** .. csv-table:: :file: ./DHCPv6/DHCPv6_Feature10_Support_for_Mobile_&_IoT_Test_Cases.csv :widths: 10,10,30,20 :header-rows: 1 .. _DHCPv6_step19: .. tab-set:: .. tab-item:: Reference links * Reference links