5. Understanding Address Autoconfiguration
On IPv4 networks, addresses can be assigned to hosts in three ways:
Manually using static address assignment
Automatically using DHCP, if a DHCP server is present on the subnet (or a DHCP relay agent configured on the subnet)
Automatically
using Automatic Private IP Addressing (APIPA), which randomly assigns
the host an address from the range 169.254.0.0 to 169.254.255.255 with
subnet mask 255.255.0.0
On IPv6
networks, static addresses are generally assigned only to routers and
sometimes servers, but hardly ever to client computers. Instead, IPv6
addresses are almost always assigned automatically using a process
called address autoconfiguration. Address autoconfiguration can work in
three ways: stateless, stateful, or both. Stateless address
autoconfiguration is based on the receipt of ICMPv6 Router
Advertisement messages. Stateful address autoconfiguration, on the
other hand, uses DHCPv6 to obtain address information and other
configuration settings from a DHCPv6 server.
Note
The
DHCP Server service of Windows Server 2003 does not support DHCPv6.
Windows Server Code Name “Longhorn” will include support for the DHCPv6
Server role. |
All
IPv6 nodes (hosts and routers) automatically assign themselves
link-local addresses (addresses having the address prefix FE80::/64);
this is done for every interface (both physical and logical) on the
node. These autoconfigured link-local addresses can be used only to
reach neighboring nodes (nodes on the same link). When specifying one
of these addresses as a destination address, you might need to specify
the zone ID for the destination. In addition, link-local addresses are
never registered in DNS servers.
An autoconfigured IPv6 address can be in one or more of the states shown in Table 6.
Table 6. Possible States for an Autoconfigured IPv6 Address
State | Description |
---|
Tentative | The uniqueness of the address is still being verified using duplicate address detection. |
Valid | The address is unique and can now send and receive unicast IPv6 traffic until the Valid Lifetime expires. |
Preferred | The address can be used for unicast traffic until the Preferred Lifetime expires. |
Deprecated | The
address can still be used for unicast traffic during existing
communication sessions, but its use is discouraged for new
communication sessions. |
Invalid | The Valid Lifetime for the address has expired and it can no longer be used for unicast traffic. |
Note
The
Valid and Preferred lifetime for stateless autoconfigured IPv6
addresses in Windows Vista is included in the Router Solicitation
message. |
Note
To display the state for each autoconfigured IPv6 address on a Windows Vista computer, open a command prompt and type netsh interface ipv6 show addresses at a command prompt. |
6. Understanding Name Resolution
The
Domain Name System (DNS) is fundamental to how name resolution works on
both IPv4 and IPv6 networks. On an IPv4 network, host (A) records are
used by name servers (DNS servers) to resolve fully qualified domain
names (FQDNs) like server1.contoso.com into their associated IP
addresses in response to name lookups (name queries) from DNS clients.
In addition, reverse lookups—in which IP addresses are resolved into
FQDNs—are supported by using pointer (PTR) records in the in-addr.arpa
domain.
Name resolution works fundamentally the same way with IPv6, with the following differences:
Host records for IPv6 hosts are AAAA (“quad-A”) records, not A records.
The domain used for reverse lookups of IPv6 addresses is ip6.arpa, not in-addr.arpa.
Understanding Name Queries
Because
Windows Vista’s dual-layer TCP/IP stack means that both IPv4 and IPv6
are enabled by default, DNS name lookups by Windows Vista client
computers can involve the use of both A and AAAA records. (This is true
only if your name servers support IPv6, which is the case with the DNS
Server role for Windows Server 2003.) By default, the DNS client
component on Windows Vista uses the following procedure when performing
a name lookup using a particular interface:
The
client computer checks to see if it has a non-link-local IPv6 address
assigned to the interface. If it has no non-link-local addresses
assigned, the client sends a single name lookup to the name server to
query for A records and does not query for AAAA records. If the only
non-link-local address assigned to the interface is a Teredo address,
the client again does not query for AAAA records. (The Teredo client in
Windows Vista has been explicitly built not to automatically perform
AAAA lookups or register with DNS to prevent overloading of DNS
servers.)
If
the client computer has a non-link-local address assigned to the
interface, the client sends a name lookup to query for A records.
If
the client then receives a response to its query (not an error
message), it follows with a second lookup to query for AAAA records.
If
the client receives no response or receives any error message (except
for Name Not Found), it does not send a second lookup to query for AAAA
records.
Understanding Name Registration
DNS
servers running Windows Server 2003 can dynamically register both A and
AAAA records for Windows Vista client computers. Dynamic registration
of DNS records simplifies the job of maintaining name resolution on
networks running the Active Directory directory service. When a Windows
Vista client computer starts up on a network, the DNS Client service
tries to register the following records for the client:
A records for all IPv4 addresses assigned to all interfaces configured with the address of a DNS server
AAAA records for all IPv6 addresses assigned to all interfaces configured with the address of a DNS server
PTR records for all IPv4 addresses assigned to all interfaces configured with the address of a DNS server
Note
AAAA
records are not registered for link-local IPv6 addresses that have been
assigned to interfaces using address autoconfiguration. |
Windows
Vista client computers do not try to register PTR records for IPv6
addresses assigned to interfaces on the computer. If you want to enable
clients to perform reverse lookups for Windows Vista computers using
IPv6, you must manually create a reverse lookup zone for the ip6.arpa
domain on your DNS servers and then manually add PTR records to this
zone. For detailed steps on how to do this, see “IPv6 for Microsoft
Windows: Frequently Asked Questions,” found at http://www.microsoft.com/technet/itsolutions/network/ipv6/ipv6faq.mspx.
However,
PTR records for reverse lookups using IPv6 are not often used, because
the namespace for reverse queries is formed by using each hexadecimal
digit in the colon-hexadecimal representation of an IPv6 address as a
separate level in the reverse domain hierarchy. For example, the PTR
record associated with the IPv6 address 2001DB8::D3:00FF:FE28:9C5A,
whose full representation is 2001:0DB8:0000:0000:00D3:00FF:FE28:9C5A,
would be expressed as
A.5.C.9.8.2.E.F.F.F.0.0.3.D.0.0.0.0.0.0.0.0.0.0.8.B.D.0.1.0.0.2.IP6.ARPA.
The performance cost of resolving such a representation would generally
be too high for most DNS server implementations.
|
By
default, DNS servers running Windows Server 2003 do not listen for DNS
traffic sent over IPv6. To enable these DNS servers to listen for IPv6
name registrations and name lookups, you must first configure the
servers using the dnscmd /config /EnableIPv6 1 command. You must then manually configure each Windows Vista client computer with the unicast IPv6 addresses of your DNS servers using the netsh interface ipv6 add dns interface=NameOrIndex address=IPv6Address index=PreferenceLevel command. (DHCP servers running Windows Server 2003 currently do not support stateful address assignment using DHCPv6.)