3.3.1 隧道技术
1. 技术简介
隧道技术是通过将一种IP数据包嵌套在另一种 IP数据包中进行网络传递的技术,只要求隧道两端的设备支持两种协议。隧道类型有多种,根据隧道协议的不 同分为 IPv4overIPv6隧道和 IPv6overIPv4隧道;根据隧道终点地址的获得方式, 可将隧道分为配置型隧道(如手动隧道、GRE隧道)和自动型隧道(如隧道代理、6to4、6over4、6RD、ISATAP、TEREDO、基于 MPLS的隧道 6PE等)。隧道技术本质上只是提供一个点到点的透明传送通道,无法实现 IPv4节点和 IPv6节点之间的通信,适用于同协议类型网络孤岛之间的互联。采用这种技术,不用把所有的设备 都升级为双栈,只要求 IPv4/IPv6 网络的边缘设备实现双栈和隧道功能。除边缘节 点外,其他节点不需要支持双协议栈,隧道技术流程如图 3-11所示。
图3-11 隧道技术流程
基于 IPv4隧道来传送 IPv6报文的隧道技术如图 3-12所示。隧道技术是将IPv6报文封装在 IPv4报文中,这样 IPv6数据包就可以穿越 IPv4网络进行通信。因此被孤立的 IPv6网络之间可以通过 IPv6的隧道技术利用现有的 IPv4网络互相通信而无须对现有的 IPv4网络做任何修改和升级。IPv6隧道可以配置在边界路由器之 间,也可以配置在边界路由器和主机之间,但是隧道两端的节点都必须既支持IPv4协议栈又支持 IPv6协议栈。
图3-12 IPv6报文在IPv4中的封装
2. 机制原理
IPv4/IPv6隧道技术的实现机制分为以下3步。隧道技术封装示意如图3-13所示。
(1) 隧道入口节点(封装路由器)创立一个用于封装的IPv4报文头,并传送此被封装的分组。
(2) 隧道出口节点(解封装路由器)接收此被封装的分组,如果需要重新组装此分组,移去IPv4报文头,并处理接收到的 IPv6分组。
(3) 封装路由器或许需要为每个隧道记录维持软状态信息,这类参数诸如隧道MTU,以便处理转发的 IPv6分组进隧道。
图3-13 隧道技术封装示意
3. 应用场景
简单来说,在 IPv6的推广过程中,隧道技术的应用场景分为 IPv6overIPv4和IPv4overIPv6。
(1) IPv6overIPv4隧道
IPv6不可能在一夜间完全替代IPv4,在过渡阶段的初期,那些IPv6的设备就成为 IPv4海洋中的 IPv6“孤岛”。IPv6overIPv4隧道技术的目的是利用现有的 IPv4网络,使各个分散的 IPv6“孤岛”可以跨越 IPv4网络相互通信。
在 IPv6报文通过 IPv4网络时,无论哪种隧道机制都需要进行“封包—解包”过程,即隧道发送端将该 IPv6报文封装在 IPv4数据包中,将此封装包视为IPv4的负荷,然后在 IPv4网络上传送该封装包。当封装包到达隧道接收端时,该端点解掉封装包的 IPv4报文头,取出 IPv6封装包继续处理。
值得一提的 IPv6overIPv4隧道技术是 6RD。它由法国运营商 FREE提出,FREE采用该方案在 5周内为超过150万户居民提供了 IPv6服务。6RD是 IPv6快速部署(IPv6RapidDeployment)的简称,其对应标准为 RFC5569,6RD是在 6to4的基础上发展起来的一种 IPv6网络过渡技术方案。通过在现有 IPv4网络中增加6RD-BR,为愿意使用 IPv6的用户提供 IPv6接入;在 IPv6用户的家庭网关和 6RD网关之间建立 6in4隧道,从而实现在 IPv4网络中提供 IPv6服务。
如图 3-14所示,6RDCE(CustomerEdge)与 6RDBR(BorderRealy)都是双栈设备,通过扩展的 DHCP选项,6RDCE的 WAN接口得到运营商为其分配的 IPv6前缀、IPv4地址(公有或私有)以及 6RDBR的 IPv4地址等参数。CE在 LAN接口上通过将上述 6RDIPv6前缀与 IPv4地址相拼接构造出用户的 IPv6前缀。当用户开始发起 IPv6会话,IPv6报文到达 CE后,CE用 IPv4报文头将其封装进隧道,被封装的 IPv6报文通过 IPv4报文头进行路由,中间的设备对其中的 IPv6报文不感知。BR作为隧道对端,收到 IPv4数据包后进行解封装,将解封装后的 IPv6报文转发到全球 IPv6网络中,从而实现终端用户对 IPv6业务的访问。
图3-14 6RD网络架构
6RD对运营商的核心网络影响极小,整个过程无状态。它为运营商在IPv6过 渡初期引入 IPv6服务提供了思路。在这种方案中,需要同时为终端分配 IPv6地址前缀和 IPv4公网 /私网地址,仍不能减少 IPv4地址的消耗。由于 IPv6地址前缀受IPv4地址影响,该方案也存在 IPv6地址欺骗的缺点;同时,该方案也要求分配给CE的 IPv4地址需要较长的租用期。
(2) IPv4overIPv6隧道
与 IPv6overIPv4隧道技术相反,IPv4overIPv6隧道技术是解决具有 IPv4协议栈的接入设备成为 IPv6网络中的孤岛通信问题。在实际应用中,DS-Lite是一种典型的 IPv4overIPv6隧道技术,它的工作原理是:用户侧设备将 IPv4流量封装在IPv6隧道内,通过运营商的 IPv6接入网络到达“网关”设备后终结 IPv6隧道封装, 再进行集中式 NAT,最终转发至 IPv4网络。
DS-Lite网络主要由 3部分组成。DS-Lite组网方式如图 3-15所示。
图3-15 DS-Lite组网方式
① CPE:也叫 B4终端,位于用户网络侧,用来连接互联网服务提供商(InternetServiceProvider,ISP)网络的设备,通常为用户网络的网关。CPE作为 IPv4overIPv6隧道的端点,负责将用户网络的IPv4报文封装成 IPv6报文发送给隧道的另一个端点,同时将从隧道接收到的 IPv6报文解封装成 IPv4报文发送给用户网络。某些用户网络的主机本身也可以作为CPE,直接连接到 ISP 网络,这样的主机称为DS-Lite主机。
② 地址族转换路由器(AddressFamilyTransitionRouter,AFTR):ISP网络中的设备,同时 AFTR还是 IPv4overIPv6隧道端点和 NAT网关设备。AFTR负责将解封装后的用户网络报文的源 IPv4 地址(私网地址)转换为公网地址,并将转换后的报文发送给目的 IPv4主机;同时负责将目的 IPv4主机返回的应答报文的目的IPv4地址(公网地址)转换为对应的私网地址,并将转换后的报文封装成 IPv6报文通过隧道发送给 CPE。AFTR进行 NAT时,同时记录 NAT映射关系和 IPv4overIPv6隧道 CPE的 IPv6地址,从而实现不同 CPE连接的用户网络地址可以重叠。
③ 隧道:CPE和 AFTR之间的 IPv4overIPv6隧道,用来实现 IPv4报文跨越IPv6网络的传输。
4. 技术类型
IPv6隧道技术分为配置型隧道和自动型隧道。
配置型隧道指边界设备不能自动获得隧道终点的 IPv4地址,需要手动配置隧道终点的 IPv4地址,报文才能正确发送至隧道终点,通常用于路由器到路由器之间。常用的配置型隧道技术包括 IPv6overIPv4手动隧道和 GRE隧道。
自动型隧道指边界设备可以自动获得隧道终点的 IPv4地址,所以不需要手动配置终点的 IPv4地址,一般的做法是隧道的两个接口的 IPv6地址采用内嵌 IPv4地址的特殊 IPv6地址形式,这样路由设备可以从 IPv6报文中的目的 IPv6地址中提取出IPv4地址,自动型隧道可用于主机到主机,或者主机到路由器之间。常用的自动型隧道技术包括隧道代理、6to4、6over4、6RD、ISATAP、TEREDO、基于 MPLS的隧道 6PE等。
通过隧道技术,依靠现有 IPv4设施,只要求隧道两端设备支持双栈,即可实现多个孤立 IPv6网络的互通,但是总体来说,隧道实施配置比较复杂,也不支持IPv4主机和 IPv6主机直接通信。