Internet Protocol, Version 6 (IPv6)
Outline
Networking Basics Introduction to IPv6 IPv6 Header Format IPv6 Addressing Model ICMPv6 Neighbor Discovery Transition from IPv4 to IPv6 IPv6 vs. IPv4
2
Basics: OSI 7-Layer RM
Basics: TCP/IPv4 Protocol Suite
Internet Protocol (IP)
Features:
Layer 3 (Network layer) Unreliable, Connectionless, Datagram Best-effort delivery
Popular version: IPv4 Major functions
Global addressing Datagram lifetime Fragmentation & Reassembly
5
IPv4 Header
IPv4 companion protocols (1)
ARP: Address Resolution Protocol
Mapping from IP address to MAC address Error reporting & Query
ICMP: Internet Control Message Protocol
IGMP: Internet Group Management Protocol Multicast member join/leave
Unicast Routing Protocols (Intra-AS)
Maintaining Unicast Routing Table E.g. RIP, OSPF (Open Shortest Path First)
7
IPv4 companion protocols (2)
Multicast Routing Protocols
Maintaining Multicast Routing Table E.g. DVMRP, MOSPF, CBT, PIM
E.g. BGP (Border Gateway Protocol)
Exterior Routing Protocols (Inter-AS)
Quality-of-Service Frameworks
Integrated Service (ISA, IntServ) Differentiated Service (DiffServ)
8
Why IPv6?
Deficiency of IPv4 Address space exhaustion New types of service Integration
Multicast Quality of Service Security Mobility (MIPv6)
9
Header and format limitations
Advantages of IPv6 over IPv4
Larger address space Better header format New options Allowance for extension Support for resource allocation Support for more security Support for mobility
10
Header: from IPv4 to IPv6
Changed Removed
11
IPv6 Header Format
12
IPv6 Packet (PDU) Structure
13
Traffic Class
The 8-bit field in the IPv6 header is available for use by originating nodes and/or forwarding routers to identify and distinguish between different classes or priorities of IPv6 packets.
E.g., used as the codepoint in DiffServ Service interface must provide means for upper-layer protocol to supply the value of traffic class Value of traffic class can be changed by source, forwarder, receiver An upper-layer protocol should not assume the value of traffic class in a packet has not been changed.
General requirements
14
IPv6 Flow Label
Related sequence of packets Needing special handling Identified by src & dest addr + flow label Router treats flow as sharing attributes
E.g. path, resource allocation, discard requirements, accounting, security Buffer sizes, different forwarding precedence, different quality of service
May treat flows differently
Alternative to including all info. in every header
15
Payload Length
16-bit unsigned integer. Length of the IPv6 payload, i.e., the rest of the packet following this IPv6 header, in octets. Note that any extension headers present are considered part of the payload, i.e., included in the length count.
16
Extension Header Order
Order 1 2 Header Type Basic IPv6 Header Hop-by-Hop Options 0 Next Header Code
4
5 6 7 8 9
Routing header
Fragment header Authentication header Encapsulation Security Payload header Destination Options Mobility header No Next header (Null)
43
44 51 50 60 135 59
Upper layer: TCP, UDP, ICMP
6, 17, 58
17
Hop-by-Hop Options
Must be examined by every router
Specifies discard/forward handling Pad1 PadN Jumbo payload Router alert (can be used for RSVP)
Options
18
Routing Header
List of one or more intermediate nodes to visit Header includes
Next Header Header extension length Routing type (e.g. type 0 = Source Routing) Segments left
19
Source Routing Example
20
Fragment Header (1)
Fragment Offset: 8-bit unsigned integer
The offset, in 8-octet units, of the data following this header, relative to the start of the Fragmentable Part of the original packet Unfragmentable part: IPv6 header + any extension headers that must be processed by nodes en route
21
Fragment Header (2)
M flag: 1=more fragments, 0=last fragment Identification: combined with the src & dest addr uniquely identifies the original packet
22
Reassembly (1)
The Unfragmentable Part of the reassembled packet consists of all headers up to, but not including, the Fragment header of the first fragment packet The Next Header field of the last header of the Unfragmentable Part is obtained from the Next Header field of the first fragments Fragment header The Payload Length of the reassembled packet is computed from the length of the Unfragmentable Part and the length and offset of the last fragment.
23
Reassembly (2)
[Link] = [Link] - [Link] - 8 + (8 * [Link]) + [Link]
[Link] = Payload Length field of reassembled packet. [Link] = Payload Length field of first fragment packet.
[Link] = length of fragment following Fragment header of first fragment packet. [Link] = Fragment Offset field of Fragment header of last fragment packet. [Link] = length of fragment following Fragment header of last fragment packet.
24
Reassembly (3)
[Link]
IPv6 Header Extension Header Fragment Header First Fragment
. . . .
[Link] 8*[Link]
IPv6 Header Extension Header Fragment Header Last Fragment
[Link]
25
IPsec Scenario
26
IPSec Benefits
Provides strong security for external traffic
Resistant to bypass
Below transport layer hence transparent to applications Can be transparent to end users Can provide security for individual users if needed
27
IPSec Functions
Authentication Header
for authentication/integrity only for authentication/integrity/encryption (privacy) Manual or automated
Encapsulating Security Payload (ESP)
A key exchange function
VPNs usually need combined function
28
Authentication Header
VC ID for all packets sent during a Security Association connection Prevent playback
29
Encapsulating Security Payload
30
IPv6 Addressing Model
Addresses are assigned to interfaces, not hosts Interface expected to have multiple addresses Addresses have scope
Link-Local Site-Local Unique Local Global
31
Text Representation of Address
Colon-Hex
[Link] [Link] becomes [Link]
Compressed Format:
32
Address Type Prefixes
33
Global Unicast Address
Global routing prefix
A (typically hierarchically-structured) value assigned to a site (a cluster of subnets/links) An identifier of a subnet within the site Constructed in Modified EUI-64 format
Subnet ID
Interface ID
34
IEEE 802 IPv6 Interface ID
35
Site-Local Address
Meaningful only in a single site zone, and may be reused in other sites Equivalent to the IPv4 private address space Address are not automatically configured and must be assigned Prefix= FEC0::/48
36
Link-Local Address
Meaningful only in a single link zone, and may be reused on other links Link-local addresses for use during auto-configuration and when no routers are present Required for Neighbor Discovery process, always automatically configuration An IPv6 router never forwards link-local traffic beyond the link Prefix= FE80::/64
37
Special IPv6 Address
Loopback address ([Link] or ::1)
Identify a loopback interface Used by dual-stack nodes IPv6 traffic is automatically encapsulated with an IPv4 header and send to the destination using the IPv4 infrastructure
IPv4-compatible address ([Link]w.c.x.z or ::w.c.x.z)
IPv4 mapped address ([Link]w.c.x.z or ::FFFF:w.c.x.z)
Represent an IPv4-only node to an IPv6 node Only use a single listening socket to handle connections from client via both IPv6 and IPv4 protocols. Never used as a source or destination address of IPv6 packet Rarely implemented
38
Address Autoconfiguration (1)
Allow plug and play BOOTP and DHCP are used in IPv4 DHCPng will be used with IPv6 Two Methods: Stateless and Stateful Stateless:
A system uses link-local address as source and multicasts to "All routers on this link" Router replies and provides all the needed prefix info All prefixes have a associated lifetime System can use link-local address permanently if no router
39
Address Autoconfiguration (2)
Stateful:
Problem w/ stateless: Anyone can connect Routers ask the new system to go DHCP server (by setting managed configuration bit) System multicasts to "All DHCP servers" DHCP server assigns an address
40
Network Layer in v4 & v6
41
ICMPv6
An integral part of IPv6 and MUST be fully implement by every IPv6 node (RFC 2463) Next Header value= 58 Report delivery or forwarding errors Provide simple echo service for troubleshooting Neighbor Discovery (ND): 5 ICMP messages Multicast Listener Discovery (MLD): 3 ICMP messages
42
ICMPv6 Messages
43
Neighbor Discovery (ND)
Node (Hosts and Routers) use ND to determinate the link-layer addresses for neighbors known to reside on attached links and quick purge cached valued that become invalid Hosts also use ND to find neighboring router that willing to forward packets on their behalf Nodes use the protocol to actively keep track of which neighbors are reachable and which are not, and to detect changed link-layer addresses
Replace ARP, ICMP Router Discovery, and ICMP Redirect used in IPv4 44
IPv6 ND Mechanisms (1)
Router discovery
Equivalent to ICMPv4 Router Discovery Equivalent to ICMPv4 Address Mask Request/Reply Discovery additional parameter (ex. link MTU, default hop limit for outgoing packet)
Prefix discovery
Parameter discovery
Address auto-configuration
Configure IP address for interfaces
Address resolution: Equivalent to ARP in IPv4
45
IPv6 ND Mechanisms (2)
Next-hop determination
Destination address, or Address of an on-link default router
Neighbor unreachable detection (NUD) Duplicate address detection (DAD)
Determine that an address considered for use is not already in use by a neighboring node
First-hop Redirect function
Inform a host of a better first-hop IPv6 address to reach a destination, Equivalent to ICMPv4 Redirect 46
Transition from IPv4 to IPv6
47
Advantages of IPv6 over IPv4 (1)
Feature IPv4 IPv6
Source and destination address
IPSec Payload ID for QoS in the header Fragmentation Header checksum
32 bits
Optional No identification Both router and the sending hosts included
128 bits
required Using Flow label field Only supported at the sending hosts Not included
Resolve IP address to a link layer address
broadcast ARP request
Multicast Neighbor Solicitation message
48
Advantages of IPv6 over IPv4 (2)
Feature Determine the address of the best default gateway Send traffic to all nodes on a subnet Configure address Manage local subnet group membership IPv4 ICMP Router Discovery(optional) IPv6 ICMPv6 Router Solicitation and Router Advertisement (required) Link-local scope allnodes multicast address Autoconfiguration Multicast Listener Discovery (MLD)
Broadcast
Manually or DHCP (IGMP)
49
IPv6 References
RFC 2460: IPv6
RFC 2461: Neighbor Discovery
RFC 2462: Stateless Address Autoconfiguration RFC 3513: Addressing Architecture RFC 3679: Flow Label Specification RFC 4443: ICMPv6
RFC 3810: Multicast Listener Discovery (MLDv2)
50