GRE隧道也能实现两端配置相同子网了,快来看看!

前面用两篇文章介绍了GRE(Generic Routing Encapsulation,通用路由封装)协议,分别是()和()。首先回顾一下:

GRE协议用来对某种协议(如IP、MPLS、以太网)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络(如IP)中传输。封装前后数据报文的网络层协议可以相同,也可以不同。封装后的数据报文在网络中传输的路径,称为GRE隧道。GRE隧道是一个虚拟的点到点的连接,其两端的设备分别对数据报文进行封装及解封装。

先配置一个简单的“GRE over IPv4隧道”实验。

组网需求

RT2和RT4分别连接IPv4私有网络SUBNET 1和SUBNET 5。这两个私有网络都使用私网地址。通过在RT2和RT4之间建立GRE隧道,实现两个私有网络的互联。

组网拓扑

配置步骤

GRE的配置比较简单,一般只有两步:

1、配置GRE隧道。配置隧道接口地址,并指定隧道接口的源目端地址即可。

2、配置路由将流量引到隧道接口。

各设备配置命令如下:

RT2

#

 sysname RT2

#

interface GigabitEthernet0/0

ip address 192.168.1.2 255.255.255.0

#

interface GigabitEthernet0/1

ip address 23.1.1.2 255.255.255.0

#

interface Tunnel0 mode gre

 ip address 1.1.1.2 255.255.255.0

 source 23.1.1.2

 destination 34.1.1.4

#

 ip route-static 34.1.1.0 24 23.1.1.3

 ip route-static 192.168.5.0 24 Tunnel0

RT-ISP

#

interface GigabitEthernet0/0

ip address 34.1.1.3 255.255.255.0

#

interface GigabitEthernet0/1

ip address 23.1.1.3 255.255.255.0

RT4

#

 sysname RT4

#

interface GigabitEthernet0/0

ip address 192.168.5.4 255.255.255.0

#

interface GigabitEthernet0/1

ip address 34.1.1.4 255.255.255.0

#

interface Tunnel0 mode gre

 ip address 1.1.1.4 255.255.255.0

 source 34.1.1.4

 destination 23.1.1.2

#

 ip route-static 23.1.1.0 24 34.1.1.3

 ip route-static 192.168.1.0 24 Tunnel0

验证配置

查看RT2设备Tunnel口状态。

可以看到有几个相对关键的指标项:

1、MTU为1476字节;

2、隧道keepalive功能未开启,开启命令如下:

3、隧道TTL值为255;

4、GRE over IPv4隧道中安全功能key未设置,开启命令如下。如果开启,需要保证两端配置相同;

5、GRE over IPv4隧道中安全功能checksum未设置,开启命令如下;

6、除上述机箱之外,还可以设置封装后隧道报文的DF(Don’t Fragment,不分片)标志。命令为:

tunnel dfbit enable

验证一下MTU。

可以发现,实际能通过的最大报文大小为1444字节。抓个包分析一下。

可以看到报文的封装结构为[以太网包头][外层IPv4包头][GRE封装][内层IPv4包头][ICMP报文],其中[外层IPv4包头]长度为20字节,[GRE封装]长度为8字节,[内层IPv4包头]长度为20字节。得益于没有加密,我们可以清楚看到每层报文的数据结构,[内层IPv4包头]和[外层IPv4包头]封装结构完全一致。ICMP数据段长度为1444字节,封装8字节ICMP报文头,再封装20字节[内层IPv4包头],总长度正好1472字节。

这里我额外增加了校验和的配置,可以看到[GRE封装]中校验和相关字段的差异。

验证KEY加密

因为没有加密,所以能看到完整的数据报文,那设置GRE KEY能不能对数据进行加密呢?

配置一下,发现这个KEY只能是数字。

查看接口状态,能直接看到key的值,不知道这算不算不安全。

如果两端设置的key不一致,不会有错误提示,接口状态也不会协议DOWN,但是业务确实中断了。

好,接下来我们把两边设置成相同的key,验证一下。

连通性正常。抓个包看一下数据是否加密。

啊,亮瞎了我的狗眼。密码是明文显示的,数据依旧是明文显示的。这个GRE确实方便,但是安全性有待提高啊。

验证两端同子网

跟测试IPsec一样,我们试一下两端相同子网能不能互通。

很棒,跟上次配置相同,能实现两端配置相同子网的互通,而且可以看到traceroute路径。

验证隧道DF

在RT2设备上开启DF位标志,验证发现能通过的数据包长度少了4个。

这是什么原因?抓个包看一眼。

好像也没什么,只是开了DF之后,MTU就小了4字节。

总结

1、GRE的配置确实很简单,简单到几条命令就能实现;

2、GRE的安全性确实比较差,差到验证隧道的密钥都是明文传输的,而且对封装的数据报文没有任何加密措施;

3、GRE隧道中如果开启不允许分片,会导致MTU变为1468字节;

4、GRE封装和VXLAN封装的MTU都是1472字节,要是你,你怎么选择?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Danileaf_Guo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值