FutureNet

NXR,WXRシリーズ

IPsec編

1. Route Based IPsec設定

1-3. RSA公開鍵暗号方式での接続設定

フェーズ1の対向ルータの認証にRSA公開鍵暗号方式を利用する設定例です。 なおRSA公開鍵暗号方式を利用する場合はIKEのフェーズ1でメインモードを使用する必要があります。

 

コンテンツ
構成図 設定フロー 設定例 設定例解説 端末の設定例 付録

 

【 構成図 】

 

【 設定フロー 】

〔NXR_A,Bの設定フロー〕

 

【 設定例 】

〔NXR_Aの設定〕

nxr350#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxr350(config)#hostname NXR_A
NXR_A(config)#interface ethernet 0
NXR_A(config-if)#ip address 192.168.10.1/24
NXR_A(config-if)#exit
NXR_A(config)#ip route 192.168.20.0/24 tunnel 1 1
NXR_A(config)#ip route 192.168.20.0/24 null 254
NXR_A(config)#ip route 203.0.113.5/32 203.0.113.2
NXR_A(config)#ipsec generate rsa-sig-key 1024
RSA-SIG KEY generating…
NXR_A(config)#exit
NXR_A#show ipsec rsa-pub-key
RSA public key :
0sAQNzRIcCCbTwHaJDAVP5KoUkEZRmdsFbgFiuTRFviRQS+/k96m/tMlfr/cIxf1RiSYjImyVp6Fwi4k
CsndLVKp/ucoKrWYk8gCx/Q6aVtA5QazAT6ry6jX+3/eVVNiCaWYAnNFz3axQ8lshMMAOXGMKlYmbWTq
13+gQNjwtc5py20w==
NXR_A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
NXR_A(config)#ipsec access-list ipsec_acl ip any any
NXR_A(config)#ipsec local policy 1
NXR_A(config-ipsec-local)#address ip
NXR_A(config-ipsec-local)#self-identity fqdn nxra
NXR_A(config-ipsec-local)#exit
NXR_A(config)#ipsec isakmp policy 1
NXR_A(config-ipsec-isakmp)#description NXR_B
NXR_A(config-ipsec-isakmp)#authentication rsa-sig 0sAQNyrPCxubUlYHNUu+rD2ndJsuJa
VOdeyt8gDXUaMgwqfH08wfOnXPHnkymRwX1qUcjj5930IZpydniQEnQ544sh2VNtki7Pz+1zHjlE8RZM
y4lr8paamsBsdkeikcFF8zg6RbnWO6b7pLMXJMz7Dx5o5rjTDG/grjmtKMbwTJgH7w==
NXR_A(config-ipsec-isakmp)#hash sha256
NXR_A(config-ipsec-isakmp)#encryption aes128
NXR_A(config-ipsec-isakmp)#group 5
NXR_A(config-ipsec-isakmp)#lifetime 10800
NXR_A(config-ipsec-isakmp)#isakmp-mode main
NXR_A(config-ipsec-isakmp)#remote address ip 203.0.113.5
NXR_A(config-ipsec-isakmp)#remote identity fqdn nxrb
NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic restart
NXR_A(config-ipsec-isakmp)#local policy 1
NXR_A(config-ipsec-isakmp)#exit
NXR_A(config)#interface tunnel 1
NXR_A(config-tunnel)#tunnel mode ipsec ipv4
NXR_A(config-tunnel)#tunnel protection ipsec policy 1
NXR_A(config-tunnel)#ip tcp adjust-mss auto
NXR_A(config-tunnel)#exit
NXR_A(config)#ipsec tunnel policy 1
NXR_A(config-ipsec-tunnel)#description NXR_B
NXR_A(config-ipsec-tunnel)#negotiation-mode auto
NXR_A(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_A(config-ipsec-tunnel)#set pfs group5
NXR_A(config-ipsec-tunnel)#set sa lifetime 3600
NXR_A(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_A(config-ipsec-tunnel)#match address ipsec_acl
NXR_A(config-ipsec-tunnel)#exit
NXR_A(config)#interface ethernet 1
NXR_A(config-if)#ip address 203.0.113.1/30
NXR_A(config-if)#ipsec policy 1
NXR_A(config-if)#exit
NXR_A(config)#fast-forwarding enable
NXR_A(config)#exit
NXR_A#save config

 

〔NXR_Bの設定〕

nxrg100#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxrg100(config)#hostname NXR_B
NXR_B(config)#interface ethernet 0
NXR_B(config-if)#ip address 192.168.20.1/24
NXR_B(config-if)#exit
NXR_B(config)#ip route 192.168.10.0/24 tunnel 1 1
NXR_B(config)#ip route 192.168.10.0/24 null 254
NXR_B(config)#ip route 203.0.113.1/32 203.0.113.6
NXR_B(config)#ipsec generate rsa-sig-key 1024
RSA-SIG KEY generating…
NXR_B(config)#exit
NXR_B#show ipsec rsa-pub-key
RSA public key :
0sAQNyrPCxubUlYHNUu+rD2ndJsuJaVOdeyt8gDXUaMgwqfH08wfOnXPHnkymRwX1qUcjj5930IZpydn
iQEnQ544sh2VNtki7Pz+1zHjlE8RZMy4lr8paamsBsdkeikcFF8zg6RbnWO6b7pLMXJMz7Dx5o5rjTDG
/grjmtKMbwTJgH7w==
NXR_B#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
NXR_B(config)#ipsec access-list ipsec_acl ip any any
NXR_B(config)#ipsec local policy 1
NXR_B(config-ipsec-local)#address ip
NXR_B(config-ipsec-local)#self-identity fqdn nxrb
NXR_B(config-ipsec-local)#exit
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A
NXR_B(config-ipsec-isakmp)#authentication rsa-sig 0sAQNzRIcCCbTwHaJDAVP5KoUkEZRm
dsFbgFiuTRFviRQS+/k96m/tMlfr/cIxf1RiSYjImyVp6Fwi4kCsndLVKp/ucoKrWYk8gCx/Q6aVtA5Q
azAT6ry6jX+3/eVVNiCaWYAnNFz3axQ8lshMMAOXGMKlYmbWTq13+gQNjwtc5py20w==
NXR_B(config-ipsec-isakmp)#hash sha256
NXR_B(config-ipsec-isakmp)#encryption aes128
NXR_B(config-ipsec-isakmp)#group 5
NXR_B(config-ipsec-isakmp)#lifetime 10800
NXR_B(config-ipsec-isakmp)#isakmp-mode main
NXR_B(config-ipsec-isakmp)#remote address ip 203.0.113.1
NXR_B(config-ipsec-isakmp)#remote identity fqdn nxra
NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart
NXR_B(config-ipsec-isakmp)#local policy 1
NXR_B(config-ipsec-isakmp)#exit
NXR_B(config)#interface tunnel 1
NXR_B(config-tunnel)#tunnel mode ipsec ipv4
NXR_B(config-tunnel)#tunnel protection ipsec policy 1
NXR_B(config-tunnel)#ip tcp adjust-mss auto
NXR_B(config-tunnel)#exit
NXR_B(config)#ipsec tunnel policy 1
NXR_B(config-ipsec-tunnel)#description NXR_A
NXR_B(config-ipsec-tunnel)#negotiation-mode auto
NXR_B(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_B(config-ipsec-tunnel)#set pfs group5
NXR_B(config-ipsec-tunnel)#set sa lifetime 3600
NXR_B(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_B(config-ipsec-tunnel)#match address ipsec_acl
NXR_B(config-ipsec-tunnel)#exit
NXR_B(config)#interface ethernet 1
NXR_B(config-if)#ip address 203.0.113.5/30
NXR_B(config-if)#ipsec policy 1
NXR_B(config-if)#exit
NXR_B(config)#fast-forwarding enable
NXR_B(config)#exit
NXR_B#save config

 

【 設定例解説 】

〔NXR_Aの設定〕

1. <ホスト名の設定>
nxr350(config)#hostname NXR_A

ホスト名を設定します。

 

2. <LAN側(ethernet0)インタフェース設定>
NXR_A(config)#interface ethernet 0
NXR_A(config-if)#ip address 192.168.10.1/24

ethernet0インタフェースのIPアドレスを設定します。

 

3. <スタティックルート設定>
NXR_A(config)#ip route 192.168.20.0/24 tunnel 1 1
NXR_A(config)#ip route 192.168.20.0/24 null 254

192.168.20.0/24向けのルートを設定します。なおIPsec SA確立時はトンネル1インタフェースを、未確立時はnullインタフェースのルートを利用するように設定します。

NXR_A(config)#ip route 203.0.113.5/32 203.0.113.2

カプセル化されたパケットを転送するためのルートを設定します。

 

4. <RSA Signature Keyの作成>
NXR_A(config)#ipsec generate rsa-sig-key 1024

IPsecの認証で使用するRSA Signature Keyを作成します。この設定例では1024ビットで作成します。

 

5. <RSA公開鍵の確認>
NXR_A#show ipsec rsa-pub-key
RSA public key :
0sAQNe9Ghb4CNEaJuIIy67aSxECLJDHhvndH1opuMs6P8yGiTNlcGeSOQ8XEy8iYTst2bv022XUx
St37RhOR5lRiY1i83TXkQZbhnJDCNJv+rtX/aro745MbJ9auXT1L5tda4C54S7SELboAtU28sD3si0
OwlzLWtE7yRUqLP4ZiiNMw==

作成したRSA公開鍵を確認します。ここで表示された公開鍵は、NXR_BのIPsec ISAKMPポリシー設定で使用します。

 

6. <IPsecアクセスリスト設定>
NXR_A(config)#ipsec access-list ipsec_acl ip any any

ipsec_aclという名前のIPsecアクセスリストを設定します。なお送信元IPアドレス,宛先IPアドレスともにanyとします。

 

7. <IPsecローカルポリシー設定>
NXR_A(config)#ipsec local policy 1
NXR_A(config-ipsec-local)#address ip
NXR_A(config-ipsec-local)#self-identity fqdn nxra

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。またセルフIDをFQDN方式でnxraとし、NXR_BのリモートIDと同じIDを設定します。
(☞) RSA公開鍵暗号方式を利用する場合は、identity設定が必須になります。

 

8. <IPsec ISAKMPポリシー設定>
NXR_A(config)#ipsec isakmp policy 1
NXR_A(config-ipsec-isakmp)#description NXR_B

ISAKMPポリシー1の説明としてNXR_Bを設定します。

NXR_A(config-ipsec-isakmp)#authentication rsa-sig 0sAQOx8kE6uhZTvWMikunsy3uK5/7jIkTXs
CjQpgo4B+X64UAVeuxFQZ3KG3bzyjmyCbpkt0xEiU+v1kF4AOAOXoDfgND+KAdEky/YWqQYzMu
uuu2uy/K6E9JA24NACufuqMqgGSXc51fJ/6V5Qi9YtVd7TWBkZQSZJJADBHs/YyYD9Q==

認証方式としてrsa-sig(公開鍵暗号方式)を選択し、NXR_Bで作成した公開鍵を設定します。
(☞) この設定の前までに、NXR_Bで公開鍵を作成しておく必要があります。

NXR_A(config-ipsec-isakmp)#hash sha256
NXR_A(config-ipsec-isakmp)#encryption aes128
NXR_A(config-ipsec-isakmp)#group 5
NXR_A(config-ipsec-isakmp)#lifetime 10800
NXR_A(config-ipsec-isakmp)#isakmp-mode main

認証アルゴリズムとしてsha256、暗号化アルゴリズムとしてaes128,Diffie-Hellman(DH)グループとしてgroup 5、ISAKMP SAのライフタイムとして10800秒、フェーズ1のネゴシエーションモードとしてメインモードを設定します。

NXR_A(config-ipsec-isakmp)#remote address ip 203.0.113.5
NXR_A(config-ipsec-isakmp)#remote identity fqdn nxrb
NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic restart

リモートアドレスにNXR_BのWAN側IPアドレスを設定します。またリモートIDをFQDN方式でnxrbとし、NXR_BのセルフIDと同じIDを設定します。そしてIKE KeepAlive(DPD)を監視間隔30秒,リトライ回数3回とし、keepalive失敗時にSAを削除しIKEのネゴシエーションを開始するように設定します。

NXR_A(config-ipsec-isakmp)#local policy 1

IPsecローカルポリシー1と関連づけを行います。

 

9. <トンネル1インタフェース設定>
NXR_A(config)#interface tunnel 1
NXR_A(config-tunnel)#tunnel mode ipsec ipv4
NXR_A(config-tunnel)#tunnel protection ipsec policy 1
NXR_A(config-tunnel)#ip tcp adjust-mss auto

トンネル1インタフェースでトンネルモードをipsec ipv4、使用するIPsecトンネルポリシーとして1を設定します。またTCP MSSの調整機能をオートに設定します。

 

10. <IPsec トンネルポリシー設定>
NXR_A(config)#ipsec tunnel policy 1
NXR_A(config-ipsec-tunnel)#description NXR_B
NXR_A(config-ipsec-tunnel)#negotiation-mode auto

IPsecトンネルポリシー1の説明としてNXR_B、ネゴシエーションモードとしてautoを設定します。

NXR_A(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_A(config-ipsec-tunnel)#set pfs group5
NXR_A(config-ipsec-tunnel)#set sa lifetime 3600

暗号化アルゴリズムとしてaes128、認証アルゴリズムとしてsha256、PFSを有効にし、かつDHグループとしてgroup5、IPsec SAのライフタイムとして3600秒を設定します。

NXR_A(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_A(config-ipsec-tunnel)#match address ipsec_acl

ISAKMPポリシー1と関連づけを行い、IPsecアクセスリストipsec_aclを設定します。

 

11. <WAN側(ethernet1)インタフェース設定>
NXR_A(config)#interface ethernet 1
NXR_A(config-if)#ip address 203.0.113.1/30

ethernet1インタフェースのIPアドレスを設定します。

NXR_A(config-if)#ipsec policy 1

IPsecトンネルのエンドポイントとなるためIPsecローカルポリシー1を設定します。

 

12. <ファストフォワーディング設定>
NXR_A(config)#fast-forwarding enable

ファストフォワーディングを有効にします。ファストフォワーディングを有効にすることでパケット転送を高速に処理することができます。
(☞) ファストフォワーディングの詳細および利用時の制約については、各シリーズのユーザーズガイド(CLI版)に記載されているファストフォワーディングの解説をご参照ください。

 

〔NXR_Bの設定〕

1. <ホスト名の設定>
nxrg100(config)#hostname NXR_B

ホスト名を設定します。

 

2. <LAN側(ethernet0)インタフェース設定>
NXR_B(config)#interface ethernet 0
NXR_B(config-if)#ip address 192.168.20.1/24

ethernet0インタフェースのIPアドレスを設定します。

 

3. <スタティックルート設定>
NXR_B(config)#ip route 192.168.10.0/24 tunnel 1 1
NXR_B(config)#ip route 192.168.10.0/24 null 254

192.168.10.0/24向けのルートを設定します。なおIPsec SA確立時はトンネル1インタフェースを、未確立時はnullインタフェースのルートを利用するように設定します。

NXR_B(config)#ip route 203.0.113.1/32 203.0.113.6

カプセル化されたパケットを転送するためのルートを設定します。

 

4. <RSA Signature Keyの作成>
NXR_B(config)#ipsec generate rsa-sig-key 1024

IPsecの認証で使用するRSA Signature Keyを作成します。この設定例では1024ビットで作成します。

 

5. <RSA公開鍵の確認>
NXR_B#show ipsec rsa-pub-key
RSA public key :
0sAQNyrPCxubUlYHNUu+rD2ndJsuJaVOdeyt8gDXUaMgwqfH08wfOnXPHnkymRwX1qUcjj5930IZpydn
iQEnQ544sh2VNtki7Pz+1zHjlE8RZMy4lr8paamsBsdkeikcFF8zg6RbnWO6b7pLMXJMz7Dx5o5rjTDG
/grjmtKMbwTJgH7w==

作成したRSA公開鍵を確認します。ここで表示された公開鍵は、NXR_AのIPsec ISAKMPポリシー設定で使用します。

 

6. <IPsecアクセスリスト設定>
NXR_B(config)#ipsec access-list ipsec_acl ip any any

ipsec_aclという名前のIPsecアクセスリストを設定します。なお送信元IPアドレス,宛先IPアドレスともにanyとします。

 

7. <IPsecローカルポリシー設定>
NXR_B(config)#ipsec local policy 1
NXR_B(config-ipsec-local)#address ip
NXR_B(config-ipsec-local)#self-identity fqdn nxrb

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。またセルフIDをFQDN方式でnxrbとし、NXR_AのリモートIDと同じIDを設定します。

 

8. <IPsec ISAKMPポリシー設定>
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A

ISAKMPポリシー1の説明としてNXR_Aを設定します。

NXR_B(config-ipsec-isakmp)#authentication rsa-sig 0sAQNzRIcCCbTwHaJDAVP5KoUkEZRm
dsFbgFiuTRFviRQS+/k96m/tMlfr/cIxf1RiSYjImyVp6Fwi4kCsndLVKp/ucoKrWYk8gCx/Q6aVtA5Q
azAT6ry6jX+3/eVVNiCaWYAnNFz3axQ8lshMMAOXGMKlYmbWTq13+gQNjwtc5py20w==

認証方式としてrsa-sig(公開鍵暗号方式)を選択し、NXR_Aで作成した公開鍵を設定します。
(☞) この設定の前までにNXR_Aで公開鍵を作成しておく必要があります。

NXR_B(config-ipsec-isakmp)#hash sha256
NXR_B(config-ipsec-isakmp)#encryption aes128
NXR_B(config-ipsec-isakmp)#group 5
NXR_B(config-ipsec-isakmp)#lifetime 10800
NXR_B(config-ipsec-isakmp)#isakmp-mode main

認証アルゴリズムとしてsha256、暗号化アルゴリズムとしてaes128、Diffie-Hellman(DH)グループとしてgroup 5、ISAKMP SAのライフタイムとして10800秒、フェーズ1のネゴシエーションモードとしてメインモードを設定します。

NXR_B(config-ipsec-isakmp)#remote address ip 203.0.113.1
NXR_B(config-ipsec-isakmp)#remote identity fqdn nxra
NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart

リモートアドレスにNXR_AのWAN側IPアドレスを設定します。またリモートIDをFQDN方式でnxraとし、NXR_AのセルフIDと同じIDを設定します。
そしてIKE KeepAlive(DPD)を監視間隔30秒,リトライ回数3回とし、keepalive失敗時にSAを削除しIKEのネゴシエーションを開始するように設定します。

NXR_B(config-ipsec-isakmp)#local policy 1

IPsecローカルポリシー1と関連づけを行います。

 

9. <トンネル1インタフェース設定>
NXR_B(config)#interface tunnel 1
NXR_B(config-tunnel)#tunnel mode ipsec ipv4
NXR_B(config-tunnel)#tunnel protection ipsec policy 1
NXR_B(config-tunnel)#ip tcp adjust-mss auto

トンネル1インタフェースでトンネルモードをipsec ipv4、使用するIPsecトンネルポリシーとして1を設定します。またTCP MSSの調整機能をオートに設定します。

 

10. <IPsec トンネルポリシー設定>
NXR_B(config)#ipsec tunnel policy 1
NXR_B(config-ipsec-tunnel)#description NXR_A
NXR_B(config-ipsec-tunnel)#negotiation-mode auto

IPsecトンネルポリシー1の説明としてNXR_A、ネゴシエーションモードとしてautoを設定します。

NXR_B(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_B(config-ipsec-tunnel)#set pfs group5
NXR_B(config-ipsec-tunnel)#set sa lifetime 3600

暗号化アルゴリズムとしてaes128、認証アルゴリズムとしてsha256、PFSを有効にし、かつDHグループとしてgroup5、IPsec SAのライフタイムとして3600秒を設定します。

NXR_B(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_B(config-ipsec-tunnel)#match address ipsec_acl

ISAKMPポリシー1と関連づけを行い、IPsecアクセスリストipsec_aclを設定します。

 

11. <WAN側(ethernet1)インタフェース設定>
NXR_B(config)#interface ethernet 1
NXR_B(config-if)#ip address 203.0.113.5/30

ethernet1インタフェースのIPアドレスを設定します。

NXR_B(config-if)#ipsec policy 1

IPsecトンネルのエンドポイントとなるため、IPsecローカルポリシー1を設定します。

 

12. <ファストフォワーディング設定>
NXR_B(config)#fast-forwarding enable

ファストフォワーディングを有効にします。

 

【 端末の設定例 】

192.168.10.0/24 192.168.20.0/24
IPアドレス 192.168.10.100 192.168.20.100
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.10.1 192.168.20.1

 

【 付録 】