【思科】GRE Over IPsec 实验配置
- 前言
- 报文格式
- 实验需求
- 配置
- 拓扑
- GRE配置步骤
- IPsec 配置步骤
- R1
- 基础配置
- GRE 配置
- IPsec 配置
- ISP_R2
- 基础配置
- R3
- 基础配置
- GRE 配置
- IPsec 配置
- PC
- PC1
- PC2
- 抓包检查
- OSPF建立
- GRE隧道建立
- IPsec 隧道建立
- Ping
- 配置文档
前言
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,对流量进行保护
配置
路由器为AR2220
拓扑
GRE配置步骤
① 创建虚拟Tunnel接口
② 指定协议类型为GRE
③ 设置Tunnel接口的网络地址和掩码
④ 指定Tunnel的源端IP地址
⑤ 指定Tunnel的目的端IP地址
⑥ 开启Keepalive检测功能
IPsec 配置步骤
-
基础配置, 配置接口的IP地址和到对端的静态路由,保证两端路由可达。
-
第一阶段 IKE SA
① 配置IKE安全提议,定义IKE保护数据流方法
② 配置IKE对等体,定义对等体间IKE协商时的属性 -
第二阶段 IPsec SA
① 配置ACL,以定义需要IPSec保护的数据流
② 配置IPSec安全提议,定义IPSec的保护方法
③ 配置安全策略,并引用ACL、IPSec安全提议和IKE对等体,确定对何种数据流采取何种保护方法 -
在接口上应用安全策略组,使接口具有IPSec的保护功能
R1
基础配置
<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
GRE 配置
[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
IPsec 配置
========================== 配置第一阶段 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
ISP_R2
基础配置
<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
R3
基础配置
<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
GRE 配置
[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
IPsec 配置
========================== 配置第一阶段 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
PC
PC1
PC2
抓包检查
记住这个报文格式,到后面看我抓包的内容就能够很好地理解啦~
OSPF建立
查看邻居的建立情况
GRE隧道建立
当GRE的网段地址(13.13.13.0)能够相互通信的时候,就表明GRE的隧道是建立成功了
如下图所示
IPsec 隧道建立
此时的IPsec VPN是自动建立的
这是因为私网中,我是用OSPF实现的全互通,GRE的隧道口也是被我宣告进去了,这个时候,这个时候的Hello包会经过GRE封装,携带公网头部从e0/0接口出去,触发到了IPsec的ACL感兴趣流量,这个时候就会自动建立IPsec VPN
Ping
因为我的 IPSec 用ESP头部数据封装进行传输,会对流量包进行加密,这个时候抓包的时候就看不到数据包里面的内容了,这个安全性会更高
配置文档
注意:直接粘贴命令是可以的,但有时候GRE 隧道会没建立成功,就需要自己手动再敲代码进去啦
R1
sys
sysname R1undo info-center enable int g0/0/1
ip address 192.168.10.254 24
quint g0/0/0
ip address 202.101.12.1 24
quip route-static 0.0.0.0 0.0.0.0 202.101.12.2int 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
quospf 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.0ike proposal 1
encryption-algorithm 3des-cbc
authentication-algorithm md5
dh group5
quike peer 1 v1
ike-proposal 1
pre-shared-key simple 520
remote-address 202.101.23.3
quipsec proposal 1
encapsulation-mode tunnel
esp authentication-algorithm md5
esp encryption-algorithm 3des
quacl 3000
rule 5 permit ip source 202.101.12.1 0.0.0.0 destination 202.101.23.3 0.0.0.0
quipsec policy mypolicy 1 isakmp
ike-peer 1
proposal 1
security acl 3000
quint 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 R3undo info-center enable int g0/0/0
ip address 202.101.23.3 24
quint g0/0/1
ip address 192.168.20.254 24
quip route-static 0.0.0.0 0.0.0.0 202.101.23.2int 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
quospf 110
area 0
network 13.13.13.0 255.255.255.0
network 192.168.20.0 255.255.255.0
quike proposal 1
encryption-algorithm 3des-cbc
authentication-algorithm md5
dh group5
quike peer 1 v1
ike-proposal 1
pre-shared-key simple 520
remote-address 202.101.12.1
quipsec proposal 1
encapsulation-mode tunnel
esp authentication-algorithm md5
esp encryption-algorithm 3des
quacl 3000
rule 5 permit ip source 202.101.23.3 0.0.0.0 destination 202.101.12.1 0.0.0.0
quipsec policy mypolicy 1 isakmp
ike-peer 1
proposal 1
security acl 3000
quint g0/0/0
ipsec policy mypolicy
qu