IPv6

Introduction

An evolution of IPv4.

Builds on IPv4.

Most notable change is address changes
to 128 bits.

Dynamic environment.

Requires a much more sophisticated
operating environment.

Over 58 other protocols have changed
with it.

Will run as islands using IPv4 as the
backbone.

Cannot simply “flip a switch” to convert.
1
IPv6 (continued)

IPv5 exists and is known as the Streams 2 (ST2) Protocol:

RFC 1819

Operates at the same layer as IP

Developed as an IP layer for real-time applications

Includes QoS capabilities

IPv6 truly works on the finer aspects of IPv4.

Requires a dynamic environment:

Many discovery options including:

Autoconfiguration

Finding the maximum path MTU

Finding other workstations without ARP

Finding routers
2
IPv6 Features

Extended addressing capabilities.

Header format simplification.

Improved support for extensions and
options.

Flow label capability.

Authentication and privacy capabilities.

IPv6 routing similar to IPv4 routing using
CIDR.

OSPF, RIP, IDRP, and IS-IS can be
used with minor modifications
3
From IPv4 to IPv6

Built up to the IPv6 specification that we
have today using various proposal
submissions such as:

ISO CLNP– demonstrated as TUBA
(TCP and UDP over Bigger Addresses)

IP version 7 (aka TP/IX, RFC 1475)

IP in IP – evolved to IP address
encapsulation

PIP – merged into SIP creating SIPP
(RFC 1710)
4
IP Version Numbers According to RFC 1700
Decimal
Keyword
Version
References
0
Reserved
1-3
Unassigned
4
IP
Internet Protocol
RFC 791
5
ST
ST Datagram Mode
RFC 1190, JWF
6
IPv6
RFC 1883
7
TP/IX
TP/IX: The Next Internet
8
PIP
The P Internet Protocol
9
TUBA
TCP and UDP over Bigger Addresses
10 - 14
Unassigned
15
Reserved
5
IPv6 Header
Vers
Priority
Payload length
Total length
Next header
Hop limit
Source IP address
Destination IP address
IP datagram data (up to 65535 bytes)
Next header– Could be transport layer header
or an IPv6 extension header
DA
SA
Type
86DD
IP Header and Data
CRC
Ethernet Data Field
6
IPv4 Options Review – A Review

Security

Loose source routing

Strict source routing

Record route

Stream ID

Internet timestamp
7
IPv4 and IPv6 Header Differences

IPv6 header is a static 40 bytes in length.

Total length field is replaced with payload
length.

IPv6 allows for jumbograms (larger than
64k).

Extension headers.

TTL field is replaced with the hop limit.

Many Ipv4 options were moved to
independent protocols.
8
IPv6 Header Format
IPv6 header
Next header = 17
DA
SA
TF
IPv6 header
(UDP)
UDP header and data
IP Data
CRC
9
Fragmentation
IPv6 header
Next header =
routing
DA
SA
TF
Routing header Fragment header Fragment of UDP
Next header =
Next header =
fragment
UDP
Header and data
IPv6 header
IP data
CRC
10
Priority and Flow Label

Still under much study.

Priority field distinguishes the datagram
amongst other datagrams.

Two types of controlled traffic:


Congestion

Noncongestion
Flow labels allow the router to indentify a
flow and place this label in the routing
table for quick lookup.
11
IPv6 Addressing

Unicast – identifies a single interface.

AnyCast – new for IPv6, it identifies a
set of interfaces usually belonging to
different nodes. Used to deliver
datagrams to the “nearest” of the
interfaces.

Multicast – an identifier belong to a
group of interfaces. IPv6 extensively
uses the multicast interface.

There is no broadcast address in IPv6.
12
IPv6 Addressing (cont.)
128 bits
IPv4

Which provides for:

340,282,366,920,938,463,463,374,607,431,768,211,456 addresses

Address is written in hex.

Takes the form of:

32 bits

xxxx : xxxx : xxxx : xxxx : xxxx : xxxx : xxxx : xxxx

FEDC:BA98:7654:3210:FEDC:BA98:7654:0321
Zeros can be truncated:

FF:0000:0000:0000:0000:9085:9043:1234


FF::9085:9043:1234
Only one set of zeros can be truncated
13
IPv6 Addressing (continued)

The first few bits are indicators (as shown
in a moment).

They do not register as a Class of
address as in IPv4

Similar to CIDR, prefixes are used to
indicate the routing.

Special addresses are reserved:

Unspecified address

Loopback address

Embedded IPv4 address

Multicast address
14
IPv6 Addressing Prefix
Allocation
Prefix (binary)
Fraction of Address Space
Reserved
Unassigned
Reserved for NSAP
Allocation
Reserved for IPX
Allocation
Unassigned
Unassigned
Unassigned
Unassigned
0000 0000
0000 0001
1/256
1/256
0000 001
1/128
0000 010
0000 011
0000 1
00001
001
1/128
1/32
1/16
1/8
Provider-based
Unicast address
Unassigned
Reserved for geographic-based unicast addresses
Unassigned
Unassigned
Unassigned
Unassigned
Unassigned
Unassigned
Unassigned
010
011
100
101
110
1110
11110
1111 10
1111 110
1111 11100
1/8
1/8
1/8
1/8
1/8
1/16
1/32
1/64
1/128
1/512
Link local use
Addresses
Site Local Use Addresses 1111 1110 11
Muclticast Addresses
1111 1110 10
1/1024
1111 1111
1/1024
1/256
15
6Bone Test Addressing
3 bits
010
n bits
m bits
Registry ID
Provider ID
3 bits 5 bits
16 bits
8 bits
o bits
Subscriber ID
24 bits
p bits
128-mnop bits
Subnet ID
8 bits
16bits
Interface ID
48 bits
010 11111 AS number Resv IPv4 Network address Resv Subnet ID Interface ID
(IANA)
16
Provider-Based IPv6 Addressing
Provider-based
3 bits
010
n bits
m bits
Registry ID
Provider ID
o bits
Subscriber ID
p bits
Subnet ID
128-mnop bits
Interface ID
17
Local-Use IPv6 Addressing
10 bits
n bits
1111111010
0.
.
.
.
.
.
128 - n bits
.
.
.
.
1111111011
FEC0
Interface ID
usually the 48 bit IEEE address
FE80
10 bits
. .0
n bits
m bits
0
subnet ID
128 - m - n bits
Interface ID
usually the 48 bit IEEE address
18
IPv6 Addresses with Embedded IPv4
Addresses
4 bits
96 bits
0000 .
.
.
.
.
.
. . . . . .
.
0000
0000
32 bits
IPv4 32-bit address
IPv4-compatible IPv6 address
0:0:IPv4 address
19
Unicast Addresses
Generic structure of an IPv6 address
Subscriber prefix
area ID
(possibly IEEE 802.x MAC address)
subnet ID
interface ID
Provider based
3 bits
010









n bits
Registry ID
m bits
Provider ID
Global provider based
Geographic based
NSAP
IPX Hierarchical
Unspecified - 0:0
Site-local use
Link-local use
IPv4-capable host
Loopback - 0:0:0:0:0:0:0:1
o bits
p bits
Subscriber ID Subnet ID
128-mnop bits
Interface ID
Provider based
Special use address
20
Autoconfiguration

Stateless Autoconfiguration.

Initializing hosts join the all nodes
multicast address of FE02::1

Stateless autoconfiguration allows for a
node to start up using the link-local prefix
and some sort of token.

This will probably be the 48-bit
Ethernet address

Address would be FE80::48-bit
address (multicast)

Hosts send a solicitation message to
all-routers using the all-routers multicast
address of FF02::2.

Used to determine the node’s routing
prefix and other routing parameters

Stateful autoconfiguration uses.
21
Neighbor Discovery

RFC 1970.

Very extensive and best to read RFC.

Nodes used Neighbor Discovery to
determine link-layer addresses for
neighbors.

Finds link-local hosts and routers.

Detects which neighbors are reachable and
to detect link layer address changes.

ARP is not used with IPv6.

This is the robust replacement for
ARP (IPv4)
22
Neighbor Discovery (continued)

In IPv6, Discovery messages use the
various multicast address assignments
for router discovery, neighbor discovery,
etc.

The media (MAC) address is a multicast
address as well:

33-33-last 32 bits of the IPv6
address

RFC 1970 applies to all link-layer types
except NBMA and various proprietary
interfaces.
23
Neighbor Discovery Types

Router Discovery

Prefix Discovery

Parameter Discovery

Address Autoconfiguration

Address Resolution

Next-Hop determination

Neighbor Unreachability Detection

Duplicate Address Detection

Redirect
24
Neighbor Discovery and IPv4

IPv6 Neighbor Discovery combines IPv4
protocols of ARP, ICMP Router Discovery,
and ICMP Redirect.

IPv4 has no agreed-upon method for
Dead Gateway Detection and Neighbor
Unreachability detection.
25
Neighbor Discovery and IPv4
(continued)

IPv6 assumes a redirect next hop is
on-link – on the same link that it resides.

IPv6 detects half link failures (neighbors
that are suspect or that have gone away).

IPv6 Router advertisements do not
contain a Preference field.

Using link-local addresses to identify
routers means that this relationship is
maintained even if the provider address
changes.

Address resolution is accomplished at the
ICMP layer.
26
Address Resolution

Purpose is to determine the link
level-address of a destination given
only its IP address.

Consists of sending a Neighbor
Solicitation message and waiting for a
reply.

All nodes start up by joining the
all-nodes multicast address and the
solicited node multicast address

Solicited node address is taking the
96 bit prefix FF02:0:0:0:0:1 and place
the low order 32 bits of the
destination IP address to this

This allows for a range of FF02:1:0:0
through FF02:1:FFFF:FFFF

The full target address is embedded
in the ICMP packet
27
Methods of Deploying IPv6

Dual IP layer–a node that is running both the
IPv4 and IPv6 TCP/IP protocol stacks.

IPv6 over IPv4 Tunnel–the process of taking
an IPv6 datagram and wrapping an IPv4
header on it for transit across IPv4 routers.


Configured Tunnel–IPv4 tunnel
endpoint address is determined by the
encapsulating node

Automatic Tunnel–IPv4 tunnel endpoint
is determined from the IPv4 address of
the IPv6 packet
Transition consists of:

IPv4-only node.
28
IPv6 Tunneling Introduction

Host to Router

Router to Router

Router To Host

Host to Host
29
IPv6 Tunnel Addressing
IPv4 Header IPv6 Header
Transport Layer
header
Data
::132.1.1.1
IPv6 Header
Transport Layer
Header
Data
30
IPv6 and IPv4 Dual-Stack Strategy
TCP/UDP
Applications
IPv4
IPv6
Ethernet, Token Ring, FDDI
Medium Dependent media type
31
IPv6 Tunneling
IPv6
host
IPv4/v6
router
IPv4
router
IPv4/v6
router
Could be the Internet
IPv4 Cloud
IPv6
host
IPv4
router
IPv4
host
IPv4
host
IPv6
host
Uh-Oh!
IPv4/6
host
IPv4
host
32
IPv6 Tunneling



router
to
router
Four possible ways to tunnel
IPv4 Network
IPv6/IPv4
router
IPv4
router
host to
router
tunnel
IPv4 Network
host to
host
IPv4 Network

IPv6/IPv4
router
IPv4
router
IPv4
router
router
to
host
IPv6/IPv4
router
IPv6/IPv4
router
(last segment of
end-to-end span)
Host IPv6/IPv4
IPv4
router
IPv6/IPv4 host
33
IPv6 Tunneling Flowchart 1
End node
address is
IPv4-compatible
IPv6 address
Destination
local?
Yes
Send direct with
destination address
set to IPv6 fromat
No
IPv4 router
available?
No
IPv4 router
available?
Yes
Send IPv6 encapsulated
packet to IPv4 router; IPv6 destination
addresses to the end node; IPv4
address set to low-order 32 bits
of end node
No
Destination
unreachable
Yes
Send direct to IPv6 router
with destination
address set to IPv6 format
34
IPv6 Tunneling Flowchart 2
End node
address is
IPv6-only
address
Destination
local?
Yes
Send direct with
destination address
set to IPv6 fromat
No
Configured tunnel
and IPv4 router
available?
No
IPv6 router
available?
Yes
Send direct to IPv6 router
with IP destination
set to final destination
in IPv6 format
No
Destination
unreachable
Yes
Send IPv6 datagram encapsulated in
IPv4 packet. IPv6 destination address
and IPv4 destination address is the
configured IPv4 address of the
tunnel endpoint.
35
IPv6 Tunneling Flowchart 3
End node
address is
IPv4
Destination
local?
Yes
Send direct with
destination address
set to IPv4
No
Destination
unreachable
No
IPv4 router
available?
Yes
Send IPv4 packet;
destination address set to
the IPv4 address of the
end node
36
Anycast Addressing

Similar to a multicast address.

Address is sent to a group address (anycast)
but the router delivers the datagram to the
nearest member of the group.

Provides for applications such as file and
print servers, time servers, name servers,
DHCP, etc.

Similar to the NetWare protocol of “Get
Nearest Server” request.
37
Multicasting for IPv6
8 bits
4 bits
Flags
1111 1111
0
0
0
4 bits
112 bits
Scope
Group ID
T
Flag bits
T = Transient - 0 indicates IANA multicast assigned

First part of the address is the multicast reserved bits FF.

The scope is included in the overall reserved address.

For example, you could look for all name servers within a site
local scope

All name servers within a link local scope

Same multicast function but different address

Same function as the TTL in MBONE
38
IPv6 Routing

Existing routing protocols (OSPF, RIP, IDRD,
etc.) are straightforward extensions of IPv4
routing.

IPv6 includes new routing extensions such
as:

Provider selection

Host mobility

Auto-readdressing

OSPF:

Creates a separate link state database

Makes room for the 128 bit address

Cannot interoperate with IPv4
39
RIPng
0
8 bits
Command
8 bits
16 bits
Version
Must be zero
31
IPv6 Address (128 bits)
Route tag
Subnet mask
Metric
more IPv6 addresses and metrics
more IPv6 addresses and metrics
more IPv6 addresses and metrics
Variable in length and therefore number
of entries per packet.
40
ICMP

Found in RFC 1885 and originally found in
RFC 792.

The functions of ICMP are explained
in 1885, but many other RFCs are
referenced:

1970 for Neighbor Discovery

1191 for Path MTU Discovery

IPv4 extension.

Continues to provide some maintenance
for an unreliable IPv6.

No ICMPv6 messages are sent for ICMPv6
errors.
41
ICMPv6 Encapsulation
Type
Code
Checksum
Message body based on Type and
Code fields (variable length)
IPv6 header
Next header = 56
DA SA
TF
IPv6 header
IP data
ICMP message
CRC
42
ICMPv6 and ICMPv4

Cleaned up ICMPv4.

Timestamp, source quench, and
information request and reply were
deleted (picked up by other protocols)

Eliminated unused codes and types.

IGMP is moved into ICMPv6.

ICMPv6 is not compatible with ICMPv4;
however, it is the same format

ICMPv6 does copy more of the offending
datagram when sending an error message.

Error messages have types from 0 - 127 and
informational messages have types from
128 - 255.
43
ICMPv6 Error Messages


Destination Unreachable:

No route to destination

Communication with destination
administratively prohibited

Not a neighbor

Address Unreachable

Port Unreachable
Packet Too Big:

Returns the largest packet size available
for the forwarded port
44
ICMPv6 Error Messages (continued)


Time Exceeded Message.

Hop limit exceeded in transit

fragment reassembly time exceeded
Parameter Problem.

Erroneous header field encountered

Unrecognized nest header type
encountered

Unrecognized IPv6 option
45
ICMP Informational Messages

Echo Request

Echo Reply

Good ol’ PING
46
ICMP and Neighbor Discovery

Router Solicitation

Router Advertisement

Neighbor Solicitation

Neighbor Advertisement

Redirect
47
ICMPv6 and Multicast

Group Membership messages

Group Membership Query

Group Membership Report

Group Membership Reduction
(Leave Group)
48
IPv6 Cache Entries

Destination cache–contains link layer
information about destinations to which
data has been recently sent.

Neighbor cache–contains link layer
information about a neighbor.

Prefix List cache–created from router
advertisements, this is a listing of local
prefixes.

Router List cache–contains information
about those routers to which packets may
be sent.
49
IPv6 Algorithm

Easier if you understand RFC 1970.

To transmit a datagram, the source must
consult the destination cache, prefix list,
and the default router.

It needs to determine the “next-hop”

A source first looks in the destination cache
for a matching entry to the destination IP
address.

If one is not found here, consult the
prefix list cache

Local address, the next hop is simply
that of the destination IP address
50
RFCs Related to IPv6

1883: Describes the IPv6 protocol (RFC 2147 updates [does not replace] RFC 1883).

2147 PS: D. Borman, “TCP and UDP over IPv6 Jumbograms,” 05/23/97, (3 pages) (.txt format) (updates RFC 1883).

2133 I: R. Gilligan, S. Thomson, J. Bound, W. Stevens, “Basic Socket Interface Extensions for IPv6,” 04/21/97 (32
pages).

2080 PS: G. Malkin, R. Minnear, “RIPng for IPv6,” 01/10/97 (19 pages).

2073 PS: Y. Rekhter, P. Lothberg, R. Hinden, S. Deering, J. Postel, “An IPv6 Provider-Based Unicast Address
Format,” 01/08/97
(7 pages).

2030 I: D. Mills, “Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6, and OSI,” 10/30/96 (18 pages).

2019 PS: M. Crawford, “Transmission of IPv6 Packets Over FDDI,” 10/17/96 (6 pages).

1972 PS: M. Crawford, “A Method for the Transmission of IPv6 Packets Over Ethernet Networks,” 08/16/96 (4
pages).

1971 PS: S. Thomson, T. Narten, “IPv6 Stateless Address Autoconfiguration,” 08/16/96 (23 pages).

1970 PS: T. Narten, E. Nordmark, W. Simpson, “Neighbor Discovery for IP Version 6 (IPv6),” 08/16/96 (82 pages).

1933 PS: R. Gilligan, E. Nordmark, “Transition Mechanisms for IPv6 Hosts and Routers,” 04/08/96 (22 pages).

1924 I: R. Elz, “A Compact Representation of IPv6 Addresses,” 04/01/96 (6 pages).

1897 E: R. Hinden, J. Postel, “IPv6 Testing Address Allocation,” 01/25/96 (4 pages).

1888 E: J. Bound, B. Carpenter, D. Harrington, J. Houldsworth, A. Lloyd, “OSI NSAPs and IPv6,” 08/16/96 (16
pages).

1887 I: Y. Rekhter, T. Li, “An Architecture for IPv6 Unicast Address Allocation,” 01/04/96 (25 pages).

1885 PS: A. Conta, S. Deering, “Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6
(IPv6),” 01/04/96 (20 pages).

1884 PS: R. Hinden, S. Deering, “IP Version 6 Addressing Architecture,” 01/04/96 (18 pages) (.txt format).

1883 PS: S. Deering, R. Hinden, “Internet Protocol, Version 6 (IPv6) Specification,” 01/04/96 (37 pages) (updated by
RFC 2147).

1881 I: I. IESG, “IPv6 Address Allocation Management,” 12/26/95 (2 pages).

1809 I: C. Partridge, “Using the Flow Label Field in IPv6,” 06/14/95 (6 pages).
51