Josh Ancel
Don Schlagle
CSIS 261
Monday, March 18, 2002
To understand IP (Internet Protocol) Version 6 you must first look at IP Version 4. IP version 4 has been in use since 1978 when it was coupled with TCP (Transmission Control Protocol) on ARPAnet to replace NCP (Network Control Protocol) as the routing protocol. By 1983 other networks had begun to connect to ARPAnet. These also used IP coupled with TCP, which created the TCP/IP Internet standard. IP Version 4 is a 32-bit addressing scheme, which is broke down into 4 octets. [1]Each octet is made up of 8 bits of binary 1’s or 0’s . When all the bits are set to 1’s you get 11111111 =255. This allows for 4,294,967,296 addresses, which at the time was believed to be enough IP addresses to accommodate any piece of hardware that would ever need one. However, it was soon discovered that there were just not enough numbers for every system that would need one. This is where subnetting came into play. The addresses are broken down into three Classes, those being, A, B, and C. You can determine what class an IP address is by the first octet.
|
CLASS A |
0-127 (127 cannot be used because it is reserved for the “Loop Back” function. |
|
CLASS B |
128-191 |
|
CLASS C |
192-223 (224 – 254 is reserved for experiments) |
[2]Each address reserves different amounts for Network and Host portions.
(N=Network Portions H=Host Portions)
|
CLASS A |
N |
H |
H |
H |
|
CLASS B |
N |
N |
H |
H |
|
CLASS C |
N |
N |
N |
H |
Subnetting is accomplished through borrowing bits from the host sections of the address. This allows networks to have addresses that are reserved by other companies. Since they are subnetted, they do not interfere with the external network. After Subnetting, there are a certain number of host IP addresses per Class.
|
CLASS A |
16,777,214 |
2^24 - 2 |
|
CLASS B |
65,534 |
2^16 - 2 |
|
CLASS C |
254 |
2^8 - 2 |
As you break them into more numerous networks you loose 10% of your addresses. For this reason it was soon discovered that even the extraordinary amount of IP addresses gained by subnetting would not be enough.
Now that IP Version 4 is somewhat explained we can show why IP Version 6 needs to be implemented. [3]There are four main reasons why to move to IPv6.
1. The address space of the present Internet Protocol is too small to support the future Internet.
2. The present Internet routing strategy does not scale to millions of networks.
3. The IPv4 protocol is inefficient. It contains obsolete fields and procedures that hamper high speed implementations.
4. Support for new applications on the Internet, such as real-time transport, authentications and authorization, is too limited in IPv4 protocol.
So, in 1993 the IETF (Internet Engineering Task Force) formed the IPng (next generation Internet Protocol) area to research and develop the “next generation”. [4]And on July 5, 1994 the IETF released a RFC (Request For Comments) 1752, The Recommendation for the IP Next Generation Protocol.
One of the major differences between IPv4 and IPv6 is in the packet design and size.
3IPv4 packet/datagram is setup this way.[5]
|
4
|
8
|
16
|
32
bits |
|
|
Ver.
|
IHL
|
Type
of service |
Total
length |
|
|
Identification
|
Flags
|
Fragment offset |
||
|
Time
to live |
Protocol
|
Header
checksum |
||
|
Source
address |
||||
|
Destination
address |
||||
|
Option
+ Padding |
||||
|
Data
|
||||
IP header structure
· Version: Version of IP number whether it be IPv4 or IPv6.
· IHL: (Internet Header Length) is the length of the Internet header in a minimum size of 20 bytes. Can vary depending on Options field.
· TOS (Type of service): Indicates the quality of service desired or the priority of the packet. Networks may offer service precedence, meaning that they accept traffic only above a certain precedence at times of high load. There is a three-way trade-off between low delay, high reliability and high throughput.
· Total length: Length of the datagram measured in bytes, including the Internet header and data. This field allows the length of a datagram to be up to 65,535 bytes, although such long datagrams are impractical for most hosts and networks. All hosts must be prepared to accept datagrams of up to 576 bytes, regardless of whether they arrive whole or in fragments. It is recommended that hosts send datagrams larger than 576 bytes only if the destination is prepared to accept the larger datagrams.
· Identification: Identifying value assigned by the sender to aid in assembling the fragments of a datagram. For conversion in dissimilar networks
· Flags: 3 bits. Used to convey information about fragments.
· Fragment offset: 13 bits. Indicates where this fragment belongs in the datagram. The fragment offset is measured in units of 8 bytes (64 bits). The first fragment has offset zero.
· TTL (Time to live): Indicates the maximum time the datagram is allowed to remain in the Internet system. If this field contains the value zero, the datagram must be destroyed. This field is modified in Internet header processing. The time is measured in units of seconds. However, since every module that processes a datagram must decrease the TTL by at least one (even if it processes the datagram in less than 1 second), the TTL must be thought of only as an upper limit on the time a datagram may exist. The intention is to cause undeliverable datagrams to be discarded and to bound the maximum datagram lifetime.
· Protocol: Indicates the next level protocol used in the encapsulation portion of the Internet datagram.
· Checksum: A checksum on the header only. Since some header fields change, e.g., Time To Live, this is recomputed through 16-bit cyclic redundancy check, and verified at each point that the Internet header is processed.
· Source address / destination address: 32 bits each. The network address and the address of the device that sent the packet. And the network address and the address of the receiving device.
· Options: Options may or may not appear in datagrams. The options must be implemented by all IP modules (host and gateways). What is optional is their transmission in any particular datagram, not their implementation. In some environments, the security option may be required in all datagrams.
· Padding: Fills the empty space in the Options area so that its total size is divisible by 32.
In IPv6 some of
the main fields have been removed because they are out of date, or have been
replaced by standards in the new version. For example the header length is no
longer needed because the header is fixed at 40 bytes in IPv6. The Fragmentation field is simply just too
small to handle the newest routers abilities. Newer routers under IPv 6
can transport 1280-bytes as the bare minimum. The older field simply wasn’t
designed to handle fragments for this size. The Header Checksum is another
field that is out of date because of network systems advancing. Under IPv6 the Link Layer verifies the data
integrity.
IPv6 packets/datagrams are setup like this.
|
4
|
8 |
16
|
24
|
32
bits |
|
|
Ver.
|
Traffic
Class |
Flow
label |
|||
|
Payload
length |
Next
header |
Hop
limit |
|||
|
|
|||||
|
|
|||||
· Version: Internet Protocol Version number (IPv6 is 6).
· Traffic Class: An 8-bit field enables a source to identify the desired delivery priority of the packets. Priority values are divided into ranges: traffic where the source provides congestion control and non-congestion control traffic.
· Flow Label: Used by a source to label those products for which it requests special handling by the IPv6 router. The flow is uniquely identified by the combination of a source address and a non-zero flow label.
· Payload length: Length of payload (in octets) excluding the header.
· Next header: Identifies the type of header immediately following the IPv6 header. If no type is defined then by default is either TCP or UDP.
· Hop limit: 8-bit integer that is decremented by one by each Layer 3 device that routes the packet. The packet is discarded if the Hop Limit is decremented to zero.
· Source address: 128-bit address of the originator of the packet.
· Destination address: 128-bit address of the intended recipient of the packet.
Of course, as stated earlier, IP addresses were running out under IPv4 so in IPv6 the amount of IP addresses available were increased to the point that there will never be that worry again. Instead of the normal 32-bit address in version 4 they went to a 128-bit / 16-byte addressing scheme in version 6. That means instead of 4 octets they are written in a much shorter form of hexadecimal. Example: FE00:12AE:C887:3E22:6A77:981F:7B40:8A65 If this was written in octets: 254.0.18.174.200.135.62.34.106.119.152.31.123.64.138.101. Its written much shorter in hexadecimal rather than octets as in IPv4. Just to show how many possible IP numbers there are in IPv6 I will give you this picture. There are 66,788,195,407 IPv6 addresses per square centimeters of the surface on the Earth. So far they have only allocated 15% of these addresses for use the rest have been placed in limbo until there need is found.
There are three types of IPv6 addresses right now: Unicast, Multicast, and Anycast. The Unicast addresses are structured hierarchically, called “Aggregatable Global Unicast Addresses”. The 128-bit address is split into two different parts. First 64-bits is the Subnet prefix witch is used strictly on the private networks. And the last 64-bits are the Interface Identifier which identifies the interface of the host and the network. The Multicast identifies a group of interfaces. (Any Packets sent to the Multicast address will be delivered to all of the interfaces. The Multicast address is used instead of a Link Layer broadcast in IPv6. It also uses the Multicast to locate generic types of servers.
The Anycast address
is a new type of Internet address. As of right now it’s not fully
defined. It acts like a multicast address but when packets are sent to the
Anycast address it will only be delivered to one of the interfaces. Some other types of Addresses are the Unspecified
address: all zeros, never assigned to a node. There is also a Loop Bake
address just like in IPv4. This is
called, of course, the Loopback address. IPv6 addresses are
already assigned to previous IPv4 address. IPv6 addressing scheme solves the
autoconfiguration problem in a fundamental way by building automatic interface
configuration into the protocol an requiring that all node support it.
Unlike IPv4, IPv6 had a limited lifetime. The lifetimes are finite so that
means that the interface’s will have to change their IP addresses “On the Fly”.
Two types of lifetimes are defined: the Preferred Lifetime and the longer Valid
Lifetime. After the Preferred lifetime has passed the address becomes
deprecated but it does not interrupt existing connections. When a Valid
lifetime is reached the address become invalid, and all communications have
been broken. These lifetimes are continuously updated by the routers to keep
things running smoothly.
The basic security relies on a connection between two parties in Ipv6. IPv6 supports two basic security services. One is the Authentications which allows people to prove that nothing has been tampered with. The other type is encryptions basically encrypting and decrypting the data in the payload. There are two basic ways to transport the data in IPv6. Transport mode is a secure direct line between the two hosts. Tunnel mode takes the whole IP Packet and encrypts or authenticates it. Then places it into a new IP packet and sends it.
6bone is currently the worldwide IPv6 test network. It is currently the only way to start using IPv6. But new technologies are emerging. Some of the ways to make it so that the two protocols can work together is, Tunneling (IPv4 packets inside IPv6packets), IPv6 over dedicated Layer 2 technology, Or forwarding IPv6 packets over Multiprotocol Label Switching (MPLS).
[6]Here are some deployment Strategies
according to CISCO.
· Deploying IPv6 over IPv4 tunnels: These tunnels encapsulate the IPv6 traffic within the IPv4 packets, and are primarily for communication between isolated IPv6 sites or connection to remote IPv6 networks over an IPv4 backbone. The techniques include using manually configured tunnels, generic routing encapsulation (GRE) tunnels, semiautomatic tunnel mechanisms such as tunnel broker services, and fully automatic tunnel mechanisms such as IPv4-compatible and 6to4.
· Deploying IPv6 over dedicated data links: This technique enables isolated IPv6 domains to communicate by using the same Layer 2 infrastructure as for IPv4, but with IPv6 using separate Frame Relay or ATM PVCs, separate optical links, or dense Wave Division Multiplexing (dWDM).
· Deploying IPv6 over MPLS backbones: This technique allows isolated IPv6 domains to communicate with each other, but over an MPLS IPv4 backbone. Multiple techniques are available at different points in the network, but each requires little change to the backbone infrastructure or reconfiguration of the core routers because forwarding is based on labels rather than the IP header itself.
· Deploying IPv6 using dual-stack backbones: This technique allows IPv4 and IPv6 applications to coexist in a dual IP layer routing backbone. All routers in the network need to be upgraded to be dual-stack with IPv4 communication using the IPv4 protocol stack and IPv6 communication using the IPv6 stack.
Currently IPv6 is not implement able. Most operating systems haven’t even been designed for the new IP version. And it’s only the very newest experimental version of some OS that have implemented IPv6. My guess would be that its going to take a lot longer than the IETF originally believed. Even though hardware vendors have started to create the new routers , etc… I believe that people are too comfortable and its going to be like pulling teeth to try and get the ball in play.