見出し画像

【IPsecVPN】Cisco RouterのIKEv2 IPsec設定

はじめに

※この記事は有料となってますが、末尾のFull Configurationのみ有料で内容自体は無料です。
検証環境作成時にCisco Routerで簡易的にIKEv2 IPsecを利用する気概があったため、一応構成をメモとして残します。
読者の方のためにあらかじめお伝えしておきますが、本記事はCisco IOS RouterでIKEv2 IPsecを設定する流れを記載します。しかし、実際の現場ではCisco IOS RouterでIPsecを使用することはほとんど無く、Cisco Firepower、Paloalto PA、Fortinet Fortigate等のFW製品などで構成することがほとんどで、あるとすればCloud基板との接続箇所であるかないかという感じかな。。
参考や検証時の参考としてご閲読いただけますと幸いです。


IKEv2 IPsecの設定手順

IKEv2 IPsecを構成する設定を大まかに記載すると以下のようになります。
※(optional)がついているものは構成次第で必要ありません。
 手順1.【Phase1】IKEv2 Proposalの作成
 
手順2.【Phase1】IKEv2 Policyの作成
 
手順3.  (optional) Keyringの作成
 手順4.【Phase1】IKEv2 Profileの作成
 手順5.【Phase2】IPsec Transform setの作成
 手順6.【Phase2】IPsec Profileの作成
 手順7.Tunnelインターフェースの作成
 手順8.ルーティングの追加

以下に詳細を記載します。

1.【Phase1】IKEv2 Proposalの作成

IKEv2 Proposalの中で暗号化やHash、Groupの設定を行います。
最低限必要な設定としては以下の3つです。
 ・encryption
 ・integrity
 ・group

Proposal作成時に以下の様にメッセージが表示されますが、暗号化に「aes-gcm」を使用する場合は注意してください。

RT-1(config-ikev2-proposal)#crypto ikev2 proposal [Proposal-name]
IKEv2 proposal MUST either have a set of an encryption algorithm other than aes-gcm, an integrity algorithm and a DH group configured or
 encryption algorithm aes-gcm, a prf algorithm and a DH group configured
RT-1(config-ikev2-proposal)#

また、Cisco IOSの場合設定が足りていないとshow runのProposal設定箇所に以下メッセージが表示されます。

!
crypto ikev2 proposal [Proposal-name]
 ! Proposal Incomplete(MUST have atleast an encryption algorithm, an integrity algorithm and a dh group configured)
 encryption aes-cbc-256
 integrity sha256
!

2.【Phase1】IKEv2 Policyの作成

IKEv2 Policyでは手順1.で作成したProposalを適用します。
Policy内でProposalの適用を行っても、手順1.で作成したProposal内の設定が不十分な場合、show run内でメッセージが表示されます。

!
crypto ikev2 policy [ikev2-Policy-name]
 ! Policy Incomplete(MUST have atleast one complete proposal attached)
 proposal [Proposa-name]
!

3.  (optional) Keyringの作成

Keyringの設定は構成次第で必要ありません。

認証時のパスワードなどをKeyring内で定義することで複数台とVPN接続をする際などの認証パスワードを管理しやすくなりますが、今回は検証でもあり1台のルータとしかVPNを張らないため次手順内の「authentication local/remote pre-share key ******* 」として設定をした場合は本手順は特段不要となります。(*印はパスワード)

4.【Phase1】IKEv2 Profileの作成

IKEv2 Profile内でVPN接続先の対向機器IPアドレスや認証方式、認証キーのlifetimeなどを設定します。
手順3.でKeyringを作成している場合は「authentication local/remote pre-share」と認証方式の指定を行い、Keyring設定で適用するKeyringをしていします。


次手順からはIPsec設定となります。
IKEv1でも特段変化はありませんので、IKEv2だけ確認したい方は以下Phase2の設定は読み飛ばしていただいて大丈夫です。

5.【Phase2】IPsec Transform setの作成

Transform set作成時にIPせcで使用する暗号化方式と認証方式を指定します。
また、デフォルトでは「Tunnel Mode」となるため、「transport Mode」でVPN通信を行いたい場合はTransform set内で設定を変更します。

6.【Phase2】IPsec Profileの作成

IPsec Profileで手順4.手順5.で作成したIKEv2 ProfileとTransform setを適用します。


ここまででおおむねのIKEv2、IPsecの設定は完了です。
本記事の場合はVTI(Virtual Tunnel Interface)を使用しての設定を紹介しているためTunnelインターフェースを作成してますが、Crypto Mapを使用しての構成も可能なため、自身の構成に合わせて修正して下さい。

7.Tunnelインターフェースの作成

Tunnelインターフェースを使用してVPN通信を行うため、以下必要な設定を行った上で前手順までに実施した設定を「tunnel protection ipsec profile [IPsec-profile]」で適用します。
●Tunnelインターフェースの設定項目
 ・IPアドレス
 ・Source インターフェース / IPアドレス
 ・destination IPアドレス
 ・Tunnel mode ipsec ipv4

8.ルーティングの追加

最後に自ルータのLAN側と対向側機器LAN側とを通信させるためのルーティング設定を追加します。

検証構成

・Diagram

Diagram

・RT-1 config

crypto ikev2 proposal IPsecRT2-Proposal
 encryption aes-cbc-256
 integrity sha256
 group 14
!
crypto ikev2 policy IPsecRT2-Policy
 proposal IPsecRT2-Proposal
!
crypto ikev2 keyring IPsecRT2-Keyring
 peer IPsecRT2
  address 111.20.15.1 255.255.255.252
  hostname RT-2
  pre-shared-key local cisco123!
  pre-shared-key remote cisco123!
!
crypto ikev2 profile IPsecRT2-ikeProfile
 match identity remote address 111.20.15.1 255.255.255.255
 authentication local pre-share
 authentication remote pre-share
 keyring local IPsecRT2-Keyring
 lifetime 120
!
crypto ipsec transform-set IPsecRT2-TSset esp-aes 256 esp-sha256-hmac
 mode tunnel
!
crypto ipsec profile IPsecRT2-IpsecProfile
 set transform-set IPsecRT2-TSset
 set ikev2-profile IPsecRT2-ikeProfile
!
interface Tunnel0
 ip address 10.0.0.1 255.255.255.252
 tunnel source GigabitEthernet0/0
 tunnel mode ipsec ipv4
 tunnel destination 111.20.15.1
 tunnel protection ipsec profile IPsecRT2-IpsecProfile
!
ip route 192.168.20.0 255.255.255.0 Tunnel0

・RT-2 config

crypto ikev2 proposal IPsecRT1-Proposal
 encryption aes-cbc-256
 integrity sha256
 group 14
!
crypto ikev2 policy IPsecRT1-Policy
 proposal IPsecRT1-Proposal
!
crypto ikev2 keyring IPsecRT1-Keyring
 peer IPsecRT1
  address 210.110.10.1 255.255.255.252
  hostname RT-1
  pre-shared-key local cisco123!
  pre-shared-key remote cisco123!
!
crypto ikev2 profile IPsecRT1-ikeProfile
 match identity remote address 210.110.10.1 255.255.255.255
 authentication local pre-share
 authentication remote pre-share
 keyring local IPsecRT1-Keyring
 lifetime 120
!
crypto ipsec transform-set IPsecRT1-TSset esp-aes 256 esp-sha256-hmac
 mode tunnel
!
crypto ipsec profile IPsecRT1-IpsecProfile
 set transform-set IPsecRT1-TSset
 set ikev2-profile IPsecRT1-ikeProfile
!
interface Tunnel0
 ip address 10.0.0.2 255.255.255.252
 tunnel source GigabitEthernet0/0
 tunnel mode ipsec ipv4
 tunnel destination 210.110.10.1
 tunnel protection ipsec profile IPsecRT1-IpsecProfile
!
ip route 192.168.10.0 255.255.255.0 Tunnel0

設定および状態確認

主な確認コマンドとしては以下になります。

設定内容の確認コマンド

 ・show running-config | sec ikev2
 ・show running-config | sec ipsec
 ・show running-config | sec Tunnel
 ・show running-config interface tunnel 0

【Phase1】IKEv2の設定反映確認コマンド

 ・show crypto ikev2 proposal IPsecRT1-Proposal [Proposal-name]
 ・show crypto ikev2 policy IPsecRT1-Policy [Policy-name]
 ・show crypto ikev2 profile [ikeProfile-name]

【Phase2】IPsecの設定反映確認コマンド

 ・show crypto ipsec transform-set [TransformSet-name]
 ・show crypto ipsec profile [IPsecProfile-name]

【Phase1】IKEv2の状態確認コマンド

 ・show crypto ikev2 sa
  ・show crypto ikev2 sa detailed
 ・show crypto ikev2 session
  ・・show crypto ikev2 session detailed

【Phase2】IPsecの状態確認コマンド

 ・show crypto ipsec sa
  ・show crypto ipsec sa detail

ルーティングの確認コマンド

 Host端末間でPing、Traceroute等を実施し、Tunnnelを経由しているかを確認


状態確認の出力例を以下に記載します。
基本的にdetailedを付けないと出力内容が多少簡易なものになるだけで基本的な確認箇所は変わりません。そのため、出力結果はdetailedを付したもののみ記載します。

・show crypto ikev2 sa(detailed)

「Status」が「READY」となっておりPhase1のSA(Security Association)のの交換ができていることがわかります。
ちなみに、SAが交換できていない場合は「Status」が「IN-NEG」となります。

RT-1#show crypto ikev2 sa detailed
 IPv4 Crypto IKEv2  SA

Tunnel-id Local                 Remote                fvrf/ivrf            Status
3         210.110.10.1/500      111.20.15.1/500       none/none            READY
      Encr: AES-CBC, keysize: 256, PRF: SHA256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK
      Life/Active Time: 120/47 sec
      CE id: 0, Session-id: 1
      Status Description: Negotiation done
      Local spi: CCCC6477093F19FE       Remote spi: 1BAA0072C0B0B53E
      Local id: 210.110.10.1
      Remote id: 111.20.15.1
      Local req msg id:  0              Remote req msg id:  0
      Local next msg id: 0              Remote next msg id: 0
      Local req queued:  0              Remote req queued:  0
      Local window:      5              Remote window:      5
      DPD configured for 0 seconds, retry 0
      Fragmentation not  configured.
      Extended Authentication not configured.
      NAT-T is not detected
      Cisco Trust Security SGT is disabled
      Initiator of SA : Yes

 IPv6 Crypto IKEv2  SA

RT-1#

・show crypto ikev2 session(detailed)

前述の「show crypto ikev2 sa」コマンドと出力結果は似ていますが歳ほどとは異なる箇所の「status」に「UP-ACTIVE」と表示があります。TunnelがUPしている場合は「UP-ACTIVE」ですが、Downしている状態だと「UP-IDLE」となります。
セッションごとに確認できるため前述のコマンドよりも便利かもしれません。

RT-1#show crypto ikev2 session detailed
 IPv4 Crypto IKEv2 Session

Session-id:2, Status:UP-ACTIVE, IKE count:1, CHILD count:1

Tunnel-id Local                 Remote                fvrf/ivrf            Status
1         210.110.10.1/500      111.20.15.1/500       none/none            READY
      Encr: AES-CBC, keysize: 256, PRF: SHA256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK
      Life/Active Time: 120/13 sec
      CE id: 1036, Session-id: 2
      Status Description: Negotiation done
      Local spi: CAEF4A7A0070FE7F       Remote spi: EFCFBEE4A7D00BED
      Local id: 210.110.10.1
      Remote id: 111.20.15.1
      Local req msg id:  2              Remote req msg id:  0
      Local next msg id: 2              Remote next msg id: 0
      Local req queued:  2              Remote req queued:  0
      Local window:      5              Remote window:      5
      DPD configured for 0 seconds, retry 0
      Fragmentation not  configured.
      Extended Authentication not configured.
      NAT-T is not detected
      Cisco Trust Security SGT is disabled
      Initiator of SA : Yes
Child sa: local selector  0.0.0.0/0 - 255.255.255.255/65535
          remote selector 0.0.0.0/0 - 255.255.255.255/65535
          ESP spi in/out: 0x3DB46437/0x537C40A5
          AH spi in/out: 0x0/0x0
          CPI in/out: 0x0/0x0
          Encr: AES-CBC, keysize: 256, esp_hmac: SHA256
          ah_hmac: None, comp: IPCOMP_NONE, mode tunnel

 IPv6 Crypto IKEv2 Session

RT-1#

・show crypto ipsec sa(detail)

今回はESPで暗号化しているため「 inbound esp sas」と「outbound esp sas」の箇所に出力があり、「Status」に「ACTIVE(ACTIVE)」とあるため正常にIPsecVPNが張れていることがわかります。

RT-1#show crypto ipsec sa detail

interface: Tunnel0
    Crypto map tag: Tunnel0-head-0, local addr 210.110.10.1

   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 111.20.15.1 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0
    #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #pkts no sa (send) 0, #pkts invalid sa (rcv) 0
    #pkts encaps failed (send) 0, #pkts decaps failed (rcv) 0
    #pkts invalid prot (recv) 0, #pkts verify failed: 0
    #pkts invalid identity (recv) 0, #pkts invalid len (rcv) 0
    #pkts replay rollover (send): 0, #pkts replay rollover (rcv) 0
    ##pkts replay failed (rcv): 0
    #pkts tagged (send): 0, #pkts untagged (rcv): 0
    #pkts not tagged (send): 0, #pkts not untagged (rcv): 0
    #pkts internal err (send): 0, #pkts internal err (recv) 0

     local crypto endpt.: 210.110.10.1, remote crypto endpt.: 111.20.15.1
     plaintext mtu 1438, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0
     current outbound spi: 0x29B39551(699635025)
     PFS (Y/N): N, DH group: none

     inbound esp sas:
      spi: 0xAA651302(2858750722)
        transform: esp-256-aes esp-sha256-hmac ,
        in use settings ={Tunnel, }
        conn id: 54, flow_id: SW:54, sibling_flags 80000040, crypto map: Tunnel0-head-0
        sa timing: remaining key lifetime (k/sec): (4226647/3561)
        IV size: 16 bytes
        replay detection support: Y
        Status: ACTIVE(ACTIVE)

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:
      spi: 0x29B39551(699635025)
        transform: esp-256-aes esp-sha256-hmac ,
        in use settings ={Tunnel, }
        conn id: 53, flow_id: SW:53, sibling_flags 80000040, crypto map: Tunnel0-head-0
        sa timing: remaining key lifetime (k/sec): (4226647/3561)
        IV size: 16 bytes
        replay detection support: Y
        Status: ACTIVE(ACTIVE)

     outbound ah sas:

     outbound pcp sas:
RT-1#


Host間の通信

・ping

VPC19> ping 192.168.20.1

84 bytes from 192.168.20.1 icmp_seq=1 ttl=62 time=41.917 ms
84 bytes from 192.168.20.1 icmp_seq=2 ttl=62 time=19.175 ms
84 bytes from 192.168.20.1 icmp_seq=3 ttl=62 time=26.673 ms
84 bytes from 192.168.20.1 icmp_seq=4 ttl=62 time=19.518 ms
84 bytes from 192.168.20.1 icmp_seq=5 ttl=62 time=21.046 ms
^C
VPC19>

・Traceroute
RT-1、RT-2のTunnelインターフェース経由で通信ができていることが確認できます。
※今回は適当な設定をしているためUDPの通信が届きません。そのため、Tracerouteをicmpで実施しています。

VPC19> trace 192.168.20.1 -P 1
trace to 192.168.20.1, 8 hops max (ICMP), press Ctrl+C to stop
 1   192.168.10.254   3.435 ms  3.659 ms  5.819 ms
 2   10.0.0.2   16.884 ms  18.924 ms  14.380 ms
 3   192.168.20.1   14.355 ms  14.213 ms  16.459 ms

VPC19>

おわりに

ここまでご閲読いただきありがとうございます。

冒頭でも記載した通りCisco IOS RouterでのIPsec設定はあまり実務で使用する機会はないかもしれません。しかし、Cisco FirepowerなどのFW製品やCloud基板接続のためにルータでIPsecを実装するなど、使用ケース自体がゼロというわけではないです。また、IPsec技術自体はかなり使用されているため全く意味が無いというわけではないと思います。

読者様のご参考になれば幸甚です。

最後に参考としてルーター機器のConfigを添付しておきます。
※Host端末自体はIPアドレスとゲートウェイ設定だけのため割愛


参考

メーカー資料

Configuring Internet Key Exchange Version 2 (IKEv2) and FlexVPN Site-to-Site

■付録:IKEv2 およびレガシー VPN
https://www.cisco.com/c/ja_jp/td/docs/ios-xml/ios/sec_conn_ike2vpn/configuration/xe-16-10/sec-flex-vpn-xe-16-10-book/sec-flex-vpn-xe-16-10-book_chapter_01110.pdf

ここから先は

6,639字

¥ 300

この記事が気に入ったらサポートをしてみませんか?