12.5.
Dynamic Addressing for IPv6 GUAs
12.5.1. RS and RA Messages
If you do not want to statically configure IPv6 GUAs, no need to worry. Most devices obtain
their IPv6 GUAs dynamically. This topic explains how this process works using Router
Advertisement (RA) and Router Solicitation (RS) messages. This topic gets rather technical,
but when you understand the difference between the three methods that a router
advertisement can use, as well as how the EUI-64 process for creating an interface ID differs
from a randomly generated process, you will have made a huge leap in your IPv6 expertise!
For the GUA, a device obtains the address dynamically through Internet Control Message
Protocol version 6 (ICMPv6) messages. IPv6 routers periodically send out ICMPv6 RA
messages, every 200 seconds, to all IPv6-enabled devices on the network. An RA message
will also be sent in response to a host sending an ICMPv6 RS message, which is a request
for an RA message. Both messages are shown in the figure.
ICMPv6 RS and RA Messages
1. RS messages are sent to all IPv6 routers by hosts requesting addressing information.
2. RA messages are sent to all IPv6 nodes. If Method 1 (SLAAC only) is used, the RA
includes network prefix, prefix-length, and default-gateway information.
RA messages are on IPv6 router Ethernet interfaces. The router must be enabled for IPv6
routing, which is not enabled by default. To enable a router as an IPv6 router, the ipv6
unicast-routing global configuration command must be used.
The ICMPv6 RA message is a suggestion to a device on how to obtain an IPv6 GUA. The
ultimate decision is up to the device operating system. The ICMPv6 RA message includes the
following:
Network prefix and prefix length – This tells the device which network it belongs to.
Default gateway address – This is an IPv6 LLA, the source IPv6 address of the RA
message.
DNS addresses and domain name – These are the addresses of DNS servers and a
domain name.
There are three methods for RA messages:
Method 1: SLAAC – “I have everything you need including the prefix, prefix length, and
default gateway address.”
Method 2: SLAAC with a stateless DHCPv6 server – “Here is my information but you
need to get other information such as DNS addresses from a stateless DHCPv6 server.”
Method 3: Stateful DHCPv6 (no SLAAC) – “I can give you your default gateway
address. You need to ask a stateful DHCPv6 server for all your other information.”
12.5.2. Method 1: SLAAC
SLAAC is a method that allows a device to create its own GUA without the services of
DHCPv6. Using SLAAC, devices rely on the ICMPv6 RA messages of the local router to
obtain the necessary information.
By default, the RA message suggests that the receiving device use the information in the RA
message to create its own IPv6 GUA and all other necessary information. The services of a
DHCPv6 server are not required.
SLAAC is stateless, which means there is no central server (for example, a stateful DHCPv6
server) allocating GUAs and keeping a list of devices and their addresses. With SLAAC, the
client device uses the information in the RA message to create its own GUA. As shown in the
figure, the two parts of the address are created as follows:
Prefix – This is advertised in the RA message.
Interface ID – This uses the EUI-64 process or by generating a random 64-bit number,
depending on the device operating system.
1. The router sends an RA message with the prefix for the local link.
2. The PC uses SLAAC to obtain a prefix from the RA message and creates its own Interface
ID.
12.5.3. Method 2: SLAAC and Stateless DHCPv6
A router interface can be configured to send a router advertisement using SLAAC and
stateless DHCPv6.
As shown in the figure, with this method, the RA message suggests devices use the following:
SLAAC to create its own IPv6 GUA
The router LLA, which is the RA source IPv6 address, as the default gateway address
A stateless DHCPv6 server to obtain other information such as a DNS server address
and a domain name
Note: A stateless DHCPv6 server distributes DNS server addresses and domain names. It
does not allocate GUAs.
1. The PC sends an RS to all IPv6 routers, “I need addressing information.”
2. The router sends an RA message to all IPv6 nodes with Method 2 (SLAAC and DHCPv6)
specified. “Here is your prefix, prefix-length, and default gateway information. But you will
need to get DNS information from a DHCPv6 server.”
3. The PC sends a DHCPv6 Solicit message to all DHCPv6 servers. “I used SLAAC to create
my IPv6 address and get my default gateway address, but I need other information from a
stateless DHCPv6 server.”
12.5.4. Method 3: Stateful DHCPv6
A router interface can be configured to send an RA using stateful DHCPv6 only.
Stateful DHCPv6 is similar to DHCP for IPv4. A device can automatically receive its
addressing information including a GUA, prefix length, and the addresses of DNS servers
from a stateful DHCPv6 server.
As shown in the figure, with this method, the RA message suggests devices use the following:
The router LLA, which is the RA source IPv6 address, for the default gateway address.
A stateful DHCPv6 server to obtain a GUA, DNS server address, domain name and
other necessary information.
1. The PC sends an RS to all IPv6 routers, “I need addressing information.”
2. The router sends an RA message to all IPv6 nodes with Method 3 (Stateful DHCPv6)
specified, “I am your default gateway, but you need to ask a stateful DHCPv6 server for
your IPv6 address and other addressing information.”
3. The PC sends a DHCPv6 Solicit message to all DHCPv6 servers, ” I received my default
gateway address from the RA message, but I need an IPv6 address and all other
addressing information from a stateful DHCPv6 server.”
A stateful DHCPv6 server allocates and maintains a list of which device receives which IPv6
address. DHCP for IPv4 is stateful.
Note: The default gateway address can only be obtained dynamically from the RA message.
The stateless or stateful DHCPv6 server does not provide the default gateway address.
12.5.5. EUI-64 Process vs. Randomly Generated
When the RA message is either SLAAC or SLAAC with stateless DHCPv6, the client must
generate its own interface ID. The client knows the prefix portion of the address from the RA
message, but must create its own interface ID. The interface ID can be created using the EUI-
64 process or a randomly generated 64-bit number, as shown in the figure.
Dynamically Creating an Interface ID
1. The router sends an RA message.
2. The PC uses the prefix in the RA message and uses either EUI-64 or a random 64-bit
number to generate an interface ID.
12.5.6. EUI-64 Process
IEEE defined the Extended Unique Identifier (EUI) or modified EUI-64 process. This process
uses the 48-bit Ethernet MAC address of a client, and inserts another 16 bits in the middle of
the 48-bit MAC address to create a 64-bit interface ID.
Ethernet MAC addresses are usually represented in hexadecimal and are made up of two
parts:
Organizationally Unique Identifier (OUI) – The OUI is a 24-bit (6 hexadecimal digits)
vendor code assigned by IEEE.
Device Identifier – The device identifier is a unique 24-bit (6 hexadecimal digits) value
within a common OUI.
An EUI-64 Interface ID is represented in binary and is made up of three parts:
24-bit OUI from the client MAC address, but the 7th bit (the Universally/Locally (U/L) bit)
is reversed. This means that if the 7th bit is a 0, it becomes a 1, and vice versa.
The inserted 16-bit value fffe (in hexadecimal).
24-bit Device Identifier from the client MAC address.
The EUI-64 process is illustrated in the figure, using the R1 GigabitEthernet MAC address of
fc99:4775:cee0.
Step 1: Divide the MAC address between the OUI and device identifier.
Step 2: Insert the hexadecimal value fffe, which in binary is: 1111 1111 1111 1110.
Step 3: Convert the first 2 hexadecimal values of the OUI to binary and flip the U/L bit (bit 7).
In this example, the 0 in bit 7 is changed to a 1.
The result is an EUI-64 generated interface ID of fe99:47ff:fe75:cee0.
Note: The use of the U/L bit, and the reasons for reversing its value, are discussed in RFC
5342.
The example output for the ipconfig command shows the IPv6 GUA being dynamically
created using SLAAC and the EUI-64 process. An easy way to identify that an address was
probably created using EUI-64 is the fffe located in the middle of the interface ID.
The advantage of EUI-64 is that the Ethernet MAC address can be used to determine the
interface ID. It also allows network administrators to easily track an IPv6 address to an end-
device using the unique MAC address. However, this has caused privacy concerns among
many users who worried that their packets could be traced to the actual physical computer.
Due to these concerns, a randomly generated interface ID may be used instead.
EUI-64 Generated Interface ID
C:\> ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . :
2001:db8:acad:1:fc99:47ff:fe75:cee0
Link-local IPv6 Address . . . . . : fe80::fc99:47ff:fe75:cee0
Default Gateway . . . . . . . . . : fe80::1
C:\>
12.5.7. Randomly Generated Interface IDs
Depending upon the operating system, a device may use a randomly generated interface ID
instead of using the MAC address and the EUI-64 process. Beginning with Windows Vista,
Windows uses a randomly generated interface ID instead of one created with EUI-64.
Windows XP and previous Windows operating systems used EUI-64.
After the interface ID is established, either through the EUI-64 process or through random
generation, it can be combined with an IPv6 prefix in the RA message to create a GUA, as
shown in the figure.
Random 64-bit Generated Interface ID
C:\> ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . :
2001:db8:acad:1:50a5:8a35:a5bb:66e1
Link-local IPv6 Address . . . . . : fe80::50a5:8a35:a5bb:66e1
Default Gateway . . . . . . . . . : fe80::1
C:\>
Note: To ensure the uniqueness of any IPv6 unicast address, the client may use a process
known as Duplicate Address Detection (DAD). This is similar to an ARP request for its own
address. If there is no reply, then the address is unique.
12.6. Dynamic Addressing for IPv6 LLAs
12.6.1. Dynamic LLAs
All IPv6 devices must have an IPv6 LLA. Like IPv6 GUAs, you can also create LLAs
dynamically. Regardless of how you create your LLAs (and your GUAs), it is important that
you verify all IPv6 address configuration. This topic explains dynamically generated LLAs and
IPv6 configuration verification.
The figure shows the LLA is dynamically created using the fe80::/10 prefix and the interface
ID using the EUI-64 process, or a randomly generated 64-bit number.
12.6.2. Dynamic LLAs on Windows
Operating systems, such as Windows, will typically use the same method for both a SLAAC-
created GUA and a dynamically assigned LLA. See the highlighted areas in the following
examples that were shown previously.
EUI-64 Generated Interface ID
C:\> ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . :
2001:db8:acad:1: fc99:47 ff:fe 75:cee0
Link-local IPv6 Address . . . . . : fe80:: fc99:47 ff:fe 75:cee0
Default Gateway . . . . . . . . . : fe80::1
C:\>
Random 64-bit Generated Interface ID
C:\> ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . :
2001:db8:acad:1: 50a5:8a35:a5bb:66e1
Link-local IPv6 Address . . . . . : fe80:: 50a5:8a35:a5bb:66e1
Default Gateway . . . . . . . . . : fe80::1
C:\>
12.6.3. Dynamic LLAs on Cisco Routers
Cisco routers automatically create an IPv6 LLA whenever a GUA is assigned to the interface.
By default, Cisco IOS routers use EUI-64 to generate the interface ID for all LLAs on IPv6
interfaces. For serial interfaces, the router will use the MAC address of an Ethernet interface.
Recall that an LLA must be unique only on that link or network. However, a drawback to using
the dynamically assigned LLA is its long interface ID, which makes it challenging to identify
and remember assigned addresses. The example displays the MAC address on the
GigabitEthernet 0/0/0 interface of router R1. This address is used to dynamically create the
LLA on the same interface, and also for the Serial 0/1/0 interface.
To make it easier to recognize and remember these addresses on routers, it is common to
statically configure IPv6 LLAs on routers.
IPv6 LLA Using EUI-64 on Router R1
R1# show interface gigabitEthernet 0/0/0
GigabitEthernet0/0/0 is up, line protocol is up
Hardware is ISR4221-2x1GE, address is 7079.b392.3640 (bia
7079.b392.3640)
(Output omitted)
R1# show ipv6 interface brief
GigabitEthernet0/0/0 [up/up]
FE80:: 7279:B3 FF:FE 92:3640
2001:DB8:ACAD:1::1
GigabitEthernet0/0/1 [up/up]
FE80:: 7279:B3 FF:FE 92:3641
2001:DB8:ACAD:2::1
Serial0/1/0 [up/up]
FE80:: 7279:B3 FF:FE 92:3640
2001:DB8:ACAD:3::1
Serial0/1/1 [down/down]
unassigned
R1#
12.6.4. Verify IPv6 Address Configuration
The figure shows the example topology.
Click each button for the output and a description of the command.
show ipv6 interface brief
show ipv6 route
ping
The show ipv6 interface brief command displays the MAC address of the Ethernet
interfaces. EUI-64 uses this MAC address to generate the interface ID for the LLA.
Additionally, the show ipv6 interface brief command displays abbreviated output for each of
the interfaces. The [up/up] output on the same line as the interface indicates the Layer
1/Layer 2 interface state. This is the same as the Status and Protocol columns in the
equivalent IPv4 command.
Notice that each interface has two IPv6 addresses. The second address for each interface is
the GUA that was configured. The first address, the one that begins with fe80, is the link-local
unicast address for the interface. Recall that the LLA is automatically added to the interface
when a GUA is assigned.
Also, notice that the R1 Serial 0/1/0 LLA is the same as its GigabitEthernet 0/0/0 interface.
Serial interfaces do not have Ethernet MAC addresses, so Cisco IOS uses the MAC address
of the first available Ethernet interface. This is possible because link-local interfaces only
have to be unique on that link.
The show ipv6 interface brief Command on R1
R1# show ipv6 interface brief
GigabitEthernet0/0/0 [up/up]
FE80::1:1
2001:DB8:ACAD:1::1
GigabitEthernet0/0/1 [up/up]
FE80::1:2
2001:DB8:ACAD:2::1
Serial0/1/0 [up/up]
FE80::1:3
2001:DB8:ACAD:3::1
Serial0/1/1 [down/down]
unassigned
R1#
12.6.5. Syntax Checker – Verify IPv6 Address Configuration
Use show commands to verify IPv6 address configuration on router R1 interfaces.
R1#show ipv6 interface brief
GigabitEthernet0/0/0 \[up/up\]
FE80::1:1
2001:DB8:ACAD:1::1
GigabitEthernet0/0/1 \[up/up\]
FE80::2:1
2001:DB8:ACAD:2::1
Serial0/1/0 \[up/up\]
FE80::3:1
2001:DB8:ACAD:3::1
Serial0/1/1 \[down/down\]
unassigned
GigabitEthernet0 \[administratively down/down\]
unassigned
Verify connectivity from R1 to PC2 at 2001:db8:acad:1::10.
R1#show ipv6 route
IPv6 Routing Table - default - 7 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static
route
B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr -
Redirect
O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF
ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, la - LISP alt
lr - LISP site-registrations, ld - LISP dyn-eid, a -
Application
C 2001:DB8:ACAD:1::/64 \[0/0\]
via GigabitEthernet0/0, directly connected
L 2001:DB8:ACAD:1::1/128 \[0/0\]
via GigabitEthernet0/0, receive
C 2001:DB8:ACAD:2::/64 \[0/0\]
via GigabitEthernet0/1, directly connected
L 2001:DB8:ACAD:2::1/128 \[0/0\]
via GigabitEthernet0/1, receive
C 2001:DB8:ACAD:3::/64 \[0/0\]
via Serial0/0/1, directly connected
L 2001:DB8:ACAD:3::1/128 \[0/0\]
via Serial0/0/1, receive
L FF00::/8 \[0/0\]
via Null0, receive
R1#ping 2001:db8:acad:1::10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:DB8:ACAD:1::10, timeout is 2
seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
You successfully verified IPv6 address configuration.
12.6.6. Packet Tracer – Configure IPv6 Addressing
In this activity, you will practice configuring IPv6 addresses on a router, servers, and clients.
You will also practice verifying your IPv6 addressing implementation.
12.6.6 Packet Tracer – Configure IPv6 Addressing
12.7. IPv6 Multicast Addresses
12.7.1. Assigned IPv6 Multicast Addresses
Earlier in this module, you learned that there are three broad categories of IPv6 addresses:
unicast, anycast, and multicast. This topic goes into more detail about multicast addresses.
IPv6 multicast addresses are similar to IPv4 multicast addresses. Recall that a multicast
address is used to send a single packet to one or more destinations (multicast group). IPv6
multicast addresses have the prefix ff00::/8.
Note: Multicast addresses can only be destination addresses and not source addresses.
There are two types of IPv6 multicast addresses:
Well-known multicast addresses
Solicited node multicast addresses
12.7.2. Well-Known IPv6 Multicast Addresses
Well-known IPv6 multicast addresses are assigned. Assigned multicast addresses are
reserved multicast addresses for predefined groups of devices. An assigned multicast
address is a single address used to reach a group of devices running a common protocol or
service. Assigned multicast addresses are used in context with specific protocols such as
DHCPv6.
These are two common IPv6 assigned multicast groups:
ff02::1 All-nodes multicast group – This is a multicast group that all IPv6-enabled
devices join. A packet sent to this group is received and processed by all IPv6 interfaces
on the link or network. This has the same effect as a broadcast address in IPv4. The
figure shows an example of communication using the all-nodes multicast address. An
IPv6 router sends ICMPv6 RA messages to the all-node multicast group.
ff02::2 All-routers multicast group – This is a multicast group that all IPv6 routers join.
A router becomes a member of this group when it is enabled as an IPv6 router with
the ipv6 unicast-routing global configuration command. A packet sent to this group is
received and processed by all IPv6 routers on the link or network.
IPv6 All-Nodes Multicast: RA Message
IPv6-enabled devices send ICMPv6 RS messages to the all-routers multicast address. The
RS message requests an RA message from the IPv6 router to assist the device in its address
configuration. The IPv6 router responds with an RA message, as shown.
12.7.3. Solicited-Node IPv6 Multicast Addresses
A solicited-node multicast address is similar to the all-nodes multicast address. The
advantage of a solicited-node multicast address is that it is mapped to a special Ethernet
multicast address. This allows the Ethernet NIC to filter the frame by examining the
destination MAC address without sending it to the IPv6 process to see if the device is the
intended target of the IPv6 packet.
12.7.4. Lab – Identify IPv6 Addresses
In this lab, you will complete the following objectives:
Part 1: Identify the Different Types of IPv6 Addresses
Part 2: Examine a Host IPv6 Network Interface and Address
Part 3: Practice IPv6 Address Abbreviation
12.7.4 Lab – Identify IPv6 Addresses
12.8. Subnet an IPv6 Network
12.8.1. Subnet Using the Subnet ID
The introduction to this module mentioned subnetting an IPv6 network. It also said that you
might discover that it is a bit easier than subnetting an IPv4 network. You are about to find
out!
Recall that with IPv4, we must borrow bits from the host portion to create subnets. This is
because subnetting was an afterthought with IPv4. However, IPv6 was designed with
subnetting in mind. A separate subnet ID field in the IPv6 GUA is used to create subnets. As
shown in the figure, the subnet ID field is the area between the Global Routing Prefix and the
interface ID.
GUA with a 16-bit Subnet ID
The benefit of a 128-bit address is that it can support more than enough subnets and hosts
per subnet, for each network. Address conservation is not an issue. For example, if the global
routing prefix is a /48, and using a typical 64 bits for the interface ID, this will create a 16-bit
subnet ID:
16-bit subnet ID – Creates up to 65,536 subnets.
64-bit interface ID – Supports up to 18 quintillion host IPv6 addresses per subnet (i.e.,
18,000,000,000,000,000,000).
Note: Subnetting into the 64-bit interface ID (or host portion) is also possible but it is rarely
required.
IPv6 subnetting is also easier to implement than IPv4, because there is no conversion to
binary required. To determine the next available subnet, just count up in hexadecimal.
12.8.2. IPv6 Subnetting Example
For example, assume an organization has been assigned the 2001:db8:acad::/48 global
routing prefix with a 16 bit subnet ID. This would allow the organization to create 65,536 /64
subnets, as shown in the figure. Notice how the global routing prefix is the same for all
subnets. Only the subnet ID hextet is incremented in hexadecimal for each subnet.
Subnetting using a 16-bit Subnet ID
12.8.3. IPv6 Subnet Allocation
With over 65,536 subnets to choose from, the task of the network administrator becomes one
of designing a logical scheme to address the network.
As shown in the figure, the example topology requires five subnets, one for each LAN as well
as for the serial link between R1 and R2. Unlike the example for IPv4, with IPv6 the serial link
subnet will have the same prefix length as the LANs. Although this may seem to “waste”
addresses, address conservation is not a concern when using IPv6.
Example Topology
As shown in the next figure, the five IPv6 subnets were allocated, with the subnet ID field
0001 through 0005 used for this example. Each /64 subnet will provide more addresses than
will ever be needed.
12.8.4. Router Configured with IPv6 Subnets
Similar to configuring IPv4, the example shows that each of the router interfaces has been
configured to be on a different IPv6 subnet.
IPv6 Address Configuration on Router R1
R1(config)# interface gigabitethernet 0/0/0
R1(config-if)# ipv6 address 2001:db8:acad:1::1/64
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# interface gigabitethernet 0/0/1
R1(config-if)# ipv6 address 2001:db8:acad:2::1/64
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# interface serial 0/1/0
R1(config-if)# ipv6 address 2001:db8:acad:3::1/64
R1(config-if)# no shutdown