Showing results for 
Search instead for 
Did you mean: 

Part 1: Implementing DHCPv6 - Stateful DHCPv6




    This is the first document in the document series Implementing DHCPv6. In this we will see how configure Stateful DHCPv6 in Cisco IOS routers.

    In Stateful DHCP the adddress  assignment is centrally managed and clients must obtain configuration  information such as address autoconfiguration and neighbor discovery  that is not available through protocols.DHCPv6 can be implemented in two ways : Rapid-Commit and Normal Commit mode.


        In Rapid-Commit mode , the DHCP client obtain configuration parameters from the server through a rapid two message exchange (solicit and reply).

        In Normal-Commit mode, the DHCP client uses four message  exchanges (solicit, advertise, request and reply). By default normal-commit is used.


    In order to use the rapid-commit option, it has to be enabled by both client and server so that it uses two-message exchange.




    In this configuration example,the router R1 is configured as DHCP server while router R2 is configured as DHCPv6Client.


    Note: All configurations are tested in a lab environment involving ASR 1000 series router as DHCP server and Cisco 2800 series router as DHCP Clients.


    Topology Diagram


    Summary Steps
    Server Configuration

    In Global Configuration Mode

    1. ipv6 unciast-routing
    2. ipv6 dhcp pool <pool name>
    3. address prefix <specify address prefix> lifetime <infinite> <infinite>
    4. dns-server <specify the dns server address>
    5. domain-name <specify the domain name>
    6. exit

    In Interface Configuration Mode

    1. ipv6 address <specify IPv6 Address>
    2. ipv6 dhcp server <server name>rapid-commit
    Client Configuration

    In Global Configuration Mode

    1. enable
    2. configure terminal
    3. ipv6 unicast-routing

    In Interface Configuration Mode

    1. ipv6 address dhcp rapid commit
    2. ipv6 enable
    3. exit




    DHCPv6 ServerDHCPv6 Client

    version 3.4S
    hostname R1
    ipv6 unicast-routing
    ipv6 cef
    ipv6 dhcp pool test
    address prefix 2010:AA01:10::/64 lifetime infinite infinite
    dns-server AAAA:BBBB:10FE:100::15
    dns-server 2010:AA01::15
    interface G0/0/1
    no ip address
    duplex auto
    speed auto
    ipv6 address 2010:AA01:10::2/64
    ipv6 dhcp server test rapid-commit

    version 15.0
    hostname R2
    ipv6 unicast-routing
    ipv6 cef
    interface FastEthernet0/1
    no ip address
    duplex auto
    speed auto
    ipv6 address dhcp rapid-commit
    ipv6 enable


    Note: To configure the DHCPv6 in normal-commit mode, use the same command without "rapid-commit" keyword.Also ensure that you explicitly mention the IPv6 enable command in the client interface because, if it is not not enabled, the client will not send a solicit message.

    Verify Commands
    show ipv6 dhcp pool


    To display the DHCPv6 pool information, in the DHCPv6 server use this command. The output shows that the number of active clients is 1 and  also displays other configuration parameter information, such as domain  name server address and preferred life time information.


    R1#show ipv6 dhcp pool
    DHCPv6 pool: test
      Address allocation prefix: 2010:AA01:10::/64 valid 4294967295 preferred 4294967295 (1 in use, 0 conflicts)
      DNS server: AAAA:BBBB:10FE:100::15
      DNS server: 2010:AA01::15
      Domain name:
      Active clients: 1


    show ipv6 dhcp binding


    To display the information information about the clients, which includes their DUIDs, IAPDs, prefixes, and preferred and valid lifetimes.


    R2#show ipv6 dhcp binding
    Client: FE80::C801:88FF:FEAC:1C
      DUID: 00030001CA0188AC0000
      Username : unassigned
      IA NA: IA ID 0x00040001, T1 43200, T2 69120
        Address: 2010:AA01:10:0:D16D:EC61:EDCB:8BD1
         preferred lifetime INFINITY, , valid lifetime INFINITY,


    show ipv6 dhcp interface

    This command shows that interface Fa0/1 is configured in client  mode and also shows the details of the DNS server address and the domain  name that it received from the DHCP server.


    R2#show ipv6 dhcp interface
    FastEthernet1/0 is in client mode
      Prefix State is IDLE
      Address State is OPEN
      Renew for address will be sent in 11:17:16
      List of known servers:
        Reachable via address: FE80::C800:88FF:FEAC:1C
        DUID: 00030001CA0088AC0000
        Preference: 0
        Configuration parameters:
          IA NA: IA ID 0x00040001, T1 43200, T2 69120
            Address: 2010:AA01:10:0:D16D:EC61:EDCB:8BD1/128
                    preferred lifetime INFINITY, valid lifetime INFINITY
          DNS server: AAAA:BBBB:10FE:100::15
          DNS server: 2010:AA01::15
          Domain name:
          Information refresh time: 0
      Prefix Rapid-Commit: disabled
      Address Rapid-Commit: enabled



    Routing Information Protocol

    Hi Sivagami,

    This presentation is extremely wonderful. But just one queury:

    Let us assume I use DHCPv6 on a LAN and I successfully obtain an IPv6 address, DNS and domain name. But where is the subnet mask?

    Without a subnet mask, how would a PC be able to communicate with other PCs in the LAN [or] be able to communicate outside the LAN? I would appreciate a clarification on this.


    Community Member


    The subnet mask is /64

    Harold Ritter
    Cisco Employee

    Hi Arnulfo,

    DHCPv6 does not carry a subnet mask, so it is assumed to be a /128 by default. If the prefix is advertised via SLAAC, the host will pick up the mask from the router advertisement (RA), which will be a /64 as you mentioned. If the prefix is not advertised via SLAAC, the subnet mask used the host will remain /128.



    I have a 1841 router with 12.4 (15 T) ios . Is this ios not support Stateful ipv6 dhcp. It not show address option in dhcp pool configuration. & stateless dhcp work properly.

    Thank you it is very useful but I have a question in a different scenario  I want to config one DHCPv6 server using Packet Tracer and with multiple routers the router takes IP addresses from a server and distribute to computers .I have done that with IPv4 using IP helper but in IPv6 there is no Ip helper


    I created in local pool but it did not  work  .

    Can you help me to understand .?