Cisco DHCPv6 Server Configuration

On a stateless DHCPv6 server, no “state” is maintained by the DHCP server. That’s why this value always shows 0.

Thanks @ReneMolenaar great explanation! I’m glad I subscribed with Networklessons.com

MMmmmmm this is really good stuff I am two days from taking my CCNP Route and I can tell you there is lots of yummy stuff in here a must read for certification seekers!!!

Hello Brian

Great to hear you have an appetite for what is being served! :stuck_out_tongue: So it’s been three days. How did the exam go?

Laz

I passed the CCNP ROUTE 300-101 these lessons being one of the biggest factors to my success on it!

2 Likes

The version of IOS I’m using doesn’t have the ‘ipv6 address dhcp’ command…so does that mean it can’t get its IPv6 address via DHCPv6?

Hello Jeremy

Here you can find in which IOS versions the ipv6 address dhcp command was introduced and you can compare it with the IOS you’re running:

If your IOS is older, you may need to upgrade to get this feature to work.

I hope this has been helpful!

Laz

Hello Andrew,
i am just reviewing this lesson and i just came across the answer that you gave Mahmoud, but i am still not clear on it. I am using 3 Cisco IOSv routers 15.6(2)T in my gns3 lab and i am not sure where the last 4 octects in the address came from. Can you please expand some more on your answer. Same senario using stateful configuration.

Router#sh ipv6 int br
GigabitEthernet0/0     [up/up]
    FE80::E05:9BFF:FE76:D00
    2001:1111:1111:1111:79B1:61A1:85A2:5DD2

Thanks,
Cecil

Hello Cecil

Windows operating systems by default use an IPv6 parameter called RandomizeIdentifier .
This causes all IPv6 autoconfig procedures either with or without DHCPv6 to use a randomly generated identifier. You can disable this feature in Windows as shown in this link.

For convenience, I show the contents of this link below:

I hope this has been helpful!

Laz

2 Likes

Hi Laz,
So if i am understanding you correctly, this ipv6 parameter called a RandomizeIdentifier, if enabled can assign any ipv6 address to a pc within a scope of available ipv6 addresses. Does this not make it harder to manage the ipv6 address pool or it does not matter since so many ipv6 addresses are available?

Hi @doogle1b1,

The idea behind using randomly generated interface ID (host portion) instead of using EUI-64 was solely based on privacy/security concerns for users, I think it’s because a bad guy can use the packets from users who are using (EUI-64) to track the actual physical computer. However with EUI-64, network engineers can easily track an IPv6 address to an end-device using the unique MAC address.

@lagapidis can clarify! :slight_smile:

1 Like

Hi Sales2161,
Thanks for the reply. Maybe i am thinking about this wrong. With ipv4 you create a dhcp pool and then you assign a range of ip address to use with the pool so you know where the clients are getting the ip address from. In the example, Rene created the address pool STATEFUL, defined the prefix, address prefix 2001:1111:1111:1111::/64, but regarding the host IPs’, i am still not clear where they are coming from. There is no defined pool where the address are coming from. With the Randomizeidentifier, where is it pulling ipv6 address from? Just assigning any available host IPs’?

Hello @doogle1b1,

Let’s say I create an ipv4 dhcp pool with a 192.168.1.0/24 network, it means my hosts will have a total of 2^8-2=254 addresses (if I didn’t exclude any static IP with ip dhcp excluded-address command) to pull from.

Now let’s go with IPV6, as we know IPV6 has 128 bits [64 bits for network id and 64 bits for host/interface id]. Rene created an IPv6 network **2001:1111:1111:1111:0000:0000:0000:0000/64 which leaves us with 4 hextets, 64 bits for our hosts to use. If we calculate, that’s 2^64 =18,446,744,073,709,551,616 addresses available to use.

Now back to your question, "With the Randomizeidentifier, where is it pulling ipv6 address from? " your operating system will take your network ID 2001:1111:1111:1111and add the randomly generated 64 bits to make it a full ipv6 address (128 bits) and assign them to your host or an interface. The results can be something like the one you mentioned above 2001:1111:1111:1111:79B1:61A1:85A2:5DD2

I hope you got it now :slight_smile:

1 Like

Hello Cecil, sales2161

Sales has got it right. The prefix just locks in the first 64 bits of the address, or the “network portion” of the address if we want to use IPv4 terminology. The rest can be random, or EUI-64 or even be assigned statically by a DHCPv6 server. It can be any of these because IPv6 also employs the Duplicate Address Detection (DAD)mechanisms, a part of the Neighbor Discovery (ND) Protocol used in IPv6, to ensure that no duplicates have been assigned. In this sense, with IPv6 you don’t have to keep track and manage addresses as much, the IPv6 mechanisms here take care of that.

More about DAD and ND can be found at this lesson:

I hope this as well as sales2161’s posts have been helpful!

Laz

1 Like

Hello sales2161,
Thanks for the feed back. I totally understand now.

Thanks.

2 Likes

Hi Laz,
Got it now. Thanks for the reply.
Thanks

1 Like

Hii Rene,

How can I configure DHCPv6 server to send a default route to a client?
or a default router address like in IPv4 DHCP?

Hello Roshan

For IPv6, the configuration for the default gateway is received from the router advertisement (RA) and not from the DHCP server. This is the way IPv6 functions by design. You can find out more information about the RA in the following lesson.

I hope this has been helpful!

Laz

Hi Rene and staff,

reading the lessons (and other doc), i find an ambiguity between autoconfig and SLAAC
In the DHCPv6 lesson SLAAC is defined as DHCPv6 stateless, is not it ?
"
DHCPv6 supports two different methods…Stateless configuration (also known as SLAAC…StateLess AutoConfiguration)
"
Reading this, SLAAC is supposed to be only when you use DHCPv6 stateless with flag M=0 and flag O=1
So autoconfig is not SLAAC ? (it seems that in other places autoconfig is (part) of SLAAC ? am i wrong ?)
This is just semantic, but we must have the same concepts under the same words

So the way i clarify the things in my mind is:

SLAAC is either just autoconfig or autoconfig + stateless DHCP(v6)

When it is just autoconfig (RA with M=0, O=0) the client has 2 address (link-local and GUA from the prefix send by the router + IID via EUI or random).
In autoconfig, i found 2 subcases: if you use default or not. With default a default route is inserted in the RIB of the client, the GW is the link-local of the client. If you dont use default there is no GW via autoconfig, just 2 address

IF SLAAC is (autoconfig + DHCP stateless), the client will obtain the same info like with DHCP stateful BUT there is no binding stored in the server DHCP (i suppose this could be interesting if the client is an object for example: am i right ? because you cannot have binding for too many objects)
At this step of my learning, and when i consider SLAAC as (autoconfig + DHCP stateless), i am not sure what is the default GW for the client: is it its link-local or its GW is a GUA address learned via DHCP ?

The main thing is to know if i am right or wrong with SLAAC ?

Regards

1 Like

Hello Dominique

Your description is correct. SLAAC is a feature that provides the ability to address a host based on a network prefix that is advertised from the local network router using Router Advertisements (RAs).

As you state there are three options:

  • use only SLAAC (M=0 O=0)
  • use SLAAC plus some additional DHCP options such as DNS (M=0 O=1)
  • use only DHCPv6 for all features and options (M=1 O=?)

So SLAAC is just the feature that allows a host to gain IPv6 addresses and default GW from the local router. In other words, it provides the bare essentials for IPv6 connectivity.
SLAAC is still SLAAC even if O=1. It still does exactly the same thing, except that it indicates to the host and says “Go to a DHCPv6 server to find more network parameters”. Once it obtains its IPv6 address and default gateway, the host will then find and use the DHCPv6 service (DHCPv6 stateless) for additional parameters.
SLAAC is not used at all if DHCPv6 stateful is used. This is similar to the traditional DHCP for IPv4 where bindings are maintained. If M=1 (the value of O is ignored in this case) then the host will not configure any network parameter, and will reach out to the DHCPv6 server for all network parameters.

The default gateway for the client is always given by the RA except when using stateful DHCPv6. Then it is the DHCP server that provides the gateway. The gateway is provided as a link local address when it comes from the RA. When it comes from the DHCPv6 server, it can be anything the administrator configures, either link local or global unicast.

I hope this has been helpful!

Laz

2 Likes