INTEGRITY Документация

Cisco IOS XE

В этом руководстве приведен подробный пример настройки для установления защищенного туннеля Internet Protocol Security (IPsec) между Cisco IOS XE и Cloudflare с использованием постквантовой криптографии (Post-Quantum Cryptography, PQC).

Соединение вашей инфраструктуры Cisco IOS XE с туннелями Cloudflare Anycast IPsec обеспечивает исключительно отказоустойчивое решение для подключения с двумя основными преимуществами:

  1. Постквантовое шифрование: Ваше соединение защищено постквантовым шифрованием ML-KEM: оно защищает передаваемые данные от атак «собрать сейчас, расшифровать позже» и обеспечивает долгосрочную конфиденциальность перед лицом новых квантовых угроз.
  2. Отказоустойчивость на базе Anycast и глобальный охват: Распределённая сеть Anycast IP Cloudflare упрощает архитектуру, позволяя соединять маршрутизаторы, которые физически не расположены рядом друг с другом и не связаны напрямую. Трафик автоматически направляется в ближайший оптимальный центр обработки данных Cloudflare, что обеспечивает встроенную избыточность путей в режиме active/active, автоматическое переключение при сбое и высокую доступность.

В этом руководстве рассмотрено всё необходимое для развёртывания такой архитектуры, включая Virtual Tunnel Interfaces (VTIs), профили IKEv2 с квантово-безопасными параметрами и диагностическую проверку.

Тестовая среда

Поле Значение
Производитель Cisco
Модель Cisco Series 8000 Router
Выпуск IOS-XE 26.1.1
Дата тестирования Май 2026

шифрование IKE/IPsec и другие настройки

Поле Значение
Критерии выбора трафика VPN на основе маршрутов
Маршрутизация Статический
Резервные туннели Да
Tunnel Load Balancing Active/Active
Версия IKE IKEv2
Аутентификация Pre-Shared Key
Защита anti-replay Отключено
Обход NAT (NAT-T) Проверено
NAT-T Port 4500/udp
Phase 1 - DH-Group Group 20
Phase 1 - Encryption AES-256-CBC
Phase 1 - Authentication/Integrity SHA-256
Phase 2 - DH-Group Group 20
Phase 2 - Transport ESP
Phase 2 - Encryption AES-256-CBC
Постквантовая криптография ML-KEM 768

Поддерживаемые платформы

Поддержка ML-KEM доступна на Cisco 8000 Series Secure Routers.

Cloudflare WAN и параметры настройки Cisco IOS XE

Выполняя эти шаги, замените все имена объектов и IP-адреса на соответствующие вашей среде. Если привести эти элементы в соответствие с реальными правилами именования и схемой сети, конфигурация без проблем впишется в вашу рабочую инфраструктуру. Используйте Find & Replace на приведённые ниже примеры, чтобы обновить имена и адреса, сохраняя единообразие по всему документу.

Cloudflare WAN - туннель 01 из 02

Attribute Значение/адрес
Имя (обязательно) CF_WAN_TUN_01
Описание ---
IPv4 Interface Address (обязательно) 169.254.250.0/31
Адрес интерфейса IPv6 ---
Customer Endpoint 203.0.113.100
Cloudflare Endpoint 162.159.135.1
Проверки работоспособности туннеля True
Скорость Средняя
Type Запрос
Направление Двунаправленный
Цель По умолчанию
Включите защиту от повторов False
Автоматическая маршрутизация обратного трафика True

Идентификатор IKE и предварительный общий ключ (получаются после создания туннеля):

Attribute Значение/адрес
FQDN ID bf6c493d03REDACTED.ipsec.cloudflare.com
Pre-shared key Cloudflare-WAN-T1-PSK-1234!

Cloudflare WAN - туннель 02 из 02

Attribute Значение/адрес
Имя (обязательно) CF_WAN_TUN_02
Описание ---
IPv4 Interface Address (обязательно) 169.254.250.2/31
Адрес интерфейса IPv6 ---
Customer Endpoint 203.0.113.100
Cloudflare Endpoint 172.64.135.1
Проверки работоспособности туннеля True
Скорость Средняя
Type Запрос
Направление Двунаправленный
Цель По умолчанию
Включите защиту от повторов False
Автоматическая маршрутизация обратного трафика True

Идентификатор IKE и предварительный общий ключ (получаются после создания туннеля):

Attribute Значение/адрес
FQDN ID 0287844e9dREDACTED.ipsec.cloudflare.com
Pre-shared key Cloudflare-WAN-T2-PSK-1234!

Оборудование на стороне клиента - Cisco IOS XE

WAN Interface Tunnel 01 из 02 Tunnel 02 из 02
WAN Interface GigabitEthernet2 GigabitEthernet2
IP-адрес 203.0.113.100/24 203.0.113.100/24
Virtual Tunnel Interface (VTI) Tunnel 01 из 02 Tunnel 02 из 02
Интерфейс туннеля Tunnel01 Tunnel02
IP-адрес 169.254.250.1/31 169.254.250.3/31
LAN Interface Tunnel 01 из 02 Tunnel 02 из 02
LAN Interface ge-0/0/1.0 ge-0/0/1.0
IP-адрес 192.168.125.1/24 192.168.125.1/24
Зона безопасности доверие доверие

Конфигурация

Процесс установки туннелей IPsec на Cisco IOS XE включает следующие шаги:

Virtual tunnel interfaces

Добавьте по одному Virtual Tunnel Interface на каждый туннель 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 Phase 1:

Предложение IKEv2

Определите IKEv2 Proposal следующим образом:

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

Политика IKEv2

Настройте одну IKEv2 Policy на каждый туннель:

crypto ikev2 policy CF_WAN_IKEV2_POL
 match fvrf any
 proposal CF_WAN_IKEV2_PROP
 exit

Связки ключей IKEv2

Добавьте по одному keyring на туннель:

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 Profile на каждый туннель:

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

Профили IKEv2 с поддержкой NAT-T (необязательно)

Если интерфейс WAN на устройстве Cisco IOS XE находится за устройством, выполняющим трансляцию сетевых адресов (NAT), можно добавить nat force-encap в разделе crypto ikev2 profile чтобы заставить IKE Phase 1 использовать порт UDP 4500.

Это нужно только в том случае, если вы хотите принудительно включить инкапсуляцию вместо использования стандартного потока NAT-T, который начинается на порту UDP 500 и переключается на UDP-порт 4500 после обнаружения NAT.

CF_WAN_TUN_01_IKEV2_PROF с NAT-T
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
CF_WAN_TUN_02_IKEV2_PROF с NAT-T
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 - Phase 2

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 или другого трафика, не относящегося к LAN. Такой подход позволяет направлять через оба туннеля Cloudflare WAN только определённую исходную подсеть, не меняя при этом глобальный маршрут по умолчанию.

Если в вашем развертывании Cloudflare можно использовать как глобальный маршрут по умолчанию, можно применить более простую схему с двумя равнозначными статическими маршрутами по умолчанию в глобальной таблице. В этом случае данный раздел не потребуется.

В этом примере маршрутизатор уже использует маршрут по умолчанию из глобальной таблицы маршрутизации для доступности базовой сети IPsec и остального трафика, не относящегося к LAN. Чтобы отправлять только трафик, исходящий от 192.168.125.0/24 на всех Tunnel1 и Tunnel2, настройте Policy-Based Routing (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

Предполагая, что IP-адрес, назначенный интерфейсу LAN, равен 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 Express Forwarding (CEF) для распределения нагрузки (алгоритм universal)

Задайте для алгоритма распределения нагрузки значение universal:

ip cef load-sharing algorithm universal

Описанная выше схема PBR и ECMP на основе VRF устанавливает оба статических маршрута по умолчанию в CF_WAN_PBR_VRF пока line protocol находится в состоянии up на соответствующих интерфейсах туннеля.

В Cisco IOS XE интерфейс Virtual Tunnel Interface (VTI) остается up/up на основе конфигурации источника и назначения туннеля, а не состояния базовых ассоциаций безопасности IKE/IPsec. Из-за этого туннель может выглядеть доступным для таблицы маршрутизации, даже если его SA IKE/IPsec уже отказали. В таком случае 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

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: вручную отключить и снова включить интерфейсы туннеля с помощью shutdown и no shutdown:

int Tunnel1
shutdown

no shutdown
int Tunnel2
shutdown

no shutdown

Маршрутизация на основе политик

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
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
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

Health tracking - IP SLA

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
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

Проверить переключение туннеля при сбое

Чтобы проверить переключение при сбое, административно отключите один из интерфейсов туннеля или заблокируйте ICMP на одном из путей туннеля. Через несколько секунд затронутый track переходит в состояние Down, соответствующий маршрут удаляется из CF_WAN_PBR_VRF, а оставшийся туннель передаёт весь трафик LAN. При восстановлении туннеля изменение отменяется автоматически.

Источники