吴秀涛,一端地址不固定如何实现GRE并使用IPSEC保护
组网及说明
问题描述
需求:
R1有固定IP , R2 是拨号上网,需要实现 R1 和 R2 建立 OSPF 实现内网的多网段互通且跑组播业务
配置思路:
使用 IPSEC 野蛮模式将 R1 和 R2 的环回口打通,通过环回口建立 GRE 隧道实现
过程分析
主要配置:
R1:
#
acl advanced name IPSEC12
rule 2 permit ip source 1.1.1.1 0 destination 2.2.2.2 0
#
acl advanced name NAT
rule 2 deny ip source 1.1.1.1 0 destination 2.2.2.2 0
rule 5 permit ip
#
interface GigabitEthernet0/1
port link-mode route
combo enable copper
ip address 10.10.12.2 255.255.255.252
nat outbound name NAT
ipsec apply policy 1
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
ip route-static 0.0.0.0 0 GigabitEthernet0/1 10.10.12.1
#
ipsec transform-set 12
esp encryption-algorithm 3des-cbc aes-cbc-128
esp authentication-algorithm md5
#
ipsec policy-template 1 1
transform-set 12
security acl name IPSEC12
local-address 10.10.12.2
ike-profile 12
#
ipsec policy 1 1 isakmp template 1
#
ike identity fqdn R1
#
ike profile 12
keychain 12
exchange-mode aggressive
local-identity fqdn R1
match remote identity fqdn R2
match local address GigabitEthernet0/1
proposal 1
#
ike proposal 1
encryption-algorithm 3des-cbc
dh group2
authentication-algorithm md5
#
ike keychain 12
match local address 10.10.12.2
pre-shared-key address 0.0.0.0 0.0.0.0 key cipher $c$3$15I1sJQZilIbSRI0rxoELx9QAjJiCw==
#
interface Tunnel1 mode gre
ip address 192.168.12.1 255.255.255.0
ospf 1 area 0.0.0.0
source 1.1.1.1
destination 2.2.2.2
#
R2:
#
acl advanced name IPSEC21
rule 1 permit ip source 192.168.20.0 0.0.0.255 destination 192.1 68.10.0 0.0.0.255
rule 2 permit ip source 2.2.2.2 0 destination 1.1.1.1 0
#
acl advanced name NAT
rule 1 deny ip source 192.168.20.0 0.0.0.255 destination 192.168 .10.0 0.0.0.255
rule 2 deny ip source 2.2.2.2 0 destination 1.1.1.1 0
rule 5 permit ip
#
ipsec transform-set 21
esp encryption-algorithm 3des-cbc aes-cbc-128
esp authentication-algorithm md5
#
ipsec policy 2 1 isakmp
transform-set 21
security acl name IPSEC21
remote-address 10.10.12.2
ike-profile 21
#
ike identity fqdn R2
#
ike profile 21
keychain 21
exchange-mode aggressive
local-identity fqdn R2
match remote identity address 10.10.12.2 255.255.255.252
match local address Dialer1
proposal 1
#
ike proposal 1
encryption-algorithm 3des-cbc
dh group2
authentication-algorithm md5
#
ike keychain 21
match local address 20.20.12.2
pre-shared-key address 10.10.12.2 255.255.255.252 key cipher $c$ 3$B0MzOjTZ40lSqvNRs9ff7QW0s/UBCA==
#
interface Tunnel1 mode gre
ip address 192.168.12.2 255.255.255.0
ospf 1 area 0.0.0.0
source 2.2.2.2
destination 1.1.1.1
#
解决方法
1、 正常的GRE over ipsec组网是两端有公网IP,GRE的底层地址使用两端公网的IP , IPSEC 兴趣流是两端公网 IP ,数据转发流程:
组网:
PC1(192.168.1.1)——R1(11.11.11.11)——ISP——(22.22.22.22)R2——PC2(192.168.2.1)
PC1访问PC2 的将数据包发给 R1 , R1 查路由表发现目的 IP ( 192.168.2.1 )需要从 GRE 接口出去,数据到达 GRE 接口进行 GRE 封装,将数据包的源 IP 改成 11.11.11.11 ,目的 IP 改成 22.22.22.22 ,此时设备再查路由表发现想要去目的 IP 22.22.22.22 需要将数据包送到物理接口,物理接口调用了 IPSEC 查询是否匹配 IPSEC 兴趣流,如果匹配进行 IPSEC 封装,在 GRE 的基础上再封装一层 IPSEC ,源 IP : 11.11.11.11 ,目的 IP : 22.22.22.22 。数据包到达 R2 后首先进行 IPSEC 解封装,再把 GRE 解封装把真实的私网 IP 数据包恢复发给 PC2 。
2、 如果一端是拨号,一端固定IP去实现GRE Over IPSEC,因为GRE的配置无法配置域名相关所以无法用DDNS ,考虑到 GRE 的源目 IP 可以是私网,例如常用环回口,那么首先使用 IPSEC 的野蛮模式打通环回口,然后 GRE 的源目 IP 使用环回口去建立。
组网:
PC1(192.168.1.1)——R1(11.11.11.11)——ISP——(pppoe)R2——PC2(192.168.2.1)
通过 IPSEC 野蛮模式将 R1/2 的环回口打通,即 2.2.2.2 和 1.1.1.1 可以互通,再设置 R1 GRE 源目分别是 1.1.1.1 、 2.2.2.2 , R2 GRE 源目 IP 分别是 2.2.2.2 、 1.1.1.1 。 PC1 和 PC2 通信和普通的 GRE Over IPSEC 流程一样,先查路由表送到 GRE 口进行 GRE 封装, GRE 封装完后源目 IP 变成环回口,查表去往目的 IP 需要送到物理接口再匹配 IPSEC ,所以公网也是 ESP 加密数据。
3、无论是哪一种,都和GRE 的一个特性有关,无需 destination IP 可达逻辑接口才会 UP ,只要本端有去往 des ip 的路由(明细或者默认都可以)那么 tunnel 接口会 UP ,那么只需将私网互访的路由引到 tunnel 接口,那么私网互访的数据先发到 tunnel 口进行 GRE 封装再送到物理接口进行 IPSEC 封装再发往公网。
CRM论坛(CRMbbs.com)——一个让用户更懂CRM的垂直性行业内容平台,CRM论坛致力于互联网、客户管理、销售管理、SCRM私域流量内容输出5年。 如果您有好的内容,欢迎向我们投稿,共建CRM多元化生态体系,创建CRM客户管理一体化生态解决方案。本文来源:知了社区基于知识共享署名-相同方式共享3.0中国大陆许可协议,一端地址不固定如何实现GRE并使用IPSEC保护