问题描述
早期,我们使用 IKEv1 建立 IPSec VPN 连接,并通过 ACL 抓取特定流量,来实现两个网络(公司与云商)的内网互通;
随着网络规模的扩大,现有多个子网需要与云商互通。但是,IKEv1 并不支持多个子网,所以我们尝试切换到 IKEv2 协议;
当我们完全切换 IKEv2 协议后,虽然 IPSec 两端能够协商成功,但是无法实现其他子网互通(或许,是我们配置问题,但是原始的子网互通正常),并且在云商的控制台中,我们看到相关错误提示(其提示:鉴于 IPSec VPN 实现的原因,即使 IKEv2 也会存在部分子网无法互通的问题);
在云商的错误提示中,其建议我们使用路由模式,即 IPSec VPN 抓取感兴趣数据流的另一种方式:路由模式;
该笔记将记录:通过 IKEv2 + 路由模式 + BGP 方式,实现两个内网(公司与云商)互通的方法,以及相关常见问题的解决办法;
解决方案
补充说明
该笔记仅演示公司侧的路由配置,针对云商网络环境设备,其与 RTA 相反;
网络拓扑信息
Local LAN ====> Local Gateway ==(Internet, ISP)==> Cloud Gateway ====> Cloud Server (192.168.7.0/24) (172.16.0.0/16)
公司网关与云商网关,两者公网直接互通:
1)建立 IPSec 连接,两者中间没有 NAT 设备,公网直连。如果两者间存在 NAT 设备,需要更多配置,该场景不在此次讨论范围内;
第一步、配置两端网络可达
该配置相较简单,具体细节不再赘述:
[RTA] ip route-static ... ...
第二步、配置 IKE 信息
// -------------------------------------------------------- // 增加 Proposal 配置 ike proposal 99 // -------------------------------------------------------- // 增加 Peer 配置 ike peer albb-cld-infra v2 // remote-address x.x.x.x # 不需要配置远端地址 ike-proposal 99 pre-shared-key cipher Huawei123 # 用于 IKE 认证
留意 Proposal 相关配置,两端需要一致:
# display ike proposal number 99 ------------------------------------------- IKE Proposal: 10 Authentication method : pre-shared Authentication algorithm : SHA2-256 Encryption algorithm : AES-CBC-256 DH group : MODP-1024 SA duration : 86400 PRF : PRF-HMAC-SHA2-256 -------------------------------------------
第三步、配置 IPSec 信息
// -------------------------------------------------------- // 配置 Proposal 信息 ipsec proposal AlbbCldInfra esp authentication-algorithm sha1 // -------------------------------------------------------- // 配置 Profile 信息(而非 Policy 指令) ipsec profile AlbbCldInfra ike-peer albb-cld-infra proposal AlbbCldInfra pfs dh-group2
留意 Proposal 相关配置,两端需要一致:
# display ipsec proposal IPSec proposal name: AlbbCldInfra Encapsulation mode: Tunnel Transform : esp-new ESP protocol : Authentication SHA1-HMAC-96 Encryption AES-256
第四步、应用安全策略
interface Tunnel 0/0/99 ip address 169.254.10.2 255.255.255.252 tunnel-protocol ipsec source x.x.x.x destination x.x.x.x ipsec profile AlbbCldInfra ip route-static 172.16.0.0 16 Tunnel 0/0/99
第五步、检查、测试、调试
检查 IPSec VPN 能够正常运行;
测试内网主机与云环境能够互通;
如果 IPSec 没有正常运行,则 Tunnel 0/0/99 将为 Down 状态,并且路由条目也不会显示;
第六步、开启 BGP 以传递路由
前面配置的静态路由,仅是为了测试,既然能够正常运行,现在我们可以开始建立 BGP 连接;
建立 BGP 连接:
1)指定 BGP Peer 及 AS 号;
1)使用 Tunnel 0/0/99 接口地址;
常见问题处理
某个(或部分)网络无法互通
问题描述:
当环境配置结束后,IPSec VPN 建立成功,BGP 建立成功,路由正常传递,但是却出现内网某个网段无法与云环境内网互通;
原因分析:
既然和特定网段相关,那多半是因为网关设备上存在与之相关的配置。通过检查配置文件,我们发现:早期,我们在网关设备上部署 Traffic Behavior 和 Traffic Classfier 导致流量被 ACL 抓取后直接处理,不会再按照路由处理;
解决方案:
调整配置,规避冲突;
参考文献
建立 VPC 到本地数据中心的连接(BGP 动态路由)
华为 AR 系列接入路由器 / IPSec / 配置虚拟隧道接口建立 IPSec 隧道示例