13 Introducing Basic IPv6
13 Introducing Basic IPv6
Introduction
As the global internet continues to grow, its overall architecture needs to evolve to
accommodate the new technologies that support the increasing numbers of users,
applications, appliances, and services. This evolution also includes Enterprise networks
and communication providers, which provide services to home users. Internet protocol
(IP) version 6 (IPv6) was proposed when it became clear that the 32-bit addressing
scheme of Internet Protocol version 4 (IPv4) cannot keep up with the demands of
internet growth. IPv6 quadruples the number of network address bits from 32 bits (in
IPv4) to 128 bits. This means that the address pool for IPv6 is around 340 undecillion,
or 340 trillion trillion trillion, which is an unimaginably large number.
The larger IPv6 address space allows networks to scale and provide global reachability.
The simplified IPv6 packet header format handles packets more efficiently. The IPv6
network is designed to embrace encryption and favor targeted multicast over often
problematic broadcast communication.
IPv6 as a protocol has been known for a while, but enterprises are beginning to
understand the ways in which it can help them achieve their goals, improve efficiency
and gain functionality.
As a network engineer, you will need to get familiar with IPv6 including:
Describing IPv6 features and advantages and comparing them to IPv4.
Configuring basic IPv6 addressing and testing IPv6 connectivity in the network.
IPv4 Address Exhaustion Workarounds
IPv4 provides approximately 4 billion unique addresses. Although 4 billion is a lot of
addresses, it is not enough to keep up with the growth of the internet.
To extend the lifetime and usefulness of IPv4 and to circumvent the address shortage,
several mechanisms were created:
Classless interdomain routing (CIDR)
Variable-length subnet masking (VLSM)
Network Address Translation (NAT)
Private IPv4 addresses space (Request for Comments [RFC] 1918)
Over the years, hardware support has been added to devices to support IPv4
enhancements.
To allocate IPv4 addresses efficiently, CIDR was developed. CIDR allows the address
space to be divided into smaller blocks, varying in size depending on the number of
hosts needed in individual blocks. These blocks are no longer associated with pre-
defined IPv4 addresses classes, such as class A, B, and C. Instead, the allocation
includes a subnet mask or prefix length which defines the size of the block.
VLSMs allow more efficient use of IPv4 addresses, specifically on small segments,
such as point-to-point serial links. VLSM usage was recommended in RFC 1817. CIDR
and VLSM support was a prerequisite for Internet service providers (ISPs) to improve
scalability of the routing on the internet.
NAT introduced a model in which a device that is facing outward to the internet has a
globally routable IPv4 address, while the internal network is configured with private
RFC 1918 addresses. These private addresses can never be routed outside the site, as
they can be identical in many different enterprise networks. In this way, even large
enterprises with thousands of systems can hide behind a few routable public networks.
One of the arguments against deploying IPv6 is that NAT will solve the problems of
limited address space in IPv4. The use of NAT merely delays the exhaustion of the IPv4
address space. Many large organizations and ISPs are moving to IPv6 because they
are running out of IPv4 private addresses, for example, as Internet of Things (IoT)
devices are added to their networks.
Negative implications of using NAT, some of which are identified in RFC 2775 and RFC
2993 include:
NAT breaks the end-to-end model of IP, in which only the endpoints, not the
intermediary devices, should process the packets.
NAT inhibits end-to-end network security. To protect the integrity of the IP header by
some cryptographic functions, the IP header cannot be changed between the origin
of the packet (to protect the integrity of the header) and the final destination (to
check the integrity of the received packet). Any translation of parts of a header on
the path will break the integrity check.
When applications are not NAT-friendly, which means that, for a specific application,
more than just the port and address mapping are necessary to forward the packet
through the NAT device, NAT has to embed complete knowledge of the applications
to perform correctly. This fact is especially true for dynamically allocated ports,
embedded IP addresses in application protocols, security associations, and so on.
Therefore, the NAT device needs to be upgraded each time that a new non-NAT-
friendly application is deployed (for example, peer-to-peer).
When different networks use the same private address space and they have to
merge or connect, an address space collision occurs. Hosts that are different but
have the same address cannot communicate with each other. There are NAT
techniques available to help with this issue, but they increase NAT complications.
In which mechanism can a device be configured with a private IPv4 address but
communicate on the internet using a globally routable IPv4 address?
NAT
VLSM
ARP
multihoming
IPv6 Features
Although VLSM, NAT, and other workarounds (for avoiding the transition to IPv6) are
available, networks with internet connectivity must begin the transition to IPv6 as soon
as possible. For IPv4 networks that provide goods and services to internet users, it is
especially important because the transition by the internet community is already under
way. New networks may be unable to acquire IPv4 addresses, and networks that are
running IPv6 exclusively will not be able to communicate with IPv4-only networks
unless you configure an intermediary gateway or another transition mechanism. IPv6
and IPv4 are completely separate protocols, and IPv6 is not backward-compatible with
IPv4. As the internet evolves, organizations must adopt IPv6 to support future business
continuity, growth, and global expansion. Furthermore, some ISPs and Regional
Internet Registries (RIRs) are administratively out of IPv4 address which means that
their supply of IPv4 addresses is now limited and organizations have to migrate to and
support IPv6 networks.
IPv4 32 bits
192.168.201.113
2001:0db8:2c80:dd02:0029:ec7a:002b:ea73
IPv6 includes several features that make it attractive for building global-scale, highly
effective networks:
Larger address space: The expanded address space includes several IP
addressing enhancements:
Simpler header: Streamlined fixed header structures make the processing of IPv6
packets faster and more efficient for intermediate routers within the network. This
fact is especially true when large numbers of packets are routed in the core of the
IPv6 internet.
Security and mobility: Features that were not part of the original IPv4
specification, such as security and mobility, are now built into IPv6. IP Security
(IPsec) is available in IPv6, allowing the IPv6 networks to be secure. Mobility
enables mobile network devices to move around in networks without breaks in
established network connections.
Transition richness: IPv6 also includes a rich set of tools to aid in transitioning
networks from IPv4, to allow an easy, nondisruptive transition over time to IPv6-
dominant networks. An example is dual stacking, in which devices run both IPv4
and IPv6.
NAT
VLSM
IPsec
multihoming
IPv6 Addresses and Address Types
IPv6 addresses consist of 128 bits and are represented as a series of eight 16-bit
hexadecimal fields that are separated by colons. Although upper and lower case are
permitted, it is best practice to use lower case for IPv6 representation:
Address representation:
Format is x:x:x:x:x:x:x:x, where x is a 16-bit hexadecimal field:
Example: 2001:0db8:010f:0001:0000:0000:0000:0acd
Example: 2001:db8:10f:1:0:0:0:acd
Example: 2001:db8:10f:1::acd
The use of the double-colon technique makes many addresses very small; for example,
ff01:0:0:0:0:0:0:1 becomes ff01::1. The all zeros address are written as a double colon;
this type of address representation is known as the unspecified address.
IPv6 does not support broadcast addresses in the way that they are used in IPv4.
Instead, specific multicast addresses (such as the all-nodes multicast address) are
used.
IPv6 unicast addresses are assigned to each node (interface). Their uses are
discussed in RFC 4291. The unicast addresses are listed below.
Unique- Unique local unicast addresses are analogous to private IPv4 addresses in that
fc00::/7
Local they are used for local communications. The scope is entire site or organization.
Like the 127.0.0.1 address in IPv4, 0:0:0:0:0:0:0:1, or ::1, is used for local testing
Loopback ::1 functions. Unlike IPv4, which dedicates a complete A class block of addresses
for local testing, IPv6 uses only one.
Address Value Description
Addresses in the link scope are called link-local addresses, and routers will not forward
these addresses to other links or networks. Addresses that are valid within a single site
are called site-local addresses. Addresses intended to span multiple sites belonging to
one organization are called organization-local addresses, and addresses in the global
network scope are called global unicast addresses.
The Extended Universal Identifier 64-bit format (EUI-64) defines the method to create
an interface identifier from an IEEE 48-bit MAC address. Since the EUI-64 format is
based on unique MAC addresses, using this format, a device can automatically assign
itself a unique 64-bit IPv6 interface ID, without the need for manual configuration or
DHCP. The following figure illustrates this process:
The EUI-64 format interface ID is derived from the 48-bit MAC address by inserting the
hexadecimal number fffe between the upper 3 bytes (OUI field) and the lower 3 vendor
assigned bytes of the MAC address. Then, the seventh bit of the first octet is inverted.
(In a MAC address, this bit indicates the scope and has a value of 0 for global scope
and 1 for local scope; it will be 0 for globally unique MAC addresses. In the EUI-64
format, the meaning of this bit is opposite, so the bit is inverted.)
The figure shows how address space can be allocated to the RIR and ISP. These
values are minimum allocations, which means that an RIR will get a /23 or shorter, an
ISP will get a /32 or shorter, and a site will get a /48 or shorter. A shorter prefix length
allows more available address space. For example, a site could get a /40 instead of a
/48, giving it more addresses if it can justify it to its ISP. The figure shows a provider
aggregatable model where the end customer obtains its IPv6 address from the ISP. The
end customer can also choose a provider-independent address space by going straight
to the RIR. In this case, it is not uncommon for an end customer to be able to justify a
/32 prefix. The example in the figure uses common and recommended size of the
network with 64 bits used as interface ID.
Global unicast addresses are routable and reachable across the internet. They are
intended for widespread generic use. A global unicast address is structured
hierarchically to allow address aggregation. In the 2000::/3 prefix, the /3 prefix length
states that only the first 3 bits are significant in matching the prefix 2000. The first 3 bits
of the first hexadecimal value, 2, are 001. The fourth bit is insignificant and can be
either a 0 or a 1. Therefore, the first hex digit is either 2 (0010) or 3 (0011). The
remaining 12 bits in the hextet (16-bit segment) can be a 0 or a 1. This results in a
range of global unicast addresses of 2000::/3 through 3fff::/3.
A global routing prefix is assigned to a service provider by IANA. The fixed first three
bits plus the following 45 bits identify the organization´s site within the public domain.
A subnet ID can be used by an individual organization to create its own local
addressing hierarchy and to identify subnets. A subnet ID is similar to a subnet in IPv4,
except that an organization with an IPv6 subnet ID can support many more individual
subnets (the actual number depends on the global routing prefix). An organization with
a 16-bit IPv6 subnet ID can support up to 65,535 individual subnets.
The interface ID has the same meaning for all unicast addresses. It is used to identify
the interfaces that are on a link and that must be unique to the link. The interface ID is
64 bits long and, depending on the device operating system, can be created by using
the EUI-64 format or by using a randomly generated number. An example of a global
unicast address is 2001:0db8:bbbb:cccc:0987:65ff:fe01:2345.
Link-local addresses are used for link communications such as automatic address
configuration, neighbor discovery, and router discovery. Many IPv6 routing protocols
also use link-local addresses. For static routing, the address of the next-hop device
should be specified using the link-local address of the device; for dynamic routing, all
IPv6 routing protocols must exchange the link-local addresses of neighboring devices.
Unique local unicast addresses are analogous to private IPv4 addresses in that they
are used for local communications, intersite virtual private networks (VPNs), and so on,
except for one important difference – these addresses are not intended to be translated
to a global unicast address. They are not routable on the internet without IPv6 NAT, but
they are routable inside a limited area, such as a site. They may also be routed
between a limited set of sites. A unique local unicast address has these characteristics:
It has a globally unique prefix—it has a high probability of uniqueness.
It has a well-known prefix to enable easy filtering at site boundaries.
It allows combining or privately interconnecting sites without creating any address
conflicts or requiring a renumbering of interfaces that use these prefixes.
It is ISP-independent and can be used for communications inside a site without
having any permanent or intermittent internet connectivity.
If it is accidentally leaked outside of a site via routing or the Domain Name System
(DNS), there is no conflict with any other addresses.
Applications may treat unique local addresses like global scoped addresses.
In unique local unicast addresses, global IDs are defined by the administrator of the
local domain. Subnet IDs are also defined by the administrator of the local domain.
Subnet IDs are typically defined using a hierarchical addressing plan, allowing routes to
be summarized and, therefore, reducing the size of routing updates and routing tables.
An example of a unique local unicast address is
fc00:aaaa:bbbb:cccc:0987:65ff:fe01:2345.
Loopback Addresses
Just as with IPv4, a provision has been made for a special loopback IPv6 address for
testing. Packets that are sent to this address "loop back" to the sending device.
However, in IPv6, there is just one address, not a whole block, for this function. The
loopback address is 0:0:0:0:0:0:0:1, which is normally expressed as "::1."
Unspecified Addresses
In IPv4, an IPv4 address containing all zeroes has a special meaning—it refers to the
host itself and is used as a source address to indicate the absence of an address. In
IPv6, this concept has been formalized, and the all-zeros address is named the
unspecified address. It is typically used in the source field of a packet sent by a device
requesting to have its IPv6 address configured. You can apply address compression to
this address. Because the address is all zeroes, the address is simply expressed by
two colons (::).
The first 8 bits are ff, followed by 4 bits allocated for flags and a 4-bit Scope field. The
Scope field defines the range to which routers can forward the multicast packet. The
next 112 bits represent the group ID.
The first three flags bits are 0 (reserved), R (rendezvous point), and P (network prefix)
are beyond the scope of this course. The fourth flag, the least significant bit (LSB), or
rightmost bit, is the transient flag (T flag). The T flag denotes the two types of multicast
addresses:
Permanent (0): These addresses, known as predefined multicast addresses, are
assigned by IANA and include both well-known and solicited multicast.
Nonpermanent (1): These are "transient" or "dynamically" assigned multicast
addresses. They are assigned by multicast applications.
The scope bits define the scope of the multicast group. For example, a scope value 1
means interface-local scope or node-local scope, which spans only a single interface
on a node. It is used for loopback transmission of multicast. Link-local scope is defined
with the value 2. It spans the topology area of a single link. Admin-local scope is not
automatically defined from the physical topology or another non-multicast related
configuration and should be defined by administrator. Admin-local scope is the smallest
administratively defined multicast scope. A site-local scope spans a single site,
whereas organization-local scope spans several sites in one organization.
The following table shows a few examples of well-known IPv6 multicast addresses that
have different scopes:
IPv6 Multicast
Description Scope
Address
Node-local
ff01::1 All nodes address
scope
Node-local
ff01::2 All routers address
scope
ff05::1:3 All Dynamic Host Configuration Protocol (DHCP) servers Site-local scope
Anycast addresses are available for both IPv4 and IPv6, initially defined in RFC 1546,
Host Anycasting Service. Anycast was meant to be used for services such as DNS and
Hypertext Transfer Protocol (HTTP) but was never really implemented as designed.
There are some reserved anycast address formats such as the subnet-router anycast
address defined in RFC 4291 and RFC 2526. Such anycast address has the following
format:
The subnet-router anycast address has a prefix that is followed by a series of zeros (as
the interface ID). For example, if the prefix for the subnet is 2001:db8:10f:1::/64 then
the subnet router anycast address for that subnet is 2001:db8:10f:1::. If you send a
packet to the subnet-router anycast address, it will be delivered to one router, which
has an interface in that subnet. All routers must have subnet-router anycast addresses
for the subnets that are configured on their interfaces.
Reserved Addresses
The Internet Engineering Task Force (IETF) reserved a portion of the IPv6 address
space for various uses, both present and future. Reserved addresses represent 1/256th
of the total IPv6 address space. The lowest address within each subnet prefix (the
interface identifier set to all zeroes) is reserved as the subnet-router anycast address.
The 128 highest addresses within each /64 subnet prefix are reserved for use as
anycast addresses.
In which type of IPv6 address does the sender send the traffic to the nearest of
multiple nodes, all of which behave in the same way as other nodes that are
identified by the same destination address?
unicast
anycast
broadcast
multicast
loopback
You want to ping the loopback address of your IPv6 local host. Which command will
you enter?
ping 127.0.0.1
ping 0.0.0.0
ping ::1
ping fe80::1
Which address bits uniquely identify a group ID in the IPv6 multicast address?
first 64 bits
first 8 bits
last 64
last 48
last 116 bits
Comparison of IPv4 and IPv6 Headers
The IPv6 header differs significantly from the IPv4 header in several ways.
The IPv4 header contains 12 fields. Following these fields is an Options field of variable
length that the figure shows in yellow and a padding field that is followed by the data
portion that is usually the transport layer segment. The basic IPv4 header has a size of
20 octets. The Options field increases the size of the IPv4 header.
Of the 12 IPv4 header fields, 6 are removed in IPv6; these fields are shown in green in
the figure. The main reasons for removing these fields in IPv6 are as follows:
The Internet Header Length field (shown as HD Len in the figure) was removed
because it is no longer required. Unlike the variable-length IPv4 header, the IPv6
header is fixed at 40 octets.
Fragmentation is processed differently in IPv6 and does not need the related fields
in the basic IPv4 header. In IPv6, routers no longer process fragmentation. IPv6
hosts are responsible for path maximum transmission unit (MTU) discovery. If the
host needs to send data that exceeds the MTU, the host is responsible for
fragmentation (this process is recommended but not required). The related Flags
field option appears in the Fragmentation Extension Header in IPv6. This header is
attached only to a packet that is fragmented.
The Header Checksum field at the IP layer was removed because most data link
layer technologies already perform checksum and error control. This change forces
formerly optional upper-layer checksums (such as User Datagram Protocol [UDP])
to become mandatory.
The Options field is not present in IPv6. In IPv6, a chain of extension headers
processes any additional services. Examples of extension headers include
Fragmentation, Authentication Header, and Encapsulating Security Payload (ESP).
The extension headers, if there are any, follow these eight fields. The number of
extension headers is not fixed, so the total length of the extension header chain is
variable.
For further exploration of IPv6 header fields and their functions, see RFC 8200, Internet
Protocol, Version 6 (IPv6) Specification.
In a dual-stack network, both IPv4 and IPv6 are fully deployed across the infrastructure,
so that configuration and routing protocols handle both IPv4 and IPv6 addressing and
adjacencies separately.
Using the tunneling option, organizations build an overlay network that tunnels one
protocol over the other by encapsulating IPv6 packets within IPv4 packets over the IPv4
network, and IPv4 packets within IPv6 packets over the IPv6 network.
Which new field has a length of 20 bits and is used to mark individual traffic flows
with unique values?
Flow Label
Version
Traffic Class
Payload Length
Internet Control Message Protocol Version 6
Internet Control Message Protocol Version 6 (ICMPv6) provides the same diagnostic
services as Internet Control Message Protocol Version 4 (ICMPv4), and it extends the
functionality for some specific IPv6 functions that did not exist in IPv4.
ICMPv6 enables nodes to perform diagnostic tests and report problems. Like ICMPv4,
ICMPv6 implements two kinds of messages—error messages (such as Destination
Unreachable, Packet Too Big, or Time Exceeded) and informational messages (such as
Echo Request and Echo Reply).
1 Destination Unreachable
The ICMPv6 packet is identified as 58 in the Next Header field. Inside the ICMPv6
packet, the Type field identifies the type of ICMP message. The Code field further
details the specifics of this type of message. The Data field contains information that is
sent to the receiver for diagnostics or information purposes.
ICMPv6 is used on-link for router solicitation and advertisement, for neighbor
solicitation and advertisement, and for the redirection of nodes to the best gateway.
Neighbor solicitation messages are sent on the local link when a node wants to
determine the data link layer address of another node on the same local link. After
receiving the neighbor solicitation message, the destination node replies by sending a
neighbor advertisement message which includes the data link layer address of the node
sending the neighbor advertisement message. Hosts send router Solicitation messages
to locate the routers on the local link and routers respond with router advertisements
which enable autoconfiguration of the hosts.
Which two ICMPv6 types are used for neighbor discovery? (Choose two.)
The source node creates a solicited-node multicast address using the right-most 24 bits
of the IPv6 address of the destination node, and sends a Neighbor Solicitation message
to this multicast address. The corresponding node responds with its data link layer
address in a Neighbor Advertisement message.
If an IPv6 address is known, then the associated IPv6 solicited-node multicast address
is known. The example in the figure gives the IPv6 address
2001:db8:1001:f:2c0:10ff:fe17:fc0f. The associated solicited-node multicast address is
ff02::1:ff17:fc0f.
If an IPv6 solicited-node multicast address is known, then the associated MAC address
is known, formed by concatenating the last 32 bits of the IPv6 solicited node multicast
address to 33:33
As the figure shows, the IPv6 solicited-node multicast address is ff02::1:ff17:fc0f. The
associated Ethernet MAC address is 33.33.ff.17.fc.0f.
You must understand that the resulting MAC address is a virtual MAC address: It is not
burned into any Ethernet card. Depending on the IPv6 unicast address, which
determines the IPv6 solicited-node multicast address, any Ethernet card may be
instructed to listen to any of the 224 possible virtual MAC addresses that begin with
33.33.ff. In IPv6, Ethernet cards often listen to multiple virtual multicast MAC addresses
and their own burned-in unicast MAC addresses.
A solicited node multicast is more efficient than an Ethernet broadcast used by IPv4
ARP. With ARP all nodes receive and must therefore process the broadcast requests.
By using IPv6 solicited-node multicast addresses fewer devices receive the request and
therefore fewer frames need to be passed to an upper layer to make the determination
whether they are intended for that specific host.
Which protocol in IPv4 performs the same functions as neighbor discovery in IPv6?
ARP
ICMP
DHCP
RIP
IPv6 Address Allocation
Interface identifiers in IPv6 addresses are used to identify interfaces on a link. They can
also be thought of as the "host portion" of an IPv6 address. Interface identifiers need to
be unique on a specific link. Interface IDs are typically 64 bits and can be configured in
multiple ways.
Static assignment using a manual interface ID: One way to statically assign an
IPv6 address to a device is to manually assign both the prefix (network) and
interface ID (host) portions of the IPv6 address. To configure an IPv6 address on a
Cisco router interface and enable IPv6 processing on that interface, use the ipv6
address ipv6-address/prefix-length command in the interface configuration mode.
The following example shows how to statically configure a global unicast address
and a link-local address on a router's interface.
Static assignment using an EUI-64 interface ID: Another way to statically assign
an IPv6 address is to configure the prefix (network) portion of the IPv6 address and
derive the interface ID (host) portion from the MAC address of the device, which is
known as the EUI-64 interface ID.
To configure an IPv6 address for an interface and enable IPv6 processing on the
interface using an EUI-64 interface ID in the low order 64 bits of the address (host),
use the ipv6 address ipv6-prefix/prefix-length eui-64 command in the interface
configuration mode. The following example shows how to statically assign IPv6
address on a router's interface using an EUI-64 interface ID.
IPv6 supports DNS record types that are supported in the DNS name-to-address and
address-to-name lookup processes. The DNS record types support IPv6 addresses.
IPv6 also supports the reverse mapping of IPv6 addresses to DNS names. The
Dynamic DNS support for Cisco IOS Software feature enables Cisco IOS software
devices to perform Dynamic Domain Name System (DDNS) updates to ensure that an
IPv6 host DNS name is correctly associated with its IPv6 address.
Router Advertisements
Routers periodically send router advertisements on all their configured interfaces. The
router sends a router advertisement to the all-nodes multicast address, ff02::1, to all
IPv6 nodes in the same link.
Here are examples for the information that the message might contain:
Prefixes that can be used on the link: This information enables stateless
autoconfiguration of the hosts. These prefixes must be /64 for stateless
autoconfiguration.
Lifetime of the prefixes: The default valid lifetime is 30 days, and the default
preferred lifetime is 7 days.
Flags: Flags indicate the kind of autoconfiguration that the hosts can perform.
Unlike IPv4, the router advertisement message suggests to the host how to obtain
its addressing dynamically. There are three options:
SLAAC
SLAAC and stateless DHCPv6
Stateful DHCPv6
Default preference field: Provides coarse preference metric (low, medium, or high)
for default devices. For example, two devices on a link may provide equivalent but
not equal-cost routing, and the policy may dictate that one of the devices is
preferred.
Other types of information for hosts: This information can include the default
MTU and hop count.
Router Solicitation
A router sends router advertisements every 200 seconds or immediately after a router
solicitation. Router solicitations ask routers that are connected to the local link to send
an immediate router advertisement so that the host can receive the autoconfiguration
information without waiting for the next scheduled router advertisement.
When a router sends an answer to a router solicitation, the destination address of the
router advertisement is the all-nodes multicast (ff02::1). The router could be configured
to send solicited router advertisements as a unicast.
A host should send a router solicitation only at the host boot time and only three times.
This practice avoids flooding of router solicitation packets if there is no router on the
local network.
Command Description
ipv6 address Configures stateless autoconfiguration on the interface. If you add the default
autoconfig [default] keyword, the router will install a default route.
Which three statements about assigning IPv6 addresses to hosts are accurate?
(Choose three.)
A node on a link can automatically configure its entire global IPv6 address
by appending its interface identifier to a prefix that it learns from a router
advertisement message.
First, you will configure static IPv6 addresses on R1 and R3. Note that, for simplicity, all
static IPv6 addresses in the topology differ in only four hexadecimal fields (an IPv6
address has 32 hexadecimal fields, including leading zeros and successive fields of
zeros). The first 14 hexadecimal fields are same and are 2001:0db8:0000:00. The
following 2 fields completes the 64-bit prefix and represents the network (01, 02, 03, 04,
05, or 06) within the topology. The next 14 hexadecimal fields are all 00. The final 2
fields specify the host on the network; in this example, the byte is either 01 or 02.
After configuring the IPv6 addresses on R1 and R3, you will configure PC1 and SRV1
for IPv6 stateless autoconfiguration. Then, you will verify the connectivity between PC1
and R1 and between SRV1 and R3.
Servers usually have manually configured IPv6 addresses, but for lab
purposes you are going to use autoconfiguration. Similarly, routers should
have manually configured link-local addresses, but in the lab activity you are
going to use automatic address configuration.
Topology
Job Aid
Device Information
In the virtual lab environment, all interfaces are Ethernet interfaces and not
FastEthernet or GigabitEthernet interfaces, which you are likely to encounter in
networks today. Personal computers (PCs) in the virtual lab environment are
simulated by routers, so you should use Cisco IOS commands to configure
them or verify the configuration.
By default, routing for IPv6 is not enabled on a Cisco router. To enable IPv6 routing,
use the ipv6 unicast-routing command in global configuration mode. If IPv6 routing
is not enabled, the router still plays a role of IPv6 host, once it has an IPv6 address.
You can use abbreviated commands during configuration. For example, you can use
conf t for configure terminal. If there is any confusion, you can attempt tab
completion to expand the full command syntax. For example, conf <tab> t <tab>
would expand to configure terminal.
Step 2
On R1, configure the IPv6 address 2001:db8:0:5::1/64 on the Serial1/2 interface.
On R1, enter the following commands:
Step 3
R2 is fully IPv6-configured, and Serial1/2 is the link to R1. If you have correctly
configured the address of R1, you should be able to ping the R2 IPv6 address
(2001:db8:0:5::2). Enter the do command to execute an EXEC mode ping to verify
the connectivity from R1 to R2.
On R1, enter the following command:
Step 4
Configure the R1 IPv6 addresses on Ethernet0/0 (2001:db8:0:1::1/64) and Serial1/1
(2001:db8:0:4::1/64). Remember to take advantage of the Cisco IOS command
recall. The IPv6 addresses in the topology are very similar. Currently, there are no
configured IPv6 peers on Ethernet0/0 or Serial1/1, so you cannot use the ping
command for verification. Leave the configuration mode when the addressing is
complete.
On R1, enter the following commands:
Step 5
On R1, display the full IPv6 information that is associated with Ethernet0/0 using the
show ipv6 interface command. It is similar to the show ip interface command,
except that it is IPv6-specific.
On R1, enter the following command:
The output displays both the global unicast address and the link-local address.
IPv6 automatically joins several required multicast groups. All addresses starting with
FF are IPv6 multicast addresses. The third hexadecimal digit "0" means it is a
permanent or well-known multicast address. The fourth hexadecimal digit indicates
this multicast address has link-local scope and is not to be routed.
ff02::1 is all node address to reach out all IPv6 nodes in the same link, ff02::2 is used
to reach all IPv6 routers on the same link, while ff02::1:FF00:1 is IPv6 solicited-node
multicast group for the global unicast address 2001:db8:0:1::1 and ff02::1:ff00:100 for
the link-local address fe80::a8bb:ccff:fe00:100.
IPv6 neighbor discovery is automatically enabled when the interface has an IPv6
address. R1 will send neighbor discovery router advertisements containing the global
unicast prefix on Ethernet0/0 when the ipv6 unicast-routing command is configured.
The hosts on this network can use these advertisements for stateless
autoconfiguration.
Step 6
On R3, enable IPv6 routing.
On R3, enter the following commands:
Step 7
Configure the R3 IPv6 address (2001:db8:0:4::2/64) on Serial1/1, then verify that you
can ping R1 (2001:db8:0:4::1) from R3.
On R3, enter the following commands:
Step 8
Configure the R3 IPv6 address (2001:db8:0:6::2/64) on Serial1/3, then verify that you
can ping R2 (2001:db8:0:6::1) from R3. Remember to take advantage of the Cisco
IOS command recall feature.
On R3, enter the following commands:
Step 9
Configure the R3 IPv6 address (2001:db8:0:3::1/64) on Ethernet0/0. There are
currently no IPv6 peers on Ethernet0/0, so you cannot use the ping command for
verification. Leave the configuration mode when you are done configuring
Ethernet0/0.
On R3, enter the following commands:
Step 10
On R3, display the Ethernet0/0 MAC address using the show interfaces command.
The output can be run through the include filter using address as the filter string to
reduce the amount of command output.
On R3, enter the following command:
Step 11
On R3, use the show ipv6 interface brief command to display the IPv6 addresses
that are assigned to the R3 interfaces. It is similar to the show ip interface brief
command, except that it is IPv6-specific.
On R3, enter the following command:
There are two IPv6 addresses on each of the three configured interfaces. There is a
link-local address that was statelessly autoconfigured. There is also the global
unicast address that you configured.
To statelessly autoconfigure link-local address, Cisco IOS Software uses the EUI-64
interface ID with the fe80::/10 prefix. The algorithm that the EUI-64 standard uses to
stretch the 48-bit MAC address to 64 bits is to invert the seventh bit of the MAC
address and to insert fffe into the middle of the MAC address and invert the 7th bit of
the first octet. So, aa:bb:cc:00:03:00 becomes a8bb:ccff:fe00:300.
The serial interfaces, being point-to-point links, do not use MAC addresses. IPv6
"borrows" the MAC address from an Ethernet interface to compute the link-local
address for serial interfaces. The result is that R3 is using the same link-local
address on multiple interfaces. This situation is acceptable because the link-local
address only needs to be unique on the “link”, meaning data link.
You can see the MAC address; you will see how it is used with the EUI-64 process to
generate the SRV1 IPv6 address with stateless autoconfiguration.
Step 2
On SRV1, configure Ethernet0/0 to use stateless autoconfiguration for the IPv6
address assignment and for the IPv6 default route assignment.
PCs (for example, Windows) are typically enabled for SLAAC by default.
Step 3
On SRV1, display the IPv6 addresses that are assigned to Ethernet0/0.
On SRV1, enter the following command:
There are two addresses: the link-local address using the standard fe80::/10 prefix,
and the global unicast address using the 2001:db8:0:3::/64 prefix that SRV1 received
from the R3 router advertisement. Both use the EUI-64 standard to incorporate the
Ethernet0/0 MAC address into the IPv6 address.
Step 4
Display the IPv6 routing table on SRV1.
On SRV1, enter the following command:
The default route (to prefix ::/0) is pointing to the R3 link-local address, as you saw
earlier, that was created by a default option in the ipv6 address autoconfig
command. The ND code indicates that this default route was learned as part of the
neighbor discovery (ND) process.
The NDp entry describes the prefix that has been learned by R3 router advertisement
message.
Step 5
At this point, SRV1 should be able to ping the R3 global unicast addresses on
Ethernet0/0 (2001:db8:0:3::1), on Serial1/1 (2001:db8:0:4::2), and Serial1/3
(2001:db8:0:6::2). Confirm this connectivity using the ping command. Again, be sure
to take advantage of the Cisco IOS command recall feature.
On SRV1, enter the following commands:
Step 6
However, you cannot ping addresses on R1 or R2. Attempt to ping the R1 Serial1/1
interface (2001:db8:0:4::1).
On SRV1, enter the following command:
SRV1# ping 2001:db8:0:4::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:DB8:0:4::1, timeout is 2
seconds:
.....
Success rate is 0 percent (0/5)
Step 7
On PC1, configure Ethernet0/0 to use stateless autoconfiguration and the default
route assignment.
On PC1, enter the following commands:
Step 8
On PC1, display the IPv6 addresses that are assigned to Ethernet0/0.
On PC1, enter the following command:
Step 9
Display the IPv6 routing table on PC1 to verify that it has an IPv6 default route.
On PC1, enter the following command:
Step 10
From PC1, verify that you can ping the R1 Ethernet0/0 (2001:db8:0:1::1), Serial1/1
(2001:db8:0:4::1), and Serial1/2 (2001:db8:0:5::1) interfaces.
On PC1, enter the following commands:
In the following scenario, PC1 wants to access applications on the server. The figure
shows the desirable path.
You can use the ping utility to test end-to-end IPv6 connectivity by providing the IPv6
address as the destination address. The utility recognizes the IPv6 address when one
is provided and uses IPv6 as a protocol to test connectivity.
You can also use the ping utility on the router to test IPv6 connectivity:
Traceroute is a utility that allows observation of the path between two hosts and
supports IPv6. Use the traceroute Cisco IOS command or tracert Windows command,
followed by the IPv6 destination address, to observe the path between two hosts. The
trace generates a list of IPv6 hops that are successfully reached along the path. This
list provides important verification and troubleshooting information.
The tracert utility on the Windows PC allows you to observe the IPv6 path:
1 1 ms 1 ms <1 ms 2001:db8:101::1
2 10 ms 1 ms 1 ms 2001:db8:102::2
3 10 ms 1 ms 1 ms 2001:db8:100::100
Trace complete.
You can also use the traceroute utility on the router to observe the IPv6 path:
Similar to IPv4, you can use Telnet to test end-to-end transport layer connectivity over
IPv6 using the telnet command from a PC, router, or a switch. When you provide the
IPv6 destination address, the protocol stack determines that the IPv6 protocol has to be
used. If you omit the port number, the client will connect to port 23. You can specify a
specific port number on the client and connect to any TCP port that you want to test.
You can use the telnet command to test the transport layer connectivity for any TCP
port over IPv6.
Use Telnet to connect to the standard Telnet TCP port from a Windows PC.
Use Telnet to connect to the TCP port 80, which tests the availability of the HTTP
service.
In the example, you can see two connections from a PC to the Server. The first one
connects to port 23 and tests Telnet over IPv6. The second connects to port 80 and
tests Hypertext Transfer Protocol (HTTP) over IPv6.
The telnet command in the output tests if HTTP, which listens on TCP port 80, is open.
The telnet command can also be used from a Cisco router. In this case, to exit the
established connection you must enter a control+C hotkey. The hotkey that closes the
connection on a Cisco device is "ctrl+shift+6 and x."
The figure also shows an example of the neighbor discovery table on the Cisco IOS
router, using the show ipv6 neighbors command. The table includes the IPv6 address
of the neighbor, age in minutes, the MAC address, the state and the interface through
which the neighbor is reachable. The states are explained in the table:
State Description
State Description
Address resolution is being performed on the entry. The source has sent a neighbor
INCMP
solicitation message to the solicited-node multicast address of the target, but it has not
(Incomplete)
received the corresponding neighbor advertisement message.
The source has received positive confirmation within the last ReachableTime
REACH milliseconds that the forward path to the neighbor was functioning correctly, since the
(Reachable) packets have been recently received. While in the REACH state, the device takes no
special action because it is sending packets.
More than ReachableTime milliseconds have elapsed since the device received the
last positive confirmation that the forward path was functioning properly. While in the
STALE
STALE state, the device takes no action until a packet is sent. STALE state is the
normal state of the neighbor.
More than ReachableTime milliseconds have elapsed since the device received the
last positive confirmation that the forward path was functioning properly. A packet was
DELAY sent within the last DELAY_FIRST_PROBE_TIME seconds. If the device receives no
reachability confirmation within DELAY_FIRST_PROBE_TIME seconds of entering the
DELAY state, send a neighbor solicitation message and change the state to PROBE.
You can use other commands to verify that IPv6 is configured correctly on Cisco
routers:
Verify that IPv6 routing has been enabled on the router. In the show running-
config command output look for the ipv6 unicast-routing command.
Verify that the interfaces have been configured with the correct IPv6 addresses. You
can use the show ipv6 interface command to display the statuses and
configurations for all IPv6 interfaces.
Which two commands can you use on Cisco network device to test and troubleshoot
IPv6 connectivity? (Choose two.)
ping
traceroute
show arp
show ip arp
arp -a