This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Internet Protocol was first developed in the early 1980s. In the early 1990s when the internet is growing it became pretty evident that if the Internet will continue to grow at the rate it was growing, Some temporary solutions were offered, such as NAT (Network Address Translator) or CIDR (Classless Inter Domain Routing), however work began on a new Internet Protocol, namely IP version 6 (IPv6) [RFC 2460].The IP version 4 (IPv4) 32 bit address space would be depleted by the turn of 2018 by the estimates of IETF's Address Lifetime Expectations working group [Solensky 1996].
The years 1992, 1993 and 1994 of the IPv6 History (in general) IP version 6 (IPv6) [RFC 2460] is a new version of the Internet Protocol in Linux, and other operating systems which was designed as a successor to the current IP version 4 (IPv4). The first IPv6 related network code was added to the Linux kernel 2.1.8 in November 1996 by Pedro Roque. It was based on the BSD API (Berkley Sockets) ( Application Programme Interface).The transition between today's IPv4 Internet and a future IPv6-based internet will be a long process during which both protocol versions will coexist.
IP v 4 Addressing: IP v4 is the first version of the internet protocol that was widely deployed as data-oriented protocol on a packet switched network. IP v4 uses 32-bit(4-byte) IP addresses for host and destination which can limit to 4,294,967,296 possible unique addresses. It is represented in dot decimal notation.
For example, 11000001 .00100000.11011000.00001001 or 126.96.36.199 i.e., each byte of address is written in decimal form and separated by period dot from other bytes.
Under class full networking IP v4 created five classes of its (A,B,C,D & E) where A, B C are primary classes. Class D is created for multicasting and class E is reserved.
* It requires security at the Internet layer.
* The need to support better real time delivery of data.
* Ability to maintain large routing tables.
IP v 6 Addressing:
IP v6 is a new version of Internet protocol whereas efforts from IP(IPng) [Brander 1996; RFC 1752] & IETF resulted in IP version 6 (IPv6) [RFC 2460].
It has 128-bit (16 bytes) source & destination IP addresses expressed as 3.4 X 10 38 possible combinations. It is shown in hexadecimal notation as BA34: 5768: FFBA: 76DF: FFFF: CADB: D343.
IP v6 addresses come in unicast, multicast and any cast format where it also simplifies header format than IP V4.
They are 4 times longer than IP v4 addresses.
Features & Benefits:
* Large address space.
* Efficient & hierarchical addressing and routing infrastructure.
* High security level than IP v4
* Enhanced support for Mobile IP and mobile computing devices
* Increased number of multicast addresses.
Â· The main objective for successful transition is to allow IPv6 and IPv4 hosts to interoperate
Â· Allow IPv6 hosts and routers to be deployed in the internet in a highly diffuse and incremental fashion, with few interdependencies
Â· Have an easy transition for end-users, system administrators and network operators.
I will be discussing about types of IPv4 and IPv6 nodes transitions mechanisms, Tunnelling configurations and defining the differences between configured and automatic tunnelling methods and also migrating steps from IPv4 to IPv6.
We also discuss IPv6 Islands such as ISATAP, 6to4, Teredo, Tunnel broker in terms of it's purpose, requirements and addresses.
By implementing IPv4 and IPv6 network setup in Linux operating system, I will be analysing IPv4 and IPv6 performance simultaneously in order to know how IPv6 is better than IPv4 environment.
Problem Description & Evaluation:
The two most important problems of IPv4 are the limited available address space and the increasing explosion of route tables. Besides solving the shortage of addresses problem, IPv6 also has introduced a lot of significant ways which could help enhance the credibility. Some of these additions are mainly quality in providing service, highly secure infrastructure and also mobile and last but not the least, improvement in the performance of the whole system.
There are many predictions done by industry experts forecasting a very huge growth in the coming two decades for usage of IPv6. On the other side, it is not a total end of IPv4 because as seen before, the IPv4 will be safe in legacy systems. With such high usage of IPv4 and a very busy network, implementing a new technology like IPv6 instead of IPv4 will be a big process. This process is not easy unless the technology goes obsolete. Many multinational companies are now trying to adapt new technologies in software and hardware which are capable of working properly in an event of a shift from IPv4 to IPv6.
Several transition mechanisms have been proposed by the IETF IPng Transition Working Group. My project examines and empirically evaluates different transition mechanisms as they relate to the performance of IPv6. These ways of implementation are used in oreder to rectify and also in turn the elimination of the dependency in the network deployment. The latter step is to wait for the company which will decide a proper plan for implementing IPv6. The implementation of IPv6 is only done if the company feels that it is very important for their needs and the decision of the company is not in respect to any other companies.
Transition criteria for IPv4 to IPv6:
* As it referred in [RFC 1752] we can deploy IPv6 host any time independent of hosts or routing infrastructure.
* Any Ipv4 host with IPv6 installed can use their IPv4 addresses and they don't need any additional payload addresses.
* An IPv4 host that has IPv6 installed can be used as IPv4 address.
Due to lack of inter-operability between IPv4 and IPv6 hosts, IPv4 to IPv6 routing infrastructure requires a number of transition mechanisms that allow seamless coexistence.
According to the nodes specified in the RFC 2893 are classified into the foloowing categories:
Node with IPv4 only
The problem with IPv4 is that there is no way that a version upgrade can be done to the version 4. It is also because all the addresses are IPv4. And therefore it doesn't support IPv6. Even though, most of the network servers and host are equipped with the IPv4 only nodes.
Node with IPv6 only
When IPv6 is considered, it supports addresses based on IPv6 only. The IPv6 doesn't have support for the older version i.e. IPv4. The node is capable of communicating decoding and encoding information from IPv6 nodes only. Any other node is a not known to the IPv6.
The node IPv6 is not commonly used in many host and servers. There is a future prospect for the version 6 as most of the mobile phones, handheld computers, PDAs have the IPv6. Hence this version may become a must in the future.
The IP v6 node that interoperates with IPv4 needs an IPv6/IPv4 node. It has both IPv4 and IP v6 address. It has the ability to send and receive IPv4 and IPv6 datagram's.
This node implements an IPv4 addressing. The node with IPv4 is very flexible. It is capable of being as a node supporting only IPv4. Then it can also be used to support as a node either IPv6 or IPv4.
This node implements an IPv6 addressing. The IPv6 is capable of being an IPv6 or also as an IPv4 node. The IPv6 is very flexible.
The nodes IPv4 and IPv6 are both capable of coexistence. In order to help this, the IPv6 and the IPv4 are both capable of communicating in a medium which is either IPv4 or IPv6. In some cases, the communication is done in a medium which is a combination of both IPv4 and the IPv6. Migrating IPv4 to IPv6 is assumed to be complete if and only if all the nodes are changed into IPv6 only nodes. This is called a successful migration or complete migration. It is also variable and in future, proper migration will be done by converting IPv4 to IPv6/IPv4 nodes. The problem is that IPv4-only nodes are only capable of communicating with the nodes that are IPv6 only. This is only possible while using a gateway which is installed for translation.
[RFC 1519]- The internet's address assignment strategy is also known as classless interdomain Routing (CIDR) referred in this RFC also refers Internet standards track protocol for Internet community.
[RFC 2131] Dynamic Host Configuration Protocol (DHCP) -DHCP allows a host to obtain an IP address automatically, as well as to learn additional information about subnet mask, the address of its first-hop router, and the address of its local DNS server.
[RFC 2131; RFC 3022] Network Address Translation (NAT)-In an attempt to provide transparent routing to hosts, NAT devices are used to connect an isolated address realm with private unregistered addresses to an external realm with globally unique registered addresses.
BSD API: Berkley Sockets (Application Programming Interface) The Berkeley socket interface is an application programming interface (API), which allows communications. These communications are always done within the host with the processes on a system. All this process is done in reference to the Internet Socket concept.
IP version 6 (IPv6) [RFC 1752; RFC 2460] - It represents the recommendation of next generation IP(IPng) effort where it is used to replace IP. The recommendations are sort out by the IESG which is known as the Internet Engineering Steering Group. Hence resulted the specification of IP v6 [RFC 2460] replacing older IP version [RFC 791].
Dual Stack Approach: It is a transition mechanism where it shows that IPv6 nodes are capable enough to implement complete IPv4 datagram. According to [RFC -2893] it includes providing complete implementations of both versions of Internet protocol (IPv6 and IPv4) and tunneling IPv6 packets over IPv4 routing infrastructure.
Dual IP layer Approach: It is a transition mechanism in which it interoperates with both IPv6 and IPv4 nodes i.e., it can send and receive both IPv4 and IPv6 packets. It involves no data encapsulation like dual stack approach.
Tunneling: In computer networks tunneling protocol (delivery protocol) encapsulates the different payload protocol i.e., It carries a payload over an incompatible delivery-network. It can also provide a secure path through an untrusted network without any data loss.
Domain Name System (DNS): It is a hierarchical naming system for computers or any resource connected to Internet. Most importantly it translates domain names into numerical (binary) identifiers. These identifiers are in turn connected to the network or the equipped parts which support the identifiers. The main reason for such tasks is to publish all such devices worldwide. It actually assigns domain names to group of internet users independent of each user's physical location.
Address Records & Record Types: Domain Name System (DNS) implements a distributed, hierarchical and redundant database of information associated with internet domain names and addresses. DNS record types of database records which are stored in zone files of the Domain Name System (DNS).
DNS Zone & [RFC 1035; RFC 3596]- Zone files (text files) describe the portion of DNS which contains information that defines mapping between domain name and IP addresses organized in the form of resource records (RR).
As it referred in RFC 1035 the Resource records type A returns a 32-bit IPv4 address i.e. used to map hostnames to an IP address of the host. In RFC 3596 the Resource record type AAAA returns a 128-bit IPv6 address most commonly used to map hostname to an IP address of the host.
Pointer Records: These records are the opposite of A and AAAA resource records that are used in Reverse map zone files to map an IP address (IPv4 or IPv6) to a host name.
Dynamic Host Configuration Protocol (DHCP): In a computer network DHCP is used to distribute dynamic IP address to the destination host. As referred in RFC 2132 states that DHCP definition for IPv4 networks and RFC 3315 for IPv6 (DHCPv6).
Modern Linux distributions contain IPv6-ready kernels, and there are many instances where the capability of the IP version 6 is said to be a compilation of a module. There is also an option where the user can select or he can opt out of starting the module automatically on startup of the system.
According to the latest RFC's the version 2.6.x is highly in recommendation for users.
There is a command which enables the user to check if the version of IP 6 is supported of not. This can be done by typing a command /proc-file-system.
This should be added with the following commands:
A short automatical test looks like:
# test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
The result of this operation will clearly show the support for IPv6. If the result fails, it is clear that IPv6 is not loaded.
There is a command which can be used to initiate this process
# modprobe ipv6
On successful completion of the process of loading the IPv6, the following line is displayed:
# lsmod |grep -w 'ipv6' && echo "IPv6 module successfully loaded"
Latter the check will run as it should on the support of IPv6. .
The loading of IPv6 is very easy but there is no support for a successful unloading of the IPv6. The trial of such unloading could lead to Kernel crashes.
IPv6 Auto Load
The IPv6 is can be loaded on demand or it can be programmed to be ready for use. There is a command which should be included into the loader of the module in kernel. (normally /etc/modules.conf or /etc/conf.modules):
alias net-pf-10 ipv6 # automatically load IPv6 module on demand
The command stated below is the command used to disable the automatic load of the IPv6.
alias net-pf-10 off # disable automatically load of IPv6 module on demand
The updated version of the kernel i.e. the version 2.6.x has an update which changed the module name. So names such as modprobe.conf are changed to modules.conf. Hence a new configuration file has to be named /etc/modprobe.conf instead of /etc/modules.conf.
IPv6 Look alike:
Generally IP version 6 (IPv6) addresses are 128 bits long and represented in hexa-decimal notation. These bits generate very high decimal numbers with up to 39 digits:
Here, IPv6 address is bitwise orientated which is same like IPv4.
In hexadecimal, 4 bits are represented by a digit or character from 0-9 and a-f (10-15). This format reduces the length of the IPv6 address to 32 characters.
Migration Technologies Overview
There are various technologies which are now also available to help the cause of migration of systems to the IPv6. Such technology improvements are described below according to their respective category:
1) Dual Stack Approach - This approach has support for the version 4 and also the version 6 on all the devices in a network.
2) Tunneling- The approach of sending dat using the method of encapsulation is called tunneling. In this method, the data in version 6 is wrapped with version 4 and transmitted through a network on IPv4. This encapsulation better and no data is lost in the transmission.
3) Translation-address or port translation of the addresses for e.g., gateway devices or translation code on the TCP/IP code of the host or router.
IPv4 to IPv6 Transition Mechanisms:
The transition of a network from version 4 to version 6 is done slowly. There are three stages which are followed in order to achieve the update. Firstly the network is made to version 4 only, later it is changed to version 4 or version 6 and lastly it is updated to version 6. For example, during the transition, some server services will be reachable over IPv6. However, some services, which have not yet been updated to support both IPv4 and IPv6, are only reachable over IPv4. In such a case, a host is recommended to be able to use both the versions. There are specific architectures which can encapsulate both the version on the same network. Some of these are:
There are many transition mechanisms developed so far, these are classified as follows.
* 1) Using both IPv4 and IPv6
Dual Stack Architecture:
The dual stack architecture is a basic mechanism, which relies on both IPv4 and IPv6 network layers. The only amendment here is that both the version have their own and separate protocols of the transport layer. Two of these are the TCP and the UDP
Here the routers, infrastructure and end-user devices are capable and are configurable to both version 4 and the version 6 addresses with their respective protocols which are enabled by administrators.
This approach is really benefit for layered protocol model and may be desirable with a server in a network which may contain a lot of software applications and many more service structures.
Dual Stack Deployment:
In deploying dual-stack devices it shares a common network interface which implies the operation of both IPv4 and IPv6 over the same physical link. Dual stack devices requires routers supporting suck links to be dual-stacked as well.
In this approach, if either the sender or the receiver is only IPv4 capable, an IPv4 datagram must be used. So, it is possible that two IPv6 capable nodes can end up, in essence, sending IP v4 datagram's each other.
In the above diagram, the information contained in IP datagram's between IPv6 nodes can be capable enough to send and receive them but in IP v6 and IP v4 the dual stack approach the data field of the IP v6 datagram can be copied into the data field of the IP v4 datagram and appropriate address mapping can be done.
However, while doing this conversion there will be IP v6 specified fields in the IP v6 datagram where the information in this will be lost. Another disadvantage of this implementation is that two routing tables and two routing processes may be required. Hosts and routers that support dual stack may use tunneling mechanisms to route IPv6 traffic over IPv4 networks. The ability to operate with different nodes makes the dual stack approach a flexible and simple to deploy solution to work in networks that are connected with both IPv4 and IPv6 nodes.
The new architecture named as the dual internet protocol layer architecture is capable of supporting both the version 4 and also the version 6 of the Internet protocol. But the dual layer architecture is mainly helpful when it comes to the sharing of transport layer protocols. This architecture is capable of supporting only one layer of protocols for both the versions 4 and 6 such as the TCP and the layer UDP.
Communication types with a Dual IP layer Architecture
A host with a dual stack can interoperate with both IPv4 and IPv6 nodes using IPv4 or IPv6 packets. Dual stack has the possibility to disable one of the IP stacks for operational reasons. A node configured with a dual stack can make decisions on TCP connections based on the IP header of the TCP packet:
â€¢ The IPv4 protocol stack will be used if the destination address used by the application is an IPv4 address.
â€¢ The IPv6 protocol stack will be used if the destination address used by the application is an IPv6 address.
â€¢ Encapsulation of an IPv6 packet inside an IPv4 packet will occur if the destination address used by the application is an IPv6 address with embedded IPv4 address.
Dual stack makes it possible to continue provide access to IPv4 resources, while adding IPv6 functionality. The IP address acquisition in the dual stack nodes occurs by using IPv4 mechanisms like DHCP or IPv6 mechanisms, as for instance the stateless address auto-configuration. The ability to operate with different modes makes the dual stack approach a flexible and simple to deploy solution to work in networks that are connected with both IPv4 and IPv6nodes. A disadvantage of this implementation is that two routing tables and two routing processes may be required. Hosts and routers that support dual stack may use tunneling mechanisms to route IPv6 traffic over IPv4 networks.
It translates domain names into numerical (binary) which are used to locate network equipment and also to publish these worldwide. A Domain Name System (DNS) infrastructure is actually needed for successful coexistence which is of high prevalence in names and is better than IP addresses to refer to network resources. In the process of an upgrade to the domain naming service, there is a lot of work related to filling records with records which IPv6 supports. That is name to address and address to name resolution.
Domain Name System (DNS) contains address records (database of records) associated with internet domain name and addresses. Any user attempting to access dual-stack devices will enquiry DNS zone files which can be configured by administrators with resource records for 32-bit IPv4 and 128-bit IPv6 addressing.
The domain naming service should include records which are filled with data which is generated manual or with the domain naming service update. This method is used to resolve the upgrading errors which may occur:
* A records for IPv4 nodes
* For example in dual stack approach if we consider then it will be like
* Dual-stack-host.name.com 81290 IN A 12.320.0.16
* AAAA records for IPv6 nodes
* Dual-stack-host.name2.com 81290 IN AAAA 4EFE:240:390::A
In DNS the Pointer Records are needed to convert IP-address to host name with appropriate .arpa domain:
The DNS infrastructure must contain the following resource records (populated either manually or dynamically) for the successful resolution of address to domain names (reverse queries). These are opposite of A and AAAA resource records and are used in reverse map zone files to map IP addresses to domain names.
* PTR records in the IN-ADDR.ARPA domain for IPv4 nodes
* PTR records in the IP6.ARPA domain for IPv6 nodes (optional).
For example in dual stack approach:
16.0.320.20 .in-addr.arpa. 81290 IN PTR dual-stack-host.name.com.
A.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.3.0.0.2.0.E.F.E.4.ip6.arpa.81290 IN PTR dual-stack-host.name.com
Address Selection Rules:
For the name-to-address to work properly there is a resolution. Once a node which is used to query receives a group or a list of the addresses which are related to the names, it is the responsibility of the node to determine which addresses will be a source and the rest will be the destination addresses. This addressing is done for outbound and inbound traffic. With the version 4 of the Internet Protocol, this is not a problem. But in the case where there is a host working on both version 4 and the version 6, there is a very good chance that the data in the packet may relate to both version 4 and version 6 addresses. Host which is passes a query is to decide between the addresses depending on the version as 4 or 6. Then the next step is to decide the location from where the ping is from and the destination address. The host must use a set of address selection rules. Here, the default address selection rules are described in RFC 3484. The IPv6 addresses in DNS name query responses are preferred over IPv4 addresses.
The original version of Dynamic Host Configuration Protocol (DHCP) [RFC 2131] was made with IPv4 and then specification was revised and updated to the latest version of DHCP known as DHCPv6. updated version of the infrastructure is better than the old one. The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) was standardized by IETF through RFC 3315 which was released in 1997. It has the capability for automatic allocation to reusable network addresses and additional configuration flexibility. It also enables DHCP servers to pass configuration parameters like IPv6 network addresses to IPv6 nodes.
DHCP Deployment Issues:
* In early IPv6 deployments, the dual stack of operation was typically used where a node requires both IPv4 and IPv6 configuration settings. A node actually needs to obtain both IPv4 and IPv6 configuration settings flexibly such as
* IP v4 address
* IP v6 address
* NTP or DNS or NIS server
* These have raised few issues in setting dual stack environment.
Â· Types of Issues:
* Handling Multiple Responses:
* There were issues handling configuration information that might be gathered from multiple sources such as DHCP and DHCPv6 servers which are running on the same node. Here, the client needs to know whether to use most recent data or union of responses by certain rules.
Â· Different Administrative management:
* In some deployments such as wireless environment IPv4 and IPv6 may not be administered by the same organization because of their connectivity issues. As the client need to use different received information depending on the connectivity.
* Some other issues have also been raised in Multiple Interfaces, DNS Load balancing and security etc. Thus the thesis gathered from different sources have suggested potential solutions such as running separate DHCP and DHCPv6 servers which could lead to information consistency managed by administrators.
* The other is to run only DHCPv6 server and relay IPv4 configuration information within new IPv4 configuration options.
* Tunneling: As discussed in RFC 2893 it is an alternative to Dual Stack approach which can solve the problems faced in dual stack architecture. As the picture shown below, we refer to the intervening IPv4 routers between two IPv6 routers with a tunnel. The sending side i.e. the version 6 side of the tunnel takes the entire IPv6 datagram which is saved to a field for all data (payload) for the IP4 datagram. This IPv4 datagram will later be stated as an address for the Internet Protocol Version 6 which is the side that receives and by dong this IPv4 datagram unaware that it contains IPv6 datagram.
Â· IP V6 over IPV4 Tunneling
IPv6 of the version 6 of the internet protocol over the version 4 tunneling can be called as a process which includes encapsulation. Encapsulation is a process wherein the version 6 packets are sent on an infrastructure which supports the IPv4 by adding a header that is of the version 4.
* There is a field in the version 4 header which can be denoted as 41. This indication specifies that the packet being sent through is being sent with a header of version 4 but the body of version 6.
* The addresses which are the source address and the destination address are set to the version 4. The procedures of tunneling and the naming and addressing can be done manually. But there are some systems which help calculate such addressing needs. Proper addressing results in better execution of the whole process.
IPv6 over IPv4 Tunneling
The version 4 of the internet protocol over the version 4 of the internet protocol tunneling, the version 6 path maximum transmission unit or also known as the MTU for the proper destination can be around 20. This is less than the version 4. Hence in a case where the version 4 path of the maximum transmission unit is not saved accordingly to each and every tunnel, the version 4 may cause very big problems. In this case, IPv6 over IPv4 tunneled packet must be sent with the no Fragment flag in the IPv4 header set to 0.
Tunneling is used on the internet and requires manual configuration. Because IPv6 will be developed over the IPv4 infrastructure, tunneling provides a way to use the existing routing infrastructure to carry IPv6 traffic over Ipv4. Tunneling IPv6 packets over IPv4 infrastructure is done by encapsulating IPv6 packets inside IPv4 packets. The IPv6 header contains the address of the final destination and the IPv4 header contains the address of the tunnel endpoint.
We have two types of tunneling which in turn have two more mechanisms of each as described below. The two main types are: Automatic Tunneling and Configured Tunneling
Configured Tunneling: The tunneling configuration needs a configuration of the endpoints of the tunnel. This can be done manually only. The tunnel configuration in a tunnel which is already configured, the endpoints of the version 4 of the Internet Protocol may not be derived according to the addresses which may be in the encoding process. A full explanation diagrammatically is given below.
Â· Tunneling Configuration:
* There are four types of configurations in tunneling .The first two are configured and the last two are automatic tunneling of IPv6 over IPv4.
Ø Router-to-Router tunneling
Ø Host-to-Router tunneling
Ø Router-to-Host tunneling
Ø Host-to-Host tunneling
In the router to router configuration, there is a connection establishment between the routers IPv4/IPv6 which in turn try and connect to two version 6 infrastructures which is over the version 4 infrastructure. The tunnel is created between the two edge routers. The tunnel endpoints extend a connection which is placed in the path. This connection is placed between the destination and the source. The IPv6 over IPv4 tunnel between the two routers acts a single hop. Router-to-Router tunneling has one segment at both ends of the path which support IPv6. If one segment has to send an IPv6 packet and the network is interconnected by IPv4 infrastructure then the IPv4 infrastructure can tunnel IPv6 packet between them.
In this type of configuration, an IPv6/IPv4 node which remains in an IPv4 infrastructure creates an IPv6. This is done in order to reach the router of version 4 or version 6. The tunnel endpoints extend the first segment of the path between the source and destination nodes. The IPv6 over IPv4 tunnel between the node and the router acts as a single hop.
A tunnel interface representing the IPv6 over IPv4 tunnel is created and a route is added using the tunnel interface. The IPv6/IPv4 node tunnels the IPv6 packet depending on the similar route, the tunnel interface, and the destination address of the IPv6/IPv4 node. This type of tunneling is used when the IPv6/ IPv4 hosts wants to tunnel IPv6 packets to the intermediate IPv6/IPv4 router via IPv4 infrastructure.
In this type of configuration, an IPv6/IPv4 router creates an IPv6 over IPv4 tunnel across the IPv4 infrastructure to reach an IPv6/IPv4 node. The tunnel endpoints extend the last segment of the path between the source node and destination node. A tunnel interface representing the IPv6 over IPv4 tunnel is created and a route is added using the tunnel interface. The IPv6/IPv4 router tunnels the IPv6 packet depending on the similar subnet route, the tunnel interface, and the destination address of the IPv6/IPv4 node. This type of tunneling is used when the IPv6/IPv4 routers wants to tunnel IPv6 packets to its final destination of IPv6/ IPv4 host.
Host-to-Router and Router-to-Host Tunneling
In this configuration, an IPv6/Ipv4 node which remains within an IPv4 infrastructure creates an IPv6 over IPv4 tunnel to reach another node which remains in the same IPv4 infrastructure. This type of tunneling needs the whole end-to-end path that the packets take. The tunnel end points extend the whole path between the source and destination nodes. The tunnel between the IPv6/IPv4 nodes acts as a single hop. If the IPv6/IPv4 hosts are interconnected by an IPv4 infrastructure, then they can tunnel the IPv6 packets between them. An interface representing the IPv6 over IPv4 tunnel is created on every IPv6/Ipv4 node. Routes may be present to point that the destination node is on the same subnet defined by the IPv4 infrastructure. Depending on the sending interface, the route, destination address and the host tunnels the IPv6 traffic to the destination.
Automatic Tunneling of IPv6 over IPv4 Networks: Automatic tunneling means that the IPv4 address is automatically delivered from the IPv6 address without any pre-configuration of the tunnels. When compared with configured tunneling, automatic tunneling is used between networks where there is need to exchange traffic between the networks. This tunneling mechanism has the advantage of being automatically configured, and it is limited because it requires one IPv4 address per host.
An automatic tunnel doesn't require pre-configuration. Here, the tunnels are created based on the information contained in the IPv6 packets such as source or destination IP address.
Various Automatic Tunneling Techniques:
* 6to4 -automatic Router-to-Router tunneling
* 6over4-automatic host-to-host tunneling
* ISATAP-automatic host-to-host, host-to-router, router-to-host tunneling based on the particular IPv6 address format.
* Tunnel Brokers-automatic tunnel setup by a server acting as tunnel broker
* Teredo-automatic tunneling through NAT firewalls over IPv4 networks
6to4 is a tunneling technique which allows IPv6 packets to be delivered over IPv4 network without the need to configure any explicit tunnels. It is totally based IPv6 address format to identify 6to4 packets and tunnel them accordingly.
It is used when end-user wanted to connect IPv6 internet using their present IPv4 network. It might be used by an individual host or by IPv6 network. Here, any individual host must have IPv4 connectivity which could encapsulate outgoing IPv6 packets and decapsulate incoming 6to4 packets.
It can also route traffic between 6to4 and native IPv6 networks.
Here, any host which has assigned 32-bit global IPv4 address then 48-bit 6to4 prefix can be added for use by that host by prep ending 2002(hex) to the IPv4 address. IPv4 addresses use dot-decimal notation and IPv6 use hexadecimal notation. For e.g. 192.0.2.42 represents IPv4 address and the corresponding 6to4 prefix would be 2002:c000:022a::/48 where the prefix length of 48 bits leaves space for a 16-bit subnet field and 64-bit host address within the same subnet.
Encapsulation and Transmission:
Here in the encapsulation 6to4 embeds an IPv6 packet in the payload of IPv4 packet with protocol 41 in order to send an IPv6 packet over IPv4 network to a 6to4 destination address. The IPv4 destination address for the prep ended packet header came from the IPv6 destination address of the inner packet by extracting the 32 bits following the IPv6 destination address 2002::prefix. The resulting IPv4 packet is then routed to its Ipv4 destination address just like normal IPv4 packet.
However, the 6to4 routers require 6to4 relay routers to map global unicast (native) IPv6 address for tunneling. The routing between 6to4 and native IPv6 address can be imparted by configuring routes to destination native IPv6 networks with the 6to4 relay router as the next hop. It can utilize normal routing protocols which enables 6to4 relay router to advertise to IPv6 networks. 6to4 packets which arrives on IPv4 interface will have their IPv6 payloads routed to IPv6 network where as packets arriving on IPv6 interface with destination address prefix of 203::/16 will be encapsulated and forwarded over IPv4 network.
RFC 3068 defines any cast address for 6to4 relay routers:
This address corresponds to the IPv4 address of 188.8.131.52.
6over4 is an IPv6 transition mechanism where it transmits IPv6 packets between dual-stack nodes on the top of a multicast-enabled IPv4 network. IPv4 is used as a virtual data link layer (virtual Ethernet) on IPv6 cab be run.
Link-local address generation:
Because of the virtual link layer perspective, IPv6 addresses are formed using a link local scope
Any host wanted to participate in 6over4 over a given IPv4 network can set up a virtual IPv6 network interface referred in RFC 2529. The link-local address is determined as follows :
It starts with fe80::the lower-order 32 bits to the binary value must be that of the IPv4 address of the host.
For example, host 192.0.2.142 would use fe80::c000:028e as its link-local IPv6 address (192.0.2.142 is c000028e in hexadecimal notation). A shortened notation would be fe80::c000:28e.
6over4 mostly relies on IPv4 multicast availability, which is not very widely supported by IPv4 networking infrastructure (multicast is almost as recent as IPv6), 6over4 is of limited practical use, and is not supported by the most common operating systems
It is a tunneling protocol designed to grant IPv6 connectivity to nodes that are located behind IPv6 NAT devices. Teredo defines a way of encapsulating IPv6 packets within IPv4 UDP datagram's that can be routed through NAT devices and on the IPv4 internet.
Due to certain limitation in 6to4, Teredo alleviates the problem by encapsulating IPv6 packets within UDP/IPv4 datagram's through which NAT's can be forwarded.
Even when they don't have dedicated public IPv4 address, IPv6 aware hosts behind NATs can be used as Teredo tunnel endpoints. As a result, the host implementing Teredo can gain IPv6 connectivity without any co-operation from any local network environment.
Teredo protocol performs the following functionalities:
* It discovers the kinds of NAT by diagnosing UDP over IPv4 connectivity.
* Routes traffic between its hosts and IPv6 hosts.
* For a transmission over IPv4 network it encapsulates IPv6 packets inside UDPv4 datagram's
* Assigns globally route unique IPv6 addressing to each host.
Teredo node types
It defines several different kinds of node:
It has the IPv4 connectivity to the internet from behind the NAT and access to the IPv6 which is named as Teredo tunneling protocol. Its clients are assigned an IPv6 address that starts with the Teredo prefix (2001:0000::/32).
This host is used for initial configuration of a Teredo tunnel. A Teredo server never forwards any traffic for the client (apart from IPv6 pings), so therefore very modest bandwidth requirements which allows a single server to support large numbers of clients.
Regardless of how many clients it has, teredo server can be implemented in a fully stateless manner using the same amount of memory.
It acts as remote end of a Teredo tunnel. A Teredo relay must forward all of the data on behalf of the Teredo clients it serves. Therefore, a relay requires a lot of bandwidth and can only support a limited number of simultaneous clients. Teredo relay serves a range of IPv6 hosts (e.g. a single campus/company, an ISP or a whole operator network, or even the whole IPv6 Internet); it forwards traffic between any Teredo clients and any host within said range.
Teredo host-specific relay
As the Teredo relay range of service is limited to the host it runs on though it has no particular bandwidth or any routing requirements. A computer with a host-specific relay will use Teredo to communicate with Teredo clients, but anyway it will stick to its main IPv6 connectivity provider to reach the rest of the IPv6 Internet.
Teredo IPv6 addressing
Teredo client is assigned with public IPv6 address which is represented as follows:
Here the higher order bit is numbered 0.
Â§ Teredo prefix (normally 2001:0000::/32) in which bits 0 to 31 are set to its prefix.
Â§ Here bits 32 to 63 embed the primary IPv4 address of the Teredo server which is used.
Â§ Bits 64 to 79 will be used to define some flags. Currently only the higher order bit is used and it is set to 1 if the Teredo client is located behind a cone NAT 0 otherwise.
Â§ Bits 80 to 95 contain theobfuscated UDP port number. This port number is mapped by the NAT to the Teredo client with all its bits inverted.
Â§ Bits 96 to 127 contains theIPv4 address. Here, the public IPv4 address of the NAT with all bits inverted.
The Teredo addresses are composed of 5 components:
| Prefix | Server IPv4 | Flags | Port | Client IPv4 |
- Prefix: the 32-bit Teredo service prefix.
- Server IPv4: the IPv4 address of a Teredo server.
- Flags: a set of 16 bits that document type of address and NAT.
- Port: the obfuscated mapped UDP port of the Teredo service at client.
- Client IPv4: the obfuscated mapped IPv4 address of the client.
0 - 31
32 - 63
64 - 79
80 - 95
96 - 127
a) Teredo IPv6 addressing table
As an example of Teredo client represented as the IPv6 address 2001:0000:4136:e378:8000:63bf:3fff:fdd2
With the help of simplifies STUN qualification procedure Teredo clients auto-detect the kind of NAT behind located by Teredo servers.
By sending a UDP packet at regular interval times, Teredo clients maintains a binding on their NAT toward their Teredo server in order to ensures that the server can always contact any of its clients for whole punching to work properly.
Teredo server also transmits ICMPv6 packet from Teredo clients toward the IPv6 Internet community.
Coming to Maintenance Teredo server requires little bandwidth because they are not actually involved in the actual transmission and reception of IPv6 packets.
However the requirements for any Teredo servers are:
The ability to emit ICMPv6 packets with a source address belongs to the Teredo prefix,
Two distinct public IPv4 addresses the second IPv4 address is needed for the purpose of NAT detection.
Teredo relay actually requires a better network bandwidth. It must advertise a route toward the Teredo IPv6 prefix (2001:0::/32) to other IPv6 hosts. In this way Teredo relay will receive traffic from the IPv6 hosts addressed to any Teredo client, and it forwards over UDP/IPv4. Symmetrically, it will receive packets from Teredo clients which are addressed to native IPv6 hosts over UDP/IPv4 and inject those packets into the native IPv6 network.
In reality, network administrators can set up a private Teredo relay for any company or campus. This will provide a short path between their IPv6 network and any Teredo client. However, setting up a Teredo relay beyond the scale of single network requires the ability to export BGP IPv6 routes to the other autonomous systems (AS's).
However coming to its usage, it has got some limitations where Teredo is not compatible with all NAT devices. Using the terminology of RFC 3489, cone, restricted and port-restricted NAT devices are supported, while symmetric NATs are not supported. Anyway, enhanced original Teredo protocol to support symmetric NAT implementations implements a certain unspecified non-standard extensions in order to improve support for symmetric NATs. However, the connectivity between a Teredo client behind a symmetric NAT and a Teredo client behind a port-restricted or symmetric NAT remains seemingly impossible.
In computer networking, a tunnel broker is a service which provides a network tunnel which can provide encapsulated connectivity over existing infrastructure to a new infrastructure.
There are a variety of tunnel broker, the term is used to refer to an IPv6 tunnel broker, as defined in [RFC 3053]. These Tunnel broker provide IPv6 tunnels to sites or end users. In general, tunnel brokers offer so called 'protocol 41' or proto-41 tunnels. These are tunnels where IPv6 is tunneled directly inside IPv4 by having the protocol field set to '41' (IPv6) in the IPv4 packet.
a) Tunnel broker Model
Automated Configuration is usually done using the Tunnel Setup Protocol (TSP), or using Tunnel Information Control protocol (TIC). A single client capable of this is AICCU (Automatic IPv6 Connectivity Client Utility)
In this, proto-41 tunnels (direct IPv6 in IPv4) may not be operating well with NATs. One way around this is to configure the actual endpoint of the tunnel to be the DMZ on the NAT-box. Another method is to either use AYIYA (Tunneling protocol for connecting islands of IP traffic with each other) or TSP( signaling protocol used to negotiate IP tunnel setup parameters between two tunnel end points) both of which send IPv6 inside UDP, which is able to cross NAT setups and firewalls when its needed.
A problem that still might occur is that of the timing out of the state in the NAT machine.
As a NAT remembers that a packet went outside the Internet will allow another packet to come back in from the Internet that will be related to the initial proto-41 packet. When this state expires, no other packets from the Internet will be accepted. Therefore, it breaks the connectivity of the tunnel until the users host again sends out a packet to the Tunnel Broker.
Whenever the endpoint is not a static IP address, then the user, or a program, has to instruct the tunnel broker to update the endpoint address. This will be done using the tunnel broker's web site or it might use an automated protocol like TSP which is used by AICCU. In the case of a tunnel broker using TSP, the client automatically restarting the tunnel will cause the endpoint address and port to be updated.
ISATAP is an address assignment and host-to-host, host-to-router, and router-to-host automatic tunneling technology that is used to provide unicast IPv6 connectivity between IPv6/IPv4 hosts across an IPv4 intranet. ISATAP is described in RFC 4214. ISATAP hosts do not require any manual configuration and can create ISATAP addresses using standard address auto configuration mechanisms.
ISATAP addresses use the locally administered interface identifier ::0:5EFE:w.x.y.z, in which w.x.y.z is any unicast IPv4 address (public or private). The ISATAP interface identifier can be combined with any 64-bit prefix that is valid for IPv6 unicast addresses, including the link-local address prefix (FE80::/64) and global prefixes. The interface identifier potion of an ISATAP address contains an embedded IPv4 address that is used to determine the destination IPv4 address for the IPv4 header when ISATAP-addressed IPv6 traffic is tunneled across an IPv4 network. By default, the IPv6 protocol for Windows Server 2003 automatically configures the link-local ISATAP address of FE80::5EFE:w.x.y.z on the ISATAP tunnel interface (known as the Automatic Tunneling Pseudo-Interface) for each IPv4 address that is assigned to the node. These link-local ISATAP addresses allow two hosts to communicate over an IPv4-only network by using each other's link-local ISATAP address.
Example ISATAP configuration
We can test the connectivity of the hosts of A and B by using Host B's link local ISATAP address, some of the link local ISATAP addresses are specified below .we cause the ping tool to test the connectivity ,for example .
Example link local addresses:
IPv6 Source Address
IPv6 Destination Address
IPv4 Source Address
IPv4 Destination Address
ISATAP hosts have an ISATAP tunneling interface and perform their own tunneling to either other ISATAP hosts or an ISATAP router. The use of link-local ISATAP addresses allows ISATAP hosts on the same logical subnet (an IPv4-only intranet) to communicate with each other, but not with other IPv6 hosts on other IPv6 subnets. To communicate outside the logical ISATAP subnet using ISATAP-based global addresses, ISATAP hosts must tunnel their packets to an ISATAP router.
An ISATAP router is an IPv6 router that performs the following:
* Advertises address prefixes to identify the logical ISATAP subnet on which ISATAP hosts are located. ISATAP hosts use the advertised address prefixes to configure global ISATAP addresses.
* It forwards packets between ISATAP hosts on the logical ISATAP subnet and IPv6 hosts on other subnets. The other subnets can be other IPv4 networks (such as a portion of an intranet or the IPv4 Internet) or subnets in a native IPv6 routing domain (such as an organization's IPv6 network or the IPv6 Internet).
Components of ISATAP
* When an ISATAP host receives a router advertisement from an ISATAP router, the ISATAP host adds a default route (::/0) using the Automatic Tunneling Pseudo-Interface with next-hop address set to the link-local ISATAP address of the ISATAP router. When ISATAP hosts send packets destined to locations outside the logical ISATAP subnet, the packets are tunneled to the IPv4 address of the ISATAP router corresponding to the ISATAP router's interface on the IPv4-only network. The ISATAP router then forwards the IPv6 packet.
ISATAP hosts use the following routes:
* An on-link route for the logical ISATAP subnet prefixes that ISATAP interface. This route allows ISATAP hosts to perform host-to-host tunneling to reach other ISATAP hosts on the same logical ISATAP subnet. In the example configuration, this is the 2001:DB8:0:7::/64 route.
* A default route that uses the ISATAP interface has the next-hop address of the ISATAP router. This route allows ISATAP hosts to perform host-to-router tunneling to reach other IPv6 hosts on other IPv6 subnets.
* An on-link route for the ISATAP subnet prefixes that uses the ISATAP interface. This route allows the ISATAP router to perform router-to-host tunneling to reach other ISATAP hosts on the logical ISATAP subnet. In the example configuration, this is the 2001:DB8:0:7::/64 route.
* A default route that uses a LAN or tunneling interface has the next-hop address of the next router on the IPv6-capable network. This route allows the ISATAP router to forward IPv6 traffic to destinations that are not located on the logical ISATAP subnet.
* A route for the logical ISATAP subnet prefixes that points back to the ISATAP router. This route allows the routers of the IPv6-capable network to forward traffic destined for ISATAP hosts to the ISATAP router.
There are two types of communications in ISATAP.
Ø ISATAP Host to IPv6 Host
ISATAP Host to ISATAP Host Communication:
In this example, ISATAP Host A wants to send a packet to ISATAP Host B. ISATAP Host A has resolved ISATAP Host B's IPv6 address through a DNS name query. When sending the packet, IPv6 on ISATAP Host A performs the IPv6 route determination process and finds that the closest matching route to the destination is the on-link 2001:DB8:0:7::/64 route. Because it is an on-link route, the next-hop IPv6 address is set to the destination address (2001:DB8:0:7:0:5EFE:184.108.40.206). The IPv6 packet and the next-hop address are handed to the ISATAP interface for processing.
The ISATAP interface sets the destination IPv4 address in the IPv4 header to the last 32-bits of the next-hop address, which in this case is ISATAP Host B's IPv4 address of 220.127.116.11. IPv4 on ISATAP Host A determines that the best source address to use is the IPv4 address assigned to ISATAP Host A (192.168.47.99) and then sends the packet. On ISATAP Host B, IPv4 processes the IPv4 header and because the Protocol field is set to 41, it hands the IPv6 packet to the IPv6 protocol for further processing.
When ISATAP Host A sends to a destination that is not on the logical ISATAP subnet (IPv6 Host C), IPv6 on ISATAP Host A performs the route determination process and finds that the closest matching route to the destination is the default route (::/0). The default route has a next-hop IPv6 address of the link-local ISATAP address of the ISATAP router's interface on the IPv4-only intranet, which for our example is FE80::5EFE:10.0.0.1. The IPv6 packet and the next-hop address are handed to the ISATAP interface for processing. The ISATAP interface sets the destination IPv4 address in the IPv4 header to the last 32-bits of the next-hop address, which in this case is the ISATAP router's IPv4 address of 10.0.0.1. IPv4 on ISATAP Host A determines that the best source address to use is the IPv4 address assigned to ISATAP Host A (192.168.47.99) and then sends the packet. The above Figure shows the journey of the packet from ISATAP Host A to the ISATAP router.
The migration of IPv4 to IPv6 will be a long process and some details of migration have yet to be determined. As a general methodology, to migrate from IPv4 to IPv6, we must perform the following steps:
1. Upgrade the applications to be independent of IPv6 or IPv4.
Applications must be changed to use new Windows Sockets application programming interfaces (APIs) so that name resolution, socket creation, and other functions are independent of whether IPv4 or IPv6 is being used.
2. Update the DNS infrastructure to support IPv6 address and PTR records.
The DNS infrastructure might need to be upgraded to support the new AAAA records (required) and PTR records in the IP6.ARPA reverse domain (optional). Additionally, ensure that the DNS servers support DNS dynamic update for AAAA records so that IPv6 hosts can automatically register their names and IPv6 addresses.
3. Upgrade hosts to IPv6/IPv4 nodes.
Hosts must be upgraded to use a dual IP layer or dual IP stack. DNS resolver support must also be added to process DNS query results that contain both IPv4 and IPv6 addresses. Deploy ISATAP to ensure that IPv6/IPv4 hosts can reach each other over the IPv4-only intranet.
4. Upgrade routing infrastructure for native IPv6 routing.
Routers must be upgraded to support native IPv6 routing and IPv6 routing protocols.
5. Convert IPv6/IPv4 nodes to IPv6-only nodes.
IPv6/IPv4 nodes can be upgraded to be IPv6-only nodes. This should be a long-term goal because it will take years for all current IPv4-only network devices to be upgraded to IPv6-only. For those IPv4-only nodes that cannot be upgraded to IPv6/IPv4 or IPv6-only, employ translation gateways as appropriate so that IPv4-only nodes can communicate with IPv6-only nodes.
Implementation of IPv4 Network And IPv6 Network.
We use RedHat enterprise Edition 5 software in order to do IPv4 and IPv6 configuration. As IPv6 is enabled we don't need any downloadable packages because it automatically enables IPv6 address format.
While accessing the software we can see in the Network Page SFTP file transfer on dhcppc1
Here we see that, to access the SFTP File transfer on dhcppco we need to enter the root password and then we are allowed to transfer any file from one host to another host
Here we see the root files in the root folder where we can access all the data base files and the root path is different with different softwares.
1. Connecting from Host A(192.168.1.2) to Router(192.168.1.1)
IFCONFIG to give IP address
[root@dhcppc0 ~]# ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
Here, the Host B is UP in the network by adding respective IP address and subnet mask.
3. Pinging from Host A to Router Gateway Ping 192.168.1.1
In the picture above we can see that the Maximum Transmission Unit (MTU) is 56 bytes of data which is default window size.
4. Pinging from Host A to Host B ping 192.168.1.3
IPv6 Implementation in Network
Here, Ifconfig is a network configuration tool that connects interwork interface dynamically and it connects a fixed IP addresses.
We can see the IP address in IPv6 version 128-bit format where multicasting is done with different MTU sizes.
2. Turning ON Network
[root@dhcppc0 ~]# vi /etc/sysconfig/network
* NETWORKING_IPV6=yes|no - Enable or disable global IPv6 initialization.
* IPV6INIT=yes - Enable or disable IPv6 configuration for all interfaces.
* IPV6ADDR=2607:f0d0:1002:0011:0000:0000:0000:0002 - Specify a primary static IPv6 address here.
* IPV6_DEFAULTGW=2607:f0d0:1002:0011:0000:0000:0000:0001 - Add a default route through specified gateway.
Here we can show IPv4 address and IPv6 address together but it's not mandatory
4. Restart the Network Services
5. Checking whether system is supporting for IPv6
6. Local Host Pinging
Here pinging in IPv6 is represented as Ping6 IPv6 address
Ping6 2607:f0d0:1002:11::2 which is testing its own system.
7. Pinging IPv6.Google.com
Here ping6 ipv6.google.com represents pinging from local host to ipv6.google.com
* When we compare IPv6 over IPv4, we have Efficient Routing in IPv6 since it has large hierarchical address space which allows efficient routing whereas IPv4 has lack of uniformity in hierarchical system, limited address, reduces performance, and increases routing information in backbone routers.
* IPv6 header size is better than IPv4 due to its fixed size which is easily predictable, the extension headers in it also allow new headers to add easily.
* IPv6 is Exhaustion Imminent whereas in IPv4, the gross expansion of the internet was not expected in the design of IPv4 and many addresses are lost due to the hierarchical structure of the protocol.
* It was clear that IPv6 was not to make the same mistake IPv4 had by making their number system dependent on location. One of the reasons IPv4 is quickly running out of numbers is that entire blocks can be lost.
* Instead of using 32 bit to store an address like IPv4, IPv6 uses 128.
* IPv4 has no built in security, all modern security precautions are a result of retrofit. IPv6 has multiple modes for the header to have increased functionality and IPSec is mandatory in all IPv6 packets.
* The security features of IPv6 are built in the protocol; it makes a more secure system than IPv4.
Most of the industry wide routers implement their functionality in hardware and therefore we believe that hardware based routers are more efficient than a software-based router implementation. The reason few researchers tested IPv6's performance using hardware based routers supporting dual stack IPv4/IPv6 are relatively expensive. As a result, most of the work done in the research community has been performed using software-based routers utilizing off-the-shelf PCs. Various works have been attempted which evaluated the IPv6 protocol stack, however none of them used hardware-based routers, had such a wide range of metrics, and none investigated transition mechanisms.
As per the observations from the current scenario it is obvious that no problems arise in implementing the IETF standards for IPv6 because major operating system and router vendors already have implemented and periodically demonstrated interoperability. In the short run, differences in the implementation of IPv6 could potentially lead to interoperability problems in some areas. From our observation we can keep up with the ongoing developments by adding test beds and some testing activities.
In absence of these we assume that future IPv6 products developed in any company might not be able to interact with the available general protocol standards. In today's commercial world many companies are implementing IPv6 which results in better security and routing practices.
 IETF IPv6 Transition Working Group
 I. Raicu. "An Empirical Analysis of Internet
Protocol version 6 (IPv6)", Master Thesis,Wayne State University, 2002.
 IPv6 Task Force, U. S Dept. of Commerce, "Technical and Economic Assessment of IP version 6 (IPv6)", http://www.ntia.doc.gov/ntiahome/ntiageneral/ipv6/final/IPv6final4.htm
 S. Kent, R. Atkinson. "Security Architecture for the Internet Protocol", Request for Comments 2401, Internet Engineering Task Force, November 1998
 G. Tsirtsis, P. Srisuresh, "Network Address Translation - Protocol Translation (NAT-PT), "Request for Comments 2766, Internet Engineering Task Force, February 2000.
 A. Durand, P. Fasano, I. Guardini, D. Lento, "IPv6 Tunnel Broker," Request for Comments 3053, Internet Engineering Task Force, January 2001.
 Encyclopedia, Introduction to "Tunneling Protocol" and illustrating about different tunneling types. http://en.wikipedia.org/wiki/Tunneling_protocol
 Encyclopedia, RFC  - "Role of the Domain Name System (DNS)" And "History of the DNS" retrieved, 2008. http://en.wikipedia.org/wiki/Domain_Name_System
 Representing the actual format of "Pointer Records (PTR)" and its functionality. http://www.zytrax.com/books/dns/ch8/ptr.html
 Marc Blanchet, "Migrating to IPv6: A Practical Guide for Mobile and Fixed Networks", November 2005.
 R. Droms,"A Guide to Implementing Stateless DHCPv6 Service", IETF Internet Draft draft-droms-dhcpv6-stateless-guide-01.txt, October 2002.
 Encyclopedia, "IANA DNS Parameters registry", and RFC , May 2008. http://en.wikipedia.org/wiki/List_of_DNS_record_types#Resource_records
 Specifications of IPV4 and IPV6 and its structure. http://www.cms.livjm.ac.uk/pgnet2007/Proceedings/Pa