引言
通过上述的学习,我们都知道,GRE协议是一个配置简单,封装后的报文可以支持组播,广播的VPN协议,但是他并不具有安全保障。IPsec VPN是具有安全保障的协议,但是他封装后报文只能支持单播,不能用于某些动态路由协议上。现在为何不把俩者结合起来,既能提供安全保障,封装后还能使报文在公网环境上广播,运用动态路由协议了。因此,今日课题,IPsec结合GRE,隧道嵌套。我会用最直观的画图法和阐述基本原理带大家去理解嵌套不同形式的存在形式,以及配置细节理解(大学生易读版嘛)
理解
综上述理解,现在将IPsec和GRE俩个不同的隧道协议进行嵌套,既然是嵌套,那么肯定一个在外一个在里,因此有俩种不同的嵌套方式。其一,GRE Over IPsec,先将报文放在GRE隧道,再在其基础上打上ipsec安全 协议,其二,IPsec Over GRE,先将报文打上安全协议,再将其放在GRE隧道当中去。具体来说,GRE Over IPsec,先封装GRE包头,再封装IPsec包头,IPsec Over GRE,先封装IPsec包头,再封装GRE包头。
GRE Over IPsec
理解
如图,从内到外,在该拓扑上,由于R1和R5先建立了GRE隧道的关系,所以说PC1和PC4为直连关系,去PC4的报文在R1上寻找路由条目的时候,会优先进入tunnel口进行GRE封装直连到PC4,但Tunnel始终是以抽象的方式存在,还是会从E0/1出去,这个时候,我们在接口E0/1匹配上有关报文接着已经建立好IPsec进行封装,从而达成先GRE封装,再IPsec封装(GRE Over IPsec)的目的,值得一提的是在e0/1上匹配报文进行IPsec封装协议的时候,匹配的是GRE封装后的报文,所以说是公网俩个对端地址。(大家根据如图从里往外理解或则分析报文封装顺序理解)
分类
由于IPsec的工作模式还细分为隧道模式和传输模式,这里也一样去二次分类
隧道模式
由图可见,再封装完GRE包头之后再封装IPsec包头,可注意到,GRE的ip头部和新包头ip头部通常情况下都是公网俩对端的地址,会造成资源浪费,所以往往采用的是下述传输模式的GRE Over IPsec。
传输模式
传输模式封装不会封装公网头部,以节约网络资源的作用(无新包头)
配置
//先配置GRE
interface Tunnel1
ip address 192.168.13.1 255.255.255.0
tunnel source 202.101.12.1
tunnel destination 202.101.24.4 //tunnel互通三要素
ip route 0.0.0.0 0.0.0.0 202.101.12.2 //VPN对端互通
ip route 192.168.4.4 255.255.255.255 Tunnel1 //引流
//再配置IPSEC
crypto isakmp policy 10
authentication pre-share
crypto isakmp key 123 address 202.101.24.4
crypto ipsec transform-set myset esp-3des esp-md5-hmac
mode transport
//以上为阶段一
crypto map mymap 10 ipsec-isakmp
set peer 202.101.24.4
set transform-set myset
match address 100
//以上为阶段二
//最后配置匹配上的流量
access list 100 permit gre host 202.101.12.1 host 202.101.24.4
//最后接口上调用ipsec资源
interface Ethernet0/1
crypto map mymap
IPsec Over GRE
理解
由上可知,由于在成功构建GRE之后会让俩个通信点直连,所以说报文在MSR36-20 1上面的时候一定会先进入tunnel口,封装上GRE协议,那怎么才能先实现IPsec封装再封装GRE了,那就一起在tunnel口上去匹配上条目,从而封装已经配置好的IPsec资源呗!(1.在tunnel口上是先匹配ipsec policy从而封装ipsec 2.再匹配GRE并封装)这也就解释了为啥要在tunnel口上配置匹配ipsec policy 。还有一点问题,我也疑惑了很久,为什么是ipsec配置上为什么匹配的都是对端隧道口的地址,而不是实际上物理进接口的地址,我的老师一句话点醒了我————去分析对端解封装的,因为是在tunnel口上去封装上IPsec还有GRE,所以说在解封装的时候还是在tunnel口上面去解封装,所以说要发往对端的tunnel口!!!
局限性
很鸡肋IPsec Over GRE,因为是先进行IPsec封装,所以说还是只能单播传输这跟IPsec VPN很相似了,反而还多了包头占用网络资源,所以说思科都没有这项技术支持,华为华三也提议建议不采用,但我们不能不会。
配置
//阶段一创建proposal供后续使用
ike proposal 1
//配置秘钥
ike keychain 1
pre-shared-key address 10.0.0.2 255.255.255.255 key simple 123 //注意:这里是隧道口地址
//阶段一汇总配置
ike profile 1
keychain 1
local-identity address 10.0.0.1 //注意:这里是隧道口地址
match remote identity address 10.0.0.2 255.255.255.255 //注意:这里是隧道口地址
proposal 1
//阶段二配置
ipsec transform-set 1
esp encryption-algorithm des-cbc
esp authentication-algorithm md5
//IPsec全部配置打包于zx
ipsec policy zx 1 isakmp
transform-set 1
security acl 3000
remote-address 10.0.0.2
ike-profile 1
//匹配感兴趣流量
acl number 3000 permit ip source 192.168.10.1 0 destination 192.168.20.1 0
//配置tunnel口创建GRE
interface Tunnel1 mode gre
ip address 10.0.0.1 255.255.255.252
source 202.101.10.1
destination 202.101.20.1
//静态路由配置
ip route-static 0.0.0.0 0 202.101.10.254 //实现VPN的俩个对端互通
ip route-static 192.168.20.0 24 Tunnel1 //实现引流的目的
//注意,最后是在GRE隧道调用zx
interface Tunnel1 mode gre
ipsec apply policy zx
俩者细节比较
GRE Over IPSEC
GRE Over IPsec:ipsec中acl匹配的是tunnle流,源和目的是tunnel的源和目的
GRE Over IPsec:ipsec policy运用在本地物理接口上
GRE Over IPsec:ike对等体中remote-address地址是对方公网口的ip地址
IPsec Over GRE
IPsec Over GRE:acl匹配的就是通信点流量(业务流量)
IPsec Over GRE:ipsec policy运用在本地tunnel接口上
IPsec Over GRE:ike对等体中remote-address地址是对方tunnel接口ip地址
尾言
对于我来说,IPsec隧道嵌套这一章节的学习对于我的网络学习路上帮助很大,他让我理解新的思维——用报文去解释实质交换路由的原理,通过不同的封装去实现不同的功能。就重点GRE Over IPsec而言,望大家能细细揣摩,从报文封装上去理解他的配置原理和传输原理。
本人网络小白一枚,如有问题或逻错误,望大佬指出,感谢万分,有其他问题或则疑惑点大家留在评论区,我有时间一定抽空回复大家。望大家网络学习越来越牛。