且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《深入解析IPv6(第3版)》——11.3 隧道配置

更新时间:2022-10-12 22:47:11

本节书摘来自异步社区《深入解析IPv6(第3版)》一书中的第11章,第11.3节,作者: 【美】Joseph Davies 更多章节内容可以访问云栖社区“异步社区”公众号查看。

11.3 隧道配置

RFC 4213定义了如下可以穿越纯IPv4架构在IPv6/IPv4节点之间建立隧道IPv6流量的隧道配置环境:

  • 路由器到路由器;
  • 主机到路由器和路由器到主机;
  • 主机到主机。

11.3.1 路由器到路由器
在路由器到路由器的隧道配置环境中,两个IPv6/IPv4路由器穿越纯IPv4架构连接到了两个支持IPv6的架构中。隧道端点在源和目的地址间相隔一跳。每个支持IPv6架构的路由都指向其边缘的IPv6/IPv4路由器。对于每个IPv6/IPv4路由器,都存在代表IPv6-over-IPv4隧道的隧道接口和使用隧道接口的路由。

注释

支持IPv6的架构中包含有IPv6连接,这个连接既可以是本地的,也可以是基于隧道的连接。而具有IPv6功能的架构会含有本地的IPv6连接。
图11-6所示为路由器到路由器的隧道。


《深入解析IPv6(第3版)》——11.3 隧道配置https://yqfile.alicdn.com/bf858e9333d4ace867ff44479dc900594173d9b5.png" >

这个隧道配置环境的示例包括如下内容。

  • 一个纯IPv6的测试实验室,穿过某机构的纯IPv4架构到达IPv6 Internet。
  • 一个机构中两个支持IPv6的站点,穿越IPv4 Internet建立隧道。
  • 6to4路由器穿越IPv4 Internet并与另一个6to4路由器建立隧道,或与一台6to4中继路由器建立隧道。如需进一步了解有关6to4的内容,请参阅第13章。

11.3.2 主机到路由器和路由器到主机
在主机到路由器的隧道配置环境中,一台位于纯IPv4架构中的IPv6/IPv4主机使用IPv6-over-IPv4的隧道到达一台IPv6/IPv4路由器。隧道端点为源和目的地址间的第一跳。

在IPv6/IPv4节点上,有一个隧道接口代表IPv6-over-IPv4隧道的隧道接口和一条或多条使用该隧道接口的路由(通常是默认路由)。IPv6/IPv4节点会根据匹配的路由、隧道接口和IPv6/IPv4路由器的下一跳IPv6地址,来将IPv6数据包通过隧道进行传送。

在路由器到主机的隧道配置环境中,IPv6/IPv4路由器会创建一条IPv6-over-IPv4隧道以穿越IPv4架构并到达IPv6/IPv4节点。隧道端点为源和目的地址间的最后一跳。

在IPv6/IPv4路由器上,有一个隧道接口代表IPv6-over-IPv4隧道的隧道接口和使用该隧道接口的路由(通常是子网路由)。IPv6/IPv4路由器会根据匹配的子网路由、隧道接口和IPv6/IPv4节点的目的IPv6地址,来将IPv6数据包通过隧道进行传送。

图11-7所示为主机到路由器的隧道(对于纯IPv4架构中节点A到节点B的流量量)和路由器到主机的隧道(对于节点B到节点A传输的流量)。


《深入解析IPv6(第3版)》——11.3 隧道配置

主机到路由器和路由器到主机的示例包括如下内容。

  • 一台IPv6/IPv4主机通过某个机构的纯IPv4架构并建立通往IPv6 Internet的隧道(主机到路由器的隧道)。
  • 一台ISATAP主机通过内联网中只支持IPv4的部分,与一台ISATAP路由器建立隧道,以到达内联网中支持IPv6的那一部分(主机到路由器的隧道)。
  • 一台ISATAP路由器通过内联网中只支持IPv4的部分,与目的ISATAP主机建立隧道(路由器到主机的隧道)。

11.3.3 主机到主机
在主机到主机的隧道配置环境中,位于纯IPv4架构中的IPv6/IPv4主机会使用IPv6-over-IPv4隧道,到达位于同一个纯IPv4架构中的另一个IPv6/IPv4节点。隧道端点位于整条路径的两端,源和目的节点相隔一跳。

每个IPv6/IPv4节点都有一个代表IPv6-over-IPv4隧道的接口。有一条路由用来表示目的节点位于由纯IPv4架构定义的同一个逻辑子网中。发送方主机会根据发送接口、链路中的子网路由以及目的地址,将IPv6流量通过隧道发送到目的。

图11-8所示为主机到主机的隧道。


《深入解析IPv6(第3版)》——11.3 隧道配置

主机到主机的隧道示例包括如下内容。

ISATAP主机之间跨越某机构的纯IPv4架构建立隧道。
6to4主机/路由器之间穿越IPv4 Internet通过隧道互相传送流量。
11.3.4 隧道类型
RFC 4213定义了如下隧道类型。

  • 手动配置的隧道。
  • 自动生成的隧道。

手动配置的隧道

手动配置的隧道需要人工配置本地和远程的隧道端点。在手动配置的隧道中,远程隧道端点的IPv4地址并不会内嵌或编码在目的IPv6地址的下一跳IPv6地址中。手动配置的隧道通常用于路由器到路由器的隧道。配置隧道接口的任务包括配置本地和远程隧道端点的IPv4地址,这些地址必须按照使用隧道接口的路由来人工指定。例如,使用手动配置的隧道,可以在不使用IPv6过渡技术(如ISATAP)的情况下,穿越纯IPv4内联网连接两个支持IPv6的测试实验室网络。

为了给Windows中的IPv6协议人工创建手动配置的隧道,需要使用如下命令:

netsh interface ipv6 add v6v4tunnel [interface=]Name[localaddress=] LocalIPv4Address [remoteaddress=]RemoteIPv4address
  • Name是新隧道接口的名称。
  • LocalIPv4Address是分配给正在执行命令的计算机的IPv4地址,该地址对应本地隧道端点。
  • RemoteIPv4address是远程隧道端点的IPv4地址。

必须在隧道两端的路由器上都创建隧道接口并且添加使用隧道接口的路由。

例如,有两个测试实验室子网分别位于内联网的不同部分。路由器1连接到IPv6子网2001:db8:0:1::/64,并且IPv4地址是131.107.47.121。路由器2连接到IPv6子网2001:db8:0:2::/64,并且IPv4地址是157.54.9.211。图11-9所示为这个配置。

  1. 《深入解析IPv6(第3版)》——11.3 隧道配置https://yqfile.alicdn.com/1b0cc2b01005215cfa106364a5b8fd25ae034447.png" >

    为了在路由器1和路由器2之间配置一个隧道,要在路由器1上运行下列命令:

    netsh interface ipv6 add v6v4tunnel TunnelTo2 131.107.47.121 157.54.9.211
    netsh interface ipv6 add route 2001:db8:0:2::/64 TunnelTo2
    

    同样,还要在路由器2上运行下列命令:

    netsh interface ipv6 add v6v4tunnel TunnelTo1 157.54.9.211 131.107.47.121
    netsh interface ipv6 add route 2001:db8:0:1::/64 TunnelTo1
    

    自动隧道

    自动隧道不需要手动配置。自动隧道的隧道端点由目的IPv6地址所使用的路由、隧道接口和下一跳地址决定。Windows的IPv6协议支持下列自动隧道技术。

    • ISATAP:用于纯IPv4内联网中的IPv6/IPv4主机之间的单播通信。如需进一步了解相关内容,请参阅第12章。
    • 6to4:用于IPv4 Internet中的IPv6/IPv4主机之间和支持IPv6的站点之间的单播通信,需要6to4路由器或6to4主机/路由器拥有公网的IPv4地址。如需进一步了解相关内容,请参阅第13章。
    • Teredo:用于IPv4 Internet中的IPv6/IPv4主机之间的单播通信。即使主机只有IPv4私有地址,而且位于NAT之后,通信也可以实现。如需进一步了解相关内容,请参阅第14章。

    在 Windows的自动隧道技术中,发送或转发节点会从下述内容中判断出IPv6-over-IPv4隧道的端点。

    远程隧道端点的IPv4地址嵌入或编码在下一跳IPv6地址中(该地址对应目的IPv6地址的匹配路由)。
    本地隧道端点的IPv4地址会通过到达目的IPv4地址(即远程隧道端点)的***源IPv4地址来进行判断。