Title: An evolution of IPv4'
1Introduction
- 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.
2IPv6 (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
3IPv6 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
4From 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)
5IP 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
6IPv6 Header
- Vers Priority Total length
- Payload 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
Type 86DD
DA
SA
IP Header and Data
CRC
Ethernet Data Field
7IPv4 Options Review A Review
- Security
- Loose source routing
- Strict source routing
- Record route
- Stream ID
- Internet timestamp
8IPv4 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.
9IPv6 Header Format
(UDP)
- IPv6 header
- Next header 17
UDP header and data
DA
SA
IPv6 header
IP Data
CRC
TF
10Fragmentation
- IPv6 header
- Next header
- routing
Routing header Next header fragment
Fragment header Next header UDP
Fragment of UDP Header and data
DA
SA
IPv6 header
IP data
CRC
TF
11Priority 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.
12IPv6 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.
13IPv6 Addressing (cont.)
128 bits
IPv4
32 bits
- Which provides for
- 340,282,366,920,938,463,463,374,607,431,768,211,45
6 addresses - Address is written in hex.
- Takes the form of
- xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx - FEDCBA9876543210FEDCBA9876540321
- Zeros can be truncated
- FF0000000000000000908590431234
- FF908590431234
- Only one set of zeros can be truncated
14IPv6 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
15IPv6 Addressing Prefix
166Bone Test Addressing
3 bits
n bits
m bits
o bits
p bits
128-mnop bits
- 010 Registry ID Provider ID Subscriber ID Subnet
ID Interface ID
3 bits
5 bits
8 bits
24 bits
8 bits
48 bits
16bits
16 bits
010 11111 AS number Resv IPv4 Network
address Resv Subnet ID Interface ID
(IANA)
17Provider-Based IPv6 Addressing
Provider-based
3 bits
n bits
m bits
o bits
p bits
128-mnop bits
- 010 Registry ID Provider ID Subscriber ID Subnet
ID Interface ID
18Local-Use IPv6 Addressing
10 bits
n bits
128 - n bits
0
Interface ID
0 . . . . . . . . . .
. .
1111111010
usually the 48 bit IEEE address
FE80
10 bits
n bits
128 - m - n bits
m bits
Interface ID
0
subnet ID
1111111011
usually the 48 bit IEEE address
FEC0
19IPv6 Addresses with Embedded IPv4 Addresses
4 bits
32 bits
96 bits
0000 . . . . . . . . . .
. . . 0000
0000
IPv4 32-bit address
IPv4-compatible IPv6 address 00IPv4 address
20Unicast Addresses
Generic structure of an IPv6 address
(possibly IEEE 802.x MAC address)
Subscriber prefix area ID subnet ID
interface ID
Provider based
3 bits
n bits
m bits
o bits
p bits
128-mnop bits
010 Registry ID Provider ID Subscriber ID Subnet
ID Interface ID
- Global provider based
- Geographic based
- NSAP
- IPX Hierarchical
- Unspecified - 00
- Site-local use
- Link-local use
- IPv4-capable host
- Loopback - 00000001
Provider based
Special use address
21Autoconfiguration
- Stateless Autoconfiguration.
- Initializing hosts join the all nodes multicast
address of FE021 - 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 FE8048-bit address (multicast)
- Hosts send a solicitation message to all-routers
using the all-routers multicast address of
FF022. - Used to determine the nodes routing prefix and
other routing parameters - Stateful autoconfiguration uses.
22Neighbor 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)
23Neighbor 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.
24Neighbor Discovery Types
- Router Discovery
- Prefix Discovery
- Parameter Discovery
- Address Autoconfiguration
- Address Resolution
- Next-Hop determination
- Neighbor Unreachability Detection
- Duplicate Address Detection
- Redirect
25Neighbor 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.
26Neighbor 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.
27Address 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 FF0200001 and place the low order 32
bits of the destination IP address to this - This allows for a range of FF02100 through
FF021FFFFFFFF - The full target address is embedded in the ICMP
packet
28Methods of Deploying IPv6
- Dual IP layera node that is running both the
IPv4 and IPv6 TCP/IP protocol stacks. - IPv6 over IPv4 Tunnelthe process of taking an
IPv6 datagram and wrapping an IPv4 header on it
for transit across IPv4 routers. - Configured TunnelIPv4 tunnel endpoint address is
determined by the encapsulating node - Automatic TunnelIPv4 tunnel endpoint is
determined from the IPv4 address of the IPv6
packet - Transition consists of
- IPv4-only node.
29IPv6 Tunneling Introduction
- Host to Router
- Router to Router
- Router To Host
- Host to Host
30IPv6 Tunnel Addressing
Transport Layer header
Data
IPv4 Header
IPv6 Header
132.1.1.1
Transport Layer Header
IPv6 Header
Data
31IPv6 and IPv4 Dual-Stack Strategy
TCP/UDP
Applications
IPv4
IPv6
Ethernet, Token Ring, FDDI
Medium Dependent media type
32IPv6 Tunneling
IPv6 host
IPv4/v6 router
IPv4 router
IPv4/v6 router
IPv4 router
IPv6 host
IPv4 host
IPv4 host
IPv6 host
Uh-Oh!
IPv4/6 host
IPv4 host
33IPv6 Tunneling
Four possible ways to tunnel
router to router
?
IPv4 Network
IPv6/IPv4 router
IPv6/IPv4 router
IPv4 router
host to router tunnel
?
IPv6/IPv4 router
IPv4 Network
IPv4 router
host to host
?
IPv4 Network
IPv4 router
Host IPv6/IPv4
router to host
?
IPv4 router
IPv6/IPv4 router
(last segment of end-to-end span)
IPv6/IPv4 host
34IPv6 Tunneling Flowchart 1
End node address is IPv4-compatible IPv6 address
Send direct with destination address set to IPv6
fromat
Yes
Destination local?
No
No
No
IPv4 router available?
IPv4 router available?
Destination unreachable
Yes
Yes
Send direct to IPv6 router with
destination address set to IPv6 format
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
35IPv6 Tunneling Flowchart 2
End node address is IPv6-only address
Send direct with destination address set to IPv6
fromat
Yes
Destination local?
No
Configured tunnel and IPv4 router available?
No
No
IPv6 router available?
Destination unreachable
Yes
Yes
Send direct to IPv6 router with IP
destination set to final destination in IPv6
format
Send IPv6 datagram encapsulated in IPv4 packet.
IPv6 destination address and IPv4 destination
address is the configured IPv4 address of
the tunnel endpoint.
36IPv6 Tunneling Flowchart 3
End node address is IPv4
Send direct with destination address set to IPv4
Yes
Destination local?
No
No
IPv4 router available?
Destination unreachable
Yes
Send IPv4 packet destination address set to the
IPv4 address of the end node
37Anycast 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.
38Multicasting for IPv6
8 bits
4 bits
4 bits
112 bits
Flags
Scope
Group ID
1111 1111
0
0
0
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
39IPv6 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
40RIPng
0
31
8 bits
8 bits
16 bits
Command
Version
Must be zero
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.
41ICMP
- 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.
42ICMPv6 Encapsulation
Type
Checksum
Code
Message body based on Type and Code fields
(variable length)
IPv6 header Next header 56
ICMP message
DA
SA
TF
CRC
IP data
IPv6 header
43ICMPv6 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.
44ICMPv6 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
45ICMPv6 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
46ICMP Informational Messages
- Echo Request
- Echo Reply
- Good ol PING
47ICMP and Neighbor Discovery
- Router Solicitation
- Router Advertisement
- Neighbor Solicitation
- Neighbor Advertisement
- Redirect
48ICMPv6 and Multicast
- Group Membership messages
- Group Membership Query
- Group Membership Report
- Group Membership Reduction (Leave Group)
49IPv6 Cache Entries
- Destination cachecontains link layer information
about destinations to which data has been
recently sent. - Neighbor cachecontains link layer information
about a neighbor. - Prefix List cachecreated from router
advertisements, this is a listing of local
prefixes. - Router List cachecontains information about
those routers to which packets may be sent.
50IPv6 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
51RFCs 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).