この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、VPN 芸人のトランです。みなさんいかがお過ごしでしょうか?
きょうは、Site-to-Site VPN で AWS へ接続されたカスタマーゲートウェイで IKEv2 を使用する方法についてご紹介します。
前提
- 2019年2月6日以降に作成された Site-to-Site VPN を使用していること*
- IOS 15.1 M&T 以降を実行するカスタマーゲートウェイを使用していること
*AWS Site-to-Site VPN Now Supports IKEv2 https://aws.amazon.com/about-aws/whats-new/2019/02/aws-site-to-site-vpn-now-supports-ikev2/
今回は、手軽に再現できるよう VPC 上で起動した Cisco Cloud Services Router 1000V を例に設定方法をご紹介します。
R123(config)#do show version
Cisco IOS XE Software, Version 16.09.02
Cisco IOS Software [Fuji], Virtual XE Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 16.9.2, RELEASE SOFTWARE (fc4)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2018 by Cisco Systems, Inc.
Compiled Mon 05-Nov-18 19:26 by mcpre
なお、まだ IKEv1 を使用する Site-to-Site VPN 接続を設定していない場合、VPC マネジメントコンソールから 新しい Site-to-Site VPN 接続を作成したうえでカスタマーゲートウェイを設定しておきましょう。
! VPC マネジメントコンソールからダウンロードした設定例の通りに (IKEv1 で) 設定します。
R123(config)#crypto isakmp policy 200
R123(config-isakmp)# encryption aes 128
R123(config-isakmp)# authentication pre-share
R123(config-isakmp)# group 2
R123(config-isakmp)# lifetime 28800
R123(config-isakmp)# hash sha
R123(config-isakmp)#exit
R123(config)#
R123(config)#crypto keyring keyring-vpn-000cb14fede018fda-0
R123(conf-keyring)#
! 省略
IKEv2 への切り替え
IKEv1 で正しく ISAKMP SA と IPsec SA がそれぞれ確立されていることを確認できたら、実際に IKEv2 への切り替えを行います。
まず IKEv2 で使うための Phase 1 Proposal (IKEv2 Cipher Suite) を用意します。今回は AWS デフォルトの組み合わせを選択しました。
!
crypto ikev2 proposal AES128-SHA96-MODP1024
encryption aes-cbc-128
integrity sha1
group 2
exit
!
なお、既定で用意される Phase 1 Proposal ("default") は AWS でサポートされない Integrity アルゴリズム (SHA512, SHA384) しか許容されないため使用できません。
R123(config)#do show crypto ikev2 proposal
IKEv2 proposal: AES128-SHA96-MODP1024
Encryption : AES-CBC-128
Integrity : SHA96
PRF : SHA1
DH Group : DH_GROUP_1024_MODP/Group 2
IKEv2 proposal: default
Encryption : AES-CBC-256
Integrity : SHA512 SHA384
PRF : SHA512 SHA384
DH Group : DH_GROUP_256_ECP/Group 19 DH_GROUP_2048_MODP/Group 14 DH_GROUP_521_ECP/Group 21 DH_GROUP_1536_MODP/Group 5
作成した Phase 1 Proposal を IKEv2 SA のソースインターフェイスで使用するポリシーを作成します。
!
crypto ikev2 policy GigabitEthernet1
! 次でソースインターフェイスの IP アドレスを指定します
match address local 172.16.0.254
proposal AES128-SHA96-MODP1024
exit
!
なお、使用する Phase 1 Proposal を指定したポリシーを用意しない場合は "default" の Phase 1 Proposal が使われるようになっています。
R123(config)#do show crypto ikev2 policy
IKEv2 policy : GigabitEthernet1
Match fvrf : global
Match address local : 172.16.0.254
Proposal : AES128-SHA96-MODP1024
IKEv2 policy : default
Match fvrf : any
Match address local : any
Proposal : default
IKEv2 で使うためのプロファイルをエンドポイントごとに用意します。
!
crypto ikev2 profile ikev2-vpn-000cb14fede018fda-0
match identity remote address 52.193.148.66 255.255.255.255
! Phase 1 ネゴシエーションで使用するアイデンティティ (IP アドレス) を指定します。
! カスタマーゲートウェイが直接インターネットに接続されていない (NAT が存在する) 場合、
! ソースインターフェイスが実際に使用する (プライベート) アドレスを指定します。
identity local address 172.16.0.254
authentication remote pre-share key UM7bie1TnA3d_KF.7ckK_KjK64Q1Hch.
authentication local pre-share key UM7bie1TnA3d_KF.7ckK_KjK64Q1Hch.
lifetime 28800
exit
!
crypto ikev2 profile ikev2-vpn-000cb14fede018fda-1
match identity remote address 54.199.142.165 255.255.255.255
! Phase 1 ネゴシエーションで使用するアイデンティティ (IP アドレス) を指定します。
! カスタマーゲートウェイが直接インターネットに接続されていない (NAT が存在する) 場合、
! ソースインターフェイスが実際に使用する (プライベート) アドレスを指定します。
identity local address 172.16.0.254
authentication remote pre-share key CoYLWNCGZT42tf0VCdTJ7TQePZL65_CA
authentication local pre-share key CoYLWNCGZT42tf0VCdTJ7TQePZL65_CA
lifetime 28800
exit
!
それぞれのトンネルインターフェイス (VTI) に指定された tunnel protection を、既存の IKEv1 から新しく用意した IKEv2 へ変更します。なお、Phase 2 Proposal (ipsec profile や ipsec transform-set) については既にあるものを流用します。
R123(config)#do show running-config | section crypto ipsec
crypto ipsec security-association replay window-size 128
crypto ipsec transform-set ipsec-prop-vpn-000cb14fede018fda-0 esp-aes esp-sha-hmac
mode tunnel
crypto ipsec transform-set ipsec-prop-vpn-000cb14fede018fda-1 esp-aes esp-sha-hmac
mode tunnel
crypto ipsec df-bit clear
crypto ipsec profile ipsec-vpn-000cb14fede018fda-0
set transform-set ipsec-prop-vpn-000cb14fede018fda-0
set pfs group2
crypto ipsec profile ipsec-vpn-000cb14fede018fda-1
set transform-set ipsec-prop-vpn-000cb14fede018fda-1
set pfs group2
インターフェイスをフラップしつつ、使用する tunnel protection を IKEv1 のものから IKEv2 のものへ変更します。
!
interface Tunnel1
shutdown
no tunnel protection ipsec profile ipsec-vpn-000cb14fede018fda-0
tunnel protection ipsec profile ipsec-vpn-000cb14fede018fda-0 ikev2-profile ikev2-vpn-000cb14fede018fda-0
no shutdown
exit
!
R123(config)#do show crypto ikev2 sa
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 172.16.0.254/4500 52.193.148.66/4500 none/none READY
Encr: AES-CBC, keysize: 128, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 28800/886 sec
IPv6 Crypto IKEv2 SA
#do ping 169.254.25.221
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 169.254.25.221, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 222/222/222 ms
!
interface Tunnel2
shutdown
no tunnel protection ipsec profile ipsec-vpn-000cb14fede018fda-1
tunnel protection ipsec profile ipsec-vpn-000cb14fede018fda-1 ikev2-profile ikev2-vpn-000cb14fede018fda-1
no shutdown
exit
!
R123(config)#do show crypto ikev2 sa
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 172.16.0.254/4500 52.193.148.66/4500 none/none READY
Encr: AES-CBC, keysize: 128, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 28800/945 sec
Tunnel-id Local Remote fvrf/ivrf Status
2 172.16.0.254/4500 54.199.142.165/4500 none/none READY
Encr: AES-CBC, keysize: 128, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 28800/4 sec
IPv6 Crypto IKEv2 SA
R123(config-if)#do ping 169.254.25.241
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 169.254.25.241, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 215/215/215 ms
これで IKEv1 から IKEv2 への切り替えを行うことができました!
参考
Security for VPNs with IPsec Configuration Guide, Cisco IOS Release 15M&T - Cisco https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/sec_conn_vpnips/configuration/15-mt/sec-sec-for-vpns-w-ipsec-15-mt-book.html