IP v6

References

IP Next Generation Overview, Robert M Hinden, Communications of the ACM, June 1996.

IP Next Generation Home Page

Mobile IPv6 RFC draft

Goals

Of these, the driving issue was growth. The number of networks (~80,000) connected to the Internet was doubling every 12 months as of early 1996. This growth will eventually taper off as most schools, business, governments are connected. Expected growth in the future will be in new markets. Obviously these new markets make very much different sorts of demands on IP than does the traditional computer market. Mobility, low bandwidth, security, very large scale must drive IPv6. If the next generation IP doesn't address these issues then multiple, proprietary, protocols will be developed (i.e. no one's going to wait for the IETF).

Transition

IPv4 will run out of addresses, the question is when, not if. CIDR has extended this time. Routers are being overwhelmed because pools of IP addresses are exhausted and large organizations need to use lots of smaller class C address domains. The trick is to get IPv6 in place and make it compatible before IPv4 breaks down.

The nature of the Internet means that the transition won't be sudden and complete. Co-existence is essential.

Changes from v4 to v6

Expanded addressing and routing Header format Better support for header options Quality-of-service Security

Addressing

Addresses are assigned to interfaces, not nodes. Each node (host) may have multiple interfaces. Each interface may have mulitiple addresses.

Three types of addresses:

128 bits of addressing gives you 4 billion times 4 billion more addresses than in v4. This is 665 x 10^21 addresses per square meter of Earth! (but doesn't consider the way address domains are constructed). If the v6 addressing scheme achieves the same sort of efficiency as other large addressing schems (telephone systems, IPv4, IEEE 802) then in the worst case you have 8x10^17 addresses. The best case is 2x10^33. Lots of addresses.

How much of the 128 bits a node understands is determined by the role it plays. End nodes probably don't know anything at all about addresses. High level routers will have lots of knowledge of how the 128 bits are broken down.

Local-use addresses allow for an organization to assign internally unique IP addresses (subnet + interface) without getting any addresses from Internet officials. Later, if the organization wants to connect to the Internet they get a globally unique identifer (registry + provider + subscriber) that makes their internal address globally unique. No manual re-numbering when you join the Net.

IPv4 addresses are supported by using a 32 bit portion of the v6 address and a special pattern in the first 96 bits.

Routing

Compatible with v4 protocols (OSPF, RIP, IDRP, ISIS). Reflects large installed base.

Some extensions for:

Quality of Service

This is support for non-default delivery quality. Real-time apps like multimedia require this.

Flow labels identify packets in a related flow of packets. Each flow is between a unique source and destination address (including anycast and multicast). The actual value is choosen randomly so that routers can use this identifier in a hash table to determine characteristics for the flow.

Hosts that don't support flow labels must set this header field to 0 (not part of a flow) when originating a packet, forward it unchanged, and ignore the field when receiving a packet.

Priority field determines the relative priority of packets from a given host. The first half (0-7) is used for traffic that follows congestion-control (backoff) algorithms (like TCP traffic). Suggested levels are:

The other 8 levels (8 - 15) are for non-congestion controlled data like video and audio streams. The lowest value is for those packets which the sender is most willing to have thrown away if necessary.

Security

There is no support for authentication or encryption in the current IP. As a result these sorts of services are done at the transport level (secure sockets, for example). IPv6 addresses these issues.

An Authentication Header (an optional header) can be used to guarantee authentication and integrity of a packet. MD5 is required, but other algorithms are supported. Exportability is not an issue since no encryption is done on the data.

The Encapsulating Security Header provides for encryption of contents. The required algorithm is DES CBC, others may be used.

Mobile

Each v6 node is permanently identified by its "home address". When a mobile node leaves its home subnet, it leaves a "care-of" address behind with a "home agent". The home agent is a router responsible for intercepting packets bound for the home address of the mobile node and encapsulating them for tunneling to the care-of address. This preserves transparency of location to all higher protocol layers and corresponding hosts.

For performance sake a correspondent node caches the binding of a mobile node's home address to its care-of address. Subsequent traffic to the mobile node will be sent directly to the mobile node's care-of address, rather than via the home agent. The cache time is somewhere between 0 and 2^16 seconds (or infinity). Caching prevents the home agent from being a bottleneck and reduces overall network traffic. The cached binding is sent to the correspondent node by the mobile node when it receives the first encapsulated packet.

The mobile node would typically get its foreign address via DHCP. It is then responsible for sending this care-of address back to its home agent (router). The route acting as home agent uses proxy Neighbor Discovery to intercept packets for the mobile node.

It's possible for a mobile node to have more than one care-of addresses. In this case it may receive packets to both of them. This could be helpful for things like overlapping cell phone ranges.

IPv6 Authentication Header is used to establish a binding so that you can't just start intercepting some nodes packets.

Current Status

Protocol documents for IPv6 have been approved by the IETF Steering Group. Many vendors are working on implementations. All hardware/OS combinations of any significance (volume) have a port going or done.

Lots of attention was paid to the transition problem (from v4 to v6) right from the start of the v6 project. The transition can be made incrementally, there are no dependencies (like all your routers must be upgraded at the same time), some things (like local printers) may never need to be upgraded, you don't have to get new addresses to upgrade. The only requirement is that your DNS server be upgraded first to map v6 names/addresses.

Adoption is being slower than expected. Companies and networks where address space is most stressed are being more aggresive.