「Huawei-VRP」- IPSec, IKEv2, with BGP

问题描述

早期,我们使用 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 隧道示例