GRE和IPsec搭配使用,到底是谁over谁?先看GRE over IPsec

关于相同的二层子网跨广域网进行互通,目前我们测试了VXLAN、IPsec和GRE三种方式,分别是(VXLAN小实验:VXLAN头端复制配置)、(为什么IPsec两端内网的网段能不能重复?分明可以实现!)和(GRE隧道也能实现两端配置相同子网了,快来看看!)。VXLAN特性比较新,所以部分场景下需要考虑使用IPsec或者GRE,但是GRE配置简单却不安全,IPsec使用又会有一些小的限制,所以一般会将IPsec和GRE组合使用。

常见的两种类型包括IPsec over GRE和GRE over IPsec,over是在网络模型中的说法,举个例子:GRE over IPsec,就是GRE在IPsec之上,那在报文封装的时候就会先封装GRE,再封装IPsec,从报文结构上看起来就是IPsec封装在GRE封装之外,是用IPsec保护GRE隧道。

所以,over前面的是内层报文封装,后面的才是外层封装,也是直接看到的报文结构,说得不严谨一点:IPsec over GRE就是GRE封装格式的报文,GRE over IPsec就是IPsec封装格式的报文。

刚做完GRE over IPv4,充分利用环境环境,今天先配置一个“GRE over IPsec”的实验。

组网需求

RT2和RT4分别连接IPv4私有网络SUBNET 1和SUBNET 5。这两个私有网络使用相同的私网地址192.168.1.0/24。通过在RT2和RT4之间建立GRE隧道,实现两个相同私有网络的互联,并对通过GRE隧道的数据进行IPsec加密处理。

组网拓扑

 

配置步骤

开头提到,GRE over IPsec,在报文封装的时候先封装GRE,再封装IPsec,是用IPsec保护GRE隧道。

上个实验中,我们已经做好了所以前面的GRE封装,对应的,我们把之前IPsec实验中的保护数据流更改为GRE隧道流量就可以了。

怎么样,听起来是不是很简单?直接看看配置吧!

RT2

#

 sysname RT2

#

interface GigabitEthernet0/0

ip address 192.168.1.2 255.255.255.0

 proxy-arp enable

#

interface GigabitEthernet0/1

ip address 23.1.1.2 255.255.255.0

 ipsec apply policy GREOIPSEC

#

interface Tunnel0 mode gre

 ip address 1.1.1.2 255.255.255.0

 source 23.1.1.2

 destination 34.1.1.4

 gre key 123321

 gre checksum

#

 ip route-static 34.1.1.0 24 23.1.1.3

 ip route-static 192.168.1.4 32 Tunnel0

 ip route-static 192.168.1.5 32 Tunnel0

#

acl advanced 3400

 rule 0 permit gre source 23.1.1.2 0 destination 34.1.1.4 0

#

ipsec transform-set TRAN

 esp encryption-algorithm 3des-cbc

 esp authentication-algorithm sha1

#

ipsec policy GREOIPSEC 10 isakmp

 transform-set TRAN

 security acl 3400

 remote-address 34.1.1.4

#

ike keychain KEY

 pre-shared-key address 34.1.1.4 255.255.255.0 key simple GREOVERIPSEC

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.1.4 255.255.255.0

 proxy-arp enable

#

interface GigabitEthernet0/1

ip address 34.1.1.4 255.255.255.0

 ipsec apply policy GREOIPSEC

#

interface Tunnel0 mode gre

 ip address 1.1.1.4 255.255.255.0

 source 34.1.1.4

 destination 23.1.1.2

 gre key 123321

 gre checksum

#

 ip route-static 23.1.1.0 24 34.1.1.3

ip route-static 192.168.1.1 32 Tunnel0

 ip route-static 192.168.1.2 32 Tunnel0

#

acl advanced 3400

 rule 0 permit gre source 34.1.1.4 0 destination 23.1.1.2 0

#

ipsec transform-set TRAN

 esp encryption-algorithm 3des-cbc

 esp authentication-algorithm sha1

#

ipsec policy GREOIPSEC 10 isakmp

 transform-set TRAN

 security acl 3400

 remote-address 23.1.1.2

#

ike keychain KEY

 pre-shared-key address 23.1.1.2 255.255.255.0 key simple GREOVERIPSEC

配置说明

1、ACL中配置的匹配详细的GRE隧道,实际上本处只有一条隧道,可以直接permit gre即可,但是为了大家看起来方便,还是配置了完整的源目地址;

2、本次使用了IKE(Internet Key Exchange,互联网密钥交换)和ISAKMP(Internet Security Association and Key Management Protocol,互联网安全联盟和密钥管理协议),也就是IKE协议利用ISAKMP语言定义密钥交换,是一种对安全服务进行协商的手段。相比如之前使用的手工方式建立隧道,IKE为IPsec提供了自动建立IPsec SA的服务,简单了一些,本次不展开赘述。

3、环境保留了上次实验中同网段互访的配置,属于上个实验的延伸。

验证配置

查看RT4设备Tunnel口状态。

 

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

1、MTU为1468字节;

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

 

3、隧道TTL值为255;

4、GRE over IPv4隧道中安全功能key已设置,密钥为123321;

5、GRE over IPv4隧道中安全功能checksum已设置。

使用display ike sa命令,可以看到第一阶段的SA正常建立。

 

使用display ipsec sa命令可以看到IPsec SA的建立情况。

 

问题又来了,这个地方的MTU成了1444字节。IPsec在外层,是1444字节,GRE在内层,是1468字节。最后到底会是多少呢?

验证隧道MTU

 

可以发现,实际能通过的最大报文大小为1384字节,比单独使用IPsec封装少了16字节,但是GRE封装长度只有12字节啊,少的4个字节哪里去了?抓个包分析一下。

 

这个地方我们捋一下,报文的封装结构应该是[以太网包头][外层IPv4包头][ESP报文头][GRE报文头][GRE封装][内层IPv4包头][ICMP报文][ESP-T校验字段],好像很复杂的样子。

反过来看,普通模式下IPsec SA中显示的MTU是1428字节,本次显示的是1444字节,也是少了16个字节。减掉GRE封装的12字节,还是少4个字节。看样子[GRE报文头]这部分应该是没有了,毕竟有20字节。那会不会是加密算法和IKE的问题,只能后面再验证了。

验证两端同子网

现在已经知道两端相同子网互通是没有问题了,但是上次IPsec实验有个问题就是不能查看traceroute路径,这次我们看一下。

 

很棒,traceroute路径显示和上次一样,原来使用GRE隧道能解决这个问题。

总结

1、GRE over IPsec就是用IPsec隧道保护GRE隧道,从报文结构看起来和IPsec报文一样,完全看不到里面还套了一层GRE隧道,但是MTU只有1384字节,比只使用GRE隧道的1444字节少了60字节;

2、套接了GRE隧道之后,比单独使用IPsec隧道,可以看到内层报文的traceroute路径,提高了实用性;

3、套接了GRE隧道之后,比单独使用IPsec隧道,调整保护流量时,只需要在两端调整经过GRE隧道的路由即可,无需调整ACL的兴趣流;

4、留了一个问题,GRE over IPsec实际能通过的最大报文大小为1384字节,比单独使用IPsec封装少了16字节,但是GRE封装长度只有12字节,少的4个字节哪里去了?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Danileaf_Guo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值