查看: 14968|回复: 8

IPv6协议介绍

[复制链接]
发表于 2006-9-22 00:24:58 | 显示全部楼层 |阅读模式
手动配置 IPv6
在大多数情况下,运行 Windows XP 或 Windows Server 2003 家族成员之一的 IPv6 主机不必采用手动配置。然而在某些情况下,您必须对计算机手动配置 IPv6 地址。此外,有时某台计算机在网络上还具有特殊的作用。net130整理
下面几节将描述如何手动为以下对象配置 IPv6 :

• 手动配置 IPv6 地址。

• IPv6 路由器。

• 6to4 路由器。

• 站点内自动隧道寻址协议(ISATAP)路由器。

• 6over4 路由器。

手动配置 IPv6 地址

Windows XP 和 Windows Server 2003 家族的 IPv6 协议支持无状态的地址自动配置,使用该协议,地址、路由和其它配置参数将基于接收到的 Router Advertisement(路由器通告)消息来自动配置。然而,如果您想配置 IPv6 地址(不使用路由器通告)或任何 cast 地址,比如 DNS 的任何 cast 地址,您可以使用netsh interface IPv6 add address命令来手动配置 IPv6 地址。这个命令的语法如下:net130整理
netsh interface ipv6 add address InterfaceNameOrIndex IPv6Address
<[type=>unicast|anycast] <[validlifetime=>Minutes|infinite]
<[preferredlifetime=>Minutes|infinite] <[store=>active|persistent]
默认情况下,地址类型是单播的(unicast),有效和首选的生存期是无限的(infinite),并且地址是持久的(persistent)。为了获得接口名称或其索引,您可以使用netsh interface IPv6 show interface命令的显示。
例如,要在名为 Local Area Connection 的接口上配置站点局部地址 FEC0::1A49:2AA:FF:FE34:CA8F,相应的命令为:
netsh interface ipv6 add address "Local Area Connection"
fec0::1a49:2aa:ff:fe34:ca8f
要改变某个现有地址,可使用netsh interface IPv6 set address命令。要删除一个地址,可使用netsh interface IPv6 delete address命令。

Pv6 路由器

IPv6 路由器不仅在接口之间转发 IPv6 包,而且同时通告它的存在性和位于直接连接的子网上的主机的无状态自动配置信息。这是通过发送 Router Advertisement 消息来实现的。运行Windows XP或Windows Server 2003家族成员之一的计算机可以配置为一个静态路由器和一个通告路由器。静态路由器不使用路由协议来维护 IPv6 路由表中的路由。net130整理
为了创建一个静态 IPv6 路由器,您必须在必需的接口上启用转发和通告。IPv6 路由器不必安装两个LAN接口。 例如,对于一个ISATAP路由器,您可以仅有单个LAN接口,并在该LAN接口上启用转发,在自动隧道伪接口(Automatic Tunneling Pseudo-Interface)上同时启用转发和通告。有关ISATAP的更多信息,请参见本文的“ISATAP路由器”一节。
如要在某个接口上启用转发和通告,请使用以下命令:
netsh interface ipv6 set interface InterfaceNameOrIndex
enabled|disabled] <[advertise=>enabled|disabled]
<[mtu=>MTUSize] <[store=>active|persistent]
默认禁用转发和路由,MTU 大小是接口所报告的链路 MTU,并且接口设置是持久的。
例如,假设正在将一台运行 Windows Server 2003 系列的成员之一的计算机配置为一个路由器。 它具有三个分别名为 Local Area Connection、Local Area Connection 2和Local Area Connection 3 的接口。 为了在 Local Area Connection 和 Local Area Connection 2 上启用转发和通告,以及在Local Area Connection 3 上启用转发,相应的命令为:
netsh interface ipv6 set interface "Local Area Connection"
forwarding=enabled advertise=enabled
netsh interface ipv6 set interface "Local Area Connection 2"
forwarding=enabled advertise=enabled
netsh interface ipv6 set interface "Local Area Connection 3"
forwarding=enabled
Local Area Connection 3接口被连接到一个已经包含通告路由器的子网。
在这些命令运行之后,该路由器通过 Local Area Connection 和 Local Area Connection 2 接口发送 Router Advertisement 消息。 然而,它们没有包含任何 Prefix Information(前
缀信息)或 Route Information(路由信息)选项,以供所连接子网上的主机自动配置地址和路由。 现在必须给路由器配置要发布的路由。
要添加一个路由,请使用以下命令:
netsh interface ipv6 add route IPv6Address/ PrefixLength
InterfaceNameOrIndex <[nexthop=>IPv6Address] <[publish=>no|age|yes]
<[validlifetime=>Minutes|infinite]
<[preferredlifetime=>Minutes|infinite] <[store=>active|persistent]
默认情况下,不存在下一跳地址(前缀是“在链路上的),路由不公布,有效和首选的生存期是无限的(infinite),并且路由是持久的。
例如,为了在 Local Area Connection 上添加路由并公布在链路上的站点局部前缀 FEC0:0:0:1::/64,然后在 Local Area Connection 2 上添加在链路上的站点局部前缀 FEC0:0:0:2::/64,相应的命令为:net130整理
netsh interface ipv6 add route fec0:0:0:1::/64 "Local Area Connection"
publish=yes
netsh interface ipv6 add route fec0:0:0:2::/64 "Local Area Connection 2"
publish=yes
对于这个配置,路由器将不把它自己作为默认路由器来通告。 FEC0:0:0:1::/64和FEC0:0:0:2::/64 子网上的主机自动配置适当的地址,并向它们的路由表添加必需的路由,但是它们不会配置一个默认路由(::/0)。运行 Windows Server 2003 系列或 Windows XP 的 IPv6 协议的计算机不会把它自己作为默认路由器来通告,除非存在一个配置为要公布的默认路由。
为了将 FEC0:0:0:1::/64 和 FEC0:0:0:2::/64 子网上的路由器配置为默认路由器,您必须向路由器添加一个默认路由并公布它。例如,如果 Local Area Connection 3 上的子网包含一个链路局部地址为 FE80::2AA:FF:FE98:2AB1 的路由器,下面的命令将向该静态路由器添加一个默认路由并公布它:
netsh interface ipv6 add route ::/0 "Local Area Connection 3"
nexthop=fe80::2aa:ff:fe98:2ab1 publish=yes

6to4 路由器

6to4 是一种地址分配和自动隧道技术,用于通过 IPv4 Internet 提供 IPv6 站点和主机之间的单播 IPv6 连接。有关 6to4 的更多信息,请参见IPv6 入门(Cable Guy,2001 年 7 月文章)和 RFC 3056。

运行 Windows XP 和 Windows Server 2003 家族成员之一的计算机可以用作 6to4 路由器,它是在您启用连接到 Internet 的接口上的 “Internet 连接共享(ICS)” 时自动配置的。然而,如果您不希望启用 ICS,但是又想让该计算机充当 6to4 路由器,那么您必须手动配置 6to4 路由器功能。

要将运行 Windows Server 2003 家族成员之一或 Windows XP 的计算机手动配置为 6to4 路由器,您必需完成以下步骤:

&#8226;确保 6to4 路由器计算机给它的 Internet 接口分配一个公共地址,并且没有接收到来自连接的子网上的 IPv6 路由器或者 ISATAP 路由器的 Router Advertisement 消息。如果事实就是这样,6to4 组件将自动创建一个名为 6to4 Pseudo-Interface 的接口,并向使用 6to4 Pseudo-Interface 的路由表添加一个 2002::/16 路由,然后添加一个指向 IPv4 Internet 上的 6to4 中继路由器的默认路由。

&#8226;在连接到 intranet 的接口上启用转发和通告。这可以通过以下命令来完成:net130整理
netsh interface ipv6 set interface InterfaceNameOrIndex
forwarding=enabled advertise=enabled

&#8226;在 6to4 Pseudo-Interface上启用转发。这可以通过以下命令来完成:
netsh interface ipv6 set interface "6to4 Pseudo-Interface"
forwarding=enabled

&#8226;向连接到 intranet 的接口添加 6to4 前缀的路由,并配置其进行公布。这可以通过以下命令来完成:
netsh interface ipv6 add route 2002:WWXX:YYZZ: SubnetID::/64
InterfaceNameOrIndex publish=yes
WWXX:YYZZ是w.x.y.z的冒号分隔的十六进制表示形式,它是分配给连接到 Internet 的接口的公共 IPv4 地址。 SubnetID用于识别 6to4 站点中单独的子网。
例如,某台计算机有三个 LAN 接口,这些接口具有如下配置: net130整理
&#8226;Local Area Connection(局域网连接)连接到 Internet,并被赋予公共 IPv4 地址:131.107.0.1。
&#8226;Local Area Connection 2是一个正在使用接口索引 5 的 intranet 接口。
&#8226;Local Area Connection 3 是一个正在使用接口索引 6 的 intranet 接口。
要将这台计算机配置为一个 6to4 路由器(假设它还没有接收到路由器通告),请运行以下命令:
netsh interface ipv6 set interface "Local Area Connection 2"
forwarding=enabled advertise=enabled
netsh interface ipv6 set interface "Local Area Connection 3"
forwarding=enabled
netsh interface ipv6 set interface "6to4 Pseudo-Interface"
forwarding=enabled
netsh interface ipv6 add route 2002:836b:1:5::/64 "Local Area Connection
2" publish=yes
netsh interface ipv6 add route 2002:836b:1:6::/64 "Local Area Connection
3" publish=yes
对于这个例子,前缀 2002:836B:1:5::/64 通过 Local Area Connection 2 来通告,前缀 2002:836B:1:6::/64 通过 Local Area Connection 3 来通告(836B:1 是公共 IPv4 地址 131.107.0.1 的十六进制冒号分隔表示形式)。根据约定,子网 ID 被设置为用于通告前缀的接口的接口索引。 您可以指定自己想要的任何子网 ID(从 0 到 0xFFFF)

SATAP 路由器

ISATAP 是一种地址分配和自动隧道技术,它用于提供 IPv4 intranet 上的 IPv6 主机之间的单播 IPv6 连接。ISATAP 是在标题为“站点内自动隧道寻址协议(ISATAP)”(draft-ietf-ngtrans-isatap-0x)的 Internet 草案中描述的。默认情况下,Windows XP 和 Windows Server 2003 的 IPv6 协议在自动隧道伪接口(Automatic Tunneling Pseudo-Interface)上为分配给计算机的每个 IPv4 地址配置链路局部 ISATAP 地址。
为了配置站点局部或全局 ISATAP 地址,或者跨越 IPv4 intranet 所定义的逻辑子网之外进行通信,您需要一个 ISATAP 路由器。ISATAP 路由器执行以下功能:
&#8226;在 IPv4 intranet 上的 ISATAP 主机和 IPv4 intranet 之外的 IPv6 主机之间转发 IPv6 包。 net130整理
&#8226;通告它的存在和地址前缀,以便配置站点局部或全局 ISATAP 地址。
ISATAP 路由器能够执行其中任何一种功能,不过通常将它配置为同时执行这两种功能。 绝大多数情况下,ISATAP 路由器充当 IPv4 intranet 上的 ISATAP 主机和某个 intranet 上支持 IPv6 的部分网段上的 IPv6 主机之间的转发器。
例如,ISATAP 路由器能够连接到两个在物理上分离的网络:一个IPv4 intranet 和一个 IPv6 intranet。 对于这种情况,ISATAP 路由器至少要有两个 LAN 接口,其中至少要有一个连接
到 IPv4 intranet,至少要有一个连接到支持 IPv6 的 intranet。 为了使这台计算机能够成为一个 ISATAP 路由器,您必须完成以下步骤:
&#8226;在连接到支持 IPv6 的 intranet 的LAN接口上启用转发功能。这可以通过以下命令来完成: net130整理
netsh interface ipv6 set interface InterfaceNameOrIndex
forwarding=enabled
&#8226;在自动隧道伪接口(Automatic Tunneling Pseudo-Interface)上启用转发和通告。这可以通过以下命令来完成:
netsh interface ipv6 set interface "Automatic Tunneling Pseudo-
Interface" forwarding=enabled advertise=enabled
&#8226;将 IPv4 intranet 的逻辑子网的子网 ID 的路由添加到自动隧道伪接口(Automatic Tunneling Pseudo-Interface),并设定对其进行通告。这可以通过以下命令来完成:
netsh interface ipv6 add route IPv6Address/PrefixLength "Automatic
Tunneling Pseudo-Interface" publish=yes
&#8226;添加一个默认路由(使用连接到 IPv6 intranet 的 LAN 接口),并设定对其进行通告。这可以通过以下命令来完成:
netsh interface ipv6 add route ::/0 InterfaceNameOrIndex
nexthop=IPv6Address publish=yes
例如,某台计算机具有两个 LAN 接口,一个连接到名为 Local Area Connection 的 IPv4 intranet,另一个连接到名为 Local Area Connection 2 的支持 IPv6 的 intranet。 分配给 IPv4 intranet 的逻辑子网的子网 ID 是 3FFE:FFFF:0:10::/64 和 FEC0:0:0:10::/64。该计算机使用名为 Local Area Connection 2 的接口所连接到的 IPv6 intranet上的一个默认路由器,并且这个路由器的下一跳地址为 FE80::2AA:FF:FE98:2AB1。 为了将这台计算机配置为一个 ISATAP 路由器,请运行以下命令:
netsh interface ipv6 set interface "Local Area Connection 2"
forwarding=enabled
netsh interface ipv6 set interface "Automatic Tunneling Pseudo-Interface"
forwarding=enabled advertise=enabled
netsh interface ipv6 add route 3ffe:ffff:0:10::/64 "Automatic Tunneling
Pseudo-Interface" publish=yes
netsh interface ipv6 add route fec0:0:0:10::/64 "Automatic Tunneling
Pseudo-Interface" publish=yes
netsh interface ipv6 add route ::/0 "Local Area Connection 2"
nexthop=fe80::2aa:ff:fe98:2ab1 publish=yes
IPv4 intranet 上运行 Windows XP Service Pack 1 或运行 Windows Server 2003 家族成员之一的 ISATAP 主机通过尝试解析名称 “ISATAP” 来发现该 ISATAP 路由器。为确保成功解析这个名称,您可以将该路由器计算机命名为“ISATAP”,或者向您的 DNS 基础结构添加适当的主机地址(A)或规范名称(canonical name,CNAME)记录。所使用的资源记录必须将名称“ISATAP” 解析为该 ISATAP 路由器的 intranet 接口的IPv4地址。
如果该ISATAP路由器的名称不是 “ISATAP”,或者名称 “ISATAP” 没有被解析为 IPv4 intranet 接口的 IPv4 地址,您需要在该ISATAP路由器和所有 ISATAP 主机上运行以下命令: net130整理
netsh interface ipv6 isatap set state router=AddressOrName
AddressOrName或者是路由器 intranet 接口的 IPv4 地址,或者是解析出这个地址的路由器的名称。
注意:IPv4 intranet 上的 ISATAP 主机通过尝试解析名称“_ISATAP”而不是解析“ISATAP”来发现 ISATAP 路由器。

6over4 路由器

6to4 也称为 IPv4 多播隧道,这是一种自动隧道技术,用于通过站点中支持多播的IPv4 intranet 提供 IPv6 节点之间的单播或多播连接。6over4 在 RFC 2529 中有所描述。默认禁用 Windows XP 和 Windows Server 2003 家族中可用于 IPv6 协议的 6over4。如要启用 6over4 并创建一个 6over4 接口,您可以运行以下命令:
netsh interface ipv6 add 6over4tunnel 6over4InterfaceName IPv4Address net130整理
<[store=>active|persistent]
6over4 InterfaceName是 6over4 接口的名称,IPv4Address是用于基于 6over4 的接口 ID 的 IPv4 公共或专用地址。默认情况下,6over4 接口是持久的。
例如,为了创建一个名为 6over4 Tunnel Interface 的 6over4 接口(它使用一个基于被分配的 IPv4 地址 10.60.90.21 的一个接口ID),您可以运行以下命令:
netsh interface ipv6 add 6over4tunnel "6over4 Tunnel Interface"
10.60.90.21
在启用之后,6over4 就类似于 ISATAP,只不过它还支持多播 IPv6 流量。然而, 6over4 需要一个支持多播的 IPv4 intranet。
为了配置站点局部或全局 6over4 地址,或者跨越 IPv4 intranet 所定义的逻辑子网之外进行通信,您需要一个 6over4 路由器。6over4 路由器执行以下功能:
&#8226;
在IPv4 intranet 上的 6over4 主机和该 IPv4 intranet 之外的 IPv6 主机之间转发 IPv6 数据包。
&#8226;
通告它的存在性和地址前缀,以便配置站点局部或全局 6over4 地址。
绝大多数情况下,6over4 路由器充当 IPv4 intranet 上的 6over4 主机和某个 intranet 上支持 IPv6 的部分网段上的 IPv6 主机之间的转发器。
例如, 6over4 路由器能够连接到两个物理上分离的网络:一个支持多播的IPv4 intranet 和一个 IPv6 intranet。对于这种情况,6over4 路由器至少要有两个 LAN 接口,其中至少要有一个连接到 IPv4 intranet,同时至少要有一个连接到支持 IPv6 的 intranet。为了使这台计算机能够成为一个 6over4 路由器,您必须完成以下步骤:
&#8226;
在连接到支持 IPv6 的 intranet 的 LAN 接口上启用转发。这可以通过以下命令来完成:
netsh interface ipv6 set interface InterfaceNameOrIndex
forwarding=enabled
&#8226;
在 6over4 接口上启用转发和通告。这可以通过以下命令来完成: net130整理
netsh interface ipv6 set interface 6over4InterfaceName
forwarding=enabled advertise=enabled
&#8226;
将 IPv4 intranet 的逻辑子网的子网ID的路由添加到 6over4 接口,并设定对其进行通告。 这可以通过以下命令来完成:
netsh interface ipv6 add route IPv6Address/ PrefixLength
6over4InterfaceName publish=yes
&#8226;
添加一个默认路由(使用连接到 IPv6 intranet 的 LAN 接口),并设定对其进行通告。 这可以通过以下命令来完成:
netsh interface ipv6 add route ::/0 InterfaceNameOrIndex
nexthop=IPv6Address publish=yes
例如,某台计算机具有两个LAN接口,一个连接到名为 Local Area Connection 的 IPv4 intranet,另一个连接到名为 Local Area Connection 2 的支持 IPv6 的intranet。这样将创建一个名为 6over4 Tunnel Interface 的 6over4 接口。分配给IPv4 intranet 的逻辑子网的子网ID是:3FFE:FFFF:0:2A1C::/64 和 FEC0:0:0:2A1C::/64。该计算机使用名为 Local Area Connection 2 的接口所连接到的 IPv6 intranet 上的一个默认路由器,并且这
个路由器的下一跳地址为 FE80::2AA:FF:FE98:2AB1。 为了将这台计算机配置为一个 6over4 路由器,请运行以下 netsh 命令:
netsh interface ipv6 set interface "Local Area Connection 2"
forwarding=enabled
netsh interface ipv6 set interface "6over4 Tunnel Interface"
forwarding=enabled advertise=enabled
netsh interface ipv6 add route 3ffe:ffff:0:2a1c::/64 "6over4 Tunnel
Interface" publish=yes
netsh interface ipv6 add route fec0:0:0:2a1c::/64 "6over4 Tunnel
Interface" publish=yes
netsh interface ipv6 add route ::/0 "Local Area Connection 2"
nexthop=fe80::2aa:ff:fea7:412e publish=yes

移动 IPv6 介绍
RFC (Request for Comments) 3775 将移动 Internet 协议第 6 版 (Mobile Internet Protocol version 6) 定义为:不管 IPv6 节点位于 IPv6 网络的何处以及与移动 IPv6 节点通信的其他节点是否支持移动 IPv6,始终可以对 IPv6 节点进行访问。
下面几节将介绍:
&#8226;漫游节点和传输层连接的可存活性  net130整理   
&#8226;移动 IPv6 的组成
&#8226;移动 IPv6 数据传送
&#8226;通信注册过程
&#8226;移动 IPv6 节点和 TCP 连接
&#8226;Microsoft Windows 中的移动 IPv6 支持

漫游节点和传输层连接的可存活性
当某个节点具有移动性时(比如在无线网络的不同部分间漫游并启用了无线功能的便携式计算机),存在一些机制来确保该移动节点拥有其所连接网段(子网)的相关地址。对于 IPv6 而言,这些机制包括通过路由器发现和面向 IPv6 的动态主机配置协议 (Dynamic Host Configuration Protocol for IPv6,DHCPv6) 实现的无状态地址自动配置。当检测到其处于某个无线网络的一个新的链路之上后,正在漫游的无线节点就会使用路由发现、DHCPv6,或者同时使用这两者来配置 IPv6 地址、相邻的 IPv6 默认路由器地址、以及其他配置参数。
虽然移动节点可针对其所连接的新链路进行自动配置,但是无法再使用原先利用该漫游节点的旧地址建立的传输层连接(比如:TCP 连接)。旧地址在新的网段中不再有效,而且必须放弃现有的 TCP 连接。应用程序必须使用新分配的地址建立新的连接。根据应用程序的不同,如果 IPv6 地址配置发生突然变化,可能会导致应用程序停止工作,从而需要用户停止并重新启动该应用程序。.
对于真正的漫游支持,IPv6 节点必须同时支持自动重新配置和传输层连接的可存活性。移动 IPv6 提供的解决方案是通过扩展 IPv6 来使传输层协议和应用程序无法觉察到 IPv6 地址配
置所发生的变化,而不是通过修改应用程序或传输层协议(比如:TCP)来提供传输层可存活性。在移动 IPv6 中,应用程序和传输层协议使用分配给不会发生变化的移动 IPv6 节点的 IPv6 地址,而不受该移动节点的位置和当前地址配置的限制。

移动 IPv6 的组成
移动 IPv6 由以下几个部分组成:
&#8226;
移动节点 (mobile node) 可更改链路(从而进一步更改地址)并可使用其居家地址 (home address) 保持可连接性的 IPv6 节点。
&#8226;
居家链路 (home link) 生成移动节点的链路。
&#8226;
居家地址 (home address) 分配给连接到居家链路的移动节点的地址,而且通过该地址始终可以访问相应的移动节点,无论其在 IPv6 网络上位于何处。由于居家地址总是分配给移动节点,因此移动节点在逻辑上总是连接到居家链路。
&#8226;
居家代理 (home agent) 居家链路上的一台路由器,保存离开居家地址的移动节点的注册信息及其当前地址。虽然上图中的居家代理充当将居家链路连接到 IPv6 网络的路由器,但是居家代理不是必须提供这项功能。居家代理也可以是居家链路(当移动节点连接到居家链路时不执行任何转发操作)上的一个节点。
&#8226;
外地链路 不属于移动节点的居家链路的链路。
&#8226;
转交地址 (care-of address) 移动节点在连接到外地链路时所用的地址。移动节点的居家地址与转交地址的关联称为绑定。
&#8226;
通信节点 与移动节点通信的 IPv6 节点。通信节点不一定必须支持移动 IPv6。
支持移动 IPv6 的通信节点居家代理在绑定缓存中保存有关绑定的信息.移动节点在绑定更新列表中保存有关通信节点的信息。
注意: 当使用 IPv6 传输技术(比如:6to4、站内自动隧道寻址协议 (ISATAP) 或 Teredo)时,上图中的 IPv6 网络可以是 IPv6 Internet、专用内部网中支持 IPv6 的部分或者公用或专用 IPv4 基础结构。更多信息,请参见IPv6 传输技术.

移动 IPv6 数据传送
当移动节点不在居家链路上时,可以通过以下几种方法接收来自通信节点的数据包:net130整理
&#8226;
如果通信节点不支持移动 IPv6,或者还未完成通信注册,那么数据包将被发往移动节点的居家地址。通信注册将在本文的“通信注册过程”一节中进行介绍。居家代理拦截数据包,并使用 IPv6-over-IPv6 隧道将其放在隧道上进行传输,以发送给移动节点的转交地址。
&#8226;
如果通信节点支持移动 IPv6,并且已经完成了通信注册,那么数据包将被直接发送到移动节点在 IPv6 网络上的位置。这些数据包包含一个含有该移动节点居家地址的新的 Type 2 路由扩展报头。
当移动节点不在居家链路上时,其可以通过以下几种方法将数据包发送给通信节点:
&#8226;
如果通信节点不支持移动 IPv6,或者还未完成通信注册,那么将使用 IPv6-over-IPv6 隧道把数据包放在隧道上进行传输,发送给居家代理。尔后,居家代理将这些数据包转发到通信节点。
&#8226;
如果通信节点支持移动 IPv6,并且已经完成了通信注册,那么数据包将直接被发送到通信节点。这些数据包包含一个新的居家地址选项。该选项位于含有该移动节点居家地址的目标选项 (Destination Options) 报头中。
通过居家代理在通信节点和移动节点间建立的数据包隧道称为双向隧道。双向隧道确保了当移动节点不在居家链路上时,总是可供访问,即便通信节点不支持移动 IPv6。然而,双向隧道会导致严重的传输延迟。
在移动节点和支持移动 IPv6 的通信节点间直接发送数据包的过程称为路由优化。路由优化消除了与双向隧道相关联的传输延迟,并需要通过它来为具有时间要求的流量(比如:Voice over IP,VoIP)提供充足的性能。
下图显示了移动节点和通信节点使用双向隧道和路由优化功能来交换数据包。
通信注册过程
为了执行数据包的路由优化传送,移动节点和通信节点将执行通信注册。这一过程由以下几个部分组成:
&#8226;
迂回路由过程 (Return Routability procedure)
为了证明通过移动节点的居家地址和转交地址均可对其进行访问,移动节点和通信节点将执行迂回路由过程。需要通过该证明来防范各种连接劫持和拒绝服务攻击。在执行执行迂回路由过程时,移动节点会向通信节点发送两个不同的测试数据包。其中一个通过居家代理进行发送,而另一个则直接发送给通信节点。通信节点将响应发送给测试数据包,而且每个响应都包含一个加密令牌。
&#8226;
交换绑定更新 (Binding Update) 和绑定应答 (Binding Acknowledgement) 消息
完成迂回路由过程之后,移动节点将向通信节点发送一条移动 IPv6 绑定更新消息。绑定更新消息包含使用通信节点在迂回路由过程中所发送的加密令牌计算的身份验证数据。由通信节点验证身份验证数据。这一验证并属于强加密身份验证,但足以防范大多数攻击类型。如果此身份验证数据有效,那么通信节点将在其绑定缓存中为移动节点添加一个条目,并发送一条绑定应答消息。
收到绑定应答消息时,移动节点将在其绑定更新列表中为通信节点添加一个条目。
完成了通信注册过程之后,移动节点和通信节点就可以使用路由优化相互发送数据包。

移动 IPv6 节点与 TCP 连接
为了说明移动 IPv6 如何提供传输层连接的可存活性,让我们来看一下当移动 IPv6 节点从其居家链路转移到外地链路时,现有的 TCP 连接发生了哪些变化。为了简要说明此例子,我们将只详细介绍在移动节点和通信节点间交换的那组消息。有关移动 IPv6 过程的详细信息,请参见《了解移动 IPv6》.
节点 A 是一个移动节点,而节点 B 是一个支持移动 IPv6 的通信节点。节点 A 在连接到其居家链路时将配置一个居家地址。节点 A 与节点 B 建立 TCP 连接。当节点 A 漫游到外地链路时,将发生以下过程:
1.在发现节点 A 所连接的链路发生变化并获得了转交地址后,节点 A 将与其家乡代理交换一组绑定更新和绑定应答消息。居家代理在其绑定代理中为节点 A 添加一个条目,用以保存其居家地址和转交地址。这称为居家注册。
2.在这个例子中,节点 B 向节点 A 发送现有 TCP 连接的一个 TCP 段。由于节点 B 还未得到节点 A 已更改位置的信息,因此节点 B 将该 TCP 段 发往节点 A 的居家地址。
3.因为居家代理拥有节点 A 居家地址的一个绑定缓存条目,所以居家代理会拦截 TCP 段并将其放在隧道上发送给节点 A 的转交地址。
4.在接收到居家代理通过隧道传输的 TCP 段之后,节点 A 开始进行通信注册,包括迂回路由过程以及绑定更新和绑定应答消息的交换。
在进行通信注册时,在移动节点和通信节点间发送的 TCP 段通过居家代理进行双向隧道传输。
当完成了通信注册之后,移动节点在其绑定更新列表中拥有通信节点的一个条目,而通信节点在其绑定缓存中拥有移动节点的一个条目。
5.节点 A 和节点 B 使用路由优化交换后续的 TCP 段。
如果节点 B 不支持移动 IPv6,那么通信注册过程将失败,而且所有在节点 A 和节点 B 间传送的 TCP 段将进行双向隧道传输。
漫游时,起初在移动节点的地址和通信节点的地址间建立的 TCP 连接将原封不动。在步骤 1 中可能会有一些 TCP 段被丢弃,其间当节点 A 发现链路变化时会产生延迟,获取一个新的转交地址,并执行居家注册。但是,这些段由 TCP 进行重新传输。
回复

使用道具 举报

发表于 2006-9-22 10:47:42 | 显示全部楼层
看不懂!!!能搞点更简单的说话吗?
回复

使用道具 举报

发表于 2010-1-16 10:54:49 | 显示全部楼层
不错,很详细,多谢分享!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表