Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Cisco IOS XE

最終更新 Markdown で表示Agent セットアップ

このチュートリアルでは、Cisco IOS XE と Cloudflare の間に、耐量子暗号 (PQC: Post-Quantum Cryptography) を使った安全な Internet Protocol Security (IPsec) トンネルを構築する設定例を一通り説明します。

Cisco IOS XE のインフラを Cloudflare の Anycast IPsec トンネルで接続すると、耐障害性の高い接続を実現できます。主な利点は次の 2 つです。

  1. 耐量子暗号: 接続は ML-KEM の耐量子暗号で保護されます。通信中のデータは「いま収集して後で復号する」(harvest-now, decrypt-later)攻撃から守られ、量子コンピューターによる将来の脅威に対しても長期的な機密性を確保できます。
  2. Anycast による耐障害性とグローバルリーチ: Cloudflare の分散 Anycast IP ネットワークにより、物理的に同じ場所にない、または直接接続されていないルーター同士も接続できます。トラフィックは最も近い最適な Cloudflare データセンターへ自動的にルーティングされます。アクティブ/アクティブのパス冗長、自動フェイルオーバー、高可用性を標準で備えています。

このガイドでは、このアーキテクチャの導入に必要な内容をすべて扱います。仮想トンネルインターフェイス (VTI)、耐量子パラメーターを使った IKEv2 プロファイル、診断による検証も含みます。

検証環境

項目
ベンダー Cisco
モデル Cisco Series 8000 Router
リリース IOS-XE 26.1.1
検証日 2026年5月

IKE / IPsec の暗号と関連設定

項目
トラフィック選択基準 Route-Based VPN
ルーティング 静的
冗長トンネル はい
トンネルの負荷分散 Active/Active
IKE バージョン IKEv2
認証 Pre-Shared Key
アンチリプレイ保護 無効
NAT トラバーサル (NAT-T) 検証済み
NAT-T ポート 4500/udp
フェーズ 1 - DH-Group Group 20
フェーズ 1 - 暗号化 AES-256-CBC
フェーズ 1 - 認証 / 完全性 SHA-256
フェーズ 2 - DH-Group Group 20
フェーズ 2 - トランスポート ESP
フェーズ 2 - 暗号化 AES-256-CBC
耐量子暗号 ML-KEM 768

対応プラットフォーム

ML-KEM は Cisco 8000 Series Secure Routers で利用できます。

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
トンネルヘルスチェック True
レート Medium
Type Request
Direction Bidirectional
ターゲット Default
リプレイ保護を有効にする False
Automatic return routing True

IKE Identity と事前共有キー(トンネル作成後に取得):

属性 値 / アドレス
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
トンネルヘルスチェック True
レート Medium
Type Request
Direction Bidirectional
ターゲット Default
リプレイ保護を有効にする False
Automatic return routing True

IKE Identity と事前共有キー(トンネル作成後に取得):

属性 値 / アドレス
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
仮想トンネルインターフェイス (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 トンネルを確立する手順は次のとおりです。

  • 仮想トンネルインターフェイス(トンネルごとに 1 つ)
  • IKEv2 Proposal
  • IKEv2 Policy
  • IKEv2 Keyring(トンネルごとに 1 つ)
  • IKEv2 Profile(トンネルごとに 1 つ)
  • NAT-T 対応の IKEv2 Profile(任意)
  • IPsec Profile(トンネルごとに 1 つ)
  • IPsec Profile を仮想トンネルインターフェイスにバインドする
  • ポリシーベースルーティング(推奨)
  • ヘルス追跡 - IP SLA(推奨)

仮想トンネルインターフェイス

Cloudflare へのルーティング用に、IPsec トンネルごとに仮想トンネルインターフェイスを 1 つ追加します。

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 Proposal
  • IKEv2 Policy
  • IKEv2 Keyring(Cloudflare WAN IPsec トンネルごとに 1 つ必要)
  • IKEv2 Profile(Cloudflare WAN IPsec トンネルごとに 1 つ必要)

IKEv2 Proposal

IKEv2 Proposal を次のように定義します。

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

IKEv2 Policy

トンネルごとに IKEv2 Policy を 1 つ設定します。

crypto ikev2 policy CF_WAN_IKEV2_POL
 match fvrf any
 proposal CF_WAN_IKEV2_PROP
 exit

IKEv2 Keyrings

トンネルごとにキーリングを 1 つ追加します。

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 Profiles

トンネルごとに IKEv2 Profile を 1 つ設定します。

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 Profiles(任意)

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 Profile

トンネルごとに IPsec Profile を 1 つ追加します。

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

ポリシーベースルーティング

ルーターがグローバルルーティングテーブル上の既存のデフォルトルートを維持する必要がある場合に、この節を使います。たとえば、IPsec アンダーレイの到達性を保つ場合や、LAN 以外のトラフィックを扱う場合です。この方法では、グローバルのデフォルトルートはそのままに、特定の送信元サブネットだけを 2 本の Cloudflare WAN トンネルへ送れます。

Cloudflare をグローバルのデフォルトルートにできる構成なら、グローバルテーブルに等コストの静的デフォルトルートを 2 本置く、より単純な設計にできます。その場合、この節は不要です。

この例では、ルーターはすでにグローバルテーブルのデフォルトルートを、IPsec アンダーレイの到達性と LAN 以外のトラフィックに使っています。192.168.125.0/24 を送信元とするトラフィックだけを Tunnel1Tunnel2 へ送るには、ポリシーベースルーティング (PBR) でその送信元サブネットを照合し、一致したトラフィックを専用 VRF へ転送します。その VRF 内に、各トンネル向けの等コスト静的デフォルトルートを 2 本設定します。その後、CEF がフロー単位で両トンネルに負荷分散します。

PBR のローカル転送先として VRF を作成する

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

照合したトラフィックを PBR VRF に関連付けるルートマップを定義する

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

ルートマップを 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 Express Forwarding (CEF) で負荷分散を設定する(universal アルゴリズム)

負荷分散アルゴリズムを universal に設定します。

ip cef load-sharing algorithm universal

ヘルス追跡 - IP SLA(推奨)

前述の PBR と VRF ベースの ECMP 設計では、対応するトンネルインターフェイスのラインプロトコルが up である限り、両方の静的デフォルトルートが 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 プローブを定義する

Tunnel1 の送信元 IP 169.254.250.1、宛先 IP 169.254.250.0 で IP SLA プローブ(タイプ icmp-echo)を作成し、5 秒ごとにプローブを送信します。

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

Tunnel2 の送信元 IP 169.254.250.3、宛先 IP 169.254.250.2 で IP SLA プローブ(タイプ icmp-echo)を作成し、5 秒ごとにプローブを送信します。

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

ポリシーベースルーティング

  • ルートマップの詳細を表示します。カウンターが増えていることを確認し、トラフィックがポリシー(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

トンネルフェイルオーバーの検証

フェイルオーバーを検証するには、一方のトンネルインターフェイスを管理上シャットダウンするか、一方のトンネルパスで ICMP をブロックします。数秒以内に対象の track が Down に遷移し、対応するルートが CF_WAN_PBR_VRF から削除され、残りのトンネルがすべての LAN トラフィックを運びます。トンネルを復旧すると、変更は自動で元に戻ります。

参考資料

役に立ちましたか?