隧道技术介绍


隧道技术

隧道技术简介

随着Internet的日益膨胀,现有的IPv4地址已经十分紧缺,虽然使用分配临时IPv4地址或NATNetwork Address Translator,网络地址转换)等技术,在一定程度上缓解了IPv4地址不足的状况,但也增加了地址解析和处理方面的开销,同时导致某些高层应用失效,而且仍然无法回避IPv4地址即将被分配殆尽这个问题。采用128位地址长度的IPv6协议,彻底解决了IPv4地址不足的难题,并且在地址容量、安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网络协议采用的核心标准之一。IPv6IPv4不兼容,但它同所有的TCPIP协议族中的其他协议兼容,即IPv6完全可以取代IPv4

IPv6成为主流协议之前,首先使用IPv6协议栈的网络希望能与当前仍被IPv4支撑着的Internet进行正常通信,因此必须开发出IPv4IPv6互通技术以保证IPv4能够平稳过渡到IPv6。此外,互通技术应该对信息传递做到高效无缝。国际上IETF组建了专门的NGTRANS工作组,开展对IPv4IPv6过渡问题和高效无缝互通问题的研究。目前已经出现了多种过渡技术和互通方案,这些技术各有特点,用于解决不同过渡时期、不同环境的通信问题。

目前解决过渡问题的基本技术主要有3种:双协议栈(RFC2893),隧道技术(RFC2893)和NAT-PT(RFC2766)

隧道是一种封装技术,它利用一种网络协议来传输另一种网络协议,即利用一种网络传输协议,将其他协议产生的数据报文封装在它自己的报文中,然后在网络中传输。隧道(Tunnel)是一个虚拟的点对点的连接。在实际应用中仅支持点对点连接的虚拟接口为Tunnel接口。一个Tunnel提供了一条使封装的数据报文能够传输的通路,并且在一个Tunnel的两端可以分别对数据报文进行封装及解封装。隧道技术就是指包括数据封装、传输和解封装在内的全过程。

IPv6 over IPv4隧道

1. IPv6 over IPv4隧道原理

IPv6 over IPv4隧道机制是将IPv6数据报文前封装上IPv4的报文头,通过隧道(Tunnel)使IPv6报文穿越IPv4网络,实现隔离的IPv6网络的互通,如1所示。

  注意:

IPv6 over IPv4隧道两端的设备必须支持IPv4/IPv6双协议栈。

 

图1 IPv6 over IPv4隧道原理图

IPv6 over IPv4隧道对报文的处理过程如下:

l              IPv6网络中的设备发送IPv6报文,到达隧道的源端设备。

l              隧道的源端设备根据路由表判定该报文要通过隧道进行转发,将会在IPv6报文前封装上IPv4的报文头,通过隧道的实际物理接口将报文转发出去。

l              封装报文通过隧道到达隧道目的端设备,目的端设备判断该封装报文的目的地是本设备后,将对报文进行解封装。

l              目的端设备根据解封装后的IPv6报文的目的地址将报文进行转发;如果目的地就是本设备,则将IPv6报文转给上层协议处理。

2. 配置隧道和自动隧道

IPv6 over IPv4隧道可以建立在主机-主机、主机-设备、设备-主机、设备-设备之间。隧道的终点可能是IPv6报文的最终目的地,也可能需要进一步转发。

根据隧道终点的IPv4地址的获取方式不同,隧道分为“配置隧道”及“自动隧道”。

l              如果IPv6 over IPv4隧道的终点地址不能从IPv6报文的目的地址中自动获取,需要进行手工配置,这样的隧道即为“配置隧道”。

l              如果IPv6 over IPv4隧道的接口地址采用内嵌IPv4地址的特殊IPv6地址形式,即可以从IPv6报文的目的地址中自动获取隧道终点的IPv4地址,这样的隧道即为“自动隧道”。

3. IPv6 over IPv4隧道模式

根据对IPv6报文的封装方式的不同,IPv6 over IPv4隧道分为以下几种模式:

表1 IPv6 over IPv4隧道模式

隧道类型

隧道模式

配置隧道

IPv6手动隧道

IPv6-over-IPv4 GRE Generic Routing Encapsulation,通用路由封装)隧道

自动隧道

IPv4兼容IPv6自动隧道

6to4隧道

ISATAPIntra-Site Automatic Tunnel Addressing Protocol,站点内自动隧道寻址协议)隧道

 

下面将对各隧道模式分别做详细介绍。首先,在11中对各隧道模式的关键配置参数进行了简要列举。

表2 IPv6 over IPv4隧道模式参数对比表

隧道模式

隧道源/目的地址

隧道接口地址

IPv6手动隧道

/目的地址为手动配置的IPv4地址

IPv6地址

IPv6-over-IPv4GRE隧道

/目的地址为手动配置的IPv4地址

IPv6地址

IPv4兼容IPv6自动隧道

源地址为手动配置的IPv4地址,目的地址不需配置

IPv4兼容IPv6地址,其格式为

::IPv4-source-address/96

6to4隧道

源地址为手动配置的IPv4地址,目的地址不需配置

6to4地址,其格式为

2002:IPv4-source-address::/48

ISATAP隧道

源地址为手动配置的IPv4地址,目的地址不需配置

ISATAP地址,其格式为Prefix:0:5EFE:IPv4-source-address/64

 

(1)        IPv6手动隧道

手动隧道是点到点之间的链路,一条链路就是一个单独的隧道。主要用于边缘路由器-边缘路由器或主机-边缘路由器之间定期安全通信的稳定连接,可实现与远端IPv6网络的连接。

(2)        GRE隧道

使用标准的GRE协议可对IPv6报文进行封装,使IPv6报文能通过隧道穿越IPv4网络。与IPv6手动隧道相同,GRE隧道也是点到点之间的链路,每条链路都是一条单独的隧道。GRE隧道主要用于边缘路由器-边缘路由器、主机-边缘路由器定期安全通信的稳定连接。

(3)        IPv4兼容IPv6自动隧道

IPv4兼容IPv6自动隧道是点到多点的链路。隧道两端采用特殊的IPv6地址:IPv4兼容IPv6地址,其格式为:0:0:0:0:0:0:a.b.c.d/96,其中a.b.c.dIPv4地址。通过这个嵌入的IPv4地址可以自动确定隧道的终点,使IPv6隧道的建立非常方便。但由于它必须使用IPv4兼容IPv6地址,仍依赖于IPv4地址,在使用时有一定的局限性。

(4)        6to4隧道

l              普通6to4隧道

6to4隧道是点到多点的自动隧道,主要用于将多个IPv6孤岛通过IPv4网络连接到IPv6网络。6to4隧道通过在IPv6报文的目的地址中嵌入IPv4地址,来实现自动获取隧道终点的IPv4地址。

6to4隧道采用特殊的6to4地址,其格式为:2002:abcd:efgh:子网号::接口ID/64,其中2002表示固定的IPv6地址前缀,abcd:efgh表示该6to4隧道对应的32位全球较少的IPv4源地址,用16进制表示(如1.1.1.1可以表示为0101:0101)。2002:abcd:efgh之后的部分较少标识了一个主机在6to4网络内的位置。通过这个嵌入的IPv4地址可以自动确定隧道的终点,使隧道的建立非常方便。

由于6to4地址的64位地址前缀中的16位子网号可以由用户自定义,前缀中的前48位已由固定数值、隧道起点或终点设备的IPv4地址确定,使IPv6报文通过隧道进行转发成为可能。6to4隧道可以实现利用IPv4网络完成IPv6网络的互连,克服了IPv4兼容IPv6自动隧道使用的局限性。

l              6to4中继

6to4隧道只能用于前缀为2002::/166to4网络之间的通信,但在IPv6网络中也会使用像2001::/16这样的IPv6网络地址。为了实现6to4网络和其它IPv6网络的通信,必须有一台6to4路由器作为网关转发到IPv6网络的报文,这台路由器就叫做6to4中继(6to4 relay)路由器。

如下图所示,6to4网络的边缘路由器Router A需配置一条静态路由,下一跳地址指向6to4中继路由器Router C6to4地址,这样,所有去往IPv6网络的报文都会被转发到6to4中继路由器,之后再由6to4中继路由器转发到IPv6网络中,从而实现6to4网络(地址前缀以2002开始)与IPv6网络的互通。

图2 6to4隧道和6to4中继原理图

(5)        ISATAP隧道

随着IPv6技术的推广,现有的IPv4网络中将会出现越来越多的IPv6主机,ISATAP隧道技术为这种应用提供了一个较好的解决方案。ISATAP隧道是点到点的自动隧道技术,通过在IPv6报文的目的地址中嵌入的IPv4地址,可以自动获取隧道的终点。

使用ISATAP隧道时,IPv6报文的目的地址和隧道接口的IPv6地址都要采用特殊的ISATAP地址。ISATAP地址格式为:Prefix(64bit):0:5EFE:ip-address。其中,64位的Prefix为任何合法的IPv6单播地址前缀,ip-address32IPv4源地址,形式为a.b.c.d或者abcd:efgh,且该IPv4地址不要求全球较少。通过这个嵌入的IPv4地址就可以自动建立隧道,完成IPv6报文的传送。

ISATAP隧道主要用于在IPv4网络中IPv6路由器-IPv6路由器、IPv6主机-IPv6路由器的连接。

图3 ISATAP隧道原理图

4. 快速终结

对于到达本机的隧道报文,如果报文的源IP地址与快速终结子网地址匹配,则将此隧道报文送到IPv6引擎进行转发或者上送CPU的处理。

如果是需要转发的报文,则由IPv6引擎去掉隧道报文的IP封装,取得原始入隧道IPv6报文后直接进行转发。

快速终结功能支持的隧道类型为IPv6 over IPv4隧道,分为以下两种情况:

l              对于配置隧道(如GRE over IPv4隧道、IPv6手动隧道),当使能快速终结后,系统自动将隧道目的地址作为快速终结子网地址,掩码为255.255.255.255

l              对于自动隧道(如IPv4兼容IPv6自动隧道、6to4隧道、ISATAP隧道),需要指定快速终结子网和掩码。

IPv4 over IPv4 隧道

1. IPv4 over IPv4隧道协议简介

IPv4 over IPv4隧道(RFC1853)协议是对IP数据报进行封装,使得一个IPv4网络的数据能够在另一个IPv4网络中传输。

2. 报文封装及解封装

报文在Tunnel中传输经过封装与解封装两个过程,以下图为例说明这两个过程:

图4 IPv4隧道原理图

l              封装流程

Router A连接IPv4主机所在子网的接口收到IP数据报后,首先交由IP协议栈处理。IP协议栈根据IP报头中的目的地址来确定如何路由此包。如果报文要路由到与Router B相连的IPv4主机的地址,则将此报文发给Route A上连接Router BTunnel接口。

Tunnel接口收到此包后,进行IPv4 over IPv4的封装,封装完成后重新交给IP协议栈处理,IP协议栈根据添加的IP报头确定出接口。

l              解封装流程

解封装过程和封装的过程相反。从网络接口收到的IP报文被送到IP协议栈,IP协议栈检查IP报头的协议号;若发现此协议号为4IPv4,则将此IP数据包发送到隧道模块进行解封装处理;解封装之后的IP报文将重新被送到IP协议栈进行处理。

IPv4IPv6 over IPv6隧道

1. IPv4IPv6 over IPv6隧道协议简介

IPv4IPv6 over IPv6隧道(RFC2473)协议是对IPv4或者IPv6的数据报进行封装,使这些被封装的数据报能够在另一个IPv6网络中传输,封装后的数据报文即IPv6隧道报文。

图5 IPv6隧道原理图

5所示,Original dataIPv4IPv6报文。

2. 报文封装及解封装

l              封装流程

Router A连接网络A的接口收到原始数据报后,首先交由对应的数据转发模块进行处理,并确定如何路由此数据包;若确定此数据包要路由到与Router B相连的Host B的地址,则将此报文发给Router A上连接IPv6网络的Router BTunnel接口。

Tunnel口收到此包后添加IPv6报文头,封装完成后交给IPv6模块处理;IPv6协议模块根据IPv6隧道头的目的地址重新决定路由。

l              解封装流程

解封装过程和封装的过程相反。从IPv6网络接口接收的数据包被送到IPv6协议模块进行处理;若乘客协议为IPv4IPv6,则数据包进入隧道处理模块进行解封装处理;解封装之后的数据包被送往相应的协议模块进行二次路由处理。

6PE概述

6PE是一种过渡技术,ISP可以利用已有的IPv4骨干网为分散用户的IPv6网络提供接入能力。

6PE的主要思想是:6PEIPv6 Provider EdgeIPv6供应商边缘)路由器将用户的IPv6路由信息转换为带有标签的IPv6路由信息,并且通过IBGPInternal Border Gateway Protocol,内部边界网关协议)会话扩散到ISPIPv4骨干网中。6PE路由器转发IPv6报文时,首先会将进入骨干网隧道的数据流打上标签。隧道可以是GRE隧道或者MPLS LSP等。

图6 6PE组网图

ISP想利用自己原有的IPv4/MPLS网络,使其通过MPLS具有IPv6流量交换能力时,只需要升级PE路由器就可以了。所以对于运营商来说,使用6PE技术作为IPv6过渡机制无疑是一个高效的解决方案,其操作风险也会小得多。

 

附件下载

联系我们