GRE over IPSec可利用GRE和IPSec的优势,通过GRE将组播、广播和非IP报文封装成普通的IP报文,通过IPSec为封装后的IP报文提供安全地通信,进而可以提供在总部和分支之间安全地传送广播、组播的业务,例如动态路由协议消息等。
就是将GRE的优点和IPsec的优点相结合
因为GRE能够传输组播、广播等数据,但对数据的传输是不进行加密的,在不安全的公网上面相当于裸奔啦。而咱们的IPsec 是可以对数据进行加密和认证的,但是不支持传输组播、广播等数据,就是会有一些弊端。
现在就是将二者结合在一起,形成为GRE Over IPsec的隧道嵌套技术,这个原理是IPsec 保护 GRE隧道的流量,就可以将GRE的流量进行加密,GRE又可以将私网流量(组播、广播、单播数据包都可以)进行封装,报文格式可以看的很清楚哦,就在下面啦
当网关之间采用GRE over IPSec连接时,先进行GRE封装,再进行IPSec封装。 GRE over IPSec使用的封装模式为可以是隧道模式也可以是传输模式。
因为隧道模式跟传输模式相比增加了IPSec头,导致报文长度更长,更容易导致分片,所以传输模式的GRE over IPSec会好很多。
隧道模式:
传输模式:
R1为企业总部网关,R3为企业分部网关,分部与总部通过公网建立通信。
企业希望对分部与总部之间相互访问的流量(包括组播数据)进行安全保护。由于组播数据无法直接应用IPSec,所以基于虚拟隧道接口方式建立GRE over IPSec,对流量进行保护
① 创建虚拟Tunnel接口
② 指定协议类型为GRE
③ 设置Tunnel接口的网络地址和掩码
④ 指定Tunnel的源端IP地址
⑤ 指定Tunnel的目的端IP地址
⑥ 开启Keepalive检测功能
基础配置, 配置接口的IP地址和到对端的静态路由,保证两端路由可达。
第一阶段 IKE SA
① 配置IKE安全提议,定义IKE保护数据流方法
② 配置IKE对等体,定义对等体间IKE协商时的属性
第二阶段 IPsec SA
① 配置ACL,以定义需要IPSec保护的数据流
② 配置IPSec安全提议,定义IPSec的保护方法
③ 配置安全策略,并引用ACL、IPSec安全提议和IKE对等体,确定对何种数据流采取何种保护方法
在接口上应用安全策略组,使接口具有IPSec的保护功能
<Huawei>sys
[Huawei]sysname R1
[R1]undo info-center enable ## 可选,关闭系统消息弹窗
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.10.254 24
[R1-GigabitEthernet0/0/1]qu
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 202.101.12.1 24
[R1-GigabitEthernet0/0/0]qu
##配置默认路由指向ISP运营商,实现公网可达
[R1]ip route-static 0.0.0.0 0.0.0.0 202.101.12.2
[R1]int Tunnel 0/0/1 ## 创建隧道接口
[R1-Tunnel0/0/1]tunnel-protocol gre ## 定义隧道协议类型为GRE
[R1-Tunnel0/0/1]ip address 13.13.13.1 24 ## 配置隧道IP地址
[R1-Tunnel0/0/1]source 202.101.12.1 ## 隧道源地址(封装报文头的)
[R1-Tunnel0/0/1]destination 202.101.23.3 ## 隧道目的地址(封装报文头的)
[R1-Tunnel0/0/1]keepalive ## Keepalive 检测机制
[R1-Tunnel0/0/1]qu
[R1]ospf 110 router-id 1.1.1.1 ## 进入OSPF进程110,RID 为1.1.1.1
[R1-ospf-110]area 0 ## 骨干区域 0
[R1-ospf-110-area-0.0.0.0]network 192.168.10.0 255.255.255.0 ## 宣告内容
[R1-ospf-110-area-0.0.0.0]network 13.13.13.0 255.255.255.0
========================== 配置第一阶段 IKE ============================
## 配置R1的IKE安全提议 ,名字为 1
[R1]ike proposal 1
[R1-ike-proposal-1]encryption-algorithm 3des-cbc ## 加密算法
[R1-ike-proposal-1]authentication-algorithm md5 ## 认证算法
[R1-ike-proposal-1]dh group5 ## dh组5
[R1-ike-proposal-1]qu
## 配置IKEv1对等体,名字为 1,配置预共享密钥和对端ID
[R1]ike peer 1 v1 ## 版本要一致
[R1-ike-peer-1]ike-proposal 1 ## 关联IKE的安全提议
[R1-ike-peer-1]pre-shared-key simple 520 ## 预共享密钥也要一致
[R1-ike-peer-1]remote-address 202.101.23.3 ## 配置对端地址
[R1-ike-peer-1]qu
========================== 配置第二阶段 IPsec ============================
##配置高级ACL,精确通告,公网地址(GRE隧道的源目IP地址)
[R1]acl 3000
[R1-acl-adv-3000]rule per ip source 202.101.12.1 0.0.0.0 destination 202.101.23.3 0.0.0.0
[R1-acl-adv-3000]qu
## 配置IPSec安全提议,命名为 1
[R1]ipsec proposal 1
[R1-ipsec-proposal-1]esp encryption-algorithm 3des ## 采用ESP加密封装
[R1-ipsec-proposal-1]esp authentication-algorithm md5 ## 采用ESP认证
[R1-ipsec-proposal-1]encapsulation-mode tunnel ## 传输模式为隧道模式
[R1-ipsec-proposal-1]qu
## 配置IKE协商方式安全策略,命名为 mypolicy 优先级为 1
[R1]ipsec policy mypolicy 1 isakmp
[R1-ipsec-policy-isakmp-mypolicy-1]ike-peer 1 ## 关联IKE的对等体
[R1-ipsec-policy-isakmp-mypolicy-1]proposal 1 ## 关联IPsec 安全提议
[R1-ipsec-policy-isakmp-mypolicy-1]security acl 3000 ## 匹配需要保护的ACL数据流
[R1-ipsec-policy-isakmp-mypolicy-1]qu
## 接口上调用安全策略组
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ipsec policy mypolicy ## 调用策略mypolicy
[R1-GigabitEthernet0/0/0]qu
<Huawei>sys
[Huawei]sysname ISP_R2
[ISP_R2]int g0/0/1
[ISP_R2-GigabitEthernet0/0/1]ip address 202.101.23.2 24
[ISP_R2-GigabitEthernet0/0/1]qu
[ISP_R2]int g0/0/0
[ISP_R2-GigabitEthernet0/0/0]ip address 202.101.12.2 24
[ISP_R2-GigabitEthernet0/0/0]qu
<Huawei>sys
[Huawei]sysname R3
[R3]undo info-center enable ## 可选,关闭系统消息弹窗
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 202.101.23.3 24
[R3-GigabitEthernet0/0/0]qu
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 192.168.20.254 24
[R3-GigabitEthernet0/0/1]qu
##配置默认路由指向ISP运营商,实现公网可达
[R3]ip route-static 0.0.0.0 0.0.0.0 202.101.23.2
[R3]int Tunnel 0/0/1
[R3-Tunnel0/0/1]tunnel-protocol gre
[R3-Tunnel0/0/1]ip address 13.13.13.3 24
[R3-Tunnel0/0/1]source 202.101.23.3
[R3-Tunnel0/0/1]destination 202.101.12.1
[R3-Tunnel0/0/1]keepalive
[R3-Tunnel0/0/1]qu
[R3]ospf 110
[R3-ospf-110]area 0
[R3-ospf-110-area-0.0.0.0]network 13.13.13.0 255.255.255.0
[R3-ospf-110-area-0.0.0.0]network 192.168.20.0 255.255.255.0
[R3-ospf-110-area-0.0.0.0]qu
========================== 配置第一阶段 IKE ============================
[R3]ike proposal 1
[R3-ike-proposal-1]encryption-algorithm 3des-cbc
[R3-ike-proposal-1]authentication-algorithm md5
[R3-ike-proposal-1]dh group5
[R3-ike-proposal-1]qu
[R3]ike peer 1 v1
[R3-ike-peer-1]ike-proposal 1
[R3-ike-peer-1]pre-shared-key simple 520
[R3-ike-peer-1]remote-address 202.101.12.1
[R3-ike-peer-1]qu
========================== 配置第二阶段 IPsec ============================
[R3]acl 3000
[R3-acl-adv-3000]rule 5 permit ip source 202.101.23.3 0.0.0.0 destination 202.101.12.1 0.0.0.0
[R3-acl-adv-3000]qu
[R3]ipsec proposal 1
[R3-ipsec-proposal-1]encapsulation-mode tunnel
[R3-ipsec-proposal-1]esp authentication-algorithm md5
[R3-ipsec-proposal-1]esp encryption-algorithm 3des
[R3-ipsec-proposal-1]qu
[R3]ipsec policy mypolicy 1 isakmp
[R3-ipsec-policy-isakmp-mypolicy-1]ike-peer 1
[R3-ipsec-policy-isakmp-mypolicy-1]proposal 1
[R3-ipsec-policy-isakmp-mypolicy-1]security acl 3000
[R3-ipsec-policy-isakmp-mypolicy-1]qu
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ipsec policy mypolicy
[R3-GigabitEthernet0/0/0]qu
记住这个报文格式,到后面看我抓包的内容就能够很好地理解啦~
查看邻居的建立情况
当GRE的网段地址(13.13.13.0)能够相互通信的时候,就表明GRE的隧道是建立成功了
如下图所示
此时的IPsec VPN是自动建立的
这是因为私网中,我是用OSPF实现的全互通,GRE的隧道口也是被我宣告进去了,这个时候,这个时候的Hello包会经过GRE封装,携带公网头部从e0/0接口出去,触发到了IPsec的ACL感兴趣流量,这个时候就会自动建立IPsec VPN
因为我的 IPSec 用ESP头部数据封装进行传输,会对流量包进行加密,这个时候抓包的时候就看不到数据包里面的内容了,这个安全性会更高
注意:直接粘贴命令是可以的,但有时候GRE 隧道会没建立成功,就需要自己手动再敲代码进去啦
R1
sys
sysname R1
undo info-center enable
int g0/0/1
ip address 192.168.10.254 24
qu
int g0/0/0
ip address 202.101.12.1 24
qu
ip route-static 0.0.0.0 0.0.0.0 202.101.12.2
int Tunnel 0/0/1
tunnel-protocol gre
ip address 13.13.13.1 24
source 202.101.12.1
destination 202.101.23.3
keepalive
qu
ospf 110 router-id 1.1.1.1
area 0
network 192.168.10.0 255.255.255.0
network 13.13.13.0 255.255.255.0
ike proposal 1
encryption-algorithm 3des-cbc
authentication-algorithm md5
dh group5
qu
ike peer 1 v1
ike-proposal 1
pre-shared-key simple 520
remote-address 202.101.23.3
qu
ipsec proposal 1
encapsulation-mode tunnel
esp authentication-algorithm md5
esp encryption-algorithm 3des
qu
acl 3000
rule 5 permit ip source 202.101.12.1 0.0.0.0 destination 202.101.23.3 0.0.0.0
qu
ipsec policy mypolicy 1 isakmp
ike-peer 1
proposal 1
security acl 3000
qu
int g0/0/0
ipsec policy mypolicy
qu
ISP_R2
sys
sysn ISP_R2
int g0/0/0
ip address 202.101.12.2 24
qu
int g0/0/1
ip address 202.101.23.2 24
qu
R3
sys
sysname R3
undo info-center enable
int g0/0/0
ip address 202.101.23.3 24
qu
int g0/0/1
ip address 192.168.20.254 24
qu
ip route-static 0.0.0.0 0.0.0.0 202.101.23.2
int Tunnel 0/0/1
tunnel-protocol gre
ip address 13.13.13.3 24
source 202.101.23.3
destination 202.101.12.1
keepalive
qu
ospf 110
area 0
network 13.13.13.0 255.255.255.0
network 192.168.20.0 255.255.255.0
qu
ike proposal 1
encryption-algorithm 3des-cbc
authentication-algorithm md5
dh group5
qu
ike peer 1 v1
ike-proposal 1
pre-shared-key simple 520
remote-address 202.101.12.1
qu
ipsec proposal 1
encapsulation-mode tunnel
esp authentication-algorithm md5
esp encryption-algorithm 3des
qu
acl 3000
rule 5 permit ip source 202.101.23.3 0.0.0.0 destination 202.101.12.1 0.0.0.0
qu
ipsec policy mypolicy 1 isakmp
ike-peer 1
proposal 1
security acl 3000
qu
int g0/0/0
ipsec policy mypolicy
qu