CiscoルータでのVTI+IKEv2設定(NAT越し)

EC2にCisco1000vを立て, 自宅とVPNを張る。
以前, VyOSとでGRE over IPSecVTIと2パターンやったが, 今回はVTI+IKEv2でやる。
まずはCisco同士でトライ。

はじめに

「何故IKEv2でやろうとしたか」
単純にv2だからより安全なんだろうと思ったから。
IKEv1と何が違うのかは様々なサイトに詳しく書いてある。
・UNIVERGE IXシリーズ FAQ「IKEv2に関するFAQ
・Cisco IOS セキュリティ コンフィギュレーション ガ イド「Cisco IOS セキュリティ コンフィギュレーション ガ イドインターネット キー エクスチェンジ バージョ ン 2(IKEv2)の設定
個人的には設定の可視化レベルがcrypto mapよりは高いと感じた。P1のポリシーもピア毎に指定できるのでこのあたりは便利だと思う。(Site-to-Siteだとあまり恩恵は感じられないかもしれない)

構成概要

2台のルータでIPSecをVTI+IKEv2で張る。
それぞれのルータはNAT越しに通信する。
鍵交換はPSK。
暗号化周りはAES256, SHA2-256, DH 14。

構成概略図

前提条件

・EC2上にインスタンス作成済
・そのインスタンスにElastic IP割当済
・適切にセキュリティグループは設定済(UDP500・4500は許可等)
・自宅のGlobal IPは固定前提
・ブロードバンドルータでポートフォワーディング設定済

設定手順

Config上から流し込んでいくイメージでOK。
・IKEv2のプロポーザル設定
・IKEv2のポリシー設定
・IKEv2のKey設定
・IKEv2のプロファイル設定
・トランスフォームセット設定
・IPSECプロファイル設定
・トンネルインタフェース作成
・VTI適用

いざ設定

Configを抜粋。
基本的にこのまま流し込めばOK。

C841M
C1000v
!プロポーザル設定
crypto ikev2 proposal IKEv2_Proposal
encryption aes-cbc-256
integrity sha256
group 14

! ポリシー設定
crypto ikev2 policy IKEv2_Policy
proposal IKEv2_Proposal

!キー設定
crypto ikev2 keyring IKEv2_Key_Cisco
peer C1000V
address A.A.A.A
pre-shared-key password

! プロファイル設定
crypto ikev2 profile IKEv2_Profile_Cisco
match identity remote address 10.200.10.12 255.255.255.255
identity local address 192.168.1.2
authentication remote pre-share
authentication local pre-share
keyring local IKEv2_Key_Cisco
lifetime 3600

! トランスフォームセット設定
crypto ipsec transform-set IPSEC esp-aes 256 esp-sha256-hmac
mode tunnel

! IPSECプロファイル設定
crypto ipsec profile VTI_Cisco
set transform-set IPSEC
set ikev2-profile IKEv2_Profile_Cisco

! Tunnelインタフェース設定
interface Tunnel1
ip address 172.16.10.1 255.255.255.0
tunnel source G0/0
tunnel mode ipsec ipv4
tunnel destination A.A.A.A
tunnel protection ipsec profile VTI_Cisco
! プロポーザル設定
crypto ikev2 proposal IKEv2_Proposal
encryption aes-cbc-256
integrity sha256
group 14

! ポリシー設定
crypto ikev2 policy IKEv2_Policy
proposal IKEv2_Proposal

!キー設定
crypto ikev2 keyring IKEv2_Key_Cisco
peer C841M
address B.B.B.B
pre-shared-key password

! プロファイル設定
crypto ikev2 profile IKEv2_Profile_Cisco
match identity remote address 192.168.1.2 255.255.255.255
identity local address 10.1.1.10
authentication remote pre-share
authentication local pre-share
keyring local IKEv2_Key_Cisco
lifetime 3600

! トランスフォームセット設定
crypto ipsec transform-set IPSEC esp-aes 256 esp-sha256-hmac
mode tunnel

! IPSECプロファイル設定
crypto ipsec profile VTI_Cisco
set transform-set IPSEC
set ikev2-profile IKEv2_Profile_Cisco

! Tunnelインタフェース設定
interface Tunnel1
ip address 172.16.10.2 255.255.255.0
tunnel source G0/0
tunnel mode ipsec ipv4
tunnel destination B.B.B.B
tunnel protection ipsec profile VTI_Cisco

確認

c1000v#sh crypto ikev2 sa
IPv4 Crypto IKEv2 SA

Tunnel-id Local Remote fvrf/ivrf Status
1 10.1.1.10/4500 B.B.B.B/4500 none/none READY
Encr: AES-CBC, keysize: 256, PRF: SHA256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 3600/2111 sec

IPv6 Crypto IKEv2 SA

c1000v#sh crypto ipsec sa

interface: Tunnel1
Crypto map tag: Tunnel1-head-0, local addr 10.1.1.10

protected vrf: (none)
local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
current_peer B.B.B.B port 4500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 10, #pkts encrypt: 10, #pkts digest: 10
#pkts decaps: 10, #pkts decrypt: 10, #pkts verify: 10
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0

local crypto endpt.: 10.1.1.10, remote crypto endpt.: B.B.B.B
plaintext mtu 1422, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet1
current outbound spi: 0x3478CA01(880331265)
PFS (Y/N): N, DH group: none

inbound esp sas:
spi: 0x9AF7C1FF(2599928319)
transform: esp-256-aes esp-sha256-hmac ,
in use settings ={Tunnel UDP-Encaps, }
conn id: 2068, flow_id: CSR:68, sibling_flags FFFFFFFF80000048, crypto map: Tunnel1-head-0
sa timing: remaining key lifetime (k/sec): (4607998/1485)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)

inbound ah sas:

inbound pcp sas:

outbound esp sas:
spi: 0x3478CA01(880331265)
transform: esp-256-aes esp-sha256-hmac ,
in use settings ={Tunnel UDP-Encaps, }
conn id: 2067, flow_id: CSR:67, sibling_flags FFFFFFFF80000048, crypto map: Tunnel1-head-0
sa timing: remaining key lifetime (k/sec): (4607999/1485)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)

outbound ah sas:

outbound pcp sas:

c1000v#sh crypto session
Crypto session current status

Interface: Tunnel1
Profile: IKEv2_Profile
Session status: UP-ACTIVE
Peer: B.B.B.B port 4500
Session ID: 6
IKEv2 SA: local 10.1.1.10/4500 remote B.B.B.B/4500 Active
IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 0.0.0.0/0.0.0.0
Active SAs: 2, origin: crypto map

以上, お疲れ様でした。