在 Oracle® Solaris 11.2 中管理 TCP/IP 网络、IPMP 和 IP 隧道

退出打印视图

更新时间: 2014 年 7 月
 
 

6to4 隧道

Oracle Solaris 包括 6to4 隧道作为中间方法,以实现从 IPv4 到 IPv6 寻址的转换。通过 6to4 隧道,隔离的 IPv6 站点可以通过不支持 IPv6 的 IPv4 网络跨自动隧道进行通信。要使用 6to4 隧道,必须首先将 IPv6 网络上的边界路由器配置为 6to4 自动隧道的一个端点。这样,6to4 路由器便可以参与通往另一个 6to4 站点的隧道,如果需要的话,还可以参与通往本地非 6to4 IPv6 站点的隧道。

6to4 隧道的拓扑

6to4 隧道提供到任何位置的所有 6to4 站点的 IPv6 连接。如果 6to4 隧道配置为向中继路由器转发,该隧道也同样提供到所有 IPv6 站点的连接(包括本地 IPv6 Internet)。下图显示了 6to4 隧道如何提供两个 6to4 站点之间的连接。

图 4-2  两个 6to4 站点之间的隧道

image:下文将对该图中显示的 6to4 隧道进行说明。

上图描述了两个隔离的 6to4 网络,即站点 A 和站点 B。每个站点都配置了具有到 IPv4 网络的外部连接的路由器。跨 IPv4 网络的 6to4 隧道可以连接两个 6to4 站点。

必须至少配置一个路由器接口来支持 6to4,才能让 IPv6 站点成为 6to4 站点。此接口必须提供与 IPv4 网络的外部连接。在上图中,边界路由器 A 的 net0 接口将站点 A 连接到 IPv4 网络。在 net0 上配置的地址必须全局唯一。必须为 net0 接口配置一个 IPv4 地址,然后才能配置隧道接口以在路由器上支持 6to4。

在上图中,6to4 站点 A 由两个子网组成,这些子网连接到路由器 A 上的 net1net2 接口。站点 A 的任一子网上的所有 IPv6 主机会在接收到来自路由器 A 的通告时自动重新配置为具有 6to4 派生的地址。

站点 B 是另一个隔离的 6to4 站点。为了正确地从站点 A 接收通信,必须在站点 B 上配置边界路由器以支持 6to4。否则,路由器从站点 A 接收的包将因无法识别而被丢弃。

6to4relay 命令

使用 6to4 隧道连接,可以在相互隔离的 6to4 站点之间进行通信。但是,要使用本地的非 6to4 IPv6 站点传输包,6to4 路由器必须使用 6to4 中继路由器建立一个隧道。然后,6to4 中继路由器将 6to4 包转发到 IPv6 网络,并最终将其传输到本地 IPv6 站点。如果启用了 6to4 的站点必须与本地 IPv6 站点交换数据,请使用 6to4relay 命令启用相应的隧道。


注 -  由于使用中继路由器不安全,因此 Oracle Solaris 在缺省情况下会禁用与中继路由器的隧道连接。在部署该方案之前,请认真考虑在建立通往 6to4 中继路由器的隧道时所涉及的问题。有关详细信息,请参见启用 6to4 中继路由器隧道的注意事项。如果决定启用 6to4 中继路由器支持,可以参阅如何创建和配置 IP 隧道中的相关操作步骤。

有关更多信息,请参见 6to4 (7M) 手册页。

通过 6to4 隧道的包流

本节介绍从一个 6to4 站点上的主机到远程 6to4 站点上的主机之间的包流。此方案使用Figure 4–2 中显示的拓扑。而且,它还假定已经配置了 6to4 路由器和 6to4 主机。

以下是包流:

  1. 6to4 站点 A 的子网 1 上的主机发送传输请求,6to4 站点 B 上的主机作为目标。每个数据包头中均有 6to4 派生的源地址和 6to4 派生的目标地址。

  2. 站点 A 的路由器将每个 6to4 包封装到 IPv4 数据包头中。在该过程中,路由器将 IPv4 封装数据包头的目标地址设置为站点 B 的路由器地址。对于每个流经隧道接口的 IPv6 包,其 IPv6 目标地址同时也包含 IPv4 目标地址。因此,路由器将能够确定 IPv4 封装数据包头上设置的 IPv4 目标地址。路由器随后使用标准的 IPv4 路由过程,通过 IPv4 网络转发包。

  3. 包通过的任何 IPv4 路由器都使用包的 IPv4 目标地址进行转发。此地址是路由器 B 上某个接口的全局唯一 IPv4 地址,该接口还充当 6to4 伪接口。

  4. 来自站点 A 的包到达路由器 B,路由器 B 对 IPv4 数据包头中的 IPv6 包取消封装。

  5. 路由器 B 随后使用 IPv6 包中的目标地址将包转发到站点 B 上的接收主机。

启用 6to4 中继路由器隧道的注意事项

6to4 中继路由器充当某些隧道的一个端点,这些隧道的另一个端点是需要与本地非 6to4 IPv6 网络通信的 6to4 路由器。本质上,中继路由器是 6to4 站点和本地 IPv6 站点之间的桥梁。因为此解决方案可能不安全,所以,在缺省情况下,Oracle Solaris 不启用对 6to4 中继路由器的支持。但是,如果站点需要这样的隧道,可以使用 6to4relay 命令来启用隧道连接,如下图所示。

图 4-3  从 6to4 站点到 6to4 中继路由器的隧道

image:该图显示了 6to4 路由器和 6to4 中继路由器之间的隧道。下文将进一步描述该图。

Figure 4–3 中,6to4 站点 A 需要与本地 IPv6 站点 B 上的节点通信。该图说明了从站点 A 到 IPv4 网络上 6to4 隧道的通信路径。该隧道将 6to4 路由器 A 和 6to4 中继路由器作为其端点。IPv6 站点 B 所连接到的 IPv6 网络位于 6to4 中继路由器的外部。

6to4 站点和本地 IPv6 站点之间的包流

本节介绍从 6to4 站点到本地 IPv6 站点之间的包流。此方案使用Figure 4–3 中显示的拓扑。

以下是包流:

  1. 6to4 站点 A 上的主机发送一个将本地 IPv6 站点 B 上的主机指定为目标的传输信号。每个包头中具有作为其源地址的 6to4 派生地址。目标地址是标准的 IPv6 地址。

  2. 站点 A 的 6to4 路由器将每个包封装到 IPv4 数据包头中,该 IPv4 数据包头将 6to4 中继路由器的 IPv4 地址作为其目标地址。6to4 路由器随后使用标准的 IPv4 路由过程,通过 IPv4 网络转发包。包遇到的任何 IPv4 路由器都会将包转发到 6to4 中继路由器。

  3. 物理位置距离站点 A 最近的任播 6to4 中继路由器检索以 192.88.99.1 任播组为目标的包。


    注 -  6to4 中继路由器属于 6to4 中继路由器任播组,它的 IP 地址为 192.88.99.1。此任播地址是 6to4 中继路由器的缺省地址。如果您需要使用特定的 6to4 中继路由器,则可以覆盖缺省设置并指定该路由器的 IPv4 地址。
  4. 该中继路由器会对 6to4 包中的 IPv4 数据包头取消封装,并显示本地 IPv6 目标地址。

  5. 然后,中继路由器仅将 IPv6 包发送到 IPv6 网络中,站点 B 中的路由器最终将在该网络中检索到这些包。然后,路由器将这些包转发到目标 IPv6 节点。