网络应用解决方案 (2)
来源:中国电子政务网 更新时间:2012-04-15
 

用于IPv6穿越IPv4网络的隧道技术主要有:

IPv6手工配置隧道

6to4自动隧道

ISATAP自动隧道

IPv6 over IPv4 GRE隧道

6PE隧道

3.1 IPv6手工配置隧道

IPv6手工配置隧道的源和目的地址是手工指定的,它提供了一个点到点的连接。IPv6手工配置隧道可以建立在两个边界路由器之间为被IPv4网络分离的IPv6网络提供稳定的连接,或建立在终端系统与边界路由器之间为终端系统访问IPv6网络提供连接。隧道的端点设备必须支持IPv6/IPv4双协议栈。其它设备只需实现单协议栈即可。

IPv6手工配置隧道要求在设备上手工配置隧道的源地址和目的地址,如果一个边界设备要与多个设备建立手工隧道,就需要在设备上配置多个隧道。所以手工隧道通常用于两个边界路由器之间,为两个IPv6网络提供连接。

一个手工隧道在设备上以一个虚接口存在,从IPv6侧收到一个IPv6报文后,根据IPv6报文的目的地址查找IPv6转发表,如果该报文是从此虚拟隧道接口转发出去,则根据隧道接口配置的隧道源端和目的端的IPv4地址进行封装。封装后的报文变成一个IPv4报文,交给IPv4协议栈处理。报文通过IPv4网络转发到隧道的终点。

隧道终点收到一个隧道协议报文后,进行隧道解封装。并将解封装后的报文交给IPv6协议栈处理。

一个设备上不能配置两个隧道源和目的都相同的IPv6手工隧道。

参考:RFC 2893, Transition Mechanisms for IPv6 Hosts and Routers

3.2 6to4自动隧道

6to4隧道也属于一种自动隧道,隧道也是使用内嵌在IPv6地址中的IPv4地址建立的。与IPv4兼容自动隧道不同,6to4自动隧道支持Router到Router、Host到Router、Router到Host、Host到Host。这是因为6to4地址是用IPv4地址做为网络标识,其地址格式如下:

图3-2 6to4地址格式

其格式前缀(FP)为二进制的001,TLA(Top Level Aggregator)为0x0002。也就是说,6to4地址可以表示为2002::/16,而一个6to4网络可以表示为2002:IPv4地址::/48。

通过6to4自动隧道,可以让孤立的IPv6网络之间通过IPv4网络连接起来。6to4自动隧道是通过Tunnel虚接口实现的,6to4隧道入口的IPv4地址手工指定,隧道的目的地址根据通过隧道转发的报文来决定。如果IPv6报文的目的地址是6to4地址,则从报文的目的地址中提取出IPv4地址做为隧道的目的地址;如果IPv6报文的目的地址不是6to4地址,但下一跳是6to4地址,则从下一跳地址中取出IPv4地址做为隧道的目的地址。后者也称为6to4中继。

IPv6报文在到达边界路由器后,根据报文的IPv6目的地址查找转发表,如果出接口是6to4自动隧道的Tunnel虚接口,且报文的目的地址是6to4地址或下一跳是6to4地址,则从6to4地址中取出IPv4地址做为隧道报文的目的地址,隧道报文的源地址是Tunnel接口上配置的。

图3-3 6to4隧道组网示意图

随着IPv6网络的发展,普通IPv6网络需要与6to4网络通过IPv4网络互通,这可以通过6to4中继路由器方式实现。所谓6to4中继,就是通过6to4隧道转发的IPv6报文的目的地址不是6to4地址,但转发的下一跳是6to4地址,该下一跳为6to4中继。隧道的IPv4目的地址从下一跳的6to4地址中获得。如下图所示,灰色的网络是普通IPv6网络。

图3-4 6to4中继组网示意图

如果6to4网络2中的主机要与IPv6网络互通,在其边界路由器上配置路由指向的下一跳为6to4中继路由器的6to4地址,中继路由器的6to4地址是与中继路由器的6to4隧道的源地址相匹配的。6to4网络2中去往普通IPv6网络的报文都会按照路由表指示的下一跳发送到6to4中继路由器。6to4中继路由器再将此报文转发到纯IPv6网络中去。当报文返回时,6to4中继路由器根据返回报文的目的地址(为6to4地址)进行IPv4报文头封装,数据就能够顺利到达6to4网络中了。

参考:RFC 3056, Connection of IPv6 Domains via IPv4 Clouds