介绍IP 版本 6 (IPv6) 是一套标准的协议,它是用于 Internet 的下一代网络层协议。Internet 协议当前的版本(叫做 IP 版本 4 或者 IPv4)自从 1981 年通过 RFC 791 公布以来就没有发生过实质性的变化。IPv4 已经被证明是一个可靠的、易于实现和可互操作的协议,并且经过了当今 Internet 全球互联网络应用的考验。
但是,当初在设计 IPv4 的时候没有预计到:
| • | Internet 最近呈指数级增长的态势以及 IPv4 地址空间即将耗尽的状况。
|
| • | Internet 的增长以及 Internet 骨干路由器维护大型路由表的能力。
|
| • | 对更简单配置方案的需求。
|
| • | 对 IP 这一层安全的要求。
|
| • | 对更好地支持数据实时传送的需求(也叫做服务质量)。
|
为了解决这些问题,Internet 工程任务组 (IETF) 开发了一套叫做 IP 版本 6 (IPv6) 的协议和标准。这个先前叫做下一代 IP (IPng) 的新版本融合了很多用于更新 IPv4 协议的提议的概念。IPv6 专门设计用来通过避免新特性的任意加入把对上下层协议的影响减到最小。
Windows XP 包括了一个 IPv6 协议套件的开发人员版本,专门用于应用程序开发人员。为了正确部署 IPv6,它必须被应用程序使用。应用程序必须经过修改才能够使用新的与 IP 版本无关的 Windows 套接字应用程序编程接口 — 相同的 API 函数被用于 IPv4 或者 IPv6 上,而 API 调用的结果要依靠所安装的协议和可用的地址。关于修改应用程序让其工作在 IPv4 和IPv6 之上的更多信息,请查看题目为《给 Windows 套接字应用程序加入 IPv6 能力》的白皮书,以及 Microsoft IPv6 的 Web 网站:
http://www.microsoft.com/ipv6。
尽管还不是设计用在生产环境里,Windows XP 的 IPv6 协议支持很多特性,让你能够通过使用本机的 IPv6 数据包或者通过在 IPv4 路由基础结构上发送 IPv6 数据包来建立和测试 IPv6 的功能。本白皮书的各个章节将描述下列配置方案:
| • | 使用本地链接地址的单独子网。
|
| • | 在两个本地链接主机之间使用 IPSec。
|
| • | IPv6 互联网络上不同子网节点之间的 IPv6 流量。
|
| • | IPv4 互联网络不同子网上节点之间的 IPv6 流量。
|
| • | 跨跃 Internet (6to4) 不同站点的节点之间的 IPv6 流量。
|
| • | 连接到 6bone。
|
此外,本白皮书将指导你如何使用五台计算机建立一个可以运行的 IPv6 测试实验室网络。
注意: 本白皮书假设你熟悉 IPv6 的概念、协议和寻址等知识。要获取信息,见
http://www.microsoft.com/ipv6上题目为《IP 版本 6 介绍》白皮书。
返回页首使用本地链接地址的单独子网这个配置只需要同一个网段(也叫做连接或者子网)上至少有两个节点安装有 IPv6,而不需要中间路由器。
图 1 显示了使用本地链接地址的单独子网上两个节点的配置情况。
图 1:使用本地链接地址的单独子网上的两个节点在缺省情况下,Windows XP 的 IPv6 协议会为已经安装的以太网络适配器所对应的每个接口都配置一个本地链接地址。本地链接地址的前缀是 FE80::/64。IPv6 地址的最后 64 位叫做接口标识符。它派生自网络适配的 48 位 MAC 地址。
要利用以太网卡的 48 位(6个字节) MAC 地址创建 IPv6 接口标识符,就需要:
| • | 把十六进制数 0xFF-FE 插入到 MAC 地址的第三和第四个字节之间。
|
| • | 对通用/本地位(MAC 地址第一个字节的第二个低位)取补码。如果它是 1,那它就要被设置成 0;如果它是 0,它就要被设置成 1。
|
例如,如果 MAC 地址是 00-60-08-52-F9-D8:
| • | 那么就要把十六进制数 0xFF-FE 插入到 MAC 地址的 0x08 (第三个字节)和 0x52 (第四个字节)中间,这就构成了 64 位的地址 00-60-08-FF-FE-52-F9-D8。
|
| • | 通用/本地位,即MAC 地址的 0x00(第一个字节)的第二个低位,取补码。 0x00 的第二个低位是 0,在取补码之后变成了 1。其结果是,对于第一个字节来说,0x00 变成了 0x02。
|
结果是,与以太网卡 MAC 地址 00-60-08-52-F9-D8 相对应的接口标识符是 02-60-08-FF-FE-52-F9-D8。
节点的本地链接地址是前缀 FE80::/64 和以十六进制冒号符号表示的 64 位接口标识符的结合体。结果是,这个示例节点的本地链接地址是 FE80::260:8FF:FE52:F9D8,他带有前缀 FE80::/64 和接口标识符 02-60-08-FF-FE-52-F9-D8。
你可以使用
ipv6 if 命令查看本地链接地址,其输出结果见下面的例子:
Interface 4: Ethernet: Local Area Connectionuses Neighbor Discoveryuses Router Discoverylink-layer address: 00-04-5a-56-0f-a4preferred link-local fe80::204:5aff:fe56:fa4, life infinitemulticast interface-local ff01::1, 1 refs, not reportablemulticast link-local ff02::1, 1 refs, not reportablemulticast link-local ff02::1:ff56:fa4, 1 refs, last reporterlink MTU 1500 (true link MTU 1500)current hop limit 128reachable time 44500ms (base 30000ms)retransmission interval 1000msDAD transmits 1interface 3: 6to4 Tunneling Pseudo-Interfacedoes not use Neighbor Discoverydoes not use Router Discoverypreferred global 2002:9d3c:8852::9d3c:8852, life infinitelink MTU 1280 (true link MTU 65515)current hop limit 128reachable time 28500ms (base 30000ms)retransmission interval 1000msDAD transmits 0Interface 2: Automatic Tunneling Pseudo-Interfacedoes not use Neighbor Discoveryuses Router Discoveryrouter link-layer address:EUI-64 embedded IPv4 address: 157.60.136.82preferred link-local fe80::5efe:157.60.136.82, life infinitepreferred global ::157.60.136.82, life infinitelink MTU 1280 (true link MTU 65515)current hop limit 128reachable time 20000ms (base 30000ms)retransmission interval 1000msDAD transmits 0Interface 1: Loopback Pseudo-Interfacedoes not use Neighbor Discoverydoes not use Router Discoverylink-layer address:preferred link-local ::1, life infinitepreferred link-local fe80::1, life infinitelink MTU 1500 (true link MTU 4294967295)current hop limit 128reachable time 18000ms (base 30000ms)retransmission interval 1000msDAD transmits 0接口 4 是一个与已经安装的以太网适配器对应的接口,它的本地链接地址是 FE80::204:5AFF:FE56:FA4。
测试两个本地链接主机之间的连接性你可以用 IPv6 在两个本地链接主机之间进行简单的 ping (ICMPv6 Echo Request 和 Echo Reply 消息的交换)操作,其步骤如下:
1.
| 用 ipv6 install 命令在同一个链接(子网)上运行着 Windows XP 的两台主机计算机(主机 A 和主机 B)上安装 IPv6 协议。
|
2.
| 在主机 A 上使用 ipv6 if 获取本地链接地址以及用于本地连接接口的接口索引。 例如,主机 A 的本地链接地址是 FE80::210:5AFF:FEAA:20A2,本地连接的接口索引是 4。
|
3.
| 在主机 B 上使用 ipv6 if 获取本地链接地址以及用于叫做本地连接的接口的接口索引。 例如,主机 A 的本地链接地址是 FE80::260:97FF:FE02:6EA5,本地连接的接口索引是 5。
|
4.
| 在主机 A 上,使用 Ping6.exe 命令和主机 A 的本地连接接口的接口索引来 ping 主机 B。 例如,我们用示例地址和接口索引来 ping 主机 B,命令是 ping6 FE80::260:97FF:FE02:6EA5%4。
|
使用范围 ID当你指定本地链接或者本地站点的目标地址时,你应该指定范围 ID,从而明确流量的范围(网络的区域)。
例如,在一台带有连接到多个不同链接的以太网适配器的计算机上,每个以太网适配器都被分配了一个本地链接地址。这个配置里的目标本地链接地址是不明确的,因为特定的本地链接地址能够被分配给多个节点,这些节点位于所有已经安装的以太网适配器都能够到达的链接上。为了定义目的地网络的区域,范围 ID 被用来表示发送和接收流量的以太网适配器。在 Windows XP 的 IPv6 协议里,范围 ID 来自
ipv6 if 命令所显示的接口编号或者索引。接口索引在每台本地 IPv6 主机上被定义。由于这一点,主机 A 所使用的、用来到达主机 B 的接口索引可能与主机 B 所使用的、用来到达主机 A 的接口索引不相同。
在使用本地站点地址的时候,连接到多个站点是有可能的。在本文里,每个站点都被分配了一个站点标识符。为了定义目的地网络的区域,范围 ID 被用来表示站点标识符。在 Windows XP 的 IPv6 协议里,范围 ID 来自
ipv6 if 命令所显示的站点 ID。如果你只是连接到一个站点,那么缺省的站点标识符就是 1,且不需要指定范围 ID。站点标识符在每台本地 IPv6 主机上被定义。由于这一点,主机 A 所使用的、用来到达主机 B 的站点标识符可能与主机 B 所使用的、用来到达主机 A 的站点标识符不相同。
全球地址不需要范围 ID。
用来指定带有地址的范围ID的符号是
Address%
ScopeID,在这里
Address 是一个本地链接或者网站链接 IPv6 地址,而
ScopeID 是某个接口索引或者站点索引。
返回页首在两个本地链接主机之间使用 IPSec这个配置方案显示了如何在同一个子网的两台主机之间建立 Internet 协议安全 (IPSec) 的安全关联 (SA)。SA 通过使用身份验证头 (AH) 和 Message Digest 5 (MD5) 散列算法进行身份验证。在这个例子里,配置方案会保证两个相邻的主机之间所有流量的安全。主机 1 的本地链接地址是 FE80::2AA:FF:FE53:A92C,主机 2 的本地链接地址是 FE80::2AA:FF:FE92:D0F1。
要在同一子网上两台主机之间建立 SA,就要:
1.
| 在主机 1 上,使用 ipsec6 s 命令创建空白的安全关联 (.sad) 和安全策略 (.spd) 文件。在这个例子里,Ipsec6.exe 命令是 ipsec6 s test。这会创建两个带有空白项文件,空白项用于手动配置安全关联 (Test.sad) 和安全策略 (Test.spd)。
|
2.
| 在主机 1 上,编辑 .spd 文件,加入一个能够保护主机 1 和主机 2 之间所有流量安全的安全策略。 表格 1 显示了加到 Test.spd 里第一个项(Test.spd 里的第一个项没有被修改)前面的安全策略项。 表 1:主机 1 的安全策略项
| | .spd 文件的域名称 | 示例值 | | | | | • | - FE80::2AA:FF:FE92:D0F1
|
| | | | | | | | | | | | | | | | | | | | | | |
|
3.
| 在配置本安全策略的项结尾处输入一个分号。策略项必须以递减的数字次序排列。
|
4.
| 在主机 1 上,编辑 .sad 文件,加入 SA 项,以保护主机 1 和主机 2 之间所有流量的安全。必须创建两个安全关联,一个用于到主机 2 的流量,另一个用于来自主机 2 的流量。 表 2 显示了被添加到 Test.sad 的第一个 SA 项(用于到 主机 2 的流量)。 表 2:用于主机 1 的第一个文件安全关联项
|
5.
| 在配置这个 SA 的项结尾处输入一个分号。 表 3 显示了加到 Test.sad 的第二个 SA 项 (用于来自主机 2 的流量)。 表 3:用于主机 1 的第二个安全关联项
|
6.
| 在配置本 SA 的项结尾处输入一个分号。SA 项必须以递减的数字次序排列。
|
7.
| 在主机 1 上,创建一个包含某些数据的文件,这些数据被用来创建和验证 Message Digest 5 (MD5) 密钥散列,这一个散列用来保护与主机 2 进行交换的数据包。在这个例子里,使用了一个文本文件。Test.key 和内容一起被创建。没有额外的字符、空白或者行。 Windows XP 的 IPv6 协议只支持用于快速模式 SA (也叫做 IPSec 或者 Phase II SA)的手动配置密钥,因为没有通过 Internet 密钥交换 (IKE) 进行主要模式协商。手动密钥通过创建含有手动密钥文本或者二进制数据的文件来配置。在这个例子里,用于 SA 的同一个密钥被用在两个方向上。通过创建不同的密钥文件并用 .sad 文件里的 KeyFile 段参考它们,你可以对入站和出站的 SA 使用不同的密钥。
|
8.
| 在主机 2 上,使用 ipsec6 s 命令来创建空白的安全关联 (.sad) 和安全策略 (.spd) 文件。在这个例子里,Ipsec6.exe 命令是 ipsec6 s test。这就创建了带有用于配置安全关联 (Test.sad) 和安全策略 (Test.spd) 的空白项的两个文件。 为了简化这个例子,用于 .sad 和 .spd 文件的相同文件名被用在了主机 2 上。你可以选择在每台主机上使用不同的文件名。
|
9.
| 在主机 2 上,编辑 .spd 文件,添加一个安全策略,以保护主机 1 和主机 2 之间所有流量的安全。 表 4 显示被添加到 Test.spd 里放在第一个项之前(Test.spd 里的第一个项没有被修改)的安全策略项。 表 4: 用户主机 2 的安全策略项
| | .spd 文件的域名称 | 示例值 | | | | | • | - FE80::2AA:FF:FE53:A92C
|
| | | | | | | | | | | | | | | | | | | | | | |
|
10.
| 在配置本安全策略的项结尾处输入一个分号。策略项必须以 递减的数字次序排列。
|
11.
| 在主机 2 上,编辑 .spd 文件,添加一个安全策略,以保护主 机 1 和主机 2 之间所有流量的安全。必须创建两个安全关联:一个用于到主机 1 的流量,另一个用于来自主机 2 的流量。 表 5 显示了被加到 Test.sad 的第一个 SA 项 (用于到主机 1 的流量)。 表 5:用于主机 2 的第一个安全关联
|
12.
| 在配置本 SA 的项结尾处输入一个分号。 下面的表格显示了被加到 Test.sad 的第二个 SA 项 (用于来自主机 1 的 流量)。 表 6:用于主机 2 的第二个安全关联
|
13.
| 在配置本 SA 的项结尾处输入一个分号。SA 项必须以递减的数字次序排列。
|
14.
| 在主机 2 上,创建一个文本文件,它包含一个文本字符串,用来对使用主机 1 创建的 SA 进行身份验证。在这个例子里,This is a test 这个内容被用来创建 Test.key。没有多余的字符、空白或者行。
|
15.
| 在主机 1 上,用 ipsec6 l 命令从 .spd 和 .sad 文件里添加已配置好的安全策略和 SA 。在这个例子里 ipsec6 l test 命令要在主机 1 上运行。
|
16.
| 在主机 2 上,用 ipsec6 l 命令从 .spd 和 .sad 文件里添加已配置好的安全策略和 SA 。在这个例子里 ipsec6 l test 命令要从主机 2 上运行。
|
17.
| 在主机 2 上,使用 ping6 命令来 ping 主机 1。 如果使用网络监视器来捕捉流量,那么你应该看得到 ICMPv6 Echo Request 和 Echo Reply 消息的交换,IPv6 头和 ICMPv6 头之间有一个身份验证头 (AH)。
|
返回页首IPv6 互联网络上不同子网节点之间的 IPv6 流量这个配置方案需要三台计算机(两台主机和一台路由器计算机)以及 IPv6 协议安装之外的对路由器的额外配置。这里有两个分隔的网段(也叫做链接或者子网),以及一个支持 IPv6 的路由器,用来转发(不同)网段的主机之间的数据包。
图 2 显示了由一台路由器连接的分隔网段上两台主机的配置方案。
图 2:由路由器连接的分隔网段上的两台主机查看完整的图像。在缺省情况下,Windows XP 的 IPv6 协议会给与已经安装的以太网络适配器对应的每个接口配置一个本地链接 IP 地址。本地链接地址具有前缀 FE80::/64。IPv6 地址的最后 64 位是接口标识符,它派生自网络适配器的 48 位 MAC 地址。有了本地链接地址,主机 A 和主机 B 就能够与路由器计算机进行通讯,但是无法相互通讯。
在本配置方案里,多出的本地站点前缀由路由器来公布。这个本地站点前缀被主机 A 和主机 B 用来自动地配置本地站点地址,后者派生自网络适配器的 48 位 MAC 地址。在主机 A 和主机 B 具有了本地站点地址之后,他们就可以相互通讯了。
在路由器计算机上,输入
ipv6 if 命令来取得两个网络适配器的接口索引号。子网 1 是 主机 A 连接的网段。子网 2 是主机 B 连接的网段。
在你取得了接口索引号之后,在路由器计算机上输入下面的命令:
ipv6 ifcSubnet1InterfaceIndexforwards advertisesipv6 ifc Subnet2InterfaceIndex forwards advertisesipv6 rtu FEC0:0:0:1::/64 Subnet1InterfaceIndex publishipv6 rtu FEC0:0:0:2::/64 Subnet2InterfaceIndex publish在这里:
| • | Subnet1InterfaceIndex 是路由器计算机上连接到子网 1 的网络适配器的接口索引
|
| • | Subnet2InterfaceIndex 是路由器计算机上连接到子网 2 的网络适配器的接口索引
|
例如,如果路由器计算机子网 1 和子网 2 接口索引分别是 4 和 5,那么命令就是:
ipv6 ifc 4 forwards advertisesipv6 ifc 5 forwards advertisesipv6 rtu FEC0:0:0:1::/64 4 publishipv6 rtu FEC0:0:0:2::/64 5 publish你应该等待 30 秒钟,以便路由器计算机在子网 1 和子网 2 上公布新的本地站点前缀,主机 A 和主机 B 会根据这些前缀自动地配置本地站点地址。
在主机 A 上,输入
ipv6 if 命令,以便根据本地站点前缀 FEC0:0:0:1::/64 检查以太网适配的新 IPv6 地址。在主机 B
ipv6 if 命令,以便根据本地站点前缀 FEC0:0:0:2::/64 检查以太网适配的新 IPv6 地址。
在主机 A 上,使用 ping6 命令和主机 B 的本地站点地址来 ping 主机 B。例如,如果主机 B 的本地站点地址是 FEC0::2:260:97FF:FE02:6EA5,那么命令就是
ping6 FEC0::2:260:97FF:FE02:6EA5。
返回页首IPv4 互联网络不同子网上节点之间的 IPv6 流量Windows XP 的 IPv6 协议提供了下列方法,供 IPv4 互联网络不同子网的 IPv6 节点进行通讯:
| • | 使用与 IPv4 兼容的地址
|
| • | 站内自动隧道寻址协议 (ISATAP) 地址
|
| • | 使用 6over4 6over4 要求 IPv4 互联网络能够进行多路广播。由于大多数 IPv4 网络都不能进行多路广播,所以 6over4 被极少使用。更多信息请查看 RFC 2529。
|
| • | 使用 6to4 尽管 6to4 是主要设计用来允许在单独的、能够使用 IPv6 的 6to4 站点之间进行通讯的,但是正在使用 Windows XP 的 IPv6 协议的 6to4 站点也可以使用 6to4 地址和 6to4 隧道来进行跨越 IPv4 intranet 或者 Internet 的通讯。更多信息见本白皮书 《跨跃 Internet (6to4) 不同站点的节点之间的 IPv6 流量》章节。
|
在上面所有的情况里,尽管 IPv6 流量正在被当作 IPv4 的负载携带(把 IPv4 基础结构当作 IPv6 的链路层处理),但是它仍然是 IPv6 流量。使用与这些方法相关地址的应用程序正在使用相同的 Windows 套接字函数,就好像全球 IPv6 地址和 IPv6 基础结构正在被使用一样。你可以用这些方法来测试你应用程序的 IPv6 功能,而不需要在你的组织里部署 IPv6 路由器。
使用与 IPv4 兼容的地址与 IPv4 兼容的地址派生自 IPv4 的公共地址,它为在现有 IPv4 Internet 基础结构上连接 IPv6 主机或者站点提供了方法。在使用与 IPv4 兼容的地址时,IPv6 流量不需要 IPv6 路由器的加入。其流量被封装在 IPv4 头里。
图 3 所显示的配置方案是分隔网段的两个节点正在使用与 IPv4 兼容的地址跨越 IPv4 路由器进行通讯。
图 3:使用与 IPv4 兼容的地址跨越 IPv4 路由器进行通讯在缺省情况下,Windows XP 的 IPv6 协议会自动地为自动隧道伪接口(接口索引 2)上的 IPv4 公共地址配置与 IPv4 兼容的地址。与 IPv4 兼容的地址形式是 ::
w.x.y.z,在这里
w.x.y.z 是一个分配给计算机网络接口的 IPv4 公共地址。示例见本白皮书《使用本地链接地址的单独子网》章节的
ipv6 if 命令的输出。Windows XP 的 IPv6 协议还会自动地创建一个 ::/96 路由,利用自动隧道伪接口(接口索引 2)来转发所有与 IPv4 地址兼容的流量。被这台主机转发到与 IPv4 兼容的目的地的所有流量都被用 IPv4 头封装起来。
当你向与 IPv4 兼容的地址发送流量的时候,流量被从与 IPv4 兼容的地址发送出来,并用 IPv4 头封装起来。IPv4 头里的 Protocol 字段被设置成 41,表明该负载是一个 IPv6 数据包。IPv4 数据包允许流量跨跃 IPv4 基础结构流动。嵌入到 IPv6 头里与 IPv4 兼容的来源和目的地地址里的 IPv4 头成为了 IPv4 头里 IPv4 的来源和目的地地址。
例如,当主机 A (所配置的 IPv4 地址是 131.107.41.17)使用与 IPv4 兼容的地址把 IPv6 流量发送到主机 B (所配置的 IPv4 地址是 157.60.15.93)的时候,用于 IPv4 和 IPv6 头的来源和目的地地址见表 7。
表 7:与 IPv4 兼容的地址示例 | | 字段 | 值 |
Ipv6 源地址
| ::131.107.41.17
|
IPv6 目的地地址
| ::157.60.15.93
|
IPv4 源地址
| 131.107.41.17
|
IPv4 目标地址
| 157.60.15.93
|
IPv4 路由结构会根据 IPv4 目标地址 157.60.15.93 把数据包从主机 A 转发到 主机 B。在被主机 B 接收之后,IPv4 数据包负载(IPv6 数据包)被传递给 IPv6 协议。
要测试连接性,就要使用 ping6 命令。例如,主机 A 会使用下面的命令以及主机 B 与 IPv4 兼容的地址 ping 主机 B。
ping6 ::157.60.15.93使用站内自动隧道寻址协议地址用于在 IPv4 网络上 IPv6/IPv4 节点之间通讯的另一种地址分配和隧道机制在 Internet 草案《站内自动隧道寻址协议 (ISATAP)》 (draft-ietf-ngtrans-isatap-0
x.txt) 里有描述。这些地址叫做 ISATAP 地址。ISATAP 地址使用本地管理接口 ID ::0:5EFE:
w.x.y.z ,在这里:
| • | 0:5EFE 部分由一个分配给互联网地址分配机构 (IANA) 的组织单位标识符 (OUI) 和一个表示嵌入式 IPv4 地址 (PE) 的类型组成。
|
| • | 而 w.x.y.z 部分是一个任意的 IPv4 单路广播地址,包括公共地址和私有地址。
|
ISATAP 的接口 ID 可以与任何符合 IPv6 单点广播地址的 64 位前缀组合起来。这包括本地链接地址前缀 (FE80::/64)、本地站点前缀和全球前缀(包括 6to4 前缀)。
就像与 IPv4 兼容的地址、6over4 地址和 6to4 地址一样,ISATAP 包含一个嵌入式 IPv4 地址,在使用 ISATAP 寻址的 IPv6 流量通过隧道跨越 IPv4 网络的时候,这个嵌入式 IPv4 地址被用来确定 IPv4 头里是来源还是目的地 IPv4 地址。
在缺省情况下,Windows XP 的 IPv6 协议会在分配给节点的每个 IPv4 地址的自动隧道伪接口(接口索引 2)上自动配置一个 ISATAP 地址 FE80::5EFE:
w.x.y.z 。这个本地链接 ISATAP 地址允许两台主机通过使用对方的 ISATAP 地址在 IPv4 网络上通讯。示例请见本白皮书《使用本地链接地址的单独子网》章节
ipv6 if 命令的输出。
例如,主机 A 的 IPv4 地址是 10.40.1.29 ,而主机 B IPv4 地址是 192.168.41.30。当 Windows XP 的 IPv6 协议启动的时候,主机 A 就会被自动地配置 ISATAP 地址 FE80::5EFE:10.40.1.29,而主机 B 被会被自动地配置 ISATAP 地址 FE80::5EFE:192.168.41.30。当主机 A 使用主机 B 的ISATAP 地址把 IPv6 流量发送给主机 B 的时候,用于 IPv4 和IPv6 头的来源和目的地地址见表 8。
表 8:ISATAP 地址举例 | | 字段 | 值 |
Ipv6 源地址
| FE80::5EFE:10.40.1.29
|
IPv6 目的地地址
| FE80::5EFE:192.168.41.30
|
IPv4 源地址
| 10.40.1.29
|
IPv4 目的地地址
| 192.168.41.30
|
要测试连接性,就要使用 ping6 命令。例如主机 A 要使用下面的命令并利用主机 B 的本地链接 ISATAP 地址来 ping 主机 B:
ping6 FE80::5EFE:192.168.41.30%2由于 ping6 命令的目的地是一个本地链接地址,所以该命令的 %
ScopeID 部分被用来指定流量发出接口的接口索引。在这里,%2 表明是接口 2,它是分配给主机 A 上自动隧道伪接口的接口索引。
使用 ISATAP 路由器使用本地链接 ISATAP 地址允许同一个逻辑子网(IPv4 网络)上的 IPv6/IPv4 主机相互进行通讯,但是不能与其它子网上 IPv6 地址的主机进行。要使用 ISATAP 派生出的全球地址与逻辑子网之外的主机进行通讯,使用 ISATAP 的 IPv6 主机就必须将其数据包通过隧道发送到 ISATAP 路由器。
ISATAP 路由器是能够进行以下操作的 IPv6 路由器:
| • | 在一个逻辑子网(IPv4 网络)上的 ISATAP 主机和其它子网上的主机之间转发数据包。 其它子网可以是其他的 IPv4 网络(比如是组织网络或者 IPv4 Internet 的一部分)或者是一个本地 IPv6 路由域里的子网(比如是组织的 IPv6 网络或者 IPv6 Internet 的一部分)。
|
| • | 作为 ISATAP 主机默认的路由器。
|
| • | 公布地址前缀,以识别 ISATAP 主机所在的逻辑子网。ISATAP 使用被公布的地址前缀来配置本地站点和全球 ISATAP 地址。
|
当 ISATAP 主机接收到来自一个 ISATAP 路由器的路由器公布时,缺省的路由 (::/0) 被使用自动隧道伪接口添加,同时下一跳地址被设置成为与 ISATAP 路由器的逻辑子网接口相对应的本地链接 ISATAP 地址。当目的地是逻辑子网之外的数据包被发送的时候,它们就通过隧道被发送到 ISATAP 路由器,这个路由器与用 IPv4 网络(包含 ISATAP 路由器和 ISATAP主机)定义的逻辑子网上的 ISATAP 路由接口相对应。这个路由器然后就会转发 IPv6 数据包。
对于 Windows XP 的 IPv6 协议,ISATAP 路由器 intranet IPv4 地址的配置可以通过下面的途径获得:
| • | _ISATAP 名称到 IPv4 地址的成功解析。
|
| • | 用 ipv6 rlu 命令。
|
解析 _ISATAP 名称当 Windows XP 的 IPv6 协议启动的时候,它会尝试使用普通的 TCP/IP 主机和 NetBIOS 名解析技术把 _ISATAP 解析成一个 IPv4 地址。如果成功的话,主机会发送一个用 IPv4 封装的路由器请求 (Router Solicitation) 消息到 ISATAP 路由器。ISATAP 路由器会用一个用 IPv4 封装的单点广播路由器公布消息进行响应,公布它是默认的路由器,并含有用于自动配置集于 ISATAP 地址的前缀。
要确保对 _ISATAP 解析的成功,你可以采取下面的步骤:
| • | 如果 ISATAP 路由器是一台运行 Windows XP 的计算机,那么就把这台计算机命名为 _ISATAP ,它就会自动地在 DNS 和 WINS 里注册正确的记录。
|
| • | 在 DNS 的相对应域里手动创建一条 _ISATAP 地址 (A) 记录。例如对于 example.microsoft.com domain,为 _ISATAP.example.microsoft.com 创建一条 A 记录。
|
| • | 在 WINS 里,为 NetBIOS 名 “_ISATAP <00>” 创建一条静态的 WINS 记录。
|
| • | 把下面的项加到需要解析 _ISATAP 名称的 Hosts 文件里: IPv4Address _ISATAP
|
| • | 把下面的项加到需要解析 _ISATAP 名称的 Lmhosts 文件里: IPv4Address _ISATAP
|
使用 ipv6 rlu 命令尽管 _ISATAP 名称的自动解析是配置 ISATAP 路由器 IPv4 地址的推荐方法,但是你可以用
ipv6 rlu 命令进行手动配置。这条命令的句法是:
ipv6 rluInterfaceIndexIPv4Address在这里
InterfaceIndex 是自动隧道伪接口(一般都被设置为 2)的接口索引,而
IPv4Address 是 ISATAP 路由器 intranet 接口的 IPv4 地址。例如,如果 ISATAP 路由器的 IPv4 地址是 192.168.39.1,那么命令就是
ipv6 rlu 2 192.168.39.1一旦配置好了,主机就会向 ISATAP 路由器发送一条用 IPv4 封装的路由器请求消息。ISATAP 路由器会用一个用 IPv4 封装的单点广播路由器公布消息进行响应,这条消息含有一个前缀,用于自动配置基于 ISATAP 的地址。只有当主机的子网上没有 IPv6 路由器的时候才需要这个额外的配置。
注意: 由 ipv6 rlu 命令作出的配置改变不是持久的,所以计算机每次启动的时候都需要执行这条命令。
返回页首跨跃 Internet (6to4) 不同站点的节点之间的 IPv6 流量6to4 是一项隧道技术,在 RFC 3056 里有描述。在使用 6to4 的时候,IPv6 流量在 IPv4 互联网络上(例如 Internet)发送之前,它会被一个 IPv4 头封装起来。
6to4 使用 2002:
WWXX:
YYZZ::/48 的全球地址前缀,在这里
WWXX:
YYZZ 是全球地址的 Next Level Aggregator (NLA) 部分和公共 IPv4 地址的十六进制冒号表示 (
w.x.y.z),后者被分配给站点或者主机。6to4 主机的完整 6to4 地址是 2002:
WWXX:
YYZZ:[
SLA ID]:[
Interface ID]。
RFC 3056 定义了下面的术语:
| • | 6to4 主机 用至少一个 6to4 地址配置的 IPv6 主机。
|
| • | 6to4 路由器 IPv6/IPv4 路由器,用于转发站点内部的 6to4 主机与 IPv4 互联网络(例如 Internet)上其它 6to4 路由器或者 6to4 中继路由器之间用 6to4 寻址的流量。
|
| • | 6to4 中继路由器 IPv6/IPv4 路由器,用于转发 Internet 上 6to4 路由器和 6bone 上主机之间用 6to4 寻址的流量。
|
当你使用 6to4 主机、6to4 站点内部的IPv6 路由结构、站点边界的 6to4 路由器,以及 6to4 中继路由器的时候,下面的通讯类型是可能的:
| • | 6to4 主机可以和同一站点内部的另一台 6to4 主机进行通讯。 可以通过 IPv6 路由基础结构来使用这种类型的通讯,这个基础结构能够让流量到达站点里所有的主机。
|
| • | 6to4 主机可以跨跃 IPv4 网络与其它站点里的 6to4 主机进行通讯。 当一台 6to4 主机把准备发往另一个站点里 6to4 主机的 IPv6 流量发到了本地站点的 6to4 路由器的时候,这种类型的通讯就会发生。本地站点的 IPv6 路由器会用 IPv4 头封装 IPv6 流量,并把它发送到 Internet 上目的地站点的 6to4 路由器上。目的地站点的 6to4 路由器会删掉 IPv4 头,并通过目的地站点的 IPv6 路由基础结构把 IPv6 数据包转发给 正确的 6to4 主机。
|
| • | 6to4 主机能够与 6bone 上的主机进行通讯。 当一台 6to4 主机把准备发往 6bone 主机的 IPv6 流量发到本地站点的 6to4 路由器的时候,这种类型的通讯就会发生。本地站点的 IPv6 路由器会用 IPv4 头封装 IPv6 流量,并把它发送到同时连接 IPv4 Internet 和 6bone 的 6to4 中继路由器上。6to4 中继路由器会删掉 IPv4 头,并通过 6bone 的 IPv6 路由基础结构把 IPv6 数据包转发给正确的 6bone 主机。
|
所有这些类型的通讯都使用 IPv6 流量,而不需要取得到 6bone 的直接连接,也不需要从 Internet 服务提供商 (ISP) 处获得 IPv6 全球地址前缀。
对 6to4 主机和路由器的支持由 Windows XP 的 IPv6 协议里的 6to4 服务提供。6to4 服务:
| • | 对于分配给计算机(网络)接口的所有公共 IPv4 地址,会自动地为 6to4 隧道伪接口(接口索引 3)配置 6to4 地址。示例见本白皮书《使用本地链接地址的单独子网》章节 ipv6 if 命令的输出。
|
| • | 如果主机是使用公共 IPv4 地址配置的,那么就会自动地创建一个 2002::/16 路由,并用 6to4 隧道伪接口(接口索引 3)转发所有的 6to4 流量。所有由这台主机转发到 6to4 目的地的流量都会用 IPv4 头封装起来。
|
| • | 自动地进行域名系统 (DNS) 查询,查找 Internet 上 6to4 中继路由器的 IPv4 地址。你可以使用 netsh interface ipv6 6to4 set relay 命令来指定所要查询的 DNS 名称。
|
通过使用自动的 6to4 服务配置,任何运行着 Windows XP 的 IPv6 协议并配置有 IPv4 公共地址的主机都会被自动地配置成为 6to4 主机。6to4 主机能够通过自己的隧道到达其它站点上的 6to4 主机或者 6bone 上的主机。
如果被分配了公共 IPv4 地址的接口上的 Internet 连接共享 (ICS) 被激活,那么 6to4 服务就会:
| • | 激活私有接口上的路由功能。
|
| • | 发送含有 6to4 地址前缀的路由器公布,这些前缀都基于公共接口的公共 IPv4 地址。6to4 地址前缀里的 SLA ID 被设置成发送公布的接口的接口索引。
|
通过激活 ICS,你可以把运行着 Windows XP 的IPv6 协议的计算机当作一台 6to4 路由器使用,它能够把 6to4 流量封装和转发给其它的 6to4 主机或者 Internet 上的网站,并把 6bone 流量转发给 Internet 上的 6to4 中继路由器。
图 4 显示了 6to4 如何被用来在两个 6to4 站点之间进行通讯。
图 4:使用 6to4 在两个 6to4 站点之间进行通讯每个站点都使用一台运行着 Windows XP 的计算机,而且其公共接口上的 ICS 也被激活,以创建 6to4 路由器。在私有网段上运行着 Windows XP 的主机计算机会接收路由器公布,后者由其站点的 6to4 路由器发送,并包含一个 6to4 地址前缀。其结果是,两个 6to4 主机可以通过使用 6to4 地址在 Internet 上进行通讯。
返回页首连接到 6bone连接到 6bone 的最简单方法是使用 Windows XP 的 IPv6 协议自带的 6to4 服务。你可以把 6to4 服务当作默认的 6to4 主机使用,也可以把它当作 6to4 路由器使用,只要把连接到 Internet 的计算机上的 Internet 连接共享 (ICS) 激活就可以了。 6to4 服务会自动地为自己配置一个正确的 6to4 地址,并使用 Internet 上特定的 6to4 中继路由器。更多信息查看本白皮书《跨跃 Internet (6to4) 不同站点的节点之间的 IPv6 流量》这一章节。图 5 显示的配置方案是一台主机正在使用 6to4 通过 6to4 中继路由器在 6bone 上通讯。
图 5:使用 6to4 中继路由器与 6bone 进行通讯有了 6to4,你可以 ping 6bone 上的其它计算机(例如,ping6 ipv6.research.microsoft.com)。IPv6 Web 网站 (
http://www.ipv6.org) 提供了一个列表,列出了可以使用 IPv6 在 6bone 上进行通讯的服务器。此外,6bone 注册表也包含有其他 6bone 计算机的名称。
有些 6bone 站点可能无法访问。你可能还会碰到连接性的问题。
tracert6 -d Address 命令会在这两种情况下提供帮助。参数
-d 用来防止对中间路由器地址的反向 DNS 查找。关于 6bone 的更多信息,见 6bone 的 Web 网站 (
http://www.6bone.net/)。
返回页首建立 IPv6 测试实验室本章将提供信息,告诉你如何利用五台计算机建立一个测试实验室,以配置和测试 Windows XP 的 IPv6 协议。这些指导是设计用来带你完成一系列任务,让你了解 IPv6 协议及其相关的功能的。除了一系列任务,这些指导还允许你创建一个能够正常工作的 IPv6 配置方案。你可以利用这一配置方案学习和体验 IPv6 的特性和功能,并帮助开发用于 IPv6 的应用程序,或者修改现有的 IPv4 应用程序,使其能够同时工作在 IPv4 和 IPv6 上。
建立基础结构IPv6 测试实验室的基础结构由五台进行下列服务的计算机组成:
| • | 一台运行着 Windows 2000 Server 的计算机,它被用作域名系统 (DNS) 服务器。这台计算机叫做 DNS1。
|
| • | 一台运行着 Windows XP 的计算机,它被用作客户端。这台计算机叫做 CLIENT1。
|
| • | 一台运行着 Windows XP 的计算机,它被用作路由器。这台计算机叫做 ROUTER1。
|
| • | 一台运行着 Windows XP 的计算机,它被用作路由器。这台计算机叫做 ROUTER2。
|
| • | 一台运行着 Windows XP 的计算机,它被用作客户端。这台计算机叫做 CLIENT2。
|
图 6 显示了这个 IPv6 测试实验室的配置方案。
图 6:IPv6 测试实验室的配置方案查看完整的图像。这里有三个网段:
| • | 一个网段叫做 Subnet 1,它使用私有 IP 网络 ID 10.0.1.0/24 和本地站点子网 FEC0:0:0:1::/64。
|
| • | 一个网段叫做 Subnet 2,它使用私有 IP 网络 ID 10.0.2.0/24 和本地站点子网 FEC0:0:0:2::/64。
|
| • | 一个网段叫做 Subnet 3,它使用私有 IP 网络 ID 10.0.3.0/24 和本地站点子网 FEC0:0:0:3::/64。
|
每个子网上的所有计算机都连接到一个单独的公用集线器或者二层交换机上。两台路由器计算机,ROUTER1 和 ROUTER2,每台都安装有两个网络适配器。
对于 IPv4 的配置方案,每台计算机都被手动配置了正确的 IP 地址、子网掩码、缺省网关,以及 DNS 服务器 的 IP 地址。动态主机配置协议 (DHCP) 和 Windows Internet 名字服务 (WINS) 服务器都没有被使用。对于 IPv6 的配置方案,本地链接地址一开始就被使用了。
下面的章节将描述测试实验室里的每台计算机是如何配置的。为了重新建立这个测试实验室,请按所列的顺序配置计算机。
注意: 下面的指导用于通过最少数量的计算机来配置一个 IPv6 测试实验室。这里需要单独的计算机来分隔网络上提供的服务,并清楚地显示所希望的服务。这个配置方案既不是设计用来反映最佳做法,也不是设计用来反映生产网络所希望的或者所推荐的配置的。这个配置方案,包括地址和其他所有配置参数,在设计上只能工作在一个分隔的测试实验室网络上。
DNS1DNS1 是一台运行着 Windows 2000 Server 的计算机。它为 testlab.microsoft.com DNS 域提供 DNS 服务器服务。要为这个服务配置 DNS1,就要进行下列步骤:
1.
| 把 Windows 2000 Server 作为一台单独的服务器安装。设置管理员密码。
|
2.
| 重新启动之后,作为管理员登录。
|
3.
| 安装域名系统 (DNS) 服务器服务。
|
4.
| 把 TCP/IP 协议配置成 IP 地址 10.0.1.2、子网掩码 255.255.255.0、缺省的网关 10.0.1.1。
|
CLIENT1CLIENT1是一台运行着 Windows XP 的计算机,它被用作客户端。要把 CLIENT1 配置成一台客户端计算机,就要进行下列步骤:
1.
| 在 CLIENT1 上,把 Windows XP 安装成工作组计算机。设置管理员密码。
|
2.
| 重新启动之后,作为管理员登录。
|
3.
| 使用 ipv6 install 命令安装 IPv6 协议。
|
4.
| 把 TCP/IP 协议配置成 IP 地址 10.0.1.3、子网掩码 255.255.255.0、默认网关 10.0.1.1。
|
ROUTER1ROUTER1 是一台运行 Windows XP 的计算机,它被用作子网 1 和子网 2 之间的路由器。要把 ROUTER1 配置成为路由器,就要进行下列步骤:
1.
| 在 ROUTER1 上,把 Windows XP 安装成工作组计算机。设置管理员密码。
|
2.
| 重新启动之后,作为管理员登录。
|
3.
| 使用 ipv6 install 命令安装 IPv6 协议。
|
4.
| 在控制面板的网络连接里,把连接到 Subnet 1 的 LAN 连接更名为 "Subnet 1 Connection",把连接到 Subnet 2 的本地连接更名为 "Subnet 2 Connection"。
|
5.
| 对于 Subnet 1 Connection,把 TCP/IP 协议配置成 IP 地址 10.0.1.1、子网掩码 255.255.255.0、DNS 服务器 IP 地址 10.0.1.2。
|
6.
| 对于 Subnet 2 Connection,把 TCP/IP 协议配置成 IP 地址 10.0.2.1、子网掩码 255.255.255.0、默认网关 10.0.2.2。
|
7.
| 运行注册表编辑器 (Regedit.exe) 把 HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet Services\Tcpip\Parameters\IPEnableRouter 设置成 1。重新启动计算机。这就会激活 Subnet 1 和 Subnet 2 之间的 IPv4 路由。
|
ROUTER2ROUTER2 是一台运行 Windows XP 的计算机,它被用作 Subnet 2 和 Subnet 3 之间的路由器。要把 ROUTER2 配置成为路由器,就要进行下列步骤:
1.
| ROUTER2 上,把 Windows XP 安装成工作组计算机。设置管理员密码。
|
2.
| 重新启动之后,作为管理员登录。
|
3.
| 使用 ipv6 install 命令安装 IPv6 协议。
|
4.
| 在控制面板的网络连接里,把连接到子网2 的 LAN 连接更名为 "Subnet 2 Connection",把连接到 Subnet 3 的 LAN 连接更名为 "Subnet 3 Connection"。
|
5.
| 对于 Subnet 2 Connection,把 TCP/IP 协议配置成 IP 地址 10.0.2.2、子网掩码 255.255.255.0、默认网关 10.0.2.1。
|
6.
| 对于 Subnet 3 Connection,把 TCP/IP 协议配置成 IP 地址 10.0.3.1、子网掩码 255.255.255.0。
|
7.
| 运行注册表编辑器 (Regedit.exe) 把 HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet Services\Tcpip\Parameters\IPEnableRouter 设置成 1。重新启动计算机。这就会激活 Subnet 2 和 Subnet 3 之间的 IPv4 路由。
|
CLIENT2CLIENT2 是一台运行着 Windows XP 的计算机,它被用作客户端。要把 CLIENT2 配置成一台客户端计算机,就要进行下列步骤:
1.
| CLIENT2 上,把 Windows XP 安装成工作组计算机。设置管理员密码。
|
2.
| 重新启动之后,作为管理员登录。
|
3.
| 使用 ipv6 install 命令安装 IPv6 协议。
|
4.
| 把 TCP/IP 协议配置成 IP 地址 10.0.3.2、子网掩码 255.255.255.0、默认网关 10.0.3.1。
|
5.
| 使用 ping 10.0.1.3 命令来检查 IPv4 路由基础结构的完整性。这将检查 IPv4 数据包能否在子网 3 的 CLIENT2 和子网 1 的 CLIENT1 之间转发。
|
IPv6 测试实验室的任务下列任务被设计用来让你通过使用测试实验室基础结构来了解常见的 IPv6 配置。
| • | 本地链接 ping
|
| • | 创建静态的路由基础结构
|
| • | 使用名称解析
|
| • | 使用临时地址
|
本地链接 ping要使用本地链接地址 ping 一个节点,并查看在网络邻居和路由缓冲区里创建的项,就要完成下列步骤:
1.
| 在 ROUTER1 上,输入 ipv6 if 命令获取 Subnet 1 Connection 这个接口的本地链接地址。
|
2.
| 在 CLIENT1 上,输入 ipv6 if 命令获取本点链接地址和本地连接接口的接口索引。
|
3.
| 在 CLIENT1 上,输入下面的命令来 ping Subnet 1 上 ROUTER1 接口的本地链接地址: ping6 ROUTER1LinkLocalAddress%InterfaceIdentifier 例如,如果 Subnet 1 上 ROUTER1 接口的本地链接地址是 FE80::2AA:FF:FE9D:10C5,而 CLIENT1 上本地连接接口的接口索引是 3 ,那么命令就是: ping6 FE80::2AA:FF:FE9D:10C5%3
|
4.
| 在 CLIENT1 上,输入下面的命令: ipv6 nc 来查看 CLIENT1 网络邻居缓冲区里用于 ROUTER1 的项。你应该会看到一个用于 ROUTER1 的本地链接地址的项。
|
5.
| 在 CLIENT1 上,输入下面的命令 ipv6 rc 来查看 CLIENT1 路由缓冲区里用于 ROUTER1 的项。
|
6.
| 在 CLIENT1 上,输入下面的命令: ipv6 rt 来查看 CLIENT1 路由表里的项。
|
创建一个静态的路由基础结构要配置一个使用 IPv6 流量就能够访问到所有测试实验室节点(除了 DNS1)的静态路由基础结构,你需要完成下面的步骤:
1.
| 在 ROUTER1 上,输入 ipv6 if 命令获取 Subnet 1 Connection 和 Subnet 2 Connection 这两个接口的本地链接地址和接口索引号。
|
2.
| 在 ROUTER1 上,输入下面的命令 ipv6 ifc Subnet1InterfaceIndex forwards advertises ipv6 ifc Subnet2InterfaceIndex forwards advertises ipv6 rtu FEC0:0:0:1::/64 Subnet1InterfaceIndex publish ipv6 rtu FEC0:0:0:2::/64 Subnet2InterfaceIndex publish ipv6 rtu ::/0 Subnet2InterfaceIndex/ROUTER2AddressOnSubnet2 publish 在这里:
| • | Subnet1InterfaceIndex 是 ROUTER1 的 Subnet 1 Connection 的接口索引。
| | • | Subnet2InterfaceIndex 是 ROUTER1 的 Subnet 2 Connection 的接口索引。
| | • | ROUTER2AddressOnSubnet2 是分配给 ROUTER2 的 Subnet 2 Connection 接口的本地链接地址。
| 例如,如果 ROUTER1 的 Subnet 1 Connection 的接口索引是 4,Subnet 2 Connection 的接口索引是5,而 ROUTER2 的 Subnet 2 Connection 接口的本地链接地址是 FE80::2AA:FF:FE87:4D5C,那么命令就应该是: ipv6 ifc 4 forwards advertises ipv6 ifc 5 forwards advertises ipv6 rtu FEC0:0:0:1::/64 4 publish ipv6 rtu FEC0:0:0:2::/64 5 publish ipv6 rtu ::/0 5/FE80::2AA:FF:FE87:4D5C publish
|
3.
| 在 ROUTER2 上,输入 ipv6 if 命令来获取 Subnet 2 和 Subnet 3 两个接口的本地链接地址和接口索引号。
|
4.
| 在 ROUTER2 上,输入下面的命令: ipv6 ifc Subnet2InterfaceIndex forwards advertises ipv6 ifc Subnet3InterfaceIndex forwards advertises ipv6 rtu FEC0:0:0:2::/64 Subnet2InterfaceIndex publish ipv6 rtu FEC0:0:0:3::/64 Subnet3InterfaceIndex publish ipv6 rtu ::/0 Subnet2InterfaceIndex/ROUTER1AddressOnSubnet2 publish 例如,如果 子网 2 的接口索引 4,子网 3 的接口索引 5,而 ROUTER1 的子网 2 接口的本地链接地址是 FE80::2AA:FF:FE9A:203F,那么命令就应该是: ipv6 ifc 4 forwards advertises ipv6 ifc 5 forwards advertises ipv6 rtu FEC0:0:0:2::/64 4 publish ipv6 rtu FEC0:0:0:3::/64 5 publish ipv6 rtu ::/0 4/FE80::2AA:FF:FE9A:203F publish
|
5.
| 在 CLIENT1 上,输入 ipv6 if 命令来查看 LAN 接口上的新地址,这个地址是根据本地站点前缀 FEC0:0:0:1::/64 产生的。
|
6.
| 在 CLIENT1 上,输入 ipv6 rt 命令来查看用于 FEC0:0:0:1::/64、 FEC0:0:0:2::/64 和 ::/0 的新路由。
|
7.
| 在 CLIENT2 上,输入 ipv6 if 命令来查看局域网接口上的新地址,这个地址是根据本地站点前缀 FEC0:0:0:3::/64 产生的。
|
8.
| 在 CLIENT2 上,输入 ipv6 rt 命令来查看用于 FEC0:0:0:2::/64、 FEC0:0:0:3::/64 和 ::/0 的新路由。
|
9.
| 在 CLIENT1 上,输入下面的 ping6 命令来 ping CLIENT2 的本地站点地址: ping6 CLIENT2SiteLocalAddress 在 CLIENT1 上,输入下面带有 -d 选项的 tracert6 命令来跟踪 CLIENT1 和 CLIENT2 之间的路由: tracert6 -d CLIENT2SiteLocalAddress 在 tracert6 显示的结果里,你可以查看与 ROUTER1 对应的 Subnet 1 Connection 的本地链接地址,以及与ROUTER2 对应的 Subnet 2 Connection 的本地链接地址。
|
10.
| 在 ROUTER1 上,输入下面的命令: ipv6 nc 来查看网络邻居缓冲区里用于 CLIENT1 和 CLIENT2 的项。 ipv6 rc 来查看 ROUTER1 缓冲区里用于 DNS1 和 ROUTER2 的项。
|
注意: Windows XP 的 IPv6 协议会使用路由公布消息里的路由信息选项把 off-link 前缀作为特定的路由公布。这些特定的路由会成为接收主机路由表里的路由。
使用名称解析要配置 DNS 和本地的 Hosts 文件,以便把名称解析成为 IPv6 地址,就要完成下面的步骤:
1.
| 在 DNS1 上,创建一个标准的正向搜索区,名字是 testlab.microsoft.com。
|
2.
| 创建一个用于 CLIENT2 的 AAAA (四 A)记录,并用 IPv6 Host 资源记录类型为其本地站点 IPv6 地址建立 DNS 名称 client2.testlab.microsoft.com。 例如,如果 CLIENT2 的本地站点地址是 FEC0::3:260:8FF:FE52:F9D8,那么 AAAA 资源记录就要像下面这样配置: Host: client2 IP version 6 host address: FEC0:0:0:3:260:8FF:FE52:F9D8
|
3.
| 在 CLIENT1 上,输入下面的命令: ping6 client2.testlab.microsoft.com 通过向 DNS1 发送 DNS 查询,名称 client2.testlab.microsoft.com 被解析成其本地站点地址。
|
4.
| 在 CLIENT2 上,在 Hosts 文件(位于 SystemRoot\System32\Drivers\Etc folder )里建立下面的项: client1.testlab.microsoft.com Client1SiteLocalAddress 例如,CLIENT1 的本地站点地址是 FEC0::1:260:8FF:FE2A:15F2,那么 Hosts 文件里的项是: client1.testlab.microsoft.com FEC0::1:260:8FF:FE2A:15F2
|
5.
| 在 CLIENT2 上,输入下面的命令: ping6 client1.testlab.microsoft.com 通过使用本地的 Hosts 文件,名称 client1.testlab.microsoft.com 被解析成为其本地站点地址。
|
注意: 域名 testlab.microsoft.com 在这里只是个例子。你可以在自己测试实验室的配置方案里使用任何域名。
使用临时地址要使用用于全球地址前缀的临时地址(也叫做匿名地址),就要完成下面的步骤:
1.
| 在 ROUTER1 上,输入下面的命令: ipv6 rtu 3FFE:FFFF:0:1::/64 Subnet1InterfaceIndex publish 在这里 Subnet1InterfaceIndex 是 ROUTER1 的 Subnet 1 Connection 的接口索引。
|
2.
| 例如,如果 ROUTER1 的 Subnet 1 Connection 接口索引是 4,那么命令就是: ipv6 rtu 3FFE:FFFF:0:1::/64 4 publish
|
3.
| 在 CLIENT1 上,输入 ipv6 if 命令来查看本地连接接口的新地址,这个地址是根据全球前缀 3FFE:FFFF:0:1::/64 产生的。 应该有两个地址是根据 3FFE:FFFF:0:1::/64 这个前缀产生的。一个地址使用了一个根据接口的 EUI-64 地址产生的接口标识符。另一个地址是一个临时地址,来自于随机派生的接口标识符。
|
4.
| 在 ROUTER1 上,输入下面的命令 ipv6 rtu 3FFE:FFFF:0:1::/64 Subnet1InterfaceIndexlife 0 在这里,Subnet1InterfaceIndex 是 ROUTER1 的 Subnet 1 Connection 的接口索引。 例如,如果子网 1 的接口索引是 4,那么命令就是: ipv6 rtu 3FFE:FFFF:0:1::/64 4 life 0 这条命令会把全球前缀从 ROUTER1 的路由表里删掉,所以可以防止 ROUTER1 把它在其接口上公布。
|