跳转到内容
搜索文档

Cisco IOS XE

最后更新 查看 MarkdownAgent 设置

本教程提供了一个全面的配置示例,用于在 Cisco IOS XE 与 Cloudflare 之间使用后量子密码学 (PQC) 建立安全 Internet Protocol Security (IPsec) 隧道。

将您的 Cisco IOS XE 基础设施与 Cloudflare Anycast IPsec 隧道互联,可提供具有两大核心优势的高弹性连接解决方案:

  1. 后量子加密:您的连接受到 ML-KEM 后量子加密的保护,可防范“先收集、后解密”的在途数据攻击,针对新兴的量子计算威胁提供长期机密性。
  2. 基于 Anycast 的弹性和全球覆盖:Cloudflare 分布式 Anycast IP 网络允许您互联物理上未同处一地或未直接链接的路由器,从而简化了您的架构。流量会自动路由到最近且最优的 Cloudflare 数据中心,提供内置的主动/主动路径冗余、自动故障转移和高可用性。

本指南涵盖了部署该架构所需的一切内容,包括虚拟隧道接口 (VTI)、利用量子安全参数的 IKEv2 配置集 (Profiles) 以及诊断验证。

测试环境

字段
厂商 Cisco
型号 Cisco Series 8000 Router
版本 IOS-XE 26.1.1
测试日期 2026 年 5 月

IKE/IPsec 加密及相关设置

字段
流量选择标准 基于路由的 VPN
路由 静态
冗余隧道
隧道负载均衡 主动/主动
IKE 版本 IKEv2
身份验证 预共享密钥
防重放保护 已禁用
NAT 穿越 (NAT-T) 已验证
NAT-T 端口 4500/udp
阶段 1 - DH 组 组 20
阶段 1 - 加密 AES-256-CBC
阶段 1 - 身份验证/完整性 SHA-256
阶段 2 - DH 组 组 20
阶段 2 - 传输 ESP
阶段 2 - 加密 AES-256-CBC
后量子密码学 ML-KEM 768

受支持的平台

Cisco 8000 系列安全路由器支持 ML-KEM。

Cloudflare WAN 与 Cisco IOS XE 配置设置

在执行这些步骤时,请确保更新任何对象名称和 IP 地址以匹配您的环境。使这些元素与您的实际命名规范和网络方案保持一致,可确保配置与您的生产设置无缝集成。在下面的示例中使用查找和替换来更新名称和地址,从而在整个过程中保持一致性。

Cloudflare WAN - 隧道 01/02

属性 值/地址
名称(必填) CF_WAN_TUN_01
描述 ---
IPv4 接口地址(必填) 169.254.250.0/31
IPv6 接口地址 ---
客户方端点 203.0.113.100
Cloudflare 端点 162.159.135.1
隧道健康检查
速率 Medium
类型 Request(请求)
方向 Bidirectional(双向)
目标 默认
开启重放保护
自动回程路由

IKE 身份和预共享密钥(创建隧道后获取):

属性 值/地址
FQDN ID bf6c493d03REDACTED.ipsec.cloudflare.com
预共享密钥 Cloudflare-WAN-T1-PSK-1234!

Cloudflare WAN - 隧道 02/02

属性 值/地址
名称(必填) CF_WAN_TUN_02
描述 ---
IPv4 接口地址(必填) 169.254.250.2/31
IPv6 接口地址 ---
客户方端点 203.0.113.100
Cloudflare 端点 172.64.135.1
隧道健康检查
速率 Medium
类型 Request(请求)
方向 Bidirectional(双向)
目标 默认
开启重放保护
自动回程路由

IKE 身份和预共享密钥(创建隧道后获取):

属性 值/地址
FQDN ID 0287844e9dREDACTED.ipsec.cloudflare.com
预共享密钥 Cloudflare-WAN-T2-PSK-1234!

客户本地设备 - Cisco IOS XE

WAN 接口 隧道 01/02 隧道 02/02
WAN 接口 GigabitEthernet2 GigabitEthernet2
IP 地址 203.0.113.100/24 203.0.113.100/24
Virtual Tunnel Interface (VTI)(虚拟隧道接口) 隧道 01/02 隧道 02/02
隧道接口 Tunnel01 Tunnel02
IP 地址 169.254.250.1/31 169.254.250.3/31
LAN 接口 隧道 01/02 隧道 02/02
LAN 接口 ge-0/0/1.0 ge-0/0/1.0
IP 地址 192.168.125.1/24 192.168.125.1/24
安全区域 trust trust

配置

在 Cisco IOS XE 上建立 IPsec 隧道的流程包含以下步骤:

  • 虚拟隧道接口(每个隧道一个)
  • IKEv2 提议 (IKEv2 Proposal)
  • IKEv2 策略 (IKEv2 Policy)
  • IKEv2 密钥环 (IKEv2 Keyring)(每个隧道一个)
  • IKEv2 配置集 (IKEv2 Profile)(每个隧道一个)
  • 支持 NAT-T 的 IKEv2 配置集(可选)
  • IPsec 配置集 (IPsec Profile)(每个隧道一个)
  • 将 IPsec 配置集绑定到虚拟隧道接口
  • 基于策略的路由(推荐)
  • 健康追踪 - IP SLA(推荐)

虚拟隧道接口

每个 IPsec 隧道添加一个虚拟隧道接口,以促进到 Cloudflare 的路由。

Tunnel1

interface Tunnel1
 ip address 169.254.250.1 255.255.255.254
 ip proxy-arp
 ip mtu 1450
 ip tcp adjust-mss 1350
 tunnel source 203.0.113.100
 tunnel mode ipsec ipv4
 tunnel destination 162.159.135.1
 tunnel path-mtu-discovery

Tunnel2

interface Tunnel2
 ip address 169.254.250.3 255.255.255.254
 ip proxy-arp
 ip mtu 1450
 ip tcp adjust-mss 1350
 tunnel source 203.0.113.100
 tunnel mode ipsec ipv4
 tunnel destination 172.64.135.1
 tunnel path-mtu-discovery

IKE - 阶段 1

配置以下内容以促进 IKEv2 阶段 1 协商:

  • IKEv2 提议、策略、密钥环、配置集。

IKEv2 提议

如下定义 IKEv2 提议:

crypto ikev2 proposal CF_WAN_IKEV2_PROP
 pqc mlkem768
 encryption aes-cbc-256
 prf sha512 sha384 sha256
 group 20
 exit

IKEv2 策略

为每条隧道配置一个 IKEv2 策略:

crypto ikev2 policy CF_WAN_IKEV2_POL
 match fvrf any
 proposal CF_WAN_IKEV2_PROP
 exit

IKEv2 密钥环

每个隧道添加一个密钥环:

CF_WAN_TUN_01_IKEV2_PEER
crypto ikev2 keyring CF_WAN_TUN_01_IKEV2_KEYRING
 peer CF_WAN_TUN_01_IKEV2_PEER
  address 162.159.135.1
  pre-shared-key 0 Cloudflare-WAN-T1-PSK-1234!
exit
CF_WAN_TUN_02_IKEV2_PEER
crypto ikev2 keyring CF_WAN_TUN_02_IKEV2_KEYRING
 peer CF_WAN_TUN_02_IKEV2_PEER
  address 172.64.135.1
  pre-shared-key 0 Cloudflare-WAN-T2-PSK-1234!
exit

IKEv2 配置集 (IKEv2 Profiles)

每个隧道配置一个 IKEv2 配置集:

CF_WAN_TUN_01_IKEV2_PROF
crypto ikev2 profile CF_WAN_TUN_01_IKEV2_PROF
 match identity remote address 162.159.135.1 255.255.255.255
 identity local fqdn bf6c493d03REDACTED.ipsec.cloudflare.com
 authentication remote pre-share
 authentication local pre-share
 keyring local CF_WAN_TUN_01_IKEV2_KEYRING
 no config-exchange request
 exit
CF_WAN_TUN_02_IKEV2_PROF
crypto ikev2 profile CF_WAN_TUN_02_IKEV2_PROF
 match identity remote address 172.64.135.1 255.255.255.255
 identity local fqdn 0287844e9dREDACTED.ipsec.cloudflare.com
 authentication remote pre-share
 authentication local pre-share
 keyring local CF_WAN_TUN_02_IKEV2_KEYRING
 no config-exchange request
 exit

支持 NAT-T 的 IKEv2 配置集(可选)

如果 Cisco IOS XE 设备上的 WAN 接口处于执行网络地址转换 (NAT) 的设备之后,您可以在 crypto ikev2 profile 下添加 nat force-encap,以强制 IKE 阶段 1 使用 UDP 端口 4500

这仅在您想强制封装而不是使用标准的 NAT-T 流程时才需要,标准流程在 UDP 端口 500 上启动,并在检测到 NAT 后切换到 UDP 端口 4500

带 NAT-T 的 CF_WAN_TUN_01_IKEV2_PROF
crypto ikev2 profile CF_WAN_TUN_01_IKEV2_PROF
 match identity remote address 162.159.135.1 255.255.255.255
 identity local fqdn bf6c493d03REDACTED.ipsec.cloudflare.com
 authentication remote pre-share
 authentication local pre-share
 keyring local CF_WAN_TUN_01_IKEV2_KEYRING
 no config-exchange request
 nat force-encap
 exit
带 NAT-T 的 CF_WAN_TUN_02_IKEV2_PROF
crypto ikev2 profile CF_WAN_TUN_02_IKEV2_PROF
 match identity remote address 172.64.135.1 255.255.255.255
 identity local fqdn 0287844e9dREDACTED.ipsec.cloudflare.com
 authentication remote pre-share
 authentication local pre-share
 keyring local CF_WAN_TUN_02_IKEV2_KEYRING
 no config-exchange request
 nat force-encap
 exit

IPsec - 阶段 2

IPsec 配置集 (IPsec Profile)

每个隧道添加一个 IPsec 配置集:

CF_WAN_TUN_01_IPSEC_PROF
crypto ipsec profile CF_WAN_TUN_01_IPSEC_PROF
 set security-association lifetime kilobytes disable
 set security-association replay disable
 set pfs group20
 set ikev2-profile CF_WAN_TUN_01_IKEV2_PROF
 exit
CF_WAN_TUN_02_IPSEC_PROF
crypto ipsec profile CF_WAN_TUN_02_IPSEC_PROF
 set security-association lifetime kilobytes disable
 set security-association replay disable
 set pfs group20
 set ikev2-profile CF_WAN_TUN_02_IKEV2_PROF
 exit

将 IPsec 配置集绑定到隧道接口

将 IPsec 配置集绑定到相应的虚拟隧道接口,以实例化 IPsec 隧道:

Tunnel1

interface Tunnel1
 tunnel protection ipsec profile CF_WAN_TUN_01_IPSEC_PROF
 exit

Tunnel2

interface Tunnel2
 tunnel protection ipsec profile CF_WAN_TUN_02_IPSEC_PROF
 exit

基于策略的路由 (Policy-Based Routing)

当路由器必须在全局路由表中保留其现有的默认路由时(例如,为了保留 IPsec 底层(underlay)可达性或支持其他 non-LAN 流量),请使用本节配置。此方法允许您仅引导特定的源子网穿越两条 Cloudflare WAN 隧道,同时保持全局默认路由不变。

如果您的部署可以使用 Cloudflare 作为全局默认路由,您可以使用在全局表中使用两个等值静态默认路由的更简单设计。在这种情况下,不需要本节。

在此示例中,路由器已经使用全局表默认路由以进行 IPsec 底层可达性和其他非 LAN 流量。为了仅将源自 192.168.125.0/24 的流量发送到 Tunnel1Tunnel2,请配置基于策略的路由 (PBR) 以匹配该源子网,并将匹配的流量转发到专用 VRF。在该 VRF 内,配置两个等值的静态默认路由——每个隧道各一个。然后,CEF 会在两条隧道上执行逐流负载分担。

创建 VRF 作为本地 PBR 转发目标

ip vrf CF_WAN_PBR_VRF
exit

定义等值静态默认路由

ip route vrf CF_WAN_PBR_VRF 0.0.0.0 0.0.0.0 169.254.250.0 global track 1
ip route vrf CF_WAN_PBR_VRF 0.0.0.0 0.0.0.0 169.254.250.2 global track 2

匹配要引导至 Cloudflare 的流量

ip access-list extended CF_WAN_PBR_ALL
 permit ip 192.168.125.0 0.0.0.255 any

定义 Route Map 以将匹配流量关联到 PBR VRF

route-map CF_WAN_PBR_RM permit 10
 match ip address CF_WAN_PBR_ALL
 set vrf CF_WAN_PBR_VRF
 exit

将 Route Map 应用到 LAN 接口

假设分配给 LAN 接口的 IP 地址是 192.168.125.1/24

interface GigabitEthernet1
 description LAN interface
 ip address 192.168.125.1 255.255.255.0
 ip policy route-map CF_WAN_PBR_RM

配置 Cisco 快速转发 (CEF) 以进行负载分担(通用算法)

将负载分担算法设置为 universal:

ip cef load-sharing algorithm universal

健康追踪 - IP SLA (IP SLA)(推荐)

只要在相应的隧道接口上线路线路协议为 up,上述 PBR 和基于 VRF 的 ECMP 设计就会在 CF_WAN_PBR_VRF 中安装两个静态默认路由。

在 Cisco IOS XE 上,虚拟隧道接口 (VTI) 保持 up/up 状态取决于其隧道源和目的配置,而不是底层 IKE/IPsec 安全关联的状态。因此,即使在其 IKE/IPsec SA 失败时,隧道在路由表中也可能显示为可用。在这种状态下,CEF 可能会继续向失败的隧道哈希流量,从而无声地丢弃一部分流。

为了防止这种情况,为每个隧道配置一个 IP SLA icmp-echo 探测,使用本地 VTI 地址作为源,使用远程隧道 IP 地址作为目的。如果探测停止接收响应,其关联的 track 对象将更改为 down,并且转发表 VRF 中将移除相应的静态路由。

CEF 然后从 ECMP 集中移除该路径,所有匹配的流量将转移到剩余的健康隧道。当失败的隧道恢复时,探测成功,track 对象返回为 up,路由重新安装,流量将再次自动平衡穿越两条隧道。

定义 IP SLA 探测

实例化一个 IP SLA 探测(类型为 icmp-echo),其 Tunnel1 源 IP 为 169.254.250.1,目的 IP 为 169.254.250.0——每五秒发送一次探测:

ip sla 1
 icmp-echo 169.254.250.0 source-interface Tunnel1
 frequency 5
ip sla schedule 1 life forever start-time now

实例化一个 IP SLA 探测(类型为 icmp-echo),其 Tunnel2 源 IP 为 169.254.250.3,目的 IP 为 169.254.250.2——每五秒发送一次探测:

ip sla 2
 icmp-echo 169.254.250.2 source-interface Tunnel2
 frequency 5
ip sla schedule 2 life forever start-time now

定义 Track 对象

以下 track 对象可缓和短暂的丢包,以避免瞬时事件引起的路由抖动:

track 1 ip sla 1 reachability
 delay down 3 up 3
track 2 ip sla 2 reachability
 delay down 3 up 3

故障排除

IKEv2/IPsec 诊断

  • 显示 IKE(阶段 1)安全关联详情:
show crypto ikev2 sa detailed
 IPv4 Crypto IKEv2  SA

Tunnel-id Local                 Remote                fvrf/ivrf            Status
1     203.0.113.100/500     162.159.135.1/500     none/none            READY
      Encr: AES-GCM, keysize: 256, PRF: SHA512, Hash: None, DH Grp:20, Auth sign: PSK, Auth verify: PSK
      PQC Key Exchange: ML-KEM-768
      Life/Active Time: 86400/501 sec
      CE id: 0, Session-id: 3
      Local spi: 9BEA9E397377D9BB       Remote spi: 0830302A3CD0A874
      Status Description: Negotiation done
      Local id: bf6c493d03REDACTED.ipsec.cloudflare.com
      Remote id: 162.159.135.1
      Local req msg id:  3              Remote req msg id:  0
      Local next msg id: 3              Remote next msg id: 0
      Local req queued:  3              Remote req queued:  0
      Local window:      20             Remote window:      1
      DPD configured for 0 seconds, retry 0
      IETF Std Fragmentation  enabled.
      Quantum-safe Encryption using PQC: ML-KEM-768
      Dynamic Route Update: disabled
      IETF Std Fragmentation MTU in use: 1372 bytes.
      Extended Authentication not configured.
      NAT-T is detected inside
      Cisco Trust Security SGT is disabled
      Initiator of SA : Yes
      PEER TYPE: Other
  • 清除安全关联:
clear crypto session remote <peer-ip-address>

重新启动 IPsec 隧道的另一个选择是使用 shutdownno shutdown 对隧道接口进行管理性禁用和重新启用:

int Tunnel1
shutdown

no shutdown
int Tunnel2
shutdown

no shutdown

基于策略的路由

  • 显示 Route Map 详情。确保计数器递增,以确认流量是否匹配策略 (CF_WAN_PBR_ALL):
show route-map CF_WAN_PBR_RM
route-map CF_WAN_PBR_RM, permit, sequence 10
  Match clauses:
    ip address (access-lists): CF_WAN_PBR_ALL
  Set clauses:
    vrf CF_WAN_PBR_VRF
  Policy routing matches: 12077 packets, 4639582 bytes
  • 列出 VRF (CF_WAN_PBR_VRF) 中的路由:
show ip route vrf CF_WAN_PBR_VRF

Routing Table: CF_WAN_PBR_VRF
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
       n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       H - NHRP, G - NHRP registered, g - NHRP registration summary
       o - ODR, P - periodic downloaded static route, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR
       & - replicated local route overrides by connected

Gateway of last resort is 169.254.244.6 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 169.254.250.0
                [1/0] via 169.254.250.2
  • 列出 CEF 表中匹配 0.0.0.0/0 的路由:
show ip cef vrf CF_WAN_PBR_VRF 0.0.0.0/0
0.0.0.0/0
  nexthop 169.254.250.0 Tunnel1
  nexthop 169.254.250.2 Tunnel2

健康追踪 - IP SLA

  • 显示 track 对象状态:
show track brief
Track Type        Instance                   Parameter        State Last Change
1     ip sla      1                          reachability     Up    00:15:13
2     ip sla      2                          reachability     Up    01:16:08
  • 显示 IP SLA 统计信息:
show ip sla statistics
IPSLAs Latest Operation Statistics

IPSLA operation id: 1
        Latest RTT: 6 milliseconds
Latest operation start time: 15:23:03 CDT Mon Jun 1 2026
Latest operation return code: OK
Number of successes: 380
Number of failures: 1
Operation time to live: Forever

IPSLA operation id: 2
        Latest RTT: 6 milliseconds
Latest operation start time: 15:23:00 CDT Mon Jun 1 2026
Latest operation return code: OK
Number of successes: 376
Number of failures: 0
Operation time to live: Forever

验证隧道故障转移

要验证故障转移,对一条隧道接口执行管理性 shut,或者阻断其中一条隧道路径的 ICMP 流量。在几秒钟内,受影响的 track 将转变为 Down,相应的路由将从 CF_WAN_PBR_VRF 中移除,剩余的隧道将承载所有 LAN 流量。恢复该隧道将自动撤销上述变更。

参考引用

这篇文档对您有帮助吗?