You are on page 1of 138

1: Introduction to IPv6

Rick Graziani
Cabrillo College
Rick.Graziani@cabrillo.edu

For more information please check out my Cisco Press book and video series:

IPv6 Fundamentals: A Straightforward


Approach to Understanding IPv6

By Rick Graziani

ISBN-10: 1-58714-313-5

IPv6 Fundamentals LiveLessons: A


Straightforward Approach to Understanding IPv6

By Rick Graziani

ISBN-10: 1-58720-457-6

1.1: Beginning with IPv4

Beginning with IPv4

IPv4 (Internet Protocol version 4)


Developed in the early 1980s
RFC 760 Jan 1980 obsoleted
by RFC 791 Sep 1981

IPv4

10.1.1.1
10.1.0.2

32-bit addresses represented in dotted-decimal notation.


Provides 4.29 billion addresses.
Why not more addresses?
It seemed like a lot of addresses at the time!

IPv4
IPv4 was standardized in 1981,
provisioning 4.29 billion (232) IP
addresses for a world population

IPv4 - 1981

of 4.41 billion people.

= 100,000,000
= 100,000,000
*www.census.gov
IPv4 Addresses

World Population 1980

4.29 billion addresses, about a 1:1 ratio with the worlds


population.
What was the Internet like in 1981?
No WWW, no mobile devices, and most people never heard of
the Internet
Mostly mainframe and minicomputers
The IBM PC was introduced trying to overtake the Apple II
Images courtesy of Computer History Museum

The Internet Begins to Take Off

1990s introduced the World Wide Web.


Everyone was getting on the Internet.
Internet routing tables growing rapidly 20,000 routes in 1994.
IETF realized that it would soon run out of IPv4 address space.
Image courtesy of Computer History Museum

IPv4: Running Out of Addresses


Private
Private Address
Address
Space
Space
10.0.0.0/8
10.0.0.0/8
172.16.0.0/12
172.16.0.0/12
192.168.0.0/16
192.168.0.0/16

Short term solutions included:


NAT (Network Address Translation)
Private address space
CIDR (Classless Inter-Domain Routing)
Long-term solution: IPv6

IPv4

1.2 Introducing IPv6

Introducing IPv6
Not a new protocol.
Developed mid to late
1990s.
Much learned from IPv4.
128-bit address space,
written in hexadecimal.
This gives us 340
undecillion addresses!
2001:DB8:CAFE:0001::100

128 bits

128 bits

340 undecillion
= 340,282,366,920,938,463,463,374,607,431,768,211,456

IPv6
How many is 340 undecillion?
340 undecillion addresses is 10
nonillion addresses per person!
Internet is a much different place
and will continue to evolve:
Mobile devices
Video on demand
Internet of Everything
A critical part in how we live,
work, play, and learn.
10 nonillion
= 10,000,000,000,000,000,000,000,000,000,000

IPv6
IPv6 is not just about more
addresses:
Stateless autoconfiguration
End-to-end reachability without
private addresses and NAT
Better support for mobility
Peer-to-peer networking easier to
create and maintain, and
services such as VoIP and
Quality of Service (QoS) become
more robust.

IPv6: A Brief History

1993, IETF announced a call for white papers with RFC 1550
IP: Next Generation (IPng) White Paper Solicitation.
IETF chose Simple Internet Protocol Plus (SIPP) written by
Steve Deering, Paul Francis, and Bob Hinden but changed the
address size from 64 bits to 128 bits.
1995, IETF published RFC 1883 Internet Protocol, Version 6
(IPv6) Specification - later obsoleted by RFC 2460 in 1998.

RFC 1190

What About IPv5?


4 = IPv4
5 = ST2
6 = IPv6

In the late 1970s, a family of experimental protocols was


developed intended to provide quality of service (QoS) for realtime multimedia applications such video and voice.
Known as Internet Stream Protocol (ST) and later ST2 (RFC
1190 and RFC 1819).
Although it was never known as IPv5, when encapsulated in IP,
ST uses IP Protocol version 5.

1.3: The Need for IPv6

The Need for IPv6


We are running out of
IPv4 address space.
Monday, January 31,
2011 IANA allocated the
last /8 IPv4 address
blocks to the RIRs.
RIRs have very few, if
any IPv4 address left.
Many ISPs are severely
limited and some have
already run out.

Actual or projected dates


as of November 2014

Source: www.potaroo.net/tools/ipv4
Note: APNIC and RIPE are not completely out of addresses
but they are very restrictive on allocation of addresses.

Running Out of IPv4

The regions with the largest populations have the lowest


percentages of people connected to the Internet
Graphic from Internet World Stats, www.internetworldstats.com/stats.htm

Internet of
Everything

Cisco defines the Internet of Everything (IoE) as bringing


together people, process, data, and things to make networked
connections more relevant and valuable than ever before.
Cisco estimates that there will be 50 billion connected devices
by 2020. (Source: The Internet of Things by Dave Evans)

NAT
Customer Network
192.168.1.0/24

No More NAT as We Know It


ISP Network
Public IPv4

Internet
Public IPv4

(RFC 1918)

NAT has been used to help hide customers and works for many clientinitiated applications.
However, NAT also creates some issues, like peer-to-peer networking
and accessing our hidden systems from other networks.
Using NAT to hide IPv6 networks has been the source of some
debate.
IETF continues to state that NAT is not a security feature.

Benefits of IPv6

As mentioned previously the benefits of


IPv6 include:
Larger address space
Stateless autoconfiguration
End-to-end reachability without private
addresses and NAT
Better mobility support
Peer-to-peer networking easier to create
and maintain, and services such as VoIP
and Quality of Service (QoS) become
more robust.
The killer application for the Internet is
the Internet itself.

Graphic from IPv6 Forum, www.ipv6ready.org

1.4: Transitioning to IPv6

Transitioning to IPv6?
IPv4 and IPv6 will coexist for
the foreseeable future.
Dual-stack Device running
both IPv4 and IPv6.
Enterprises and ISPs have to
support both protocols, which
is a reason to eventually go to
only IPv6.

IPv4 IPv6

Happy Eyeballs

RFC6555 Happy Eyeballs:


Success with Dual-Stack Hosts

The dual-stack code may get two


addresses back from DNS
Which one does it use?
In order to use applications over
IPv6, it is necessary that users enjoy
nearly identical performance as
compared to IPv4.

IPv4
IPv6

RFC6555 Happy Eyeballs:


Success with Dual-Stack Hosts
www.facebook.com
www.facebook.com

Query
Query A
A record?
record?
www.facebook.com
www.facebook.com
Connect
Connect to:
to:
31.13.77.65
31.13.77.65

Query
Query AAAA
AAAA record?
record?
www.facebook.com
www.facebook.com

Connect
Connect to:
to:
2a03:2880:f016:401:face:b00c:01:1
2a03:2880:f016:401:face:b00c:01:1
GET
GET HTTP/1.1
HTTP/1.1
www.facebook.com
www.facebook.com

Happy Eyeballs in a nutshell


Attempt
Attempt IPv6
IPv6 lookup
lookup and
and
connect
connect

User:
User:
www.facebook.com
www.facebook.com

Ultimately, it depends on how the OS


and application wants to handle it.

Retrieve
Retrieve and
and display
display
First come, first served

Attempt
Attempt IPv4
IPv4 lookup
lookup and
and
connect
connect
300ms
300ms
TIME
TIME

Transitioning to IPv6

Tunneling Various protocols to encapsulate IPv6


packets inside IPv4 packets.
NAT64 Translating between IPv4 and IPv6.
Native IPv6 All IPv6 (our focus and the goal of every
organization).

Learn, Use, and Familiarize Yourself with IPv6

Get behind the wheel of IPv6.


Test lab for IPv6.
Implement in a part of your network.
Develop an IPv6 implementation plan including an addressing
plan.

You Are Probably Already Running IPv6


IPv4

RS

IPv4
IPv6

R1
Here is an
IPv6 prefix
and
gateway

Rogue
RA
IPv4
IPv6

I need an
IPv6 prefix

Windows Vista or later, Mac OSX, Linux already running IPv6


Packet analyzer (Wireshark)
Potential man-in-the-middle attack
RS (Router Solicitations) and RA (Router Advertisements) described
in other lessons. (Mitigation techniques like RA Guard are available.)
Get familiar with IPv6!
People Icon: Occupations set 5 Copyright Fredy Sujono

2: Comparing IPv4 and IPv6


Rick Graziani
Cabrillo College
Rick.Graziani@cabrillo.edu

2.1: Comparing the IPv4 and IPv6 Headers

Lets Begin with the IPv6 Header


Understanding IPv6 begins with the IPv4
IPv6 header.
IPv6 takes advantage of 64-bit
CPUs.
Several differences between IPv4
64-bit memory word
IPv6IPv6
headers.
and
Simpler
header.
IPv6
Fixed 40 byte
IPv6 header.
Lets look at
the
differences

Similar fields

IPv6 Version

IPv4 Version contains 4.


IPv6 Version contains 6.
Version 5?
Internet Stream Protocol (ST2)

IPv4

IPv6

IPv4 Internet Header Length

IPv4 Internet Header Length (IHL)


Length of IPv4 header in 32-bit
words including any Options or
Padding.
IPv6
IHL for IPv6 is not needed.
IPv6 header is fixed at 40 bytes.

IPv4
1
2
3
4
5
?

IPv6
8 bytes
8 bytes
40 bytes =

8 bytes
8 bytes
8 bytes

IPv6 Traffic Class

IPv4 Type of Service


IPv6 Traffic Class
Not mandated by any IPv6 RFCs.
Same functionality as IPv4.
Uses same Differentiated Services
technique (RFC 2474) as IPv4.

IPv4

IPv6
7

IP Precedence

Unsused

DiffServ Code Point (DSCP)

IP ECN

IPv6 Flow Label

IPv4
New field in IPv6 not part of IPv4.
Flow label is used to identify the packets in a common stream or flow.
Traffic from source to destination share a common flow label.
RFC 6437 IPv6 Flow Label Specification
11001011000101100
10110010111000111

IPv6

IPv6 Payload Length

IPv4 Header

IPv4 Total Length Number of bytes of


the IPv4 header (options) + data.
IPv6 Payload Length Number of bytes
of the payload.
Does not include the main IPv6
header.
Includes extension headers + data

Data (Payload)

IPv4

IPv6
Payload
IPv6 Header

IPv6 Extension
Header (Optional)

Data

IPv4 Fragmentation

IPv4 fields used for fragmentation and


reassembly.
Intermediate devices such as IPv6
routers do not perform fragmentation.
Any fragmentation needed will be
handled by the source using an
extension header.

IPv4

IPv6

IPv6 Next Header


IPv4 Protocol
IPv4
IPv6 Next Header
For both protocols, the field indicates
the type of header following the IP
header.
Common values:
6 = TCP
IPv6
17 = UDP
58 = ICMPv6
IPv6
Next
88 = EIGRP
Header
Header
89 = OSPF

Data
(Protocol: TCP, UDP, ICMPv6, etc.)

IPv6 Hop Limit


IPv4 TTL (Time to Live)
IPv6 Hop Limit
Renamed to more accurately reflect
process.
Set by source, every router in path
decrements hop limit by 1.
When 0,
IPv6
drop packet.

IPv4

IPv6 Source and Destination Addresses


IPv6 Source and Destination
addresses have the same basic
functionality as IPv4.
IPv4 32-bit addresses.
IPv6 128-bit addresses.
Some significant changes in IPv6.

IPv4

IPv6

IPv4 Header Checksum


IPv4 Header Checksum
Not used in IPv6.
Upper-layer protocols generally have
a checksum (UDP and TCP).
So, in IPv4 the UDP checksum is
optional.
Because its
not in IPv6, IPv6
the UDP
checksum is
now
mandatory.

IPv4

IPv4 Options and Padding

IPv4 Options and Padding


Not used in IPv6.
Variable length, optional.
IPv4 Options are handled using
extension headers in IPv6.
Padding makes
sure IPv4 options
fall on a 32-bit
IPv6
boundary.
IPv6 header is
fixed at 40 bytes.

IPv4

40 bytes =

IPv6 Extension Header


Next Header identifies:
The protocol carried in the
data portion of the packet.
The presence of an extension header.
Extension headers are optional and follow the main IPv6 header.
Provide flexibility and features to the main IPv6 header for future
enhancements without having to redesign the entire protocol.
Allows the main IPv6 header to have a fixed size for more
efficient processing.
IPv6 Main
Header

Next
Header

Extension
Header

Next
Header

Data
(Protocol: TCP, UDP, ICMPv6, etc.)

IPv6 Extension Header


Next Header Value
(Decimal)

Extension Header
Name

Extension Header Description

Hop-by-Hop Options

Used to carry optional information, which must be examined by every


router along the path of the packet.

43

Routing

Allows the source of the packet to specify the path to the destination.

44

Fragment

Used to fragment IPv6 packets.

50

Encapsulating
Security Payload
(ESP)

Used to provide authentication, integrity, and encryption.

51

Authentication Header
(AH)

Used to provide authentication and integrity.

60

Destination Options

Used to carry optional information that only needs to be examined by a


packets destination node(s).

IPv6 Main
Header

Next
Header

Hop-by-Hop
Extension
Header

Next
Header

51

AH Extension
Header

Next
Header

TCP
Header

Data

2.2: A Brief Look at IPv6 Address Types

More details in
Lessons 3, 4, 5 & 6

IPv6 Address Types


IPv6 Addresses

Unicast

Multicast
Assigned
FF00::/8

Anycast

Solicited Node
FF02::1:FF00:0000/104

Global
Unicast

Link-Local

Loopback

Unspecified

Unique
Local

Embedded
IPv4

2000::/3

FE80::/10

::1/128

::/128

FC00::/7

::/80

2.3: A Brief Look at ICMPv6


Neighbor Discovery

ICMPv6
Internet Control Message Protocol for IPv6

ICMPv6 is defined in RFC 4443.


Similar to ICMPv4, describes two types of
messages:
Informational
Error
ICMPv6 Neighbor Discovery is described in RFC
4861.
Much more robust than ICMP for IPv4.
Contains new functionality and improvements.
More than just messaging but how IPv6
conducts business.
Next
IPv6 Main
All ICMPv6
messages

Header

Header

58

ICMPv6
Header

Data

ICMPv6 Neighbor Discover Protocol


ICMPv6 Neighbor Discovery defines 5 different packet types:
Router Solicitation Message
Router Advertisement Message
Used with dynamic address allocation

Router-Device
Router-Device
Messaging
Messaging

Neighbor Solicitation Message


Neighbor Advertisement Message
Used with address resolution (IPv4 ARP)

Device-Device
Device-Device
Messaging
Messaging

Redirect Message
Similar to ICMPv4 redirect message
Router-to-Device messaging

Router Solicitation & Router Advertisement Messages


ICMPv6 Neighbor Discovery defines 5 different packet types:
Router Solicitation Message
Router Advertisement Message
Used with dynamic address allocation

Router-Device
Router-Device
Messaging
Messaging

Neighbor Solicitation Message


Neighbor Advertisement Message
Used with address resolution (IPv4 ARP)

Device-Device
Device-Device
Messaging
Messaging

Redirect Message
Similar to ICMPv4 redirect message
Router-to-Device messaging

Dynamic Address Allocation in IPv4


DHCPv4 Server

1
2
II need
need IPv4
IPv4
addressing
addressing
information.
information.
Here
Here is
is everything
everything
you
you need.
need.

Dynamic Address Allocation in IPv6


To
To all
all IPv6
IPv6 routers:
routers:
II need
need IPv6
IPv6 address
address
information.
information.

II might
might not
not be
be
needed.
needed.

ICMPv6
ICMPv6 Router
Router Solicitation
Solicitation
DHCPv6 Server

To
To all
all IPv6
IPv6 devices:
devices:
Let
Let me
me tell
tell you
you how
how
to
to do
do this
this

ICMPv6
ICMPv6 Router
Router Advertisement
Advertisement
1. SLAAC
2. SLAAC with
Stateless DHCPv6

SLAAC
(Stateless Address Autoconfiguration)
Router Solicitations
Router Advertisements

3. Stateful DHCPv6

Neighbor Solicitation & Neighbor Advertisement Messages


ICMPv6 Neighbor Discovery defines 5 different packet types:
Router Solicitation Message
Router Advertisement Message
Used with dynamic address allocation

Router-Device
Router-Device
Messaging
Messaging

Neighbor Solicitation Message


Neighbor Advertisement Message
Used with address resolution (IPv4 ARP)

Device-Device
Device-Device
Messaging
Messaging

Redirect Message
Similar to ICMPv4 redirect message
Router-to-Device messaging

Address Resolution: IPv4 and IPv6


ARP Request: Broadcast

IPv4: ARP over Ethernet

Ethernet

ARP Request/Reply
ARP
Cache

My
My IPv4!
IPv4!
Here
Here is
is the
the
MAC?
MAC?

PCB

2
2

1
1
ARP
ARP Reply
Reply

ARP
ARP Request
Request

2
2

My
My IPv6!
IPv6!
Here
Here is
is the
the
MAC?
MAC?

Neighbor
Neighbor
Solicitation
Solicitation

Neighbor
Neighbor
Advertisement
Advertisement

IPv6: ICMPv6 over IPv6 over Ethernet


NS: Multicast NS: Solicited Node Multicast

Ethernet

IPv6 Header

PCA

1
1

Neighbor
Cache

Know
Know
IPv4,
IPv4, what
what
is
the
is the
MAC?
MAC?
Know
Know
IPv6,
IPv6, what
what
is
the
is the
MAC?
MAC?

Neighbor Solicitations
Neighbor Advertisements

ICMPv6: Neighbor Solicitation/Advertisement

Redirect Message
ICMPv6 Neighbor Discovery defines 5 different packet types:
Router Solicitation Message
Router Advertisement Message
Used with dynamic address allocation

Router-Device
Router-Device
Messaging
Messaging

Neighbor Solicitation Message


Neighbor Advertisement Message
Used with address resolution (IPv4 ARP)

Device-Device
Device-Device
Messaging
Messaging

Redirect Message
Similar to ICMPv4 redirect message
Router-to-Device messaging

ICMPv6 Redirect
Network X
R1

R2

Destination:
Network
PCB
X Host

IPv6
Network A PCA

PCB

IPv6
Network B

Similar functionality as ICMPv4.


Like IPv4, a router informs an originating host of the IP address of a router that
is on the local link and is closer to the destination.
Unlike IPv4, a router informs an originating host that the destination host (on a
different prefix/network) is on the same link as itself.

ICMPv6 Neighbor Discover Protocol


ICMPv6 Neighbor Discovery defines 5 different packet types:
Router Solicitation Message
Router Advertisement Message
Used with dynamic address allocation

Router-Device
Router-Device
Messaging
Messaging

Neighbor Solicitation Message


Neighbor Advertisement Message
Used with address resolution (IPv4 ARP)

Device-Device
Device-Device
Messaging
Messaging

Redirect Message
Similar to ICMPv4 redirect message
Router-to-Device messaging

More details in Lessons 7, 8 & 10

3: IPv6 Address Representation and


Address Types
Rick Graziani
Cabrillo College
Rick.Graziani@cabrillo.edu

3.1: Understanding Hexadecimal Numbers

Simple Number System Rules


For all number systems, the first digit is 0
A Base-n number system has n number of digits:
Decimal: Base-10 has 10 digits: 0,1,2,3,4,5,6,7,8,9
Binary: Base-2 has 2 digits: 0,1
Hexadecimal: Base-16 has 16 digits
The first column is always the number of 1s
Each of the following columns is n times the previous column (n
= Base-n)
Base 10: 10,000
1,000
100
10
1
Base 2:
16
8
4
2
1
Base 16: 65,536
4,096
256
16
1

Hexadecimal: 16 digits
Decimal
10 digits,
starting with 0
Hexadecimal
16 digits,
starting with 0

Dec
0
1
2
3
4
5
6
7

Hex
0
1
2
3
4
5
6
7

Dec
8
9
10
11
12
13
14
15

Hex
8
9
A
B
C
D
E
F

The Beauty of Hexadecimal: 4 bits = 1 hex digit


Binary
Binary
Dec Hex 8421
Dec Hex 8421
0
0
8
8
0000
1000
1
1
9
9
0001
1001
2
2
10
A
0010
1010
3
3
11
B
0011
1011
4
4
12
C
0100
1100
5
5
13
D
0101
1101
6
6
14
E
0110
1110
7
7
15
F
0111
1111

3.2: Representing an IPv6 Address

IPv6 Address Notation

2001:0DB8:AAAA:1111:0000:0000:0000:0100
2001 : 0DB8 : AAAA : 1111 : 0000 : 0000 : 0000 : 0100
16 bits
1

16 bits
2

16 bits
3

16 bits
4

16 bits
5

16 bits
6

16 bits
7

16 bits
8

IPv6 addresses are 128-bit addresses represented in:


Hexadecimal: 1 hex digit = 4 bits
Eight 16-bit segments or hextets (not a formal term) between 0000 and FFFF
Separated by colons
Reading and subnetting IPv6 is easier than IPv4. Really!

128-bit Address: How Many Is That?


2001:0DB8:AAAA:1111:0000:0000:0000:0100
128 bits

Number of IPv6
Addresses
IPv4
4.3 billion

IPv4 addresses:
4.3 billion
IPv6 addresses:
340 undecillion

Number name

Scientific
Notation

1 Thousand

10

1,000

1 Million

10

1,000,000

1 Billion

10

1,000,000,000

1 Trillion

10

12

1,000,000,000,000

1 Quadrillion

10

15

1,000,000,000,000,000

1 Quintillion

10

18

1,000,000,000,000,000,000

1 Sextillion

10

21

1,000,000,000,000,000,000,000

1 Septillion

10

24

1,000,000,000,000,000,000,000,000

1 Octillion

10

27

1,000,000,000,000,000,000,000,000,000

1 Nonillion

10

30

1,000,000,000,000,000,000,000,000,000,000

Number of zeros

33

1,000,000,000,000,000,000,000,000,000,000,000
1 Decillion
10
340,282,366,920,938,463,463,374,607,431,768,211,456

IPv6
340 undecillion

1 Undecillion

10

36

1,000,000,000,000,000,000,000,000,000,000,000,00
0

Number of IPv6 Addresses

340 undecillion addesses or


340 trillion trillion trillion addresses or as some people have
put it.
10 nonillion addresses for every person on earth or.
655,570,793,348,866,943,898,599 addresses for every
square meter of the Earth's surface.

Two Rules for Compressing IPv6 Addresses


Rule 1: Omitting Leading 0s
Two rules for reducing the size of written IPv6 addresses.
First rule: Leading zeroes in any 16-bit segment do not have to be written.

2001:0DB8:0001:1000:0000:0000:0ef0:bc00
2001:DB8:1:1000:0:0:ef0:bc00
2001:0DB8:010d:000a:00dd:c000:e000:0001
2001:DB8:10d:a:dd:c000:e000:1
2001:0DB8:0000:0000:0000:0000:0000:0500
2001:DB8:0:0:0:0:0:500

Two Rules for Compressing IPv6 Addresses


Rule 1: Omitting Leading 0s
Only leading 0s can be excluded, trailing 0s must be included.
Or leads to ambiguity

?
2001:0DB8:ab:1234:5678:9abcd:ef12:3456
2001:0DB8:00ab:1234:5678:9abcd:ef12:3456
2001:0DB8:ab00:1234:5678:9abcd:ef12:3456
2001:0DB8:0ab0:1234:5678:9abcd:ef12:3456

Two Rules for Compressing IPv6 Addresses


Rule 2: Double Colon ::
The second rule can reduce this address even further:
Second rule: Any single, contiguous string of one or more 16-bit segments
consisting of all zeroes can be represented with a double colon (::).
First rule

Second rule

First rule

2001:0DB8:1000:0000:0000:0000:0000:0001
2001:DB8:1000::1
2001:DB8:1000::1

Rule 2: Double Colon :: Choices


Only a single contiguous string of all-zero segments can be represented with a
double colon.
Although the rule states that both of these are correct

2001:DB8:0000:0000:1234:0000:0000:5678
RFC 5952

2001:DB8::1234:0:0:5678

or
2001:DB8:0:0:1234::5678
RFC 5952 states that the longest string of zeroes must be replaced with the :: and if they
are equal then the first string of 0s should use the :: representation.
Maximum reduction of the address is known as the compressed format.

Rule 2: Double Colon :: Only Once


Using the double colon more than once in an IPv6 address can create ambiguity
because of the ambiguity in the number of 0s.

2001:DB8::1234::5678
2001:DB8:0000:0000:0000:1234:0000:5678
2001:DB8:0000:0000:1234:0000:0000:5678
2001:DB8:0000:1234:0000:0000:0000:5678

3.3: The IPv6 Prefix Length

IPv4: Subnet Mask


and Prefix Length
IPv4

Network portion
Prefix

IPv4, the prefix, the network 32


portion of the address, can
be identified by:
Dotted decimal subnet
mask
Prefix length
The number of bits in the
prefix or network portion of
the address.

PrefixSubnet
BinaryMaskLengthMask
11111111000000000000000000000000/8255.0.0.0
11111111100000000000000000000000/9255.128.0.0
11111111110000000000000000000000/10255.192.0.0
11111111111000000000000000000000/11255.224.0.0
11111111111100000000000000000000/12255.240.0.0
11111111111110000000000000000000/13255.248.0.0
Host portion
11111111111111000000000000000000/14255.252.0.0
11111111111111100000000000000000/15255.254.0.0
11111111111111110000000000000000/16255.255.0.0
11111111111111111000000000000000/17255.255.128.0
11111111111111111100000000000000/18255.255.192.0
bits
11111111111111111110000000000000/19255.255.224.0
11111111111111111111000000000000/20255.255.240.0
11111111111111111111100000000000/21255.255.248.0
11111111111111111111110000000000/22255.255.252.0
11111111111111111111111000000000/23255.255.254.0
11111111111111111111111100000000/24255.255.255.0
11111111111111111111111110000000/25255.255.255.128
11111111111111111111111111000000/26255.255.255.192
11111111111111111111111111100000/27255.255.255.224
11111111111111111111111111110000/28255.255.255.240
11111111111111111111111111111000/29255.255.255.248
11111111111111111111111111111100/30255.255.255.252
11111111111111111111111111111110/31255.255.255.254
11111111111111111111111111111111/32255.255.255.255

IPv6 Prefix Length

IPv6 prefixes are always identified by prefix length.


Prefix length - The number of bits in the Prefix portion of the
address (equivalent to the network portion of the address).
Separates the Prefix portion from the Interface ID (equivalent to
the host portion of the address).
Written immediately following the IPv6 address, usually no space.
The prefix length does not have to fall on a nibble (4-bit) boundary.

Prefix

Interface ID

2001:0DB8:0000:0000:0000:0000:0000:0001
Prefix length /32

/48/52
/56
/64
/60

IPv6 Prefix Length

The prefix length does not have to fall on a nibble boundary.


What about a /62?
Prefix lengths can fall within a nibble but with with such a large
address space this is usually not required or recommended.

bits
0000
Prefix

Interface ID

2001:0DB8:0000:0000:0000:0000:0000:0001
Prefix length

/62
/64
/60

IPv6 Prefix Length


Prefix (network address) examples:
2001:DB8::/32
You will become more familiar
2001:DB8:1::/48
with these addresses.
In Lesson 4 we will see how
2001:DB8:CAFE::/48
easy IPv6 addresses are to use.
2001:DB8:CAFE:1::/64
Really!
2001:DB8:CAFE:1234::/64
IPv6 device address examples:
2001:DB8:CAFE::1/48
2001:DB8:CAFE::99:2/48
2001:DB8:CAFE:1::100/64
2001:DB8:CAFE:1:AAAA:BBBB:CCCC:DDDD/64

3.4: Overview of IPv6


Address Types

IPv6 Address Types. Road Map


IPv6 Addresses
Lesson 6

Unicast

Lesson 4

Multicast

Lesson 5

Anycast

Assigned

Solicited Node

FF00::/8

FF02::1:FF00:0000/104

Global
Unicast

Link-Local

Loopback

Unspecified

Unique
Local

Embedded
IPv4

2000::/3

FE80::/10

::1/128

::/128

FC00::/7

::/80

IPv6 does not have a broadcast address.

IPv6 Source and Destination Addresses


IPv6 Source Always a unicast
IPv6 Destination Unicast,
multicast or anycast.

IPv4

IPv6

Unicast Addresses
IPv6 Internet

Global Unicast Address (GUA) More in Lesson 4


2000::/3 (Range 2000::/64 thru 3fff:fff:fff:fff::/64)
Globally unique, routable, similar to public IPv4 addresses
2001:DB8::/32 - RFC 2839 reserves this range of addresses for
documentation
These are the addresses we will be referring to the most.

Unicast Addresses

Link-local Unicast More in Lesson 5


FE80::/10 (First hextet: FE80::10 to FEBF::/10)
Not routable off the link (link = network or subnet)
Unique only on the link
An IPv6 device must have at least a link-local address.
Used by:
Hosts to communicate to the IPv6 network before it has a GUA.
Routers link-local address is used by hosts as the default gateway
address.
Adjacent routers to exchange routing updates.
Next-hop addresses in IPv6 routing tables.

Unicast Addresses

Loopback Address
::1/128
Used by a node to send an IPv6 packet to itself, typically when testing the
TCP/IP stack
Same functionality as IPv4 loopback 127.0.0.1
Not routable.
Unspecified Address
:: (all-0s)
Indicates the absence or anonymity of an IPv6 address (RS source address)
Used as a source IPv6 address during duplicate address detection process

Unicast Addresses
Note: Site local addresses (FEC0::/10)
has been deprecated.

Unique Local Address


FC00::/7 (First hextet: FC00::7 to FDFF::/7)
Similar to RFC 1918 IPv4 addresses but not meant to be translated to a global
unicast (for security purposes)
Should not be routable in the global Internet.
To be used in a more limited area such as within a site or devices inaccessible
from the global Internet.
FC00::/7 1111 110x (x = local flag bit)
FC00::/8 (x = 0) - /48 prefix assigned using RFC 4193 algorithm (dormant)
FD00::/8 (x = 1) - /48 prefix locally locally assigned.

Unicast Addresses

All 0s
96 bits

IPv4 Address
32 bits

Embedded IPv4 Address


Was used by dual-stack devices that support both IPv4 and IPv6.
Rarely used and is now deprecated.
Other transition methods now used when required to send IPv6 packets
over IPv4-only networks, such as tunneling and NAT64.

Multicast Addresses

Multicast Addresses - Used to send a single packet to multiple destinations


simultaneously (one-to-many).
Assigned Multicast Address More in Lesson 6
FF02::/8 Multicast addresses with link-local scope
Similar to assigned multicast addresses for IPv4.
FF02::1 All IPv6 devices
FF02::2 All IPv6 routers
FF02::5 All OSPFv3 routers

Multicast Addresses
Much more in Lesson 6 Multicast Addresses

Solicited Node Multicast Address More in Lesson 6


FF02:0:0:0:0:1:FF00::/104 (FF02::1:FFxx:xxxx)
Automatically created using a special mapping of the devices unicast
address.
Every global unicast and link-local unicast has an associated solicited
node multicast address.
Used during ICMPv6 neighbor discovery address resolution (ARP in IPv4)

Anycast Addresses
Best path selected
by router

2001:DB8:A:B::1
2001:DB8:A:B::1
2001:DB8:A:B::1

Anycast Address
A unicast address that is assigned to more than one interface (typically
different devices).
Similar to IPv4 anycast, a packet sent to an anycast address is routed to
the nearest interface having that address, according to the routers
routing table

Summary: IPv6 Address Types


IPv6 Addresses
Lesson 6

Unicast

Lesson 4

Lesson 5

Multicast

Anycast

Assigned

Solicited Node

FF00::/8

FF02::1:FF00:0000/104

Global
Unicast

Link-Local

Loopback

Unspecified

Unique
Local

Embedded
IPv4

2000::/3

FE80::/10

::1/128

::/128

FC00::/7

::/80

4: Global Unicast Addresses (GUA)


Rick Graziani
Cabrillo College
Rick.Graziani@cabrillo.edu

4.1: Purpose and Format of GUA

IPv6 Address Types


IPv6 Addresses
Unicast

Multicast

Anycast

Assigned

Solicited Node

FF00::/8

FF02::1:FF00:0000/104

Global
Unicast

Link-Local

Loopback

Unspecified

Unique
Local

Embedded
IPv4

2000::/3

FE80::/10

::1/128

::/128

FC00::/7

::/80

IPv6 does not have a broadcast address.

IPv6 Source and Destination Addresses


IPv6 Source Always a unicast
(link-local or GUA)
IPv6 Destination Unicast,
multicast, or anycast.

IPv4

IPv6

Global Unicast Address


IPv6 Internet

Global Unicast Address (GUA)


2000::/3 (First hextet: 2000::/3 to 3FFF::/3)
Globally unique and routable
Similar to public IPv4 addresses
2001:DB8::/32 - RFC 2839 and RFC 6890 reserves this range of addresses
for documentation
These are the addresses we will be referring to the most.

Global Unicast Address Range


Global Routing Prefix Subnet ID
001

Range:

2000:
3FFF:

Interface ID

0010 0000 0000 0000 :


0011 1111 1111 1111 :

First hextet

Global Unicast Address (GUA)


2000::/3
Range 2000::/64 thru 3fff:fff:fff:fff::/64
1/8th of IPv6 address space
IANAs allocation of IPv6
address space in 1/8th sections

Global Unicast Address Range


Global Routing Prefix Subnet ID
001

Interface ID

Range:
2000::/64 thru 3fff:fff:fff:fff::/64

Except under very specific circumstances, all end users will have a
global unicast address.
Note: A host (an interface) can potentially have multiple IPv6
addresses on the same or different networks.
Terminology:
Prefix equivalent to the network address of an IPv4 address
Prefix length equivalent to subnet mask in IPv4
Interface ID equivalent to host portion of an IPv4 address

Parts of a Global Unicast Address


IPv4 Unicast Address
Network portion

/?
Subnet portion Host portion

32 bits
IPv6 Global Unicast Address
/64
/48
16-bit
Global Routing Prefix
Subnet ID

Interface ID

128 bits

64-bit Interface ID = 18 quintillion (18,446,744,073,709,551,616) devices/subnet


16-bit Subnet ID (initially recommended) = 65,536 subnets

/64 Global Unicast Address and the 3-1-4 Rule


/48
16 bits

16 bits

16 bits

/64
16 bits

Global Routing Prefix Subnet ID

16 bits

16 bits

16 bits

16 bits

Interface ID

2001 : 0DB8 : CAFE : 0001 : 0000 : 0000 : 0000 : 0100


3 + 1 = 4 (/64) :
4
2001:0DB8:CAFE:0001:0000:0000:0000:0100/64
2001:DB8:CAFE:1::100/64

4.2: Subnetting IPv6

Subnetting IPv6
Can you count in hex?
Just increment by 1 in Hexadecimal:
2001:0DB8:CAFE:0000::/64
2001:0DB8:CAFE:0001::/64
2001:0DB8:CAFE:0002::/64 ...
2001:0DB8:CAFE:0009::/64

3-1-4 Rule

2001:0DB8:CAFE:000A::/64
Valid abbreviation is to remove the leading 0s:
2001:DB8:CAFE:1::/64

For Demonstration Purposes Only


Extending the Subnet ID

/80
/64
/48
48-bit
16-bit Fixed
32-bit
Subnet
ID
Global Routing Prefix
Interface
ID
Interface
ID
Subnet ID
Prefix

Note:
It Global
is highly
recommendedSubnet-ID
to NOT subnet into
the /64
Routing Prefix
Interface ID
interface ID portion of the address to configure subnets.
0DB8exception
: CAFE : 0000
: 0000
: 0000
: 0000infrastructure
: 0000
2001
The:only
would
be for
network
2001
: 0DB8 : CAFE :
0000 router-to-switch
: 0001 : 0000 : 0000
: 0000
(router-to-router
links,
links,
etc.).
2001 : 0DB8 : CAFE : 0000 : 0002 : 0000 : 0000 : 0000
Networks with an
end system attached should be a /64.
thru
2001 : 0DB8 : CAFE : FFFF : FFFE : 0000 : 0000 : 0000
2001 : 0DB8 : CAFE : FFFF : FFFF : 0000 : 0000 : 0000

For Demonstration Purposes Only


Subnetting on a Nibble Boundary
/68

/48
Global Routing Prefix

Subnet ID
20 bits

Interface ID
60 bits

/68 Prefix

Subnetting on a nibble (4 bit) boundary makes it easier to list the subnets:


/68
/64, /68, /72, etc.
2001:0DB8:CAFE:0000:0000::/68
2001:0DB8:CAFE:0000:1000::/68
2001:0DB8:CAFE:0000:2000::/68 through
2001:0DB8:CAFE:FFFF:F000::/68

For Demonstration Purposes Only


Subnetting within a Nibble
/70

/48
Global Routing Prefix

Subnet ID

Interface ID
58 bits

22 bits

/70 Prefix
Binary

2001:0DB8:CAFE:0000:0000::/70

0000

2001:0DB8:CAFE:0000:0400::/70

0100

2001:0DB8:CAFE:0000:0800::/70

1000

2001:0DB8:CAF:0000:0C00::/70

1100

Four Bits:
Two leftmost bits:
Subnet-ID

Two rightmost bits:


Associated with the
Interface ID

Do I Need the IPv6 Equivalent to an IPv4 /30?


/127

/48
Global Routing Prefix

Subnet ID
79 bits

1bit

RFC 6164 - Using 127-Bit IPv6 Prefixes on Inter-Router Links


Ping-Pong Attack
Neighbor Cache Exhaustion Issue
There are mitigation techniques for both.
If you want to use a /127, reserve a separate /64 for each /127. Really!

Allocate Separate /64s


/127

/48
Global Routing Prefix

F001
F000

Subnet ID
79 bits

For each /127 allocate an


entire /64:
2001:DB8:CAFE:F000::/64
2001:DB8:CAFE:F001::/64

2001:DB8:CAFE:F000::/64
2001:DB8:CAFE:F000::0/127
2001:DB8:CAFE:F000::1/127

2001:DB8:CAFE:F002::/64
2001:DB8:CAFE:F003::/64
And so on...

2001:DB8:CAFE:F001::/64

000
3 bits 1bit

0 or 1
All 0s ::
can be
confusing

2001:DB8:CAFE:F001::0/127
2001:DB8:CAFE:F001::1/127

Use a Different Last 3 bits for the Subnet ID


/127

/48
Global Routing Prefix

F001
F000

Subnet ID
79 bits

Be careful which two


interfaces addresses you
choose.
::9 and ::A are not on the
same /127 subnet

2001:DB8:CAFE:F000::/64
2001:DB8:CAFE:F000::A/127

101
3 bits 1bit

0 or 1

2001:DB8:CAFE:F000::B/127

2001:DB8:CAFE:F001::/64
2001:DB8:CAFE:F001::A/127
2001:DB8:CAFE:F001::B/127

IPv6 Addressing Plan

RFC 1878 VLSM

IPv4 subnetting is used to help


conserve IPv4 address space.
Managing a limited space
VLSM
/30s for point-to-point links
IPv6 address conservation does not
need to be as aggressive as IPv4.
Developing an address plan that is:
Makes sense.
Easy to manage.
NANOG BCOP: IPv6 Subnetting
Cisco: IPv6 Address Guide
RIPE NCC: Preparing an IPv6
Addressing Plan - RIPE Network

4.3: IPv6 Address Allocation

IPv6 Address Allocation


Global Routing Prefix
/23 /32

I am getting a /64 at home


/48 /56

/64

Subnet
Sub
ID

Interface ID

*RIR
*ISP Prefix
*Site Prefix
Possible Home Site Prefix

Internet Service
Provider

Subnet Prefix
* This is a minimum allocation. The prefix-length may be shorter if it can be justified.

Global Routing Prefix determines number of /64 subnets *


/64

2001:DB8:0000:0000:0000:0000:0000:0000
64-bit Interface ID

/60 = 16 /64s
/56 = 256 /64s
/52 = 4,096 /64s

/32 = 65,536 /48s

/48 = 65,536 /64s (Many sites will get this prefix length)
/44 = 1,048,576 /64s
/40 = 16,777,216 /64s
/36 = 268,435,456 /64s

/32 = 4,294,967,296 /64s

PI versus PA Address Space


RIR

/32

Global Routing Prefix

/48

ISP

Subnet
ID

Interface ID

Provider Independent (PI) Address Space


Address space that is assigned by the RIR.
Remains assigned to the customer regardless of provider
No prefix renumbering needed if change providers
Provider Aggregatable (PA) Address Space
Address space that is typically assigned by an ISP to a customer.
Change provider, must get new address space
Customer must do prefix renumbering (Helpful IETF RFCs)

4.4: Configuring a Static GUA

Configuring a Global Unicast Address


Global Unicast
Overview only
Manual

Dynamic
Stateless

Static

IPv6
unnumbered
Similar to IPv4 unnumbered

Static + EUI 64

Stateful

SLAAC

DHCPv6

SLAAC +
DHCPv6

DHCPv6-PD

Details, including the operations and configurations of SLAAC (Stateless Address


Autoconfiguration) in Lesson 7 and DHCPv6 in Lessons 8.

Static GUA
Configuration

2001:DB8:CAFE:1::/64
:100

:100

A
B

G0/0
:1
:1
G0/1

2001:DB8:CAFE:3::/64
R1

:1
S0/0/0

2001:DB8:CAFE:2::/64

R1(config)#interface gigabitethernet 0/0


R1(config-if)#ipv6 address 2001:db8:cafe:1::1/64
R1(config-if)#no shutdown
R1(config-if)#exit

No space

Exactly the same as an IPv4 address only different.


No space between IPv6 address and Prefix-length.
IOS commands for IPv6 are very similar to their IPv4 counterpart.
All 0s and all 1s are valid IPv6 host IPv6 addresses.

Static GUA
Configuration

2001:DB8:CAFE:1::/64
:100

:100

A
B

G0/0
:1
:1
G0/1

2001:DB8:CAFE:3::/64
R1

:1
S0/0/0

2001:DB8:CAFE:2::/64

R1(config)#interface gigabitethernet 0/1


R1(config-if)#ipv6 address 2001:db8:cafe:2::1/64
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface serial 0/0/0
R1(config-if)#ipv6 address 2001:db8:cafe:3::1/64
R1(config-if)#no shutdown
R1(config-if)#exit

I love the 3-1-4


rule and
subnetting IPv6!

The ipv6 unicast-routing global configuration command is required for


forward IPv6 packets it is not required to configure IPv6 addresses.

Verifying
Address Using
Running
Configuration

2001:DB8:CAFE:1::/64
:100

:100

A
B

G0/0
:1
:1
G0/0

2001:DB8:CAFE:3::/64
R1

:1
S0/0/0

2001:DB8:CAFE:2::/64

R1# show
running-config

<output omitted for brevity>


interface GigabitEthernet0/0
no ip address
IPv4 address
duplex auto
speed auto
ipv6 address 2001:DB8:CAFE:1::1/64
!

IPv6 address

Verifying Unicast Addresses on R1


R1# show ipv6 interface brief
GigabitEthernet0/0
[up/up]
FE80::FE99:47FF:FE75:C3E0
2001:DB8:CAFE:1::1
! <output omitted>

Link-local unicast address


Global unicast address

Link-local and global unicast addresses are displayed.


Link-local address automatically created when (before) the global unicast address
is.
Link-local addresses are used for communicating with other devices on the same
link (not routable).
We will discuss link-local addresses in Lesson 5.

Static GUA Configuration on PC

Same as IPv4 devices:


Servers, printers, routers, etc.

Can also be a linklocal unicast address


of the router.

Verifying Unicast Addresses on PC


PCA>ipconfig
WindowsIPConfiguration
EthernetadapterLocalAreaConnection:
ConnectionspecificDNSSuffix:
IPv6Address..........:2001:db8:cafe:1::100
LinklocalIPv6Address....:
fe80::50a5:8a35:a5bb:66e1
DefaultGateway.......:2001:db8:cafe:1::1

Link-local addresses are created automatically.


Recent Microsoft operating systems use a random 64-bit Interface ID for linklocal address (coming soon)

Verifying IPv6 Connectivity


PCA> ping 2001:db8:cafe:1::1
Pinging 2001:db8:cafe:1::1 from 2001:db8:cafe:1::100 with 32 bytes of data:
Reply
Reply
Reply
Reply

from
from
from
from

2001:db8:cafe:1::1:
2001:db8:cafe:1::1:
2001:db8:cafe:1::1:
2001:db8:cafe:1::1:

time=1ms
time=1ms
time=1ms
time=1ms

Ping statistics for 2001:db8:cafe:1::1:


Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 1ms, Average = 1ms
PCA>

IPv6 General Prefix: Making your life easier


Router(config)# ipv6 general-prefix ?
WORD General prefix name
Router(config)# ipv6 general-prefix MyGUA 2001:db8:cafe::/48
Router(config)# interface gigabitethernet 0/0
Router(config-if)# ipv6 address MyGUA 0:0:0:88::1/64
Router(config-if)# no shutdown
Router(config-if)# exit
Router(config)# interface gigabitethernet 0/1
Router(config-if)# ipv6 address MyGUA 0:0:0:99::1/64
Router(config-if)# no shutdown
Router(config-if)# end
Router# show ipv6 interface brief
GigabitEthernet0/0
[up/up]
FE80::7EAD:74FF:FECC:5380
2001:DB8:CAFE:88::1
GigabitEthernet0/1
[[up/up]
FE80::7EAD:74FF:FECC:5381
2001:DB8:CAFE:99::1
<output omitted>

The general-prefix option can be used


as a short-cut or alias for just about
any command requiring an IPv6
address, addressing, ACLs, etc.

IPv6 General Prefix: Renumbering


Router(config)# no ipv6 general-prefix MyGUA 2001:db8:cafe::/48
Router(config)# ipv6 general-prefix MyGUA 2001:db8:beef::/48
Router(config-if)# end
Router# show ipv6 interface brief
GigabitEthernet0/0
[up/up]
FE80::7EAD:74FF:FECC:5380
2001:DB8:BEEF:88::1
GigabitEthernet0/1
[[up/up]
FE80::7EAD:74FF:FECC:5381
2001:DB8:BEEF:99::1
<output omitted>
Router# show running-config
<partial output>
ipv6 general-prefix MyGUA 2001:DB8:BEEF::/48
!
interface GigabitEthernet0/0
ipv6 address MyGUA ::88:0:0:0:1/64
!
interface GigabitEthernet0/1
ipv6 address MyGUA ::99:0:0:0:1/64
!

It is also greatly simplifies network


renumbering and allows for automated
prefix definition.

4.5: Configuring a Static GUA with

EUI-64

Configuring a Static GUA + EUI-64


Global Unicast

Manual

Dynamic
Stateless

Static

IPv6
unnumbered
Similar to IPv4 unnumbered

Static + EUI 64

Stateful

SLAAC

DHCPv6

SLAAC +
DHCPv6

DHCPv6-PD

Configuring a Static GUA + EUI-64


R1(config)#interfacegigabitethernet0/1
R1(configif)#ipv6address2001:db8:cafe:99::/64?
eui64Useeui64interfaceidentifier
All 0s is ok!
<cr>
R1(configif)#ipv6address2001:0db8:cafe:99::/64eui64
R1(configif)#

R1
G0/1

2001:DB8:CAFE:99::/64

A 64-bit Interface ID is created with EUI64 using:


48-bit MAC address
Inserting 16 bits: FF-FE
Flipping the U/L (Universal/Local) bit

Modified EUI-64 Format (Extended Unique Identifier64)


OUI (24 bits)

00

03

Device Identifier (24 bits)

6B

E9

D4

80

Insert FF-FE

00

03

6B

FF

FE

E9

D4

80

00

03

6B

FF

FE

E9

D4

80

FF

FE

E9

D4

80

0000 0010
0000

U/L bit flipped

02

03

6B

Configuring a Static GUA + EUI-64


R1(config)#interfacegigabitethernet0/1
R1(configif)#ipv6address2001:db8:cafe:99::/64eui64
R1#showinterfacegigabitethernet0/1
GigabitEthernet0/1isup,lineprotocolisup
HardwareisAmdFE,addressis0003.6be9.d480(bia0003.6be9.d480)
<outputomitted>

64-bit prefix from configuration

64-bit Interface

R1#showipv6interfacegigabitethernet0/1
ID using EUI-64
GigabitEthernet0/1isup,lineprotocolisup
IPv6isenabled,linklocaladdressisFE80::203:6BFF:FEE9:D480
Globalunicastaddress(es):
EUI-64: 48-bit MAC address
2001:DB8:CAFE:99:203:6BFF:FEE9:D480,
subnetis2001:DB8:CAFE:99::/64
with FFFE (16 bits) inserted
<outputomitted>
and 7th bit flipped

4.6: Overview of Dynamic IPv6 Address Allocation

and DHCPv6)

(SLAAC

Dynamic IPv6 Address Allocation


Global Unicast
Overview only
Manual

Dynamic
Stateless

Static

IPv6
unnumbered
Similar to IPv4 unnumbered

Static + EUI 64

Stateful

SLAAC

DHCPv6

SLAAC +
DHCPv6

DHCPv6-PD

Dynamic IPv4 Address Allocation


I need IPv4 addressing
information from a DHCP server.

DHCP Server

DHCP Client
Here is your IPv4
address, subnet mask,
default gateway and
DNS server addresses.

ICMPv6
Internet Control Message
Protocol for IPv6

ICMPv6 than just messaging but how


IPv6 conducts business.
ICMPv6 Neighbor Discovery (RFC
4861) used in dynamic address
allocation.
More later!

Once again ICMPv6 Neighbor Discovery


ICMPv6 informational messages used by Neighbor
Discovery (RFC 4861):

Router Solicitation Message


Router Advertisement Message
Used for dynamic address allocation.

Neighbor Solicitation Message


Neighbor Advertisement Message
Used with address resolution (IPv4 ARP)
and with DAD

Redirect Message (Similar to ICMPv4)

Router-Device
Router-Device
Messaging
Messaging

Device-Device
Device-Device
Messaging
Messaging

It Begins with the RA Message


ICMPv6
ICMPv6 Router
Router Advertisement
Advertisement
ICMPv6
ICMPv6 Router
Router Solicitation
Solicitation
Multicast: To all
IPv6 devices,
let me tell you how
to do this

Multicast: To all
IPv6 routers, I need
IPv6 address
information
DHCPv6
Server

I might not even be


needed.

An ICMPv6 Router Advertisement (RA) suggests to all IPv6 devices on the


link how it will receive IPv6 Address Information.
Sent periodically by an IPv6 router or
when the router receives a Router Solicitation message from a host.

It Begins with the RA Message


ICMPv6
ICMPv6 Router
Router Advertisement
Advertisement
Router(config)# ipv6 unicast-routing

DHCPv6
Server

Router Advertisement (RA) Message


Part of ICMPv6 (Internet Control Message Protocol for IPv6)
RA messages are sent by an IPv6 router, ipv6unicastrouting command
Forwards IPv6 Packets
Enables IPv6 dynamic routing
Sends ICMPv6 Router Advertisements
Routers can be configured with IPv6 addresses without being an IPv6 router.
IPv6 static routes can be configured but the router will only forward locally
generated packets it will not forward packets that transit through the router.

Option 1 and 2: Stateless Address Autoconfiguration


Router Advertisement:
3 Options
DHCPv6 Server does not maintain state of addresses
Option 3: Stateful Address Configuration
Address received from DHCPv6 Server

Router(config)# ipv6 unicast-routing

DHCPv6

Option 1: SLAAC No DHCPv6 (Default on Cisco routers)

DHCPv6 Server

Im everything you need (Prefix, Prefix-length, Default Gateway)


Option 2: SLAAC + Stateless DHCPv6 for DNS address
Here is my information but you need to get other information such
as DNS addresses from a DHCPv6 server. (DNS can be in RA)

RA
RA

Option 3: All addressing except default gateway DHCPv6


I cant help you. Ask a DHCPv6 server for all your information.

Dynamic IPv6 Address Allocation


Global Unicast

Manual

Lesson 7

Dynamic

Stateless

Static

IPv6
unnumbered
Similar to IPv4 unnumbered

Static + EUI 64

Stateful

SLAAC

DHCPv6

SLAAC +
DHCPv6

DHCPv6-PD
Lesson 8

ICMPv6 Lesson 9
ICMPv6 Neighbor Discovery including packet captures Lesson 10

For more information please check out my Cisco Press book and video series:

IPv6 Fundamentals: A Straightforward


Approach to Understanding IPv6

By Rick Graziani

ISBN-10: 1-58714-313-5

IPv6 Fundamentals LiveLessons: A


Straightforward Approach to Understanding IPv6

By Rick Graziani

ISBN-10: 1-58720-457-6

You might also like