IPV6 TECHNOLOGY AND DNS SETUP

bashfulflowersΛογισμικό & κατασκευή λογ/κού

30 Ιουν 2012 (πριν από 5 χρόνια και 3 μήνες)

853 εμφανίσεις


IPV6 TECHNOLOGY AND DNS SETUP



Except where reference is made to the work of others, the work described in this report is my
own or was done in collaboration with my advisory committee.


___________________
Xiaozheng Lin










W. Homer Carlisle, Chair Kai-Hsiung Chang
Associate Professor Professor
Computer Science and Computer Science and
Software Engineering Software Engineering


Chung-Wei Lee John F. Pritchett
Assistant Professor Dean
Computer Science and Graduate School
Software Engineering


I

IPV6 TECHNOLOGY AND DNS SETUP



Xiaozheng Lin






In Partial Fulfillment of the
Requirements for the
Degree of
Master of Software Engineering
Auburn University






Auburn, Alabama
February 2003




II



IPV6 TECHNOLOGY AND DNS SETUP

Xiaozheng Lin

Master of Software Engineering, February 2003


Directed by Dr. W. Homer Carlisle





ABSTRACT
Over the past few years, based on a concern that the Internet address space would soon be
exhausted, a new version of Internet Protocol (IP), called IP Version 6 (IPv6) is in the process of
standardization, and is expected to supersede the current IP version IPv4 in the near future. This
report first introduces some Internet standards-based IPv6 concepts: the features of IPv6, IPv6
addressing, IPv6 address autoconfiguration. Then it describes proposed transition strategies from
IPv4 to IPv6: Dual IP Layer Operation for communication between IPv6 and IPv4 nodes, some
proposed tunneling mechanisms for communication of IPv6 islands over IPv4 routing infrastructure,
and some other proposed mechanisms such as DSTM, NAT-PT, SOCKS, and BIS.
Finally, this report gives a brief introduction to the IPv6 project in Auburn University. Because
of the prevalent use of the names (rather than addresses) to refer to network resources in these days,
DNS upgrading is an urgent and important task for the smoothing transition from IPv4 to IPv6, this
report gives a brief introduction to the DNS, and detailed description for DNS server setting up and
test to support IPv6.
Key Word: IPv6, IPv4, Autoconfiguration, Tunneling, Dual IP, DNS, BIND, HTTP2,
Linux
III
ACKNOWLEDGMENTS

I would like to express my deepest appreciation to Dr. Carlisle for his tremendous support and
guidance on this project. I would also like to thank my committee members, Dr. Chang and Dr. Lee
for their useful comments on the report, assistance in scheduling the defense date. Also, thanks to Mr.
Kelly Price for his help with the project. Without their assistance, this valuable educational
experience at Auburn University would not have been possible!



IVTABLE OF CONTENTS

LIST OF FIGURES ...............................................................................................VII
LIST OF TABLES................................................................................................VIII
1 INTRODUCTION ............................................................................................. 1
1.1 Features of IPv6................................................................................................... 2
1.1.1 Expanded Addressing Capabilities.................................................................2
1.1.2 Scalable Routing and Addressing Infrastructure............................................. 2
1.1.3 Automatic Configuration...............................................................................3
1.1.4 Header Format Simplification........................................................................ 3
1.1.5 Flow Labeling Capability............................................................................... 4
1.1.6 Security.........................................................................................................4
1.2 IPv6 Addressing................................................................................................... 5
1.2.1 IPv6 Address Allocation and Representation.................................................. 5
1.2.2 IPv6 Unicast Addresses ................................................................................. 7
1.2.3 Multicast IPv6 Addresses..............................................................................10
1.2.4 Anycast IPv6 Addresses ...............................................................................12
1.2.5 A Nodes IPv6 Addresses .............................................................................13
1.3 Address Autoconfiguration................................................................................14
1.3.1 Stateless Address Autoconfiguration.............................................................14
1.3.2 Stateful Address Autoconfiguration..............................................................15
2 TRANSITION FROM IPV4 TO IPV6.............................................................. 16
2.1 Dual IP Layer Operation ...................................................................................16
2.2 IPv6 over IPv4 Tunneling Mechanisms.............................................................20
2.2.1 Configured Tunneling...................................................................................21
2.2.2 Automatic Tunneling....................................................................................22
2.2.3 6to4..............................................................................................................23
2.2.4 6over4..........................................................................................................24
2.2.5 IPv6 Tunnel Broker ......................................................................................24
2.2.6 Summary of Transition Mechanisms.............................................................25
2.3 DNS and IPv6 .....................................................................................................27
2.3.1 Introduction to DNS and DNS Server ...........................................................27
2.3.2 Resource Record in DNS Zone Files.............................................................28
2.3.3 DNS to Support IPv6 Addresses Lookup ......................................................30
3 IPV6 PROJECT IN AUBURN........................................................................ 35
3.1 Introduction to IPv6 Project in Auburn............................................................35
V4 PROJECT REPORT...................................................................................... 37
4.1 IPV6 Ready Test.................................................................................................37
4.2 DNS Setup To Support Both IPv4 and IPv6......................................................38
4.2.1 Package Build...............................................................................................39
4.2.2 DNS Setup....................................................................................................41
4.2.3 Put Named into Chroot Jail...........................................................................47
4.3 Apache Web Server Setup and Configuration ..................................................49
4.4 System Test .........................................................................................................51
4.4.1 DNS Server Test Script.................................................................................51
4.4.2 Apache Web Server and Virtual Host Test....................................................53
5 CONCLUSIONS AND FUTURE WORKS ..................................................... 55
REFERENCE........................................................................................................ 56

VILIST OF FIGURES
Figure 1 IPv6 and IPv4 Header Format ..........................................................................................4
Figure 2 IPv6 Aggregatable Global Unicast Address Structure.......................................................8
Figure 3 The Site-local Address Format .......................................................................................10
Figure 4 The IPv6 Multicast Address ...........................................................................................11
Figure 5 The Subnet-Router Anycast Address..............................................................................13
Figure 6 A Dual IP Layer Architecture.........................................................................................17
Figure 7 The Dual Stack Architecture for the Windows .NET Server 2003 Family.......................17
Figure 8 DSTM Architecture ......................................................................................................18
Figure 9 NAT-PT Architecture ....................................................................................................19
Figure 10 Using IPv4 Applications over an IPv6 network by BIS.................................................20
Figure 11 6to4 Tunneling Mechanism..........................................................................................24
Figure 12 Tunnel Broker Model...................................................................................................25
Figure 13 Resource Record Components......................................................................................29
Figure 14 Screen Capture for www.ipv6.auburn.edu ....................................................................54
Figure 15 Screen Capture for ns.ipv6.auburn.edu .........................................................................54

VIILIST OF TABLES
Table 1 Current Allocation of the IPv6 Address Space...................................................................6
Table 2 Special IPv6 Addresses .....................................................................................................7
Table 3 Defined Values for the Scope Field .................................................................................11
Table 4 Summary and Comparison of different transition mechanisms.........................................26
Table 5 Resource Record Type List .............................................................................................29
Table 6 RDATA for Different Resource Records .........................................................................30
VIII
1 INTRODUCTION
In 1993, based on a concern that the Internet address space would soon be exhausted, the
Internet Engineering Task Force (IETF) created the Internet Protocol Next Generation (IPNG) work
group to study and recommend a next generation Internet protocol IPv6. IPv6 means IP version 6, it
is selected to supersede the current IP version (IPv4). IPv6 is designed to address several problems:
running out of IPv4 addresses; support streaming sources (flows), such as audio, video etc.; improve
router efficiency and so on.
IPv4 has not been substantially changed since RFC 791 was published in 1981. IPv4 is robust,
easily implemented and interoperable, and has stood the test of scaling an Internet to a global utility
the size of todays Internet. However, since the recent exponential growth of the Internet, IPv4
addresses have become relatively scarce. The IPv4 address space can theoretically support about 4
billion hosts, but because of the hierarchical structure imposed by the routing system, lots of
addresses are being wasted. At the same time, another problem has been caused by not having
enough structure. Since an IPv4 network (class A, B or C) can be located anywhere in the world,
backbone routers must maintain a record for every active network. This leads to the huge size of
routing tables in the "core gateways", and is on the way to exhausting the maximum table capacity of
these routers. Obviously IPv4 was never intended for the Internet that we have today, either in terms
[1][2]
of the numbers of hosts, types of applications, or security concerns .
Several enhancements have been developed for IPv4. Classless Inter-Domain Routing (CIDR)
was deployed in 1992 to relieve pressure on the IPv4 address space as well as help alleviate problems
associated with increasing size of the core routing tables. CIDR uses a technique that allows routers
to group routes together to cut down on the quantity of routing information carried by core routers.
Dynamic Host Configuration Protocol (DHCP) and Network Address Translation (NAT) also give
effective ways to resolve address assignment limitations and portability. DHCP helped to solve the
problem of assigning addresses to hosts. NAT only allocates addresses to active Internet users and
allows an internal private network to use any available private addressing scheme. Since the private
network is isolated from the Internet, it makes the internal network a truly autonomous system. All
1these enhancements extended the useful lifetime of IPv4. Nevertheless, despite the enhancements to
IPv4, it is estimated the IPv4 address space will be exhausted by year 2010. Nomadic personal
computing devices, network entertainment, mobile devices, and device control may possibly drive
the next phase of the Internet growth. These systems all have the characteristic that they are expected
[3][5][6]
to be extremely large in number. Growth of these markets will drive the need and use of IPv6 .
1.1 Features of IPv6
Growth is the basic issue that asked the need for IPv6. IPv6 is designed as an evolution from
IPv4 rather than a radical change. IPv6 carries over useful features of IPv4 and drops its less useful
[1][2][4][7]
features. The following are the primary features of the IPv6 protocol:
1.1.1 Expanded Addressing Capabilities
The address size is increased 4 times from 32 bits to 128 bits in IPv6, allowing more nodes and
128 38
more levels of addressing hierarchy. A 128-bit address space allows for 2 (about 3.4×10 )
23
possible addresses. It also means about 6.5×10 addresses for every square meter of the Earths
30
surface, or about 10 addresses per person on the planet.
IPv6 allows multiple IP address for a single network interface, so it also makes it possible for
simpler auto-configuration of addresses. Even though only a small number of the possible addresses
are currently allocated for use by hosts, there are plenty of addresses available even for foreseeable
future use. This address space is more enough to connect all of a company’s equipment (e.g.,
computers, printers, pagers) to the Internet without address conflicts.
1.1.2 Scalable Routing and Addressing Infrastructure
Unlike the current IPv4-based Internet, which is a mixture of both flat and hierarchical routing,
the IPv6-based Internet has been designed from its foundation to support efficient, hierarchical
addressing and routing. Because there is much more available address space in IPv6 than in IPv4,
many levels of routing structure may be defined and routing tables can be far more effectively
distributed. For example, IPv6 aggregatable global unicast addresses are designed to be aggregated
or summarized to produce an efficient routing infrastructure.
2The IPv6 routing option makes it possible for a mixture of "loose" and strict source routing in a
single packet. In "loose" routing, only nodes that must be traversed are defined in a path, it allows
other unmentioned node between these points to be traversed. In "strict" routing, an exact path is
defined, a packet must follow the defined points step by step, and any unmentioned hops are illegal.
In IPV6, multicast addresses are more flexible and powerful; we can define different scope to
multicast addresses and make it more efficient and scalable in multicast group routing. Broadcast is
no more supported and multicast in IPv6 replaces it.
1.1.3 Automatic Configuration
Network addresses management is not an easy job for network administration of a large
network. There are some solutions such as Dynamic Host Configuration Protocol (DHCP) for IPv4.
In IPv6, however, things can be even simpler. IPv6 supports stateless address configuration, in
which, an IPv6 node can obtain its IPv6 address (called site-local addresses) by combining a network
prefix that it learns from a local router with its layer-2 MAC address in the absence of a DHCP
server. Even in the absence of a router, hosts on the same link can automatically configure
themselves with link-local addresses and communicate with each other without any manual
configuration. This greatly simplifies the assignment of a complex address space and is touted as a
major advantage or feature of IPv6. IPv6 also supports stateful automatic configuration, namely
hosts can get their IPv6 addresses through DHCPv6 (IPv6 version of DHCP) server. Address
configuration is more flexible in IPv6. Stateful and stateless automatic configuration can be applied
to IPv6 host simultaneously, since different IPv6 addresses can be assigned to the same network
interface. Autoconfiguration, together with multiple prefixes in IPv6 also make network
renumbering much easier.
1.1.4 Header Format Simplification
The IPv6 header has a new format that is designed to keep header overhead to a minimum. The
[4]
IPv6 header is simpler and far more streamlined than that of IPv4, as shown in figure 1 . All
Variable-length headers are gone, some IPv4 header fields have been dropped, and extension headers
now handle formerly optional features in IPv4. There are several extensions headers defined
3currently, including Fragment and Authentication Encapsulating Security Payload extension.
Generally, routers do not examine extension headers as the packet is forwarded so they reduce packet
processing time and bandwidth consumption.


Figure 1 IPv6 and IPv4 Header Format
IPv6 headers and IPv4 headers are not interoperable. A host or router must use an
implementation of both IPv4 and IPv6 in order to process both header formats.
1.1.5 Flow Labeling Capability
IPv6 defines the concept of a "flow" which identifies a packet as part of a ongoing stream data.
Flow labeling allows routers to identify and provide special handling for packets belonging to a flow,
it ensures better QOS control and provides better support for real-time traffic such as
videoconference. Using a flow label, a router can know which end-to-end flow a packet belongs to,
and then find out the packets that belong to real-time traffic. The flow label field is in the IPv6
header, so support for QOS can be achieved even when the packet payload is encrypted through
IPSec.
1.1.6 Security
The IPv4 specification does not explicitly include any security. The IPv6 basic specification
4includes security, so support for IPSec is an IPv6 protocol suite requirement. Extensions to support
security options, authentication, data integrity, and data confidentiality are built into IPv6. Those
extension headers related to security include packet encryption (Encapsulated Security Payload), and
source authentication (Authentication Header).
1.2 IPv6 Addressing
As in IPv4, IPv6 addresses are assigned to interfaces, not computer hosts. In IPv6, one interface
can have multiple addresses. Renumbering in IPv6 is designed to happen, so renumbering to IPv6 is
much easier than to IPv4.
IPv6 addresses can be divided into three types: unicast IPv6 addresses, multicast IPv6 addresses
and anycast IPv6 addresses. A unicast address is for a single interface, and some special addresses
are also assigned out of the unicast address space. A multicast address is for a set of interfaces that
are on the same physical medium. When a packet is sent to a multicast address, the packet is sent to
all of the interfaces associated with the multicast address. An anycast address is for a set of interfaces
on different physical mediums. A packet sent to an anycast address is only received by one of the
[4]
interfaces associated with this address (namely the nearest interface) .
IPv6 unicast and multicast addresses support scope. There are several types of scope for IPv6
unicast addresses: global scope addresses, link-local addresses and site-local addresses. IPv6
multicast addresses also support many different types of scope, including node scope, link scope, site
scope, organization scope, and global scope. Currently, there are no broadcast addresses in IPv6. All
types of IPv4 broadcast addressing are replaced in IPv6 by using multicast addresses.
1.2.1 IPv6 Address Allocation and Representation
Similar to the way in which IPv4 address space is divided, the IPv6 address space is divided
based on the value of high order bits. The specific type of an IPv6 address is also defined based on the
value of high order bits. The variable-length high order bits and their fixed values are known as a
Format Prefix (FP). Table 1 shows the current allocation of the IPv6 address space according to
[9][10]
Format Prefix .
5Allocation FP & Size FP range in Hex
Reserved 0000 0000 (1/256) 0000-00FF
Unassigned 0000 0001 (1/256) 0100-01FF
Reserved for NSAP allocation 0000 001 (1/128) 0200-03FF
Unassigned 0000 010 (1/128) 0400-05FF
Unassigned 0000 011 (1/128) 0600-07FF
Unassigned 0000 1 (1/32) 0800-0FFF
Unassigned 0001 (1/16) 1000-1FFF
Aggregatable global unicast addresses 001 (1/8) 2000-3FFF
Unassigned 010 (1/8)
Unassigned 011 (1/8)
4000-DFFF
Unassigned 100 (1/8)
Unassigned 101 (1/8)
Unassigned 110 (1/8)
Unassigned 1110 (1/16) E000-EFFF
Unassigned 1111 0 (1/32) F000-F7FF
Unassigned 1111 10 (1/64) F800-FBFF
Unassigned 1111 110 (1/128) FC00-FDFF
Unassigned 1111 1110 0 (1/512) FE00-FE7F
Link-local unicast addresses 1111 1110 10 (1/1024) FE80-FEBF
Site-local unicast addresses 1111 1110 11 (1/1024) FEC0-FEFF
Multicast addresses 1111 1111 (1/256) FF00-FFFF

Table 1 Current Allocation of the IPv6 Address Space
This allocation supports the direct allocation of different scope aggregation addresses, multicast
addresses. More address space (85%) is unassigned. In the future, this space can be used for
expansion of existing address types, or address types for new purposes.
IPv4 addresses are divided along 8-bit boundaries and are represented in dotted-decimal format.
While in IPv6, the 128-bit address is divided along 16-bit boundaries and each 16-bit block is
converted to a 4-digit hexadecimal number and separated by colons. The leading zeros within each
16-bit block are optional and can be removed. The following IPv6 address in binary form
0010000111011010 0000000011010011 0000000000000000 0010111100111011
0000001010101010 0000000011111111 1111111000101000 1001110001011010 can be
represented as 21DA:D3:0:2F3B:2AA:FF:FE28:9C5A. In order to simplify the IPv6 addresses
representation, a contiguous sequence of 16-bit blocks of 0s can be compressed and represented as
double colon ":: . However, zero compression can only be used once in order to avoid ambiguity. For
example, IPv6 localhost address 0:0:0:0:0:0:0:1 can be compressed to ::1, and the multicast address
FF02:0:0:0:0:0:0:2 can be compressed to FF02::2. An alternative form that is sometimes more
convenient when dealing with a mixed environment of IPv4 and IPv6 nodes is x:x:x:x:x:x:d.d.d.d,
6where the ’x’s are the hexadecimal values of the six high-order 16-bit pieces of the address, and the
’d’s are the decimal values of the four low-order 8-bit pieces of the address. This form is used in
situations such as IPv4-mapped IPv6 address or IPv4-compatible IPv6 address and so on. In a URL,
an IPv6 address is enclosed in brackets, for example
http://[2001:468:364:408b:210:4bff:fe9c:5c5]:80/index.html. Parsers have to be modified or
[1][4]
upgraded to recognize IPv6 addresses .
1.2.2 IPv6 Unicast Addresses
IPv6 unicast addresses are aggregatable with contiguous bit-wise masks similar to IPv4
addresses under CIDR (classless Interdomain Routing). There are several forms of unicast address
assignment in IPv6, and additional address types can be defined in the future.
• IPv6 Special Unicast Addresses
There are some special Unicast Addresses assigned. Unspecified address 0:0:0:0:0:0:0:0 and
Special address Representation Comments
Localhost address ::1 To identify the interface itself, equivalent to loopback
address 127.0.0.1 in IPv4
Unspecified :: Equivalent to the IPv4 unspecified address 0.0.0.0. It is
address used as a placeholder when no address is available. For
example used as source address in initial DHCP request
and Duplicate address detection. It can t be assigned to
an interface or used as a destination address.
IPv4-mapped IPv6 ::ffff:a.b.c.d/96 a.b.c.d stands for the IPv4 address. It is used to represent
address an IPv4-only node to an IPv6 node. It is used only for
internal representation. The IPv4-mapped address is
never used as a source or destination address of an IPv6
[1]
packet.
IPv4-compatible ::a.b.c.d/96 a.b.c.d stands for the IPv4 address. It is used in
address automatic tunneling by IPv6/IPv4 nodes that want to
transfer IPv6 packets over IPv4 routing infrastructure.
6to4 address 2002:a.b.c.d/48 a.b.c.d stands for the IPv4 address, it is used for
tunneling between two nodes running both IPv4 and
IPv6 over an IPv4 routing infrastructure
Table 2 Special IPv6 Addresses
loopback address ::1 are assigned out of the 0000 0000 address space. Special IPv6 addresses also
include some addresses defined to aid in the migration from IPv4 to IPv6, such as IPv4-compatible
[1][10]
address, IPv4-mapped address, 6to4 address. Table 2 shows these special IPv6 addresses .

• Aggregatable Global Unicast Addresses
7Aggregatable global unicast addresses, also known as global addresses are identified by the FP
of 001 and are equivalent to public IPv4 addresses. They are globally routable and reachable on the
IPv6 portion of the Internet.
A unicast address is designed to support both the current provider-based aggregation and a new
type of exchange-based aggregation. The combination will allow efficient routing aggregation for
sites that connect directly to providers and for sites that connect to exchanges. Sites will have the
choice to connect to either type of aggregation entity. The fields within the aggregatable global
unicast address also create a three-level structure as shown in Figure 2: public topology, site
[1][4][11]
topology, and interface identifier . The aggregatable global unicast address structure is also
shown in Figure 2. The fields in the aggregatable global unicast address are:
13 bits 8 bits 24 bits 64 bits
3 bits
16 bits
FP TLA ID RES NLA ID SLA ID Interface ID
Site
Public Topology Interface Identifier
Topology

Figure 2 IPv6 Aggregatable Global Unicast Address Structure
FP: Format Prefix (for aggregatable global unicast addresses is 001)
TLA ID: Top-Level Aggregation Identifier, size of the field is 13 bits,
RES: Reserved for future use, size of the field is 8 bits,
NLA ID: Next-Level Aggregation Identifier, size of the field is 24 bits,
SLA ID: Site-Level Aggregation Identifier, size of the field is 16 bits,
Interface ID: Interface Identifier, size of the field is 64 bits.
TLA ID The Top-Level Aggregation Identifier is the top level in the routing hierarchy.
Default-free routers must have a routing table entry for every active TLA, and will probably have
additional entries providing routing information for the TLA ID in which they are located. A 13-bit
field TLA ID allows up to 8,192 different TLA IDs. The routing topology at all levels is designed to
minimize the number of additional entries fed into the default free routing tables.
8Additional TLA ID’s may be added by either growing the TLA field to the right into the
reserved field or by using this format for additional format prefixes.
RES The Reserved field is 8 bits reserved for future use in expanding the size of either the
TLA ID field or the NLA ID field. At this time, it must be set to zero.
NLA ID - The Next-Level Aggregation Identifier field is used by organizations assigned a TLA
ID to create an addressing hierarchy and to identify sites. Each organization assigned a TLA ID
receives 24 bits of NLA ID space. The NLA ID allows an ISP to create multiple levels of addressing
hierarchy within a network to both organize addressing and routing for downstream ISPs and identify
sites. The structure of the ISPs network is invisible to the default-free routers. For example, the
organization can assign the top part of the NLA ID in a manner to create an addressing hierarchy
appropriate to its network. It can use the remainder of the bits in the field to identify sites it wishes to
serve. This NLA ID space allows each organization to provide service to approximately as many
organizations as the current IPv4 Internet can support total networks. The combination of the 001 FP,
the TLA ID, and the NLA ID form a 48-bit prefix that is assigned to an organization’s site that is
connecting to the IPv6 portion of the Internet.
SLA ID - The Site-Level Aggregation Identifier field is used by an individual organization to
create its own local addressing hierarchy and to identify subnets within its site. This is analogous to
subnets in IPv4 except that each organization has a much greater number of subnets. The
organization can use these 16-bit SLA ID within its site to create 65,536 subnets or multiple levels of
addressing hierarchy and an efficient routing infrastructure. The structure of the customers network
is not visible to the ISP. Organizations may choose to either route their SLA ID "flat" (no more
logical relationship between the SLA identifiers and results in larger routing tables), or to create a
two or more level hierarchy (that results in smaller routing tables) in the SLA ID field.
Interface ID Interface ID is used to identify interfaces on a link or a specific subnet. They are
required to be unique on that subnet. They may also be unique over a broader scope. Interface IDs
used in the aggregatable global unicast address format are required to be 64-bit long and to be
constructed in IEEE EUI-64 format. In many cases an interfaces identifier will be the same or be
based on the interface’s link-layer address.
9• Local-Use IPv6 Unicast Addresses
There are two types of local-use unicast addresses defined. They are link-local addresses and
site-local addresses.
Link-local addresses are used for addressing on a single link for purposes such as auto-address
configuration, neighbor discovery when no routers are present. They are identified by the FP of 1111
1110 10. On a single link IPv6 network with no router, link-local addresses are used to communicate
between hosts on the same link. The scope of a link-local address is the local link. A link-local
address is required for neighbor discovery processes and is always automatically configured, even in
the absence of all other unicast addresses. The prefix for link-local addresses is always FE80::/64. An
IPv6 router must not forward any packets with link-local source or destination addresses beyond the
link.
Site-local addresses are used for addressing inside of a site without the need for a global prefix.
They are identified by the FP of 1111 1110 11. The scope of a site-local address is within the site.
Site-local addresses are configured either through stateless or stateful address configuration
processes. Site-local addresses have the format shown in figure 3:
16 bits
64 bits
38 bits
10 bits
1111 1110 11 0000 000 Subnet ID Interface ID

Figure 3 The Site-local Address Format
The first 48 bits are always fixed for site-local addresses, beginning with FEC0::/48. And they
share the same structure with the aggregatable global unicast address beyond the first 48 bits of the
address. So a subnetted routing infrastructure can be created and used for both site-local and
aggregatable global unicast addresses.
1.2.3 Multicast IPv6 Addresses
An IPv6 multicast address is an identifier for a group of nodes. A node may belong to any
number of multicast groups. IPv6 multicast addresses have the FP of 1111 1111, so it always begins
with FF . Multicast addresses cannot be used as source addresses or as intermediate destinations in
10a Routing header. Multicast addresses have the format shown in Figure 4. The fields in the multicast
address are FP (which is 1111 1111), Flags, Scope, and Group ID.
112 bits
8 bits 4 bits 4 bits
1111 1111 Flags Scope Group ID
Figure 4 The IPv6 Multicast Address
Flags the field of Flags indicates flags set on the multicast address. The size of this field is 4
bits. Currently, the only flag defined is the fourth bit: Transient (T) flag. The high-order 3 flags are
reserved, and must be initialized to 0. When the T flag is set to 0, it indicates that the multicast
address is a permanently assigned (well-known) multicast address allocated by the Internet Assigned
Numbers Authority (IANA). When set to 1, it indicates that the multicast address is a transient
(non-permanently-assigned) multicast address.
Scope the field of scope is also 4 bits in size. The multicast scope value is used to limit the
scope of the multicast group. In addition to information provided by multicast routing protocols,
routers use the multicast scope to determine whether multicast traffic can be forwarded.
Table 3 lists the values for the Scope field defined in [10].
Value Scope
0 Reserved
1 Node-local scope
2 Link-local scope
5 Site-local scope
8 Organization-local scope
E Global scope
F Reserved
3,4,6,7,9,A,B,C,D Unassigned
Table 3 Defined Values for the Scope Field
Multicast addresses from FF01:: through FF0F:: are reserved, well-known addresses. For
example, traffic with the multicast address of FF02::2 has a link-local scope. An IPv6 router never
forwards this traffic beyond the local link.
Group ID - Identifies the multicast group, either permanent or transient. It is unique within the
scope. The size of this field is 112 bits. The meaning of a permanently assigned group IDs is
independent of the scope. For example: FF01:0:0:0:0:0:0:101 means all NTP servers on the same
11node as the sender. FF02:0:0:0:0:0:0:101 means all the NTP servers on the same link as the sender.
FF05:0:0:0:0:0:0:101 means all the NTP servers at the same site as the sender.
Different from permanently assigned group IDs, transient group IDs are only relevant to a
specific scope and are meaningful only within the given scope. For example, a group identified by
the non-permanent, site-local multicast address FF15:0:0:0:0:0:0:101 at one site has no relationship
to a group using the same address at a different site, nor to a non-permanent group using the same
group ID with different scope, nor to a permanent group with the same group ID.
Multicast addresses must not be used as source addresses in IPv6 packets or appear in any
routing header.
There are several useful multicast addresses. For example, To identify all nodes for the
node-local and link-local scopes, the following multicast addresses are defined: FF01::1 (node-local
scope all-nodes multicast address) and FF02::1 (link-local scope all-nodes multicast address). To
identify all routers for the node-local, link-local, and site-local scopes, the following multicast
addresses are defined: FF01::2 (node-local scope all-routers multicast address), FF02::2 (link-local
scope all-routers multicast address), and FF05::2 (site-local scope all-routers multicast address).
1.2.4 Anycast IPv6 Addresses
An IPv6 anycast address is assigned to more than one interface (typically belonging to different
nodes). Packets addressed to an anycast address are forwarded by the routing infrastructure to the
nearest interface to which the anycast address is assigned. Anycast addresses are allocated from the
unicast address space, using any of the defined unicast address formats .In order to facilitate delivery,
the routing infrastructure must be aware of the interfaces assigned anycast addresses and their
distance in terms of routing metrics. There is little experience with widespread, arbitrary use of
Internet anycast addresses. At present, anycast addresses are only used as destination addresses and
are only assigned to routers.
The subnet-router anycast address is predefined and required. It is created from the subnet
prefix for a given interface. To construct the subnet-router anycast address, the bits in the subnet
prefix are fixed at their appropriate values and the remaining bits are set to 0. Figure 5 shows the
12[1][10]
format of the subnet-router anycast address .
n bits 128-n bits
Subnet Prefix 000 000
Figure 5 The Subnet-Router Anycast Address
All router interfaces attached to a subnet are assigned the subnet-router anycast address for that
subnet. The subnet-router anycast address is used for communication with one of multiple routers
attached to a remote subnet.
1.2.5 A Node s IPv6 Addresses
An IPv4 host with a single network adapter typically has a single IPv4 address assigned to that
adapter. An IPv6 host, however, usually has multiple IPv6 addresses - even with a single interface. A
[9][10]
typical IPv6 host is required to recognize the following addresses as self-identification.
• A link-local Address for each interface
• Assigned unicast addresses (which could be a site-local address and one or multiple aggregatable
global unicast addresses) for each interface
• The loopback address (::1) for the loopback interface
• All-node multicast addresses
• Solicted-node multicast address for each unicast address on each interface
• Multicast addresses of all other groups to which the host belongs
Typical IPv6 hosts are logically multihomed because they have at least two addresses with
which they can receive packets-- a link-local address for local link traffic and a routable site-local or
aggregatable address.
As a router, it is required to recognize all addresses that a host is required to recognize. In
addition, an IPv6 router also must be able to recognize the following addresses to identify itself.
• The subnet-router anycast addresses for the interfaces it is configured to act as a router on.
• All other anycast addresses with which the router has been configured.
13• All-routers multicast addresses
• Multicast addresses of all other groups to which the router belongs.
1.3 Address Autoconfiguration
One of most useful features of IPv6 is its ability to configure itself even without the use of a
stateful protocol such as DHCP server as in IPv4. In IPv6, equipment newly added to a network can
automatically configuring its network addresses. Any IPv6 host can obtain its link-local, site-local
and global addresses via stateless address with no manual configuration of hosts, minimal (if any)
configuration of routers, and no need for additional servers. IPv6 allows a host to generate its own
addresses using a combination of locally available information and information advertised by routers
[1][12]
.
IPv6 also supports stateful address autoconfiguration mechanism. The above-mentioned
stateless address autoconfiguration approach is used when a site is not particularly concerned with
the exact addresses the hosts use, so long as they are unique and properly routable. The stateful
approach is used when a site requires tighter control over exact address assignments. In IPv6, Both
stateful and stateless address autoconfiguration may be used simultaneously.
1.3.1 Stateless Address Autoconfiguration
In stateless address autoconfiguration, nodes (both hosts and routers) begin the process by
generating a link-local address for the interface. A link-local address is formed by appending the
interface’s identifier (Interface ID) to the well-known link-local prefix (FE80::/64). However, before
the link-local address can be assigned to an interface and used, a node must attempt to verify that this
"tentative" address is not already in use by another node on the same link. Once a node knows that its
tentative link-local address is unique, it assigns it to the interface, and now this node has IP-level
connectivity with neighboring nodes with the newly assigned link-local address. Then for an Ipv6
host, the next phase of stateless address autoconfiguration involves obtaining a router advertisement
or determining that no routers are present. If there are no routers available, the host has to use other
mechanism such as stateful autoconfiguration to obtain other IPv6 addresses and configuration
14parameters. If routers are present, routers will send Advertisements contains prefix Information
options that contain information used by stateless address autoconfiguration to generate site-local
and global IPv6 addresses, and other configure parameters. For safety, all addresses must be tested
[12]
for uniqueness prior to their assignment to an interface .
1.3.2 Stateful Address Autoconfiguration
Stateful configuration is based on the use of a stateful address configuration protocol to obtain
addresses and other configuration options. It offers the capability of automatic allocation of reusable
network addresses and additional configuration flexibility. A host will use a stateful address
configuration protocol when there are no routers present on the local link or when it receives Router
Advertisement Messages without prefix options. A new protocol, Dynamic Host Configuration
Protocol for IPv6 (DHCPv6) is one way to perform stateful autoconfiguration. In some documents,
stateful autoconfiguration means the configuration that the IPv6 addresses and other configuration
parameters are obtained through DHCPv6 server. DHCPv6 is the IPv6 equivalent of DHCP in IPv4.
It is used to pass out addressing and service information in the same way that DHCP is used in IPv4.
This is stateful b ecause the DHCP server and the client must both maintain state information to
keep addresses from conflicting, to handle leases, and to renew addresses over time. DHCPv6 is not
yet standardized, although there are several drafts available, which are expected to move to proposed
[13]
standard status shortly .
One of the advantages of DHCPv6 is that it does more than handle IP address allocation. For
example, DHCPv6 can also be used to let end systems discover their DNS servers. Thus, large
networks will likely use a combination of stateless autoconfiguration to discover their address, and
DHCPv6 servers to pass out other network information, such as DNS servers, with a third
mechanism for the system to register its name in the DNS.
152 TRANSITION FROM IPV4 TO IPV6
Because of the huge size and coverage of the Internet, it is expected that the transition from IPv4
to IPv6 will need a long time. It is impossible to expect a fast, centrally coordinated cutover. So it is
very import to maintaining compatibility with IPv4 while deploying IPv6 and transitioning the
Internet to IPv6. The key to a successful IPv6 transition is how to maintain compatibility of IPv6
equipment with the large installed base of IPv4 hosts and routers. The coexistence of both IPv4 and
IPv6 must be arranged in a practical and simple way.
For smooth, stepwise and independent transition, a set of techniques has been specified. They
implement mechanisms for the true internetworking, coexistence, easy address mapping and name
service migration. To allow seamless interoperation, all hosts running IPv6 must still be able to
communicate with the IPv4 hosts. The IETF specifications for IPv6 contain a lot of information
[15][24][25]
concerning the transition issues. Lots of transition mechanisms are proposed, most of them
are related with
• Communication between IPv4 and IPv6 nodes
• Connecting IPv6 islands isolated in the IPv4 world.
The basic transition mechanisms for IPv6 hosts and routers including Dual IP Layer Operation
and IPv6 over IPv4 Tunneling. Dual stack nodes will be able to interoperate directly with both IPv4
and IPv6 nodes. Tunnel mechanisms provide ways about how IPv6 islands can communicate with
each other over the cloud of IPv4 infrastructure.
2.1 Dual IP Layer Operation
In order that IPv6 and IPv4 nodes can communicate with each other, the most straightforward
way for IPv6 nodes is to provide a complete IPv4 implementation. Dual IP layer operation provides
[20]
complete support for both IPv4 and IPv6 in hosts and routers, as shown in figure 6 . By providing
a complete IPv4 implementation, IPv6 nodes can remain compatible with IPv4-only nodes. This is
the dual IP layer technique, and nodes that implements both IPv4 and IPv6 are called dual nodes
(IPv6/IPv4 nodes). The dual IP layer technique may or may not be used in conjunction with the
16tunneling techniques.

Figure 6 A Dual IP Layer Architecture
There are some variations to the dual IP layer operation mechanism. The IPv6 protocol for the
Windows .NET Server 2003 family is such an example. The IPv6 protocol driver, Tcpip6.sys, also
contains a separate implementation of TCP and UDP and is sometimes referred to as a dual-stack
implementation. Figure 7 shows the dual stack architecture of the IPv6 protocol for the Windows
[20]
.NET Server 2003 family .

Figure 7 The Dual Stack Architecture for the Windows .NET Server 2003 Family
In order to support bother protocols, IPv6/IPv4 nodes may be configured with both IPv4 and
IPv6 addresses. Although the two addresses may be related to each other, this is not required. And
17those IPv6/IPv4 nodes can acquire their IPv4 addresses by using IPv4 mechanisms such as DHCP, or
acquire their IPv6 addresses by IPv6 protocol mechanisms such as stateless address
autoconfiguration or DHCP v6. For Dual Nodes, the Domain Naming System (DNS) must provide a
resolver library capable of dealing with the IPv4 A re cords as well as new records type for IPv6. So
the Domain Name System will be an important component during the transition process to support
both IPv4 and IPv6.
Apparently, the Dual IP approach brings about some inconvenience. It has some drawbacks and
may cause some problem. For example, Dual IP has the need to maintain a multi-protocols, it may
introduces more instability and workload to an administrator. In addition, each Dual IP host needs an
IPv4 address, so the use of this mechanism will not be possible if the address space of IPv4 is
exhausted to the point that new addresses can no longer be assigned. Several solutions are proposed
[23]
to relieve these problems, for example, DSTM and some translation type transition mechanisms
[21] [18] [22]
NAT-PT , SOCKS , and BIS and so on.
• DSTM (the Dual Stack Transition Mechanism): DSTM proposes to use the dual stack IP
approach. With DSTM, IPv4 addresses are assigned dynamically only when needed. So the use
of IPv4 global addresses is reduced. DSTM is targeted to help the interoperation of IPv6 newly
deployed networks with existing IPv4 networks. Figure 8 is the architecture shows how DSTM
[26]
works .


Figure 8 DSTM Architecture
As shown in figure 8, there are 3 different types of device, an IPv6-only host, a DSTM server
and a DSTM gateway. DSTM server administrates the IPv4 address pool. Whenever a host in the
IPv6 domain needs to communicate with an IPv4 host, it first asks the DSTM server for a temporary
18IPv4 address, and the DSTM server then will reserve one for the IPv6 host. And also tell the IPv6
host information about the DSTM gateway. Following this message exchange, IPv6 host can
configures its IPv4 stack with the allocated address, and from now on, all IPv4 packets from the host
are tunneled to the DSTM gateway.
[44]
• NAT-PT (Network Address Translator Protocol Translator): As shown in figure 9 , a
NAT-PT device resides at the borders between an IPv6 and IPv4 network. It makes address and
protocol translation at the IP level. NAT-PT allows native IPv6 hosts to communicate with
native IPv4 hosts and vice versa. Similar to DSTM, NAT-PT allocates an IPv4 pool addresses to
identify the IPv6 hosts and handles the mapping of the IPv4 pool address to the IPv6 host. In
addition, header translation is also performed by NAT-PT.
Figure 9 NAT-PT Architecture
In NAT-PT, the communication between IPv6 and IPv4 relays on a NAT box that translates
between IPv4 and IPv6. So NAT-PT will cause performance degradation, and the NAT-PT device is
a single point of failure. NAT-PTs are just a temporary solution. The NAT-PT box may be removed
after the transition has been completed.
• SOCKS: SOCKS: provides a way for a gateway named SOCKS Server t o act as a relay of TCP
and UDP connections between two end hosts. A small or medium sized IPv4 network can
provide access to an external IPv6 network using a SOCKS Server in a dual stack machine which
can have access to both networks. An IPv4 host connects to an IPv6 host by sends a request to the
19SOCKS Server using the Full Qualified Domain Name (FQDN) of the IPv6 host. The SOCKS
Server resolves the FWDN to an IPv6 address and sends a fake IPv4 address back to IPv4 host.
So two connections are established: one connection between the IPv4 host with SOCKS Server,
and the other connection between the SOCKS Server and the IPv6 host. However, all these
[18]
processes are invisible to applications, since they make socket calls with the usual socket API .
• BIS (Bump in the Stack): BIS allows the hosts to communicate with other IPv6 hosts using
existing IPv4 applications. It is highly desirable since the low availability of existing IPv6
[44]
applications. As shown in Figure 10 , BIS inserts modules into the hosts. The modules snoop
the data flowing between a TCP/IPv4 module and network card driver modules and translate the
IPv4 into IPv6 and vice versa, to act as translators, like NAT-PT implemented within the host.
When they communicate with the other IPv6 hosts, pooled IPv4 addresses are assigned to the
IPv6 hosts internally, but the IPv4 addresses never flow out from them. Moreover, since the
assignment is automatically carried out using DNS protocol, users do not need to know whether
target hosts are IPv6 ones or not. Through BIS, existing IPv4 applications can communicate with
IPv6 hosts (looking like they were dual stack hosts for both IPv4 and IPv6). BIS expands the
territory of dual stack hosts. BIS can co-exist with other translators because their roles are
different.

Figure 10 Using IPv4 Applications over an IPv6 network by BIS
2.2 IPv6 over IPv4 Tunneling Mechanisms
The mechanisms described here are designed to enable IPv6 communication between IPv6
20islands isolated in the IPv4 world. All of these rely on tunnels. A tunnel is a link between two IPv4
end-points that must be configured by specifying the IPv6 destinations for which the packets are to
be encapsulated, and the remote IPv4 end-point to which they must be sent.
The IPv6 routing infrastructure will be built up over time. While the IPv6 infrastructure is being
deployed, the existing IPv4 routing infrastructure can be used to carry IPv6 traffic. IPv6 nodes (or
networks) that are separated by IPv4 infrastructures can build a virtual link by configuring a tunnel.
Tunneling provides a way to make use of IPv4 routing infrastructure to carry IPv6 traffic. IPv6/IPv4
dual nodes can tunnel datagrams over regions of IPv4 routing topology by encapsulating IPv6
packets within IPv4 packets.
Tunneling can be used in a variety of ways: Router-to-Router, Host-to-Router, Host-to-Host,
and Router-to-Host. The first two tunneling methods listed above are called "configured tunneling,
the endpoint of this type of tunnel is an intermediary router. When tunneling to a router, the endpoint
of the tunnel is different from the destination of the packet being tunneled. Since the addresses in the
IPv6 packet being tunneled cannot provide the IPv4 address of the tunnel endpoint, the tunnel
endpoint address is determined from configuration information on the node performing the
tunneling. The last two tunneling methods are called "automatic tunneling". In automatic tunneling,
the IPv6 packet is tunneled all the way to its final destination. In this case, the destination address of
both the IPv6 packet and the encapsulating IPv4 header identify the same node. This fact can be
exploited by encoding information in the IPv6 destination address that will allow the encapsulating
[15]
node to determine the IPv4 address of the tunnel endpoint automatically . Other tunneling
mechanisms including 6over4, 6to4 and tunnel broker. They are described in more detail in the
following paragraphs.
2.2.1 Configured Tunneling
In configured tunneling, the tunnel endpoint address is determined from configuration
information in the encapsulating node. For each tunnel, the encapsulating node must store the tunnel
endpoint address. When an IPv6 packet is transmitted over a tunnel, the tunnel endpoint address
configured for that tunnel is used as the destination address for the encapsulating IPv4 header. The
21determination of which packets to tunnel is usually made by routing information on the
encapsulating node. This is usually done via a routing table, which directs packets based on their
destination address using the prefix mask and match technique. In the simplest case, the network
administrator configures tunnels manually by agreement with the administrator of the network where
the remote IPv4 end-point resides. Most of the interconnections between IPv6 networks used in the
worldwide www.6bone.com are initially set up through manually configured tunneling.
However, having to deal with large numbers of tunnels is necessary for interconnections
between IPv6 and IPv4. Configured tunneling will cause an enormous administrative workload for
network managers and makes it necessary to deploy automatic tunneling configuration mechanisms.
A number of other tunneling mechanisms also have been proposed, such as 6over4, 6to4, tunnel
broker, and so on.
2.2.2 Automatic Tunneling
IPv6/IPv4 nodes that perform automatic tunneling are assigned an IPv4-compatible address.
IPv4-compatible addresses are assigned exclusively to nodes that support automatic tunneling. A
node should be configured with an IPv4-compatible address only if it is prepared to accept IPv6
packets destined to that address encapsulated in IPv4 packets destined to the embedded IPv4 address.
In automatic tunneling, the tunnel endpoint address is determined from the packet being
tunneled. If the destination IPv6 address is IPv4-compatible, then the packet can be sent via
automatic tunneling. If the destination is IPv6-native, the packet cannot be sent via automatic
tunneling.
A routing table entry can be used to direct automatic tunneling. An implementation can have a
special static routing table entry for the prefix 0:0:0:0:0:0/96. (That is, a route to the all-zeros prefix
with a 96-bit mask.) Packets that match this prefix are sent to a pseudo-interface driver that performs
automatic tunneling. Since all IPv4-compatible IPv6 addresses will match this prefix, all packets to

those destinations will be auto-tunneled.
Once it is delivered to the automatic tunneling module, the IPv6 packet is encapsulated within
an IPv4 header. The destination IPv4 address is put as low-order 32-bits of IPv6 destination address
22and the source IPv4 address is the IPv4 address of interface the packet is sent via. The automatic
tunneling module always sends packets in this encapsulated form, even if the destination is on an
attached datalink.
This mechanism is proposed in [15], it was not widely accepted, as the fact that it calls for
importing IPv4 routing tables into the IPv6 routing infrastructure effectively precludes optimal
hierarchical routing, and it can be used only between individual hosts.
2.2.3 6to4
6to4 is an optional method of connecting IPv6 domains via IPv4 clouds. The objective of this
method is to allow isolated IPv6 sites (or hosts), which are attached to an IPv4 network which has no
[45]
native IPv6 support, to communicate with other IPv6 domains. As shown in Figure 11 , the router
on the border of the IPv6 domain creates a tunnel to the other domain, and the IPv4 endpoints of the
tunnel are identified in the prefix of the IPv6 domain. 6to4 provides a mechanism to construct IPv6
addresses automatically from IPv4 addresses. This technique makes it extremely easy to extract the
embedded IPv4 address. The whole IPv6 packet can be delivered over an IPv4 network encapsulated
in an IPv4 packet. Thus, no configured tunnels are needed to send packets between 6to4 capable IPv6
sites situated anywhere in IPv4 Internet. In this way IPv6 gains considerable independence of the
underlying wide area network and can step over many hops of IPv4 subnets. Applying the rules
defined in [25] a site may migrate from IPv4 to 6to4 and then to native IPv6, without having to cease
any of the previous mechanisms/protocol. We may stop the use of IPv4 only when there is no more
need for the addresses.
23Figure 11 6to4 Tunneling Mechanism
2.2.4 6over4
[28]
The 6over4 mechanism allows isolated IPv6 hosts, located on a physical link, with no
directly connected IPv6 router, to become fully functional IPv6 hosts. 6over4 uses an IPv4 domain
that supports IPv4 multicast as a virtual local link.
6over4 provides a solution to scenarios where a number of IPv6 hosts are scattered around in an
IPv4 domain, and none of them have a direct IPv6 connectivity. The hosts themselves perform the
tunneling. By providing a router with a native IPv6 connection, which also understands 6over4, the
6over4 hosts can also connect to native IPv6 hosts, whereby IPv6 packets can be automatically
encapsulated over an IPv4 network.
6over4 relies on the existence of an underlying IPv4 domain that supports multicast, this
solution poses scalability problems, and is hampered by the fact that the IP multicast service is not
yet generally available on the Internet. For these reasons, it is an effective solution only for corporate
or campus networks which support IP multicast

2.2.5 IPv6 Tunnel Broker
This approach involves using dedicated servers which automatically configure tunnels on
behalf of users. It is a mechanism aims to allow people to try out IPv6 without any need of special or
[27]
dedicated routing infrastructure .
Tunnel Broker is basically a mechanism to obtain configured tunnels in an automatic way,
[45]
sometimes is called semi-automatic tunnel. As shown in Figure 12 , the main idea is that, on a
24request, the tunnel broker assigns an IPv6 address to the isolated host from its address space, updates
the DNS automatically, sends a configuration order to the tunnel server, and sends back a script to
requestor. The tunnel server establish a tunnel from the IPv6-only network to the requesting host, and
[18]
running the script on the requesting hosts establish the tunnel in the reverse way .


Figure 12 Tunnel Broker Model
This technique is particularly suitable for connections between small users (i.e., the traditional
users of dial-up Internet connectivity) and an IPv6 Service Provider.
2.2.6 Summary of Transition Mechanisms
Lots of transition mechanisms are proposed, table 4 summarizes and compares the different
[18]
available transition mechanisms .
25Mechanism Implication on application IPv4 address requirements Hosts/Site Scalability Comments
type mechanism
Dual stack None Permanent or Pool of addresses Site/Host None Very simple to set up, available to every node supporting
allocated by a DHCP server. IPv6 stack.
DSTM None Pool of addresses required for Site/Host Limitation of the number of DTI end Allows hosts to run end-to-end IPv4 application within an
AIIH server. point supported by the DSTM router. IPv6 only network. Allows IPv4/IPv6 of IPv6-only host
application to communicate with either IPv4 or IPv6 end
point without need of specific ALG.
6to4 Applications need to be ported to IPv4 address of border routers. Site/Host Limitation of the number of tunnels Allows to automatically joining IPv6 network separated
interface with the Ipv6 stack. supported by the 6to4 router. by an IPv4 only network.
Each IPv6 network needs to have a 6to4 border router.
Tunnel Broker Applications need to be ported to One for the dual stack host. At Site/Host Limitation of the number tunnel Allows an isolated IPv4 host within an IPv4 only
interface with the Ipv6 stack. least one for the tunnel broker supported by the tunnel server, network, to reach an IPv6 wide network.
implementation. limitation of the number of IPv6
addresses available to the broker
server.
6over4 Applications need to be ported to One per host Host Availability of IPv4 multicast. Allows to automatically joining IPv6 network separated
interface with the Ipv6 stack. by an IPv4 only network. The IPv4 network needs to
Limitation on the number of tunnels
support multicast. Each IPv6 network needs to have a
supported by the 6over4 router.
6over4-border router.
NAT-PT Applications including IP Pool of IPv4 addresses needed. Site Availability of ALGs for specific Needs specific ALG for DNS, FTP, IPSEC,
addresses in the packet payload application.
Mechanism located in a single point.
need the availability of a
Limitation on the number of
dedicated ALG into the NAT-PT
simultaneous translations.
router.
SIIT Not compatible with applications Pool of addresses needed. SIIT Site None Allows IPv4/IPv6 applications on an IPv6-only host to
that includes IP addresses in the does not define how these are communicate with an IPv4-only host.
packet payload. allocated.
BIS None (A Pool of private IPv4 Host Availability of ALGs for specific Allows IPv4 application to communicate with IPv6-only
addresses are needed) application. hosts.
SOCKS64 The Socks Server must have an Site Limitation on the number of Allows IPv4 applications to communicate with
IPv4 address concurrent translations. IPv6-only hosts and vice verse.
Table 4 Summary and Comparison of different transition mechanisms
262.3 DNS and IPv6
A Domain Name System (DNS) infrastructure is needed for successful transition from IPv4 to
IPv6 and successful coexistence of them, because of the prevalent use of names (rather than
addresses) to refer to network resources. DNS upgrading should be done in the earlier phase during
the transition from IPv4 to IPv6. Upgrading the DNS infrastructure consists of populating the DNS
servers with records to support IPv6 name-to-address and address-to-name resolutions.
2.3.1 Introduction to DNS and DNS Server
The DNS has three major components: the Domain Name Space and Resource Records, Name
[33]
Servers, and Resolvers .
The Domain Name and Resource Records are the hierarchical, distributed tree structured
database. It stores information for mapping Internet host names to IP addresses and vice versa. The
data stored in the DNS is organized as tree and identified by domain names according to
organizational or administrative boundaries. Conceptually, each node and leaf of the domain name
space tree names a set of information. A DNS domain is a branch under the node. For administrative
purposes, the name space is partitioned into areas called zones, each starting at a node and extending
down to the leaf node or to nodes where other zones start. Zone and domain are important concept in
DNS and they are different. A zone is a point of delegation in the DNS tree, and consists of
contiguous portions of the DNS domain tree for which the DNS server has authoritative. A DNS
domain is a branch of the namespace, a domain can be subdivided into several partitions and each
partition can be a zone. A zone can also contain information of multiple domains.
Resolvers are programs that extract information from name servers in response to client
requests. Clients look up information in the DNS by calling a resolver library, which sends queries to
one or more name servers and interprets the responses.
Name Servers are server programs which hold information about the domain tree’s structure and
set information. When it receives DNS query, it attempts to locate the requested information by
retrieving data from its local zones. If this fails, the server can check its cache, communicate with
other DNS servers to resolve the request, or refer the client to another DNS server that might know
27the answer. When queried, DNS servers can provide the requested information, or provide a pointer
to another server that can help resolve the query, or reply with some error message.
We have several types of DNS servers. If a DNS server contains the complete data for a zone, it
is called an authoritative DNS server for this zone. Most zones have more than one authoritative
servers to make the DNS tolerant of server and network failure. An authoritative server can further be
divided into primary master server and slave servers. The primary master server maintained the
master copy of the zone data, it loads the zone contents from some local file which is edited by
humans or perhaps generated mechanically from some other local file which is edited by humans,
and this file is called the master file. Slave servers load the zone contents from another server using a
replication process known as a zone transfer. The data can be transferred directly from the primary
[36]
master or another slave. A slave server may itself act as a master to a subordinate slave server .
Different from authoritative servers, caching DNS servers cant pe rform the name resolution by
themselves. A caching-only server has no zone database, it relies on other name servers to obtain
information. After a cache-only server receives information for a query it caches the information and
can respond to subsequent queries (for the same name) without querying other name servers. This
will shorten the waiting time for the next time significantly, especially if you re on a slow
connection. A caching name server does not necessarily perform the complete name lookup itself.
Instead, it can forward all or some of the queries to another caching name server, which is referred as
a forwarder. You do not need to perform any special configuration on the computer designated as a
forwarder. You must configure the DNS server that needs to forward queries by providing the IP
address of the forwarders.
2.3.2 Resource Record in DNS Zone Files
A domain name identifies a node. Each node has a set of resource information, which may be
empty. The set of resource information associated with a particular name is composed of separate
entries called Resource Records (RRs). The order of RRs in a set is insignificant, but sorting of
multiple RRs is permitted for optimization purpose.
28The components of a Resource Record are: owner name, TTL, type, class, RDATA. The owner
name is the domain name where the RR is found. Type specifies the type of the resource record. TTL
is the time to live of the RR, it describes how long a RR can be cached before it should be expired.
Class identifies a protocol family or instance of a protocol. RDATA shows the type and sometimes
class-dependent data that describes the RR. Figure 13 show the components of a Resource Record
[36]
.

www.auburn.edu. 14400 IN A 131.204.139.60

Owner name Type RDATA
TTL Class

Figure 13 Resource Record Components
There are different types of valid RRs, the often seen ones are types A, CNAME,
DNAME, MX, NS , PTR, SOA, T XT, A6, A AAA as shown in table 5.
A A host address
CNAME Identifies the canonical name of an alias
DNAME For delegation of reverse addresses
MX Identifies a mail exchange for the domain
NS The authoritative name server for the domain
PTR A pointer to another part of the domain name space
SOA Identifies the start of a zone of authority
TXT Text records
AAAA Format for IPv6 address, it is depreciated now.
A6 A new format for IPv6 address

Table 5 Resource Record Type List

Currently, there is only one valid RR class in the DNS, IN, which stands for the Internet system.
RDATA is the type-dependent or class dependent data. Table 6 shows information about
[36]
RDATA for different RR types and classes .
29A For the IN class, a 32 bit IP address.
Maps a domain name to an IPv6 address, with a provision for
A6
indirection for leading "prefix" bits.
CNAME A domain name.
Provides alternate naming to an entire subtree of the domain name
space, rather than to a single node. It causes some suffix of a queried
DNAME
name to be substituted with a name from the DNAME record’s
RDATA.
A 16 bits preference value (lower is better) followed by a host name
MX
willing to act as a mail exchange for the owner domain.
NS A fully qualified domain name.
PTR A fully qualified domain name.
SOA Means start of authority. It including several fields.
Table 6 RDATA for Different Resource Records

2.3.3 DNS to Support IPv6 Addresses Lookup
Resource Record types "AAAA" and "A6" were defined to support IPv6 addresses. For dual IP
operation, DNS must provide resolver libraries capable of dealing with IPv4 "A" records as well as
IPv6 "AAAA" and "A6" records. The "AAAA" record is a parallel to the IPv4 "A" record. While
their use is deprecated; they are useful to support older IPv6 applications. The newer "A6" record is
more flexible than the "AAAA" record, and is therefore more complicated. "AAAA" should not be
added where they are not absolutely necessary. When a query locates an "A6" or "AAAA" record for
IPv6 and "A" record for IPv4, Recognition of a destination host s version will be the responsibility of
the Domain Name Server. DNS has three alternatives when filtering or ordering the query results:
return only IPv6 address, Return only IPv4 address, or return both addresses. Depending upon the
type or types of records, or in which order returned by resolution of a host name, the source host will
[29][30]
create a packet using the appropriate protocol version .
As in the IPv4 address space, the IPv6 address space needs a reverse mapping of IPv6
addresses to DNS names. IPv4 address reverse mapping is provided by the IN-ADDR.ARPA
domain. IP6.INT and IP6.ARPA domains provide reverse mapping of AAAA and A6 type address
respectively.
30IP6.INT is a special root domain defined to map an IPv6 address to a host name. An IPv6
address is represented as a name in the IP6.INT domain by a sequence of nibbles separated by dots
with the suffix ".IP6.INT". The sequence of nibbles is encoded in reverse order. Each nibble is
represented by a hexadecimal digit. For example, the inverse lookup domain name corresponding to
[29]
the address 2001:765:4321:2:3:4:567:89ab would be :
b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.2.3.4.5.6.7.0.1.0.0.2.IP6.INT.

The use of nibble format is deprecated. The more difficult and now official way of handling
IPv6 forward and reverse mapping uses two new record types, A6 and DNAME, and a new domain
IP6.ARPA. Actually, the main reason the AAAA record and the IP6.INT reverse-mapping scheme
were replaced was because they made network renumbering difficult. For example, if an
organization were to change Next-Level Aggregators, it would have to change all the AAAA records
in its zone data files since 24 of the bits of an IPv6 address are an identifier for the NLA. Imagine an
NLA changing TLAs. This would wreak havoc with its customers’ zone data.
To make renumbering easier, A6 records can specify only a part of an IPv6 address, and then
refer to the remainder of the address by a symbolic domain name. This allows zone administrators to
specify only the part of the address under their control. To build an entire address, a resolver or name
server must follow the chain of A6 records from a host’s domain name to the TLA ID. And that chain
may branch if a site network is connected to multiple NLAs or if an NLA is connected to multiple
TLAs.
For example, suppose two different ISP (here means different NLAs) provide service for
lab1.subnet1.ipv6.auburn.edu. The A6 record:
$ORIGIN subnet1.ipv6.auburn.edu.
lab1 IN A6 64 ::0210:4bff:fe10:0d24 subnet1.ipv6.auburn.edu.

specifies the final 64 bits of lab1.subnet1.ipv6.auburn.edu’s IPv6 address (64 is the number of bits of
the prefix not specified in this A6 record) and that the remaining 64 bits can be found by looking up
an A6 record at subnet1.ipv6.auburn.edu.
31subnet1.ipv6.auburn.edu, in turn, specifies the last 16 bits of the 64-bit prefix (the SLA ID) that we
didn’t specify in lab1.ipv6.auburn.edu’s A6 address as well as the domain name of the next A6 record
to look up:
$ORIGIN ipv6.auburn.edu.
subnet1 IN A6 48 0:0:0:1:: nla1.tla1.net.
subnet1 IN A6 48 0:0:0:1:: nla2.tla1.net.

The first 48 bits of the prefix in subnet1.auburn.ipv6.edu’s record-specific data are set to zero,
since they’re not significant here. In fact, these records tell us to look up two A6 records next, one at
nla1.tla1.net and one at nla2.tla1.net. That’s because subnet1 has connections to two NLAs, NLA 1
and NLA 2. In NLA 1’s zone, we’d find:
$ORIGIN tla1.net.
nla1 IN A6 0 2001:468:364:: nla1.tla-1.net.

in NLA 2 s zone, we d find
$ORIGIN tla1.net.
nla2 IN A6 0 2002:468:555:: nla2.tla-1.net.

When lab1.subnet1.ipv6.auburn.edu is looked up, the resolver will find partial A6 records and
will use the additional name to find the remainder of the data. By following this chain of A6 records,
a name server can assemble all 128 bits of lab1.subnet1.ipv6.auburn.edu’s two IPv6 addresses. These
turn out to be:
2001:468:364:1: 0210:4bff:fe10:0d24
2001:468:555:1: 0210:4bff:fe10:0d24
(Wer e connected to two NLAs for redundancy.) Note that if TLA 1 changes its NLA
assignment for NLA 1, it only needs to change the A6 record for nla1.tla1.net in its zone data; the
change "cascades" into all A6 chains that go through NLA 1. This makes the management of
addressing on IPv6 networks very convenient, and makes changing NLAs easy, too.
However, if a name server appears in an NS record and owns one or more A6 records, those A6
records should specify all 128 bits of the IPv6 address. This helps avoid deadlock problems, where a
resolver or name server needs to talk to a remote name server to resolve part of that name server’s
IPv6 address.
32Reverse mapping for A6 in IP6.ARPA domain isn t so simple as IP6.INT, reverse mapping
IPv6 addresses involves DNAME records and bitstring labels.
DNAME records are a little like wildcard CNAME records. Bitstring labels are the other half of
the magic involved in IPv6 reverse mapping. They can be looked as simply as a compact way of
representing a long sequence of binary (i.e., one-bit) labels in a domain name. If you wanted to
permit delegation between any two bits of an IP address, that might compel you to represent each bit
of the address as a label in a domain name. Bitstring labels represent IPv6 address as a shorter
hexadecimal, octal, binary or dotted-octet string. The string is encapsulated between the tokens "\["
and "]" to distinguish it from a traditional label, and begins with one letter that determines the base of
[30][31][32]
the string: b for binary, o for octal, and x for hexadecimal .
Notice that the most significant bit begins the string, as in the text representation of an IPv6
address, but in the opposite order of the labels in the IN-ADDR.ARPR domain.
Bitstring labels can also represent parts of IPv6 addresses, in which case you need to specify the
number of significant bits in the string, separated from the string by a slash.
Together, DNAMEs and bitstring labels are used to match portions of a long domain name that
encodes an IPv6 address and to iteratively change the domain name looked up to a domain name in a
zone under the control of the organization that manages the host with that IPv6 address.
To handle the reverse lookups of lab1.subnet1.ipv6.auburn.edu
In NLA 1 s zone
$ORIGIN \[x200104680364/48].ip6.arpa.
\[x0001/16] IN DNAME ipv6.rev.auburn.edu.

In NLA 2’s zone

$ORIGIN \[x200104680555/48].ip6.arpa.
\[x0001/16] IN DNAME ipv6.rev.auburn.edu.

And in for Auburn only one zone file to handle both these reverse mappings

$ORIGIN ipv6.rev.auburn.edu.
\[x0210:4bff:fe10:0d24/64] IN PTR lab1.subnet1.ipv6.auburn.edu


By using DNAME, we gain the convenience of using a single zone data file for the
33reverse-mapping information, even though each of your hosts has multiple addresses, and of being
able to switch NLAs without changing all of the zone data files.
So the introduction of the new records type A6 and DNAME for IPv6 allows network
renumbering, and help reduce the number of zone files used for reverse mapping. The zone
administrator can extract the appropriate NLA ID or Site ID from addresses. Using a single zone data
file for reverse mapping, even though each host has multiple addresses, one is able to switch NLAs
without changing all of the zone files.
343 IPV6 PROJECT IN AUBURN
3.1 Introduction to IPv6 Project in Auburn
Auburn Universitys Department of Computer Science and Software Engineering and the
Auburn University Office of Information Technology are investigating campus deployment of the
Internet Protocol Version 6 (IPV6) as an Internet 2 IPv6 initiative. AUNET6 is one of the projects to
install, operate, and monitor a pilot IPv6 network on the Auburn University campus. Its goal is to
• Provides experience to understand the integration of IPv4 with IPv6 and immigration issues
associated with the deployment of IPv6 technology
• Support wireless and mobile uses of IPv6
• Supports multicast/anycast communications of IPv6
• Provides services required for successful utilization of the IPv6 protocol, such as voice and video
applications
• Provides a framework for IPSec-IPV6 security studies
IPv6 addresses are provided to the Auburn campus as part of the Universitys Southern
Crossroads(Sox) and Internet 2 memberships. Auburn Universitys IPv6 SoX connection uses a
CISCO 4700 Router. And the initial testing is with a tunnel to SoX. Auburn has been allocated the
IPv6 address prefix 2001:0468:0364::/48, the address 2001:0468:0364:65ff::1/64 is reserved for its
IPv6 connection to SoX.
As to stateless automatic address configuration, the lower 64 bits of Auburns 128- bit address
space are using a host s MAC addresses. This leaves 16 (128 -64 -48 = 16) bits for campus
addressing. The current plan for use of these 16 bits is as follows: New pr oduction Networks will
be given the addresses 2001:0468:0364:0001::/64 to 2001:0468:0364:0fff::/64; New R esearch
Networks will be given the addresses 2001:0468:0364:1000::/64 to 2001:0468:0364:1fff::/64, and
existing IPv4 Subnet will be given addresses 2001:0468:0364:4001::/64 to
2001:0468:0364:4fff::/64, for those existing IPv4 subnets, their prefix 2001:0468:0364:4XXX::
will be assigned as: the three Xs w ill be replaced with the hexadecimal representation of their
35existing subnet number under the old Class C sc heme used on AU Net. For examples, interfaces on
subnet 131.204.27.0 will be given prefix 2001:0468:0364:401B/64, 131.204.139.0 will be
2001:0468:0364:408B::/64 (because 0x01B =27, 0x08B =139), etc.
Alternative assignments are being considered for subnet addresses, with assignments made to
support a variety of organizational semantics, such as hardware (routers, switches, tunnels, modems),
people (faculty, students, administration), buildings, functions (research, education, or
administrative needs, wildcards (for wireless or mobile IP, Audio/Video, Multicast), and so on.
Currently the following tasks of the IPv6 project have been completed.
• An IPv6 Routing Plan for Aunet6
• Aunet6 Campus Static IPv6 Testing
• Client/Server IPv6 Network Programming Tests
• Tunnel Testing to Abilene Internet2
• IPv6 DNS Testing for Aunet6
This project has focused on Domain Name System (DNS) server and some other applications
such as the Apache server setup and configuration to support IPv6. In the next chapter, we will
describe the project and the work in detail.
364 PROJECT REPORT
In order to transit to IPv6, DNS must support 128-bit IPv6 addresses. To setup a test DNS
server, and some other application for IPv6, Http2 was installed and tested. All the work was done on
Linux 7.3 (kernel version 2.4.18-3) box. The DNS package used was BIND9.2.1; the apache server
package used was http2.0.43.
4.1 IPV6 Ready Test
Before one can setup a DNS server for IPV6, one first has to configure the machine, to make it
[35]
ready for IPv6.
Modern operating system distributions already contain IPv6-ready kernels. For Linux systems,
the IPv6 capability is generally compiled as a module. For Linux 7.3 with kernel version 2.4.18-3, it
supports IPv6, but sometimes you have to load the IPv6 module. In order to test whether the running
kernel supports IPv6:
#test –f /proc/net/if_inet6 && echo “IPv6 ready”

If it fails, you have to load the IPv6 module by
#modprobe ipv6

If this is successful, this module should be listed. The following statement will show if
everything is fine.
#lsmod | grep -w ‘ipv6’ && echo “ipv6 loaded”

In order to automatically load the ipv6 module, add an entry to /etc/modules.conf
alias net-pf-10 ipv6

Information about IPv4 and IPv6 address can be checked as follows:
#ifconfig –a

In an example, for my Linux machine, the following addresses were shown:
IPv4 address: 131.204.139.10
global: 2001:468:364:408b:210:4bff:fe9c:5c5/64
link: fe80::210:4bff:fe9c:5c5/10

This is the first step to use IPv6 for network communications. In addition, some utility programs
are also valuable. The programs including ping6, traceroute6, host, d ig, and telnet. A ll
37these tools are strongly recommended for debugging and troubleshooting issues. They can aid in
providing a diagnosis of network problem very quickly. Currently, all these tools are shipped with
the Linux distribution and BIND programs.
4.2 DNS Setup To Support Both IPv4 and IPv6
In order to set up DNS, first make sure you can telnet in and out of the server machine, and make
all connections to the net, and especially be able to telnet to the localhost 127.0.0.1. The telnet server
was installed from rpm package shipped with the Linux disk, the command is
# rpm -i telnet-server-0.17-20.i386.rpm

Then Create or edit a service file named telnet in the /etc/xinetd.d directory, it should be as follows:
#File: /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}

To limit access to server programs and improve security, edit /etc/hosts.deny and
/etc/host.allow:

#file name: /etc/hosts.deny
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the ’/usr/sbin/tcpd’ server.
################### 18,Dec.,2002
ALL:ALL EXCEPT localhost:DENY
################### end of hosts.deny ##############################


38#file name: /etc/hosts.allow
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided by the ’/usr/sbin/tcpd’ server.
################## 18,Dec.,2002#######################
#all the service program is allowed from 127.0.0.1
#telnetd is allowed from auburn university, it is convenient for me to transfer files
#all service to localhost
ALL: 127.0.0.1
//grant telnet to hosts in auburn university
in.telnetd : 131.204.
####################End of hosts.allow#####################

4.2.1 Package Build
Install OpenSSL first. In most cases, OpenSSL is already installed on the Linux system.
However for a newer version, downloaded latest tarball openssl-0.9.6g.tar.gz from www.openssl.org
into the directory /usr/local/src/, and extract the tarball
# cd /usr/local/src
# tar -zxvf openssl-0.9.6g.tar.gz

If it succeeds, a new directory will be created /usr/local/src/openssl-0.9.6g. Configure the
software:
# cd /usr/local/src/openssl-0.9.6g
#./config -prefix=/usr/local/openssl

Compile it:
#make

Remove all existing Openssl version
# rpm -q -a | grep openssl | while read line
# do
# rpm -e -nodeps $line
# done
Install the new openssl
# make install
Update the library resolutions:
#ldconfig v

Now everything is ready. To install BIND, download the latest tarball from http://www.isc.org,
which was bind-9.2.1.tar.gz in into the src directory /usr/local/src/
Extract the tarball like:
39 # cd /usr/local/src
# tar -zxvf bind-9.2.1.tar.gz

If it succeeds, then we get a new directory /usr/local/src/bind-9.2.1

Configure the bind
# cd /usr/local/src/bind-9.2.1
# ./configure -prefix=/usr/local/bind \
# -enable-threads \
# -with-libtool \
# -with-openssl = /usr/local/openssl
Compile it:
# make
Remove all existing BIND version
# rpm -q -a | grep ^bind | whil e read line
# do
# rpm -e -nodeps $line
Install the new bind
# make install
Update the library resolutions:
#ldconfig v

To install the apache server http2, download the latest tarball from http://www.apache.org,
which is htttpd-2.0.43.tar.gz in the src directory /usr/local/src/
Extract the tarball like:
# cd /usr/local/src
# tar -zxvf httpd-2.0.43.tar.gz

If it succeeds, then we get a new directory /usr/local/src/httpd-2.0.43

Configure the bind
# cd /usr/local/src/httpd-2.0.43
# ./configure -prefix=/usr/local/http2 \
# -enable-threads \
# -with-libtool \
# -with-openssl = /usr/local/openssl
Compile it:
# make
Remove all existing http version
# rpm -q -a | grep ^http | while read line
# do
# rpm -e -nodeps $line
Install the new bind
# make install
Update the library resolutions:
#ldconfig v


404.2.2 DNS Setup
In order to improve DNS server security, the DNS named daemon should run as a
non-privileged user, here a new group and new user called named a re created for DNS daemon
program named.
Create the Bind user and group named, home directory is /var/named.
# groupadd named
# useradd -d /var/named -g named -s /bin/false named
Add the named to the daemon group using the command vigr, and change the permission bits
on /var/run, it is used to store the pid-file, making it writable to named. Create a directory ipv6 under
/var/named, it is used to store zone data files for the IPv6 domain.
#vigr
#chown root:daemon /var/run
#chmod 775 /var/run
#mkdir /var/named/ipv6

Get the root name servers in the world, from ftp://internic.net/domain/named.root, and save as
named.root at directory /var/named, and copy it as another file root.hints. The root servers change
over time, and should be kept up to date.
#mv /var/named/root.hints /var/named/root.hints.old
#cp /var/named/named.root root.hints

Create the /etc/named.conf file, /etc/named.conf i s the main configuration file for the DNS. In
this file, IPv4 domain is also defined for the purpose of test IPv4.
//File Name: /etc/named.conf

//predefine access lists, allows fine control over who can access the name server,limiting access //
the server by outside parties can help prevent spoofing and DOS attacks against the server.
acl external_ip { 131.204.0.0/16; 2001:468:364::/48;};