IPv6 over IPv4隧道
隧道(Tunnel)是将一种网络协议报文封装在另一种网络协议报文中进行传输的技术。隧道的处理过程包括数据封装、传输和解封装。隧道技术是IPv4网络向IPv6网络过渡的一个重要手段。
由于IPv4地址的枯竭和IPv6协议的先进性,IPv4网络过渡为IPv6网络势在必行。因为IPv6协议与IPv4协议的不兼容性,所以需要对原有的IPv4设备进行替换。但是IPv4设备大量替换所需成本会非常巨大,且现网运行的业务也会中断,显然并不可行。所以,IPv4网络向IPv6网络过渡是一个渐进的过程。在过渡初期,IPv4网络已经大量部署,而IPv6网络只是散落在各地的一个个“孤岛”,IPv6 over IPv4隧道就是通过隧道技术,使IPv6报文在IPv4网络中传输,实现IPv6网络孤岛之间的互通。
IPv6 over IPv4隧道技术的基本原理如图10-3所示。
在边界交换机Switch_1和Switch_2上启动IPv4/IPv6双协议栈,并部署IPv6 over IPv4隧道。
边界交换机Switch_1在收到从IPv6网络侧发来的报文后,如果报文的目的地址不是自己且下一跳出接口为Tunnel接口,则把收到的IPv6报文作为数据部分,加上IPv4报文头,封装成IPv4报文。
在IPv4网络中,封装后的报文被传递到对端的边界交换机Switch_2。
对端边界交换机Switch_2对报文解封装,去掉IPv4报文头,然后将解封装后的IPv6报文发送到IPv6网络中。
- 手动隧道:需要手工配置隧道终点的IPv4地址。
手动隧道
根据IPv6报文封装的不同,手动隧道又可以分为IPv6 over IPv4手动隧道和IPv6 over IPv4 GRE隧道两种。
IPv6 over IPv4手动隧道手动隧道直接把IPv6报文封装到IPv4报文中,源地址和目的地址都是手工指定的,提供了一个点到点的连接。隧道的边界设备必须支持IPv4/IPv6双协议栈,其它设备只需支持单协议栈。因为手动隧道要求在设备上手工配置隧道的源地址和目的地址,如果一个边界设备要与多个设备建立手动隧道,就需要在设备上配置多个隧道,配置比较麻烦。所以手动隧道通常用于两个边界交换机之间,为两个IPv6网络孤岛提供连接。
IPv6 over IPv4手动隧道封装格式如图10-4所示。
- 当隧道边界设备的IPv6侧收到一个IPv6报文后,根据IPv6报文的目的地址查找IPv6路由转发表,如果该报文是从此虚拟隧道接口转发出去,则根据隧道接口配置的隧道源端和目的端的IPv4地址进行封装。封装后的报文变成一个IPv4报文,交给IPv4协议栈处理。
- 报文通过IPv4网络转发到隧道的终点。
- 隧道终点收到一个隧道协议报文后,进行隧道解封装,并将解封装后的报文交给IPv6协议栈处理。
IPv6 over IPv4 GRE隧道使用标准的GRE隧道技术提供了点到点连接服务,需要手工指定隧道的端点地址。GRE隧道本身并不限制被封装的协议和传输协议,一个GRE隧道中被封装的协议可以是协议中允许的任意协议(可以是IPv4、IPv6、MPLS等)。
IPv6 over IPv4 GRE隧道基本原理如图10-5所示。
- 当隧道边界设备的IPv6侧收到一个IPv6报文后,根据IPv6报文的目的地址查找IPv6路由转发表。如果该报文是从此虚拟隧道接口转发出去,则首先在IPv6报文前封装GRE报文头,其次再在GRE报文头前封装IPv4报文头,封装IPv4报文头时根据隧道接口配置的隧道源端和目的端的IPv4地址进行封装。封装后的报文变成一个IPv4报文,交给IPv4协议栈处理。
- 报文通过IPv4网络转发到隧道的终点。
- 隧道终点收到一个隧道协议报文后,进行隧道解封装,并将解封装后的报文交给IPv6协议栈处理。
与IPv6 over IPv4手动隧道相比,IPv6 over IPv4 GRE隧道还支持Keepalive检测功能等,可以增强数据传输的可靠性。GRE隧道的具体内容请参见《CloudEngine 12800, 12800E系列交换机 配置指南-VPN》中“GRE配置”。