JOIN   IPv6 Reference Center   JOIN

Introduction to IPv6

Copyright © 2004 by Tina Strauf and Christian Schild

Work in Progress!!!

1. Introduction

IPv6 (Internet Protocol version 6) is the successor of Internet protocol version 4 (aka IP or IPv4), which is used everywhere on the Internet today. Even though IP is such an essential part of the Internet the protocol's necessity or functionality is hardly known among Internet users. Beyond the occasional appearance of IP addresses in some network properties, those users don't even need to know about IP at all. This kind of transparency will not change with IPv6. Once it is present everywhere (on the network and all applications) and enabled by default on any operating system/router platform the user will not have to deal with more network configuration than was necessary with IPv4, maybe even less. Even if IPv6 and IPv4 are used in parallel the computer or rather the applications will decide for itself which protocol to use. The user will not notice this at all then.

In the meantime however, IPv6 is still being introduced to various parts of the Internet step by step and not yet all applications include functionality for the new protocol. During this time it is helpful to know a bit more about IPv6, the differences between IPv4 and IPv6 and why IPv4 needed to be replaced by the new protocol to begin with. This knowledge might even be interesting to users who would not normally concern themselves with these issues.

This document on IPv6 in general as well as the two following documents Howto install IPv6 and and a document on how to actually use the new IP version (how to get global IPv6 connectivity, which applications to use it with) are meant for interested IPv6 beginners. They should enable even users, who have no idea about the Internet or its workings to get acquainted with and use the new protocol in the earlier stages of its introduction. With these Howtos we want to show that even now IPv6 is not hard to use and understand at all.

Back to Top

2. The History of IP(v6)

IPv4 was developed in the early 70s to connect computers from the pentagon and a few US universities. This first network was called "ARPA-NET" and consisted of approximately 1000 network nodes at a few hundred different locations. Due to the enormous cost for computer and network equipment in those days it was never anticipated that the network would ever grow a lot bigger much less to the extend the Internet is today. That makes it understandable that 32 bit long addresses where considered to be quite long enough. After all they allowed for a theoretical number of 4,3 x 10^9 hosts to be uniquely addressed.

2.1 From ARPA-NET to the Internet and What is (IP-)Routing?

After only a short time however prices for computers and network equipment dropped steeply and also business companies and even private people declared their interest to become connected to the network and the explosion began. More participants not only meant more computers but more importantly also more different locations and with that an efficient routing protocol had to be designed to organise the network traffic between different companies and institutions.
First the network grew wildly however. More and more so called gateways were connected which operated under lots of different implementations of hardly standardised protocols. In the 80s it was finally realised that something needed to be done. The old protocols, where practically every network node needed to know about the whereabouts of every other node and how to get there, were simply not efficient enough to support a further growth of the network. With the standard for EGP (Exterior Gateway Protocol) a topological hierarchy was introduced, which - simply put - let the Internet change from a network according to figure A to a network according to figure B.

AB

There was now a difference between so called backbone networks and end-site networks. End-site networks in turn might be so big as to have a backbone of their own. A backbone is a network that is only used to transport data packets from one point to the other and contains no workstations or servers. Those are located at the very edge of the Internet in leaf networks. The advantage to this structure is, that nodes in leaf networks no longer need to know about where other network nodes are located on the Internet to send them data packets. They send everything to a so called default router, which according to its localisation in the topological hierarchy might have more information about ways to different hosts and servers and has another default route for the rest. This hierarchy goes on to the "innermost" backbone where there are no more default routes and default routers, the so called DFZ (Default Free Zone). Routers in the DFZ store information about any specific direction packets must be forwarded to, but they really only need to know, which next hop a packet needs to go to in order to reach a given destination address.

2. The History of IP(v6)

2.2 Hierarchy, topology and their meaning for IP addresses

IPv4 was developed for this kind of hierarchical routing structure. That means IPv4 addresses not only uniquely designate one host on the Internet but are also used to find a route to a particular host from any given other host.

Originally the IPv4 address space was divided into 3 different sizes of address chunks, into the so called calls A, B and C networks, on which the notation of the 32 bit long addresses is still based. According to their size and need for IP addresses companies and institutions where delegated either a class A, B or C address block.

class A: e.g. 133.*.*.* (133.0.0.0 - 133.255.255.255)
class B: e.g. 88.123.*.* (88.123.0.0 - 88.123.255.255)
Class C: e.g. 217.254.15.* (217.254.15.0 - 217.254.15.255)

But what has this to do with routing? Simply put, if you read an IP address from left to right in a way it describes the way an IP packet needs to take to reach it (from the DFZ). Any information sent via the Internet to another host is "chipped" into many peaces and then "wrapped" to become such an IP packet which means that along with some more information the destination IP address and the IP address from the sending node is written "onto" the packet. When an IP packet reaches a router, the router will look at the destination address of the packet and based on the information it stores in its routing table decides where next to forward the packet to. A routing table contains lines, which each contain an IP address prefix (a leading portion of an IP address of varying length) and a "next hop" where to send packets to with destination addresses beginning with that particular prefix. If several lines fit, the router chooses the line with the longest matching prefix.
The following figure visualises the hierarchical structure of the Internet and how IPv4 addresses fit into that scheme.

C

2. The History of IP(v6)

2.3 The core of the Internet, the "DFZ"

As was mentioned above there is a difference between routers in the DFZ and in networks further at the edge of the Internet. Routers in enterprise or private networks usually only have a rather small routing table, particularly one which only stores entries for prefixes on their own LAN. For incoming IP packets for which they have no matching entry in the table they have a default entry, that is a default route to a router topologically further up in the hierarchy or farther "inside" the Internet. The farther a router is away from the edge, the bigger is the address space for which it has particular routing entries until on the DFZ routers store particular routes for the whole address space which means for all individual prefixes, that can not be combined (aggregated) to become a shorter prefix.

This is where some of the problems with IPv4 first manifested themselves years ago, because the size of that so called global routing table, which all routers on the DFZ not only need to store but update and search efficiently, had grown far larger than ever expected. Originally it was supposed to only store "short" prefixes (e.g. 8-16 bit long). This means, that all networks with corresponding address spaces fitting into such a short prefix were supposed to be connected to the DFZ in one point and all longer prefixes within that shorter prefix should have been aggregated in this one "DFZ access router". With this policy the routing table could have grown roughly to the size of 65,000 entries. Today however the global routing table contains 160,000 entries and from year to year 10,000 entries are added (see e.g. http://bgp.potaroo.net/). The reason for this lies in the necessity of having to utilise the IPv4 address space much better. Therefor the prefixes delegated to Internet customers grew longer and longer and with that the possibility to efficiently aggregate those prefixes was lost. Even the invention of "Classless Inter-Domain Routing" (CIDR) didn't do much to solve that problem. With CIDR registries were no longer bound to just delegate /8, /16 or /24 prefixes but could chose any prefix length in between, which added more flexibility. It also resulted in such long prefixes as /30 which soon even appeared in the global routing table. This however was remedied a bit in 2001 when a policy was released that no longer prefixes than /24 where allowed in the global routing table but even with that, the table can now still grow up to a size of 17 million entries. Not even the fastest router is able to handle this number of route entries in a manner efficient enough to forward the amount of packets a second as required on the DFZ.

2. The History of IP(v6)

2.4 Finally IPv6...

IPv6 addresses are 4 times as long as IPv4 addresses but during the design already, it was decided that there would never be longer prefixes than /32 (/35) in the global routing table. Now some people are going to say that that that makes even more route entries possible than with IPv4 and they are of course right...in theory. In practise however a /32 IPv6 prefix contains so many addresses that it is enough even for ISPs, so with a /32 prefix many customers will be connected behind one prefix in the DFZ. The IPv6 address space is so big, that even at a Internet growth rate far larger than there ever was with IPv4 it is highly unlikely that we'll come anywhere close to use up the current 2001::/16 address block in the coming years, which is used for production addressing all over the world at the moment. So while there are currently 160,000 IPv4 entries, there are only 500 IPv6 entries now and the statistic at http://net-stats.ipv6.tilab.com/bgp/history/ shows that the growth of the IPv6 routing table during the last years supports that assumption.

Aside from providing simple host to host communication people have long since requested more functionality in IP(v4), such as security for data transmissions, some way of easily providing quality of service, etc. Additional protocols such as IPSec and protocol options where developed to satisfy these needs but they where not always easy to implement and only "optionally" deployed. For a transmission to use these options however bot sides of the communication had have them in place which complicated things.

These reasons and problems made it clear early on, that IPv4 would rather sooner than later have to be replaced by a more efficient protocol that next to allowing a much larger address space also included the new functionalities as obligatory features in the protocol itself. The first proposals for such a new protocol where made in the early 90s and summarised in 1993 in the IETF (Internet Engeneering Task Force) under the name "IPnG" (IP next Generation). After a lot of discussion and many more proposals IPv6 was officially proclaimed the successor of IPv4 in 1995 when it was first released as a draft. It finally became a draft standard (RFC 1883) in 1996. Next to integrating for example IPSec inside the IPv6 standard, the new protocol had 128 bit long addresses which allows for a theoretical number of 3,4 x 10^38 network devices being addressed uniquely on the Internet. Making a rough estimate this means 667 quadrillion addresses per square millimetre or 6.5 x 10^28 addresses per person. This theoretical estimate is of course not nearly accurate due to routing hierarchy and the fact that address spaces is of course still delegate as continuous blocks. In this regard IPv6 however has defined a fixed length of the address to be used for routing only. For that the address is cut in half. Never will there be a subnet with less than 64bit addresses nor more. Only the first 64 bit of every address can and will be used for global and site internal routing. Correspondingly the last 64bit of every address are just meant to designate a single host in one subnet.

2. The History of IP(v6)

2.5 Introduction of IPv6 to the Internet

The first beta versions of IPv6 implementations where released in 1995. Since then the IPv6 specification was continually worked on and improved and released again 1998 in a finally revised form as RFC 2460). Next to the specification of course also more and more implementations where developed. Today IPv6 is included in a lot of innovative products and applications and available for practically every platform where it is in most cases even in production.

The global introduction of IPv6 into the Internet and all applications nevertheless only progresses slowly. Most people wait for others to do the first step. ISPs fear the migration because for them money is involved, if not for IPv6 capable hardware, it will at least require the personnel to be taught. In addition to that the requests by customers asking for IPv6 are marginal and in their eyes do not justify the investment. On the other hand IP and in the future IPv6 is mostly transparent to end site customers and therefor they of course also have the smallest knowledge of IP and the possible advantages of IPv6. They can not be expected to ask for it.

Due to the hesitation of network operators to integrate IPv6 into their backbones and services also some hardware and software manufacturers do not yet see any reason to include production quality IPv6 support into their products. A few still just offer beta versions which in turn results in network operators not being able to use them.

There are even rumours that telecommunications companies don't like to introduce IPv6 due to business reasons. After all, if introduced properly the fact that anyone may have as many globally unique addresses as he wants and the new technologies accompanying IPv6 (e.g. Mobile IPv6), the new protocol could very well render the traditional phone technology useless or at least redundant. In the future a normal household would just require one Internet connection, which could be used for all incoming and outgoing information (IP telephone, receive TV/cable, maybe operate every electronic device at home remotely from any location, etc.).

2. The History of IP(v6)

Back to Top

3. IPv6 Addresses and Address Delegation

IPv6 addresses are hardly the most important aspect of the new protocol. But they are the most noticeable change and will have to be read, used and handled even by non IT specialists. The following paragraphs describe the different kinds of IPv6 addresses, their meaning and conventions how to write and abbreviate them. It will also outline how the impossibly large address space of IPv6 is planned to be used and delegated.

3.1 Notation and Abbreviation of IPv6 Addresses

IPv6 addresses are 128 bit long, represented by eight blocks of 16 bits written in hexadecimal notation and divided by a colon:

2001:638:500:200:2e0:18ff:fe50:b5da
Leading zeroes in a 16bit field may be omitted. An all zero field (:0000:) can be shortened to ":0:". A continuous block of all zero fields (e.g. 0000:0000:0000) may be abbreviated by "::" but only once in one address. The following notations all have the same meaning:

2001:638:500::1
2001:638:500:0:0:0:0:1
2001:0638:500:0000:0000:0000:0000:0001
These conventions apply to all kinds of IPv6 addresses whether they are unicast, multicast, anycast or somehow else special. The most important kind of addresses of course are unicast addresses used for the normal communication between uniquely addressed hosts on the Internet or any LAN or WAN. We will cover them first.

3. IPv6 Addresses and Address Delegation

3.2 The Structure of IPv6 Addresses (Prefixes and Network Masks)

As noted previously the first 64 bits of any IPv6 address are used for global and local (intra-site) routing alone. This means that the first 64 bits of any unicast address already denote a network node's topological location inside the Internet relatively accurate right down to the last (leaf) subnet in the routing hierarchy. Therefor those first 64 bit are also called the routing prefix.

The last 64 bit of IPv6 addresses specify a host inside a subnet and are called the host identifier or host id.

There are no network masks of the kind "255.255.255.0" with IPv6. This functionality has instead been replaced by the notation already known from CIDR: <address>/<prefix length>. The prefix length denotes how many bits of the address are fixed at the beginning of the address. The following examples therefor denote different sizes of address blocks where 48/56/64 bit of the addresses are fixed.

2001:638:500::/48
2001:638:500:ff00:/56
2001:638:500:200:/64

3. IPv6 Addresses and Address Delegation

3.3 Global Address Delegation

According to a proposal from the IETF in the year 2000 (RFC2928) the IANA/ICANN began to assign the first address blocks (out of 2001::/16) of globally unique addresses (for production networks) to the regional registries (RIRs) (RIPE in Europe, ARIN in North America, APNIC in Asia and LACNIC in Latin America) in 2001. The corresponding policy document was released 2002 and can be found here: http://www.iana.org/ipaddress/ipv6-allocation-policy-26jun02.
It was later extended and revised again to http://www.iana.org/assignement/ipv6-tla-assignments which includes the following top level address assignements:

2001:0000::/23 IANA (Jul 99)
2001:0200::/23 APNIC (Jul 99)
2001:0400::/23 ARIN (Jul 99)
2001:0600::/23 RIPE NCC (Jul 99)
2001:0800::/23 RIPE NCC (Mai 02)
2001:0A00::/23 RIPE NCC (Nov 02)
2001:0C00::/23 APNIC (Mai 02)
2001:0E00::/23 APNIC (Jan 03)
2001:1000::/23 noch nicht vergeben
2001:1200::/23 LACNIC (Nov 02)
2001:1400::/23 RIPE NCC (Feb 03)
2001:1600::/23 RIPE NCC (Jul 03)
2001:1800::/23 ARIN (Apr 03)
2001:1A00::/23 RIPE NCC (Jan 04)
Within their own address spaces the RIRs may decide for themselves how to sub-delegate Address space to local registries (LIRs=Local Internet Registries) like ISPs etc. ARIN, RIPE and APNIC (LACNIC only became part of this later) however soon began to design a general policy (http://ip.nic.or.kdr/english/ipv6/ipv6%20global%20policy(new%20draft).htm. For the time being this document states that LIRs may each get a /32 address block if they have a plan to assign at least 200 /48 address blocks to customers. According to this policy for example, the DFN (German national research network) got their address space 2001:638::/32 in 2001 from RIPE and since then assigns /48 address blocks - like 2001:638:500::/48 for the university of Muenster - to all it's connected universities and research institutions. No site shall ever get anything less than a /48 address block.

3. IPv6 Addresses and Address Delegation

3.4 Special Addresses

There are a few IPv6 addresses or kinds of addresses which have a special meaning and may only be used for specific purposes:

::/128 "Unspecified Address"
The unspecified address must never be assigned to any node. It rather indicates the absence of an address and is used for example in the source address field of IPv6 packets sent by hosts performing the initial steps of stateless address autoconfiguration (SLAAC)(see below).

Other special addresses are:

::1/128 Loopback address
ff00::/8 Multicast addresses
fe80::/10 Link-Local Unicast addresses
fec0::/10 Site-Local Unicast addresses
IPv6 employs the concept of scopes. Scopes are topological regions in the network for which certain kinds of addresses are unique and valid and beyond which packets with these kinds of addresses in either source or destination field may not be forwarded. The global scope is self explanatory and means that addresses are globally unique and therefor globally valid. All addresses from 3ffe::/16 (6BONE) and 2001::/16 fall into that category. The link scope" is restricted to just one physical link (aka subnet or layer 2 broadcast area). IPv6 packets with these kinds of addresses in the source or destination address field may never cross any (layer 3/IPv6) router. Link local addresses are used solely for communication between hosts on one link and are the first addresses created during the initialisation of any IPv6 network node (see IPv6 autoconfiguration below.

The site scope is the only scope where the responsibility for restricting the validity of addresses to a certain part of the network is rather manually defined than by physical and topological realities. A site is defined as being a part of a network that is set up and administered by one entity. Therefor, if site local addresses are used, the site's administrators have to take care by hand which routers may forward IP packets belonging to such addresses and which should not. Site local addresses may be used like private (RFC1918) IPv4 addresses are today, but also where also intended for broader use. The ambiguity of the definition of a site and lot of discussion on whether site local addresses should nevertheless be globally unique to facilitate sites merging with one another, has lead to the IETF being about to deprecate site local addresses completely (see draft-ietf-ipv6-deprecate-site-local-02.txt). They are however to be immediately replaced by a something that will at least cover the functionality of private addresses and stand alone networks. At present the discussion is still going on, though not for much longer.

3. IPv6 Addresses and Address Delegation

Back to Top

4. Address Autoconfiguration

With IPv6 there are two kinds of (address) autoconfiguration a stateless and a stateful approach. The latter involves the use of DHCPv6 which is the successor if DCHP for IPv4 but much more powerful. stateless address autoconfiguration (SLAAC) is totally new with no corresponding functionality in IPv4.

DHCPv6 was discussed and developed for a long time. The final RFC was only released in August 2003. That is mostly due to the fact that DCHPv6 is not simply meant to be used for address autoconfiguration. The standard also includes features to autoconfigure DNS servers, NTP servers as well as various back-ends to databases so that the DNS itself can be updated through the DHCP server. More information on this can be found in the slides from Christian Strauf's presentation at the 39th semiannual convention for DFN members in November 2003. More will follow as soon as possible in a separate document in our howto section

Since the draft standard was continually reworked before it was finally released as a full standard there are hardly any full implementations of the protocol today. SLAAC on the other hand has been fully functional in all IPv6 implementations for a long time and is mostly used today in all kinds of networks¹. There might be reasons for not using SLAAC to autoconfigure hosts but in any case SLAAC is still the easiest way to run and address a whole network, and IPv6 newcomers are especially advised to acquaint themselves with it. We will therefor cover this mechanism in more detail in the following paragraphs leaving any more documentation on DHCPv6 and how to use it to a future separate Howto.

IPv6 Stateless Address Autoconfiguration (SLAAC) is described in RFC2462. It needs neither special client software nor servers. The functionality to use it is included in any standard conform IPv6 implementation on hosts and routers. For IPv6 hosts don't no manual configuration or setup is required to use the procedure as SLAAC is the default and works "out of the box".

SLAAC enables a host to generate addresses for all its interfaces. To do this the host only needs some information about itself (in most cases its MAC address(es)) and some information sent by a router on the link (see above) as special packets, the so called router advertisements (RAs). RAs are designed specifically for one link and include information the hosts use for the first 64 bits of their global and/or site local addresses as well as information about the IPv6 default router on the link which usually is the advertising router itself.

Upon initialisation of the IPv6 protocol a hosts immediately starts the SLAAC process by first configuring link local addresses of all network interfaces. Link local addresses are composed by adding a host identifier created from the MAC-address to the link local prefix fe80::/10. In order to do that the EUI-48 MAC address first needs to be converted to a an EUI-64 standard conform id as follows:

fe80::<1st half of MAC address>ff:fe<2nd half of MAC-address>/10

Note that though the link local prefix is /10 the host id (as always) is still only 64 bits long. the "::" stands for three blocks of zeros. Before a link local address can actually be assigned to an interface it needs to be checked for uniqueness on the link. Until then it is called a tentative address. To perform the so called Duplicate Address Detection (DAD) the host sends out a special message called Neighbour Solicitation" (NS)to the link with its own (still tentative) link local address as destination. If the address (host identifier) is not unique and there is another host on the link using this address already it will answer by a sending a neighbor advertisement (NA) message back. In this case the SLAAC process stops completely and manual intervention is required. If no answer comes back it can be assumed that the address is unique and the hosts assigns the address to its interface permanently (until the next initialisation of the IPv6 protocol). At this point the host is already sufficiently configured to engage in IPv6 communication with other hosts on the same link. This first part of SLAAC is always executed on any host. Nothing more than the host's own MAC address(es) is needed, not even an actual connection to a LAN. Even a stand-alone host with the IPv6 protocol enabled will perform these steps.

The following part of SLAAC is only executed on IPv6 hosts. The configuration of IPv6 routers at this point requires some manual intervention or the employment of special features of DHCPv6 which is not covered in this document.

After configuring link local addresses the host continues to try and see if there is a router on the link which sends out router advertisements. Routers usually send out router advertisements regularly at some configurable time interval. When a host first initialises IPv6 however (e.g. at boot time) one usually does not want to wait for the next RA to come along. Because of that the host sends out a Router Solicitation (RS) message with the multicast address for all routers (on the link) (ff02::2) as destination (which every IPv6 router must listen to) and its own link local address in the source address field. If present and configured correspondingly all routers on the link will then answer with a router advertisement addressed specifically to the requesting host.

RAs contain two flags pertaining to the information hosts should configure by stateful address autoconfiguration (DHCPv6). These flags differentiate between the host's own addresses (1st flag) and other information (2nd flag) such as the addresses of DNS servers and NTP servers etc. A host may use any combination of autoconfiguration including configuring addresses both by the stateless and the stateful procedure. It can of course also just configure other information with DHCPv6 and use SLAAC for address configuration.

Router advertisements further include zero or more prefix fields. Each prefix may be individually set for use in address autoconfiguration. As stated previously hosts use these to generate the first 64 bits of their IPv6 addresses. The last 64 bits are by default generated the same way as for the link local addresses. The full IPv6 addresses are then composed by concatenating the prefix (which may never be longer than 64 bits ²) and the host id as follows:

<prefix>:<1st half of MAC address>ff:fe<2nd half of MAC address>/64

IPv6 addresses are leased to interfaces for a (possibly infinite) amount of time. I this context the protocol differentiates between two kinds of lifetimes the preferred lifetime (pl) and the valid lifetime (vl) which must at least be as long as the preferred lifetime. During the pl the address is used normally, both to establish new connections and to continue using existing connections. When the pl runs out and the valid lifetime is longer than the pl, the address still stays valid but is no longer used to establish new connections. While the address still is valid existing connections created with it may continue and end on their own. However, when the valid lifetime runs out, the address is deleted from the interface and all connections still using that address will break.

Router advertisements are send out regularly on the link. For those regular RAs the router uses the multicast address for all network nodes on the link (ff02::1) as destination to which any IPv6 device must listen. Prefixes in RAs, which are meant for use in autonomous configuration of addresses during SLAAC contain additional information about lifetimes, permitting the hosts to use the generated addresses for a specific period of time. Every time a host receives a router advertisement it resets the timers on it's corresponding addresses according to the just received information in the RA in most cases just refreshing the lifetimes.

The concept of lifetimes as well as the possibility of configuring a large amount of addresses on an interface at the same time facilitates automatic renumbering of whole networks. If a subnet needs to be renumbered the new prefix just has to be added to the router advertisements while the old one is deleted. This way the old addresses will eventually become invalid on all hosts, leaving just the new addresses to be used.³.

Like link local addresses site local and global addresses are also first checked for uniqueness in their corresponding domain before being assigned to an interface. The procedure is also much the same. DAD is performed regardless of which configuration method is used to assign them to interfaces, either manual configuration, stateful or stateless configuration. In the latter case however, DAD is actually done once and for all when confirming the link local addresses are unique because if the host id is unique on the link, all IPv6 addresses created with it during SLAAC have to be unique as well, for topological reasons. This is not the case with manually assigned addresses or DHCPv6. In these cases each address has to be checked for uniqueness individually.

¹Note that even if manual address configuration or DHCPv6 is used the first part of the SLAAC procedure (generating link local addresses for all interfaces) is always executed when a host initialises its IPv6 stack. Not employing SLAAC generally just refers to SLAAC not being used to generate site local or global addresses.Back

²It is of course theoretically possible to advertise a shorter prefix than a /64 but it does not make much sense. As with the link local prefix the hosts will still "see" a 64 bit prefix and concatenate their host id accordingly.Back ³Renumbering can be sped up, if the router advertisements for the old prefix are not just deleted but first changed in such a way that the preferred lifetimes is set to zero. That way the corresponding addresses will immediately become unused. It should be taken care though, that the valid lifetime is not shortened to an unreasonably short time period. Existing connections will otherwise be severed.Back

4. Address Autoconfiguration

Back to Top

Valid CSS!Valid HTML 4.0!