IPv6

Haifux

January 2005

Dr. Daniel Arbel

Technion Computer Center

Agenda

Why IPV6 is needed?

IPv6 Protocol

Addressing

Protocols Associated with IPv6

Current status of IPv6

IPv4 Limitations

# of ip addresses

Scalability and efficiency of routing tables

Security

Auto configuration and reconfiguration

Routing process

Mobility

QoS

Ipv4 addressing

Ipv4 addresses are 32 bit long – not enough for future growth

NAT is needed today to run the Internet

Loss of end-to-end connectivity

History of IPv6

Developing started at early 1990's by IETF

Became standard on August 1998

IPv6 Functional capabilities

128 bit addressing

Simple header format + extension headers

Security: authentication, data integrity and confidentiality

Stateless auto configuration

Transition plan from ipv4

QoS

Changes relative to IPv4 header

Header checksum removed – data integrity checks left for upper layer protocols

Traffic class field replaces Type of Service

Flow label field added

Protocol type and TTL modified

Fixed header length

Options have own headers

IPv6 addressing

Address types

Unicast: uniquely identifies an interface of an Ipv6 node

Multicast: identifies a group of Ipv6 nodes. All group members receive a	copy of the packet.

Anycast: identifies a group of interfaces (nodes). Only one node receives	a copy.

Every interface should be assigned at least one unicast Ipv6 address. An interface may be assigned with more then one address of any type.

Address structure

An address has three parts: global routing prefix, subnet id and interface id

Subnet id

Interface id

Global routing prefix

total 128 bits

The global routing prefix is used to identify a special address, like a multicast, or

an address range assigned to a site.

A Subnet id is used to identify a link within a site

An interface id is used to identify an interface

Address notation

An Ipv6 have the following format:

ce80:0000:0000:0000:0202:b3aa:fe1e:8398

128 bits long, or 16 bytes, written as 8 16-bits hexadecimal blocks.

leading zeros in blocks may be removed:

ce80:0:0:0:202:b3aa:fe1e:8398

Also, all zero blocks may be replaced with double colon:

ce80::202:b3aa:fe1e:8398

it is possible to mix in old Ipv4 notation. the address 132.68.0.0 may be represented as 0:0:0:0:0:0:132.68.0.0 or ::132.68.0.0

Prefix notation

The prefix notation adopts the familiar Ipv4 CIDR (Classless InterDomain Routing) notation: the number of bits of the prefix is written after the IP number, separated by / :

<Ipv6 number/<prefix length>, for example:

2001:bf8:100:4::2/64 is an IP assigned to an interface of a host.

Assigned prefixes

here is a partial list of assigned prefixes:

usage	prefix	CIDR	part of

address space

Aggregatable global unicast addresses	001	2::/3	1/8

Link local unicast addresses	1111111010	fe80::/10	1/1024

Site local unicast addresses	1111111011	fec0::/10	1/1024

Multicast addresses	11111111	ff00::/8	1/256

For unicast addresses, the lower 64 bit assigned to an interface should follow the EUI-64

format (for ethernet this is done by inserting fffe at the middle of the MAC address). Exact

format for all cases can be found in link-specific RFC's.

Current policy for assigning addresses

Currently aggregatable global unicast addresses are assigned according to the following guidelines:

1) Addresses are assigned to providers by a TLA . There are 3 TLA's : ARIN (in America) , RIPE

(europe) and APNIC (Asia). TLA's have an id of 13 bits long.

2) ISP's receive blocks of /32 and assign their customers with /48 blocks. The ISP's block of addresses

must be routed by that ISP.

3) Address blocks are loaned. If they are not used the TLA will claim them back

host id

site space

isp space

tla space

tla id

[root@bee dani]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:08:02:B4:DD:7B
inet addr:132.68.1.48 Bcast:132.68.1.255 Mask:255.255.254.0
inet6 addr: fe80::208:2ff:feb4:dd7b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3057870415 errors:0 dropped:0 overruns:0 frame:0
TX packets:19014057 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:2057364592 (1962.0 Mb) TX bytes:3766260755 (3591.7 Mb)
Interrupt:20 Base address:0x2000

gre1 Link encap:UNSPEC HWaddr 84-44-01-30-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.0.3.2 P-t-P:10.0.3.2 Mask:255.255.255.252
inet6 addr: 2001:bf8:100:4::2/64 Scope:Global
UP POINTOPOINT RUNNING NOARP MTU:1476 Metric:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1504 (1.4 Kb) TX bytes:1368 (1.3 Kb)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:382819 errors:0 dropped:0 overruns:0 frame:0
TX packets:382819 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:35460482 (33.8 Mb) TX bytes:35460482 (33.8 Mb)

ICMPv6

Ipv6 has its own version of ICMP – ICMPv6 (rfc 2463). It gives the same functionality of the old ICMP, but new functions as well:

1) IGMP – Internet Group Management Protocol – was integrated into ICMPv6

b) ARP – Address Resolution Protocol – was also integrated into ICMPv6

c) ND – Neighbor Discovery – is a new protocol for stateless autoconfiguration that is part of ICMPv6 (rfc 2461)

ICMPv6 messages

1) error messages:

a) Destination unreachable (message type 1)

b) Packet too big (message type 2)

c) Time exceeded (message type 3)

d) Parameter problem (message type 4)

2) Informational messages

a) Echo request (message type 128)

b) Echo reply (message type 129)

Note: The size of an ICMPv6 packet should not exceed the

minimum MTU which is 1260 bytes. Also, every Ipv6 node must

implement ICMP rate limiting function to avoid DoS attack

Neighbor Discovery

Neighbor Discovery – ND (rfc 2461), combines functionality of ARP, router discovery, redirect, reachability, duplicate IP detection and autoconfiguration. ND is used for:

To determine layer 2 addresses of other nodes on the same link

To find neighboring routers that can forward packets

To keep track of which neighbors are reachable, and detect changed link layer addresses

ND improves IPv4 behavior by using multicast advertisements instead of broadcasts

Autoconfiguration

Autoconfiguration ensures that no manual configuration at all is needed before a node is connected to the network. Hosts use a combination of local information and information received from routers to generate their IP address.

Autoconfiguration steps:

1) The host generates a link-local address by appending the interface identifier to the prefix FE80. It is a tentative address.

2) The node joins the all-nodes multicast group (FF02::1) and the solicited-nodes multicast group for the tentative address.

3) The node performs DAD for the tentative address: it sends a Neighbor solicitation message with the tentative address as the target address, source address of all zeros and destination address is the solicited node multicast. If there is already a node on the same link using this address, it replies, and the autoconfiguration mechanism stops.

4) The host sends a Router solicitation message to to the all-routers multicast group (FF00::2) to find the routers on the link and the prefix.
5) For each prefix received from (4), the host generates an IP number by adding the interface-id.

DNS

The DNS specification was updated for IPv6: 2 address types were added, and dynamic updates method was defined to support for dynamic addresses and autoconfiguration. New server versions support these functions.

The new Address types are:

1) AAAA (quad-A), rfc 1886 : This is a 128 bit long IP number. If a host have more then one IP, it will have an AAAA record for each of them.

2) A6, rfc 2874: A complete or contiguous partial IPv6 number, that together with a DNAME record is completed. By storing the Interface-id part in A6 and the prefix in a DNAME record, a site can easily update the DNS whenever the prefix changes.

The rfc's also specify the structure of the reverse records

Status of IPv6

IPv6 is in production mode and being implemented in many parts of the world.

Routers have support for IPv6 routing

OS'es supports IPv6

Numerous applications were updated to support IPv6

Firewalls exists

Migration tools

The IETF has come up with number of migration tools for the transition period. These tools help interconnecting networks that are IPv4 only, IPv6 only or run both protocols. There are special static tunnels that are used to connect site/routers and automatic tunnels to support easy dynamic connection of individual hosts

Sources of information

IETF RFC's: http://www.ietf.org/rfc

6bone site: http://6bone.net

IPv6 site: http://ipv6.org

books:

IPv6: The New Internet Protocol (2nd Edition) by Christian Huitema

IPv6 Essentials by Silvia Hagen

Understanding IPv6 by Joseph Davies

HOWTO's

IPv6 Workshop

Dani

2003-11-14T17:35:51