IPv6进阶:IPv6 过渡技术之GRE 隧道

从报文的层面看,PC1发出的IPv6报文到达R1后,R1在原有报文的基础上先增加了一个GRE的头部,再增加一个IPv4的隧道头部,以便数据包能够穿越IPv4网络到达隧道对端。

本文来自公众号【网络技术干货圈】,作者:圈圈,ID:wljsghq。

实验拓扑

●R1-R3-R2之间的网络为IPv4环境

●PC1及PC2处于IPv6孤岛

实验需求

●R1及R2为IPv6/IPv4双栈设备

●在R1及R2上部署GRE隧道使得PC1及PC2能够互相访问(先采用IPv6静态路由实现互通)

●R1及R2基于建立好的GRE隧道运行OSPFv3交互IPv6路由前缀

实验步骤及配置

R3的配置如下

R1的配置如下:

R2的配置如下:

完成配置后,首先查看一下R1的接口IPv6信息:

从上面的输出可以看到,隧道接口的物理和协议都要是UP的。从报文的层面看,PC1发出的IPv6报文到达R1后,R1在原有报文的基础上先增加了一个GRE的头部,再增加一个IPv4的隧道头部,以便数据包能够穿越IPv4网络到达隧道对端。

报文的实际交互过程如下:

在R1、R2的GRE隧道建立好后,为了使PC1与PC2能够通信,我们在R1及R2上配置了IPv6静态路由,例如在R1上配置了静态路由“Ipv6 route-static 2001:2222::64 tunnel 0/0/0”,如此一来当R1收到去往2001:2222::/64网络的数据包时,就会将数据包送到隧道进行转发。

然而静态路由是需要手工配置的,而且可扩展性较差。采用动态路由协议可以解决这些问题,但是R1-R3并非直连路由器,如何能够运行IPv6动态路由协议?

得益于R1-R2之间已经建立起来的GRE隧道,R1、R2相当于打通了一条承载在IPv4网络上的IPv6点到点“直连链路”,虽然这条链路是虚拟的。基于这条直连链路,R1、R2即可运行IPv6动态路由协议从而动态的交互路由信息。

现在,去掉R1、R2上配置的IPv6静态路由。然后在R1及R2上增补配置:

R1的增补的配置如下:

R2的增补的配置如下:

完成上述配置后,R1、R2即会通过GRE Tunnel发送OSPFv3 Hello试图发现邻居,随后建立OSPFv3邻居关系。

邻居的状态已经Full了。

R1已经学习到2001:2222::/64的路由,R2也学到了2001:1111::/64的路由,因此PC1及PC2能够互相ping通,通过抓包可以观察到OSPFv3在GRE隧道上的工作过程。实际上我们并未给Tunnel接口配置全局单播IPv6地址,这里R1及R2使用的是Tunnel接口的链路本地地址建立OSPFv3邻居关系。

责编:莎莉
参与评论
文明上网,理性发言!请遵守新闻评论服务协议
0/200