GRE over IPsec,IPsec不服,要求IPsec over GRE

简介: GRE over IPsec,IPsec不服,要求IPsec over GRE

上个实验介绍了GRE over IPsec,就是GRE在IPsec之上,在报文封装的时候先封装GRE,再封装IPsec,从报文结构上看起来就是一个IPsec封装的报文,看不到GRE封装的痕迹,是用IPsec保护GRE隧道。


今天在上个实验基础上做一下IPsec over GRE实验,也就是GRE在IPsec之上,在报文封装的时候先封装IPsec,再封装GRE。因为GRE是不加密的,所以今天从报文结构上看,应该是可以看到外层封装GRE隧道、内层封装IPsec隧道的报文结构的,不能说用GRE隧道保护IPsec隧道了,应该是用GRE隧道转发IPsec报文了。


组网需求


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


组网拓扑


1677225050278.jpg


配置步骤


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


1、相比于上个实验,我们要修改访问控制列表需匹配数据的原始范围,把IPsec的保护数据流更改为两端互访的数据流量;


2、为了对网络间传输的数据先进行IPsec封装,再进行GRE封装,需要配置IPsec隧道的对端IP地址为GRE隧道的接口地址;


3、再把流量丢进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
#
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
 ipsec apply policy ipsecogre
#
 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 ip source 192.168.1.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
#
ipsec transform-set TRAN
 esp encryption-algorithm 3des-cbc
 esp authentication-algorithm sha1
#
ipsec policy ipsecogre 10 isakmp
 transform-set TRAN
 security acl 3400
 remote-address 1.1.1.4
#
ike keychain key
 pre-shared-key address 1.1.1.4 255.255.255.0 key simple ipsecogre

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
#
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
 ipsec apply policy ipsecogre
#
 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 ip source 192.168.1.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
#
ipsec transform-set TRAN
 esp encryption-algorithm 3des-cbc
 esp authentication-algorithm sha1
#
ipsec policy ipsecogre 10 isakmp
 transform-set TRAN
 security acl 3400
 remote-address 1.1.1.2
#
ike keychain key
 pre-shared-key address 1.1.1.2 255.255.255.0 key simple ipsecogre

配置说明


1、删除物理接口上的IPsec策略;

2、修改ACL匹配流量为两端的私网地址;

3、修改IKE预共享密钥的对端地址和密钥;

4、创建新的IPsec策略,对端地址为对端GRE隧道地址;

4、在GRE隧道接口上应用IPsec策略。


验证配置


查看RT4设备Tunnel口状态。

1677225266303.jpg

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

1、MTU为1468字节,跟GRE over IPsec相同;

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

1677225303463.jpg

3、隧道TTL值为255;

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

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

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

1677225317949.jpg

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

1677225335227.jpg

 

可以看到,IPsec封装在内层,MTU是1412字节;GRE封装在外层,MTU是1468字节。那这次最后会是多少呢?


验证隧道MTU


1677225342574.jpg


可以发现,实际能通过的最大报文大小也是1384字节,跟GRE over IPsec相同。抓个包分析一下。

1677225355159.jpg

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


反过来看,内层数据报文IPsec封装后长度为1464字节,比1384字节的数据长80字节,[ESP报文头] [内层IPv4包头] [ICMP报文] [ESP-T校验字段] 段长度为1444字节,比业务报文还要长60字节;单独使用IPsec封装时,ESP封装的数据长度为1476字节,比业务报文的1400字节长76字节。这次少了16字节,问题出在哪了呢?看来后面要和上次的问题一起验证一下了。


验证两端同子网


现在已经知道两端相同子网互通也是没有问题了。但是单独的IPsec实验不能查看traceroute路径,GRE over IPsec就可以,那这次我们看一下IPsec over GRE可不可以?

1677225374450.jpg

很棒,traceroute路径显示和上次一样,原来使用IPsec over GRE也可以解决,那是不是可以理解为用了GRE隧道就能解决这个问题?


总结


1、IPsec over GRE就是用GRE隧道保护IPsec隧道,从报文结构看起来和GRE报文比较像,但是因为内层封装的是IPsec报文,所以外层显示还是ESP报文。可以看到GRE隧道里面还套了一层IPsec隧道,最终的MTU也是1384字节,和GRE over IPsec相同;


2、不管是先封装GRE隧道,还是先封装IPsec隧道,都可以看到内层报文的traceroute路径,提高了实用性;


3、因为先封装IPsec隧道,所以在调整保护流量时,还是要和单独使用IPsec隧道一样,调整ACL的兴趣流,配置比GRE over IPsec要麻烦。其实,这个麻烦是相对而言的,只是配置ACL要指定两端的网段,并且还是反掩码,而路由则是目的网段和下一跳;


4、补充了上次的遗留问题,IPsec over GRE实际能通过的最大报文大小为1384字节,ESP封装字段的长度为1444字节,比业务报文长60字节;单独使用IPsec封装时,ESP封装的数据长度为1476字节,比业务报文的1400字节长76字节。上次多余的4个字节哪里去了?这次少了16字节,问题又出在哪里呢?


相关文章
|
Shell 网络架构
|
17天前
|
网络协议 网络虚拟化 虚拟化
|
9月前
|
网络协议 网络虚拟化 网络架构
【HCIP】17.MPLS VPN
【HCIP】17.MPLS VPN
39 0
|
安全 算法 网络协议
MPLS vpn和IPSEC vpn
MPLS vpn和IPSEC vpn
535 0
|
安全 网络安全 网络虚拟化
GRE和IPsec搭配使用,到底是谁over谁?先看GRE over IPsec
GRE和IPsec搭配使用,到底是谁over谁?先看GRE over IPsec
GRE和IPsec搭配使用,到底是谁over谁?先看GRE over IPsec
|
网络安全 网络虚拟化 数据安全/隐私保护
路由器配置IPSec VPN(一)
路由器配置IPSec VPN(一)
路由器配置IPSec VPN(一)
|
网络安全 网络虚拟化 数据安全/隐私保护
ASA防火墙和路由器配置IPSec VPN
ASA防火墙和路由器配置IPSec VPN
ASA防火墙和路由器配置IPSec VPN
|
网络架构
GRE隧道
文章目录 实验拓扑 实验要求 实验配置 实验总结
286 0
GRE隧道
|
网络安全 数据安全/隐私保护 网络虚拟化
GRE隧道技术
掌握GRE隧道配置 GRE 隧道本身并不支持数据加密。需要其他协议如IPsec等实现数据传输加密 GRE支持广播
416 0
|
安全 网络协议 网络安全
GRE Over IPsec
GRE Over IPsec
158 0