从IPv4网络切换到IPv6网络,需要较长一段时间。在IPv6网络实施初期,IPv6网络就像一座座孤岛,在IPv4网络的海洋中生存。

如何跨越IPv4网络,实现IPv6网络之间的通信呢?这就是下面要说到的IPv6 over IPv4隧道技术。通常而言隧道技术,就是对特定报文进行封解封装。


一、IPv6 over IPv4手动隧道(Manual)

【拓扑】

IPv6网络1------------(2011:1:1:11::1/64) R1 (10.1.1.1)-------------R2---------R3-------(20.1.1.1)R4(2022:2:2:22::2/64)--------------IPv6网络2

【说明】

假定IPv6网络1中,有PC1其IPv6地址为:2011:1:1:11::2/64

假定IPv6网络2中,有PC2其IPv6地址为:2022:2:2:22::2/64

R1与R4之间,是正常组建的IPv4网络,且网络通信正常(通过任何路由协议均可)

【问题】

如何实现PC1与PC2之间的通信呢?

【解答】

在R1与R4之间,通过隧道封装技术使得PC1能与PC2正常通信。

【隧道配置】

R1上配置,隧道接口Tunnel1


隧道接口地址:IPv6地址 2012:1:1:11::1/64


隧道源地址:10.1.1.1


隧道目的地址:20.1.1.1

R4上配置,隧道接口Tunnel2:

隧道接口地址:IPv6地址 2012:1:1:11::2/64



隧道源地址:20.1.1.1



隧道目的地址:10.1.1.1



GNS模拟器上,需配置隧道模式为:ipv6ip

【实践结果】



IPv6网络1与IPv6网络2通过手工隧道能正常通信。(PC1能正常访问R4上的隧道接口地址)



IPV6 GRE隧道配置 ipv4 in ipv6隧道_封装



即从抓包来看,在PC1与PC2之间通信的报文前,封装了IPv4头部。从而使得PC1与PC2之间通信的报文,在R1与R4之间以正常的IPv4报文的形式转发。




二、IPv6 over IPv4 GRE隧道

【说明】

拓扑环境与(一)中保持一致,PC1与PC2之间通过IPv6 over IPv4 GRE隧道技术进行通信。

假定IPv6网络1中,PC1的地址为2011:1:1:11::3/64

假定IPv6网络2中,PC2的地址为2022:2:2:22::3/64

隧道配置与Manual类似,只需要在隧道配置时,设置隧道模式为gre ip模式即可。

【实践结果】

抓包查看

IPV6 GRE隧道配置 ipv4 in ipv6隧道_目的地址_02


三、IPv6 over IPv4 自动隧道(Auto-Tunnel)


【隧道配置】


R1上的隧道接口的配置如下


interface Tunnel1


 ipv6 address autoconfig   ----//隧道的IPv6地址自动获得(获得后实际为0:0:0:0:0:0:10.1.1.1/96)


 tunnel source 10.1.1.1      ----//隧道的源IPv4地址


 tunnel mode ipv6ip auto-tunnel  ---//隧道模式为 auto-tunnel

R4上的隧道接口的配置如下



interface Tunnel2



 ipv6 address autoconfig   ----//隧道的IPv6地址自动获得(获得后实际为0:0:0:0:0:0:20.1.1.1/96)



 tunnel source 20.1.1.1      ----//隧道的源IPv4地址


 tunnel mode ipv6ip auto-tunnel  ---//隧道模式为 auto-tunnel



R1与R4上的隧道接口之间的通信,抓包查看:

IPV6 GRE隧道配置 ipv4 in ipv6隧道_抓包_03




总结:



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

(1)IPv6网络中的主机发送IPv6报文,该报文到达隧道的源端设备R1

(2)R1根据路由表判定该报文要通过隧道进行转发,则在IPv6报文前封装上IPv4的报文头,通过隧道的实际物理接口将报文转发出去。IPv4报文头中的源IP地址为隧道的源端地址,目的IP地址为隧道的目的端地址。

(3)封装报文通过隧道到达隧道目的端设备(或称隧道终点) R4,R4判断该封装报文的目的地是本设备后,将对报文进行解封装。

(4)R4根据解封装后的IPv6报文的目的地址处理该IPv6报文。如果目的地就是本设备,则将IPv6报文转给上层协议处理;否则,查找路由表转发该IPv6报文。