本文介绍如何在 Microsoft Windows Server 2003 企业版环境中安装和配置 IP 版本 6(IPv6)。
适用于: Windows Server 2003原始 KB 数: 325449
总结
自 1981 年 RFC 791 发布以来,当前版本的 IP(称为 IP 版本 4 或 IPv4)并没有发生重大更改。 IPv4 已被证明是可靠、易于实现和可互操作的,并经测试,即将网络间扩展到当今 Internet 大小的全球实用工具。 这是对其初始设计的致敬。
但是,初始设计未预测以下变量:
-
Internet 最近的指数增长和 IPv4 地址空间不足。
IPv4 地址变得相对稀缺。 因此,某些组织被迫使用网络地址翻译器(NAT)将多个专用地址映射到单个公共 IP 地址。 虽然 NAT 可促进专用地址空间的重复使用,但它们不支持基于标准的网络层安全性或所有更高层协议的正确映射。 当 NAT 连接使用专用地址空间的两个组织时,它们也会产生问题。
此外,连接 Internet 的设备和设备的日益突出意味着公共 IPv4 地址空间最终将用光。
-
Internet 的增长以及 Internet 主干路由器维护大型路由表的能力。
由于 IPv4 网络标识符(ID)已分配和当前分配的方式,Internet 主干路由器的路由表中定期有 70,000 多个路由。 当前的 IPv4 Internet 路由基础结构是平面路由和分层路由的组合。
-
需要更简单的配置。
大多数当前的 IPv4 实现必须手动或通过有状态地址配置协议(如动态主机配置协议(DHCP)进行配置。 使用 IP 的更多计算机和设备,必须开发不依赖于 DHCP 基础结构管理的地址和其他配置设置的更简单、更自动的配置。
-
IP 级别的安全性要求。
通过 Internet 等公共媒体进行专用通信需要加密服务来保护在传输中查看或修改发送的数据。 尽管目前存在一个标准,用于为 IPv4 数据包(称为 Internet 协议安全性或 IPSec)提供安全性,但此标准是可选的,专有解决方案普遍存在。
-
需要更好地支持实时传送数据(也称为服务质量 [QoS])。
虽然 IPv4 存在 QoS 标准,但实时流量支持依赖于 IPv4 服务类型(TOS)字段和有效负载的标识,通常是使用用户数据报协议(UDP)或传输控制协议(TCP)端口。 遗憾的是,IPv4 TOS 字段的功能有限,并且有不同的解释。 此外,加密 IPv4 数据包有效负载时,无法使用 TCP 和 UDP 端口进行有效负载标识。 为了解决这些问题,Internet 工程工作队(IETF)开发了一套称为 IP 版本 6(IPv6)的协议和标准。 此新版本以前命名为 IP-Next Generation (IPng),包含许多建议更新 IPv4 协议的方法的概念。 IPv6 旨在通过避免任意添加新功能来最大程度地降低对上层和下层协议的影响。
安装 IPv6
- 单击“开始**”,单击控制面板**,然后双击“网络连接”。
- 右键单击任何局域网连接,然后单击“ 属性”。
- 单击“安装” 。
- 单击“协议**”**,然后单击“添加”。
- 单击 Microsoft TCP/IP 版本 6,然后单击“ 确定”。
- 单击“关闭**”**以保存对网络连接的更改。
删除 IPv6
- 单击“开始**”,单击控制面板**,然后双击“网络连接”。
- 右键单击任何局域网连接,然后单击“ 属性”。
- 在已安装的组件列表中单击 Microsoft TCP/IP 版本 6 ,然后单击“ 卸载”。
- 单击“是**”,然后单击“关闭”**以保存对网络连接的更改。
使用手动地址配置 IPv6
-
单击“开始”,指向**“程序**”,指向**“附件**”,然后单击“命令提示符”。
-
在命令提示符下,键入
netsh,然后按 Enter。 -
键入
interface ipv6,然后按 Enter。 -
键入以下命令,然后按 Enter:
add address [interface=] string [address=] ipv6address此命令使用以下值
- [interface =] string:指定接口的名称。
- [address =] ipv6address:指定 IPv6 地址。
注意
此命令提供了其他参数。 在 netsh 接口 ipv6 命令提示符处键入
add address /?以查看其他参数。
配置接口属性
-
单击“开始**”,指向“所有程序**”,指向“附件”,然后单击“命令提示符”。
-
在命令提示符下,键入 netsh,然后按 Enter。
-
键入接口 ipv6,然后按 Enter。
-
键入以下命令,然后按 Enter:
set interface [interface=] string [[forwarding=]enabled|disabled] [[advertise=]enabled|disabled] [[mtu=] integer] [[siteid=] integer] [[metric=] integer] [[firewall=]{enabled | disabled}] [[siteprefixlength=] integer] [[store=]{active|persistent]}
此命令使用以下值:
- [interface =] string:指定接口名称。
- [[forwarding =] enabled | disabled]:指定到达此接口的数据包是否可以转发到其他接口。 默认设置处于禁用状态。
- [[advertise =]enabled|disabled]:指定是否在此接口上发送路由器播发。 默认设置处于禁用状态。
- [[mtu =] 整数]:指定此接口的最大传输单位(MTU)。 如果未指定 mtu,则使用链接的默认 MTU。
- [[siteid =] 整数]:指定站点范围区域标识符。 站点标识符用于区分属于使用站点本地寻址的不同管理区域的接口。
- [[metric =] integer]:指定已添加到接口上所有路由的路由指标的接口指标。
- [[firewall =]{ enabled | disabled }]:指定是否在防火墙模式下运行。
- [[siteprefixlength =] integer]:指定整个站点的全局前缀的默认长度。
- [[store =] active | persistent]:如果指定活动,则更改只会持续到计算机重启为止。 如果指定永久更改,则更改是永久性的。 默认设置是永久性的。
查看 IPv6 路由表
- 单击“开始**”,指向“所有程序**”,指向“附件”,然后单击“命令提示符”。
- 在命令提示符下,键入
netsh,然后按 Enter。 - 键入
interface ipv6,然后按 Enter。 - 键入
show routes,然后按 Enter。
注意
若要查看可用于此命令的其他参数,请键入 show routes /?。
添加 IPv6 路由
-
单击“开始**”,指向“所有程序**”,指向“附件”,然后单击“命令提示符”。
-
在命令提示符下,键入
netsh,然后按 Enter。 -
键入
interface ipv6,然后按 Enter。 -
键入以下命令,然后按 Enter:
add route [prefix=]ipv6address/integer [[interface=] string] [[nexthop=]ipv6address] [[siteprefixlength=] integer] [[metric=] integer] [[publish=]{no | age | yes}] [[validlifetime=]{integer | infinite}] [[preferredlifetime=]{integer | infinite}] [[store=]{active | persistent}]此命令使用以下值:
- [ prefix =] ipv6address ** / 整数**:此参数是必需的。 它指定要为其添加路由的前缀。 整数 指定前缀长度。
- [[interface =] string]:指定接口名称或索引。
- [[nexthop =] ipv6address]:指定网关地址(如果前缀不在链接上)。
- [[siteprefixlength =] 整数]:指定整个网站的前缀长度(如果前缀不是链接上)。
- [[metric =] integer]:指定路由指标。
- [[publish =]{ no | age | yes }]:指定路由播发是在路由播发中播发的,生存期不变(是),在路由播发中播发的生存期减少(年龄),还是未播发(否)。 默认设置为 no。
- [[validlifetime =]{ integer | infinite }]:指定路由的有效生存期。 默认值为无限期。
- [[preferredlifetime =]{ integer | infinite }]:指定路由首选的生存期。 默认值等于有效生存期。
- [[store =]{ active | persistent }]:指定更改仅持续到下一次启动(活动)还是持续(永久性)。 默认设置是永久性的。
注意
此参数为特定前缀添加路由。 时间值可以以天、小时、分钟和秒(例如 1d2h3m4s)表示。
当发布设置为“无”或“期限”时,在有效生存期结束时删除路由。 当发布设置为年龄时,路由播发将包含剩余的有效生存期,直到删除为止。 发布设置为“是”时,无论有效生存期值如何,都不会删除路由,并且每个路由播发都包含指定的“相同”有效生存期。
删除 IPv6 路由
-
单击“开始**”,指向“所有程序**”,指向“附件”,然后单击“命令提示符”。
-
在命令提示符下,键入
netsh,然后按 Enter。 -
键入
interface ipv6,然后按 Enter。 -
类型显示路由,以获取路由前缀的接口的路由前缀和接口索引,可通过该接口访问路由前缀的地址。
-
若要删除路由,请键入以下命令,然后按 Enter:
delete route [prefix=] ipv6address / integer [interface=] string此命令使用以下值:
-
[prefix =] ipv6address / **integer:指定要删除路由的前缀。
Ipv6address 是 IPv6 地址, 整数 是要删除的路由的前缀长度。
-
[interface =] string:指定接口名称。
注意
若要查看可用于此命令的其他参数,请键入
delete route /?。 -
启用 IPv6 转发
-
单击“开始**”,指向“所有程序**”,指向“附件”,然后单击“命令提示符”。
-
在命令提示符下,键入
netsh,然后按 Enter。 -
键入
interface ipv6,然后按 Enter。 -
键入以下命令,然后按 Enter:
set interface [interface=] string [forwarding=]enabled此命令使用以下值:
- [interface =] string:指定接口名称。
- [forwarding =] 已启用:指定是否可将到达此接口的数据包转发到其他接口。 默认设置为“已禁用”。
还可以通过将播发参数添加到命令来发送路由器播发消息,例如:
set interface [interface=]string [forwarding=]enabled [advertise=]enabled若要查看此命令的其他参数,请键入
set interface /?。
使用 PING 命令测试 IPv6 配置
若要获取计算机的 IPv6 配置,请执行以下操作:
-
单击“开始**”,指向“所有程序**”,指向“附件”,然后单击“命令提示符”。
-
在命令提示符下,键入以下命令,然后按 Enter:
netsh interface ipv6 show interface -
在命令提示符下,键入
ping ::1以查找环回地址。如果 ping 命令未成功,请验证是否已将 ::1 地址分配给名为 Loopback 伪接口的接口。
-
使用以下命令查找计算机的链接本地 IPv6 地址:
ping address % zone_id在此命令中, 地址 是链接本地地址 ,zone_id 是为其分配链接本地地址的接口的接口索引。 链接本地地址以 FE80 开头。
如果 ping 命令未成功,请验证地址和接口索引。
-
使用以下命令在链接上找到另一个主机的链接本地地址(也称为子网):
ping address % zone_id在此命令中, 地址 是另一个主机 的链接本地地址,zone_id 是要从中发送 ping 数据包的接口的接口索引。
如果 ping 命令未成功,请验证其他主机的链接本地地址和区域 ID。
使用 PING 命令测试 IPv6 连接
-
单击“开始”,指向**“所有程序**”、“附件”,然后单击“命令提示符”。
-
在命令提示符下,键入以下命令,然后按 Enter:
netsh interface ipv6 show interface interface_name在此命令中, interface_name 是计算机上的接口的名称。 例如,如果有一个名为“局域网连接*”的*接口,请键入以下命令:
netsh interface ipv6 show interface "Local Area Connection" -
使用以下命令之一搜索另一个 IPv6 节点:
- 若要 ping 链接(也称为子网)上另一个节点的链接本地地址,请键入
ping address % zone_id,其中 地址 是另一个节点 的链接本地地址,zone_id 是要从中发送 ping 数据包的接口的接口索引。 若要获取接口索引,请查看命令的netsh interface ipv6 show interface输出。
如果 ping 命令未成功,请验证其他节点的链接本地地址和区域 ID。
-
若要 ping 另一个节点的站点本地地址,请键入
ping address % zone_id,其中 地址 是另一个节点 的站点本地地址,zone_id 是命令输出netsh interface ipv6 show interface中的站点标识符。 如果不使用网站标识符,则无需使用命令的 % zone_id 部分。如果 ping 命令未成功,请验证其他节点的站点本地地址和区域 ID。
-
若要 ping 另一个节点的全局地址,请键入
ping address地址,其中 地址 是另一个节点的全局地址。如果 ping 命令未成功,请验证其他节点的全局地址。
-
若要按名称对另一个节点执行 ping 操作,请键入
ping -6 name名称,其中 名称 是通过本地主机文件中的条目或通过 DNS 基础结构中存在的 AAAA 资源记录解析为 IPv6 地址的名称。 按名称而不是 IPv6 地址标识目标主机时,必须包含该-6参数。如果 ping 命令未成功,请验证该名称是否可以解析为 IPv6 地址。
-
若要 ping 另一个节点的 IPv4 兼容地址,请键入
ping ipv4addressipv4address 是另一个节点的公共 IPv4 地址。如果 ping 命令未成功,请验证另一个节点的 IPv4 地址。
- 若要 ping 链接(也称为子网)上另一个节点的链接本地地址,请键入
使用 TRACERT 命令跟踪路径
-
单击“开始**”,指向“所有程序**”,指向“附件”,然后单击“命令提示符”。
-
在命令提示符处,键入以下命令之一:
- tracert -6host_name
- tracertipv6address % zone_id
这些命令使用以下值:
- Host_name 是远程计算机的主机名。
- Ipv6address 是远程计算机的 IPv6 地址。
- zone_id是目标地址的区域 ID。 链接本地目标地址的区域 ID 是要从中发送 tracert -6 数据包的接口的接口索引。 站点本地目标地址的区域 ID 是命令输出
netsh interface ipv6 show interface中列出的站点 ID。 无需对全局目标地址使用命令的 % zone_id 部分。
注意
带有 -6 参数的 tracert 命令跟踪 IPv6 数据包从此计算机带到另一台远程计算机的路径。 tracert -6 命令使用 ICMPv6 Echo Request 消息(类似于 ping 命令)生成有关每个路由器的命令行报告信息,以及每个跃点的往返时间(RTT)。
如果 tracert 不成功,可以使用命令行报告信息来确定哪个中间路由器转发失败或速度变慢。
查看接口配置
-
单击“开始**”,指向“所有程序**”,指向“附件”,然后单击“命令提示符”。
-
在命令提示符下,键入
netsh -c "interface ipv6",然后按 Enter。 -
键入
show interface [interface=] string,然后按 Enter。此命令使用以下值:
[interface =] string:指定接口名称。
注意
此命令提供了其他参数。
查看邻居缓存
- 单击“开始**”,指向“所有程序**”,指向“附件”,然后单击“命令提示符”。
- 在命令提示符下,键入
netsh,然后按 Enter。 - 键入
interface ipv6,然后按 Enter。 - 键入
show neighbors,然后按 Enter。
注意
若要查看可用于此命令的其他参数,请键入 show neighbors /?。
查看目标缓存
- 单击“开始**”,指向“所有程序**”,指向“附件”,然后单击“命令提示符”。
- 在命令提示符下,键入
netsh,然后按 Enter。 - 键入
interface ipv6,然后按 Enter。 - 键入
show destinationcache,然后按 Enter。
注意
若要查看可用于此命令的其他参数,请键入 show destinationcache /?。