FutureNet

NXR,WXRシリーズ

IPsec編

2. Route Based IPsec設定

2-2. 動的IPアドレスでの接続設定例(AggressiveModeの利用)

NXRのWAN側IPアドレスが接続のたびに変わる動的IPアドレス環境でもIPsecを利用することが可能です。なお、この設定例では固定IPと動的IPでの接続を想定しています。動的IP同士での接続は、2-8. FQDNでのIPsec接続設定例をご参照ください。

 

【 構成図 】

【 設定データ 】

〔NXR_Aの設定〕

設定項目 設定内容
ホスト名 NXR_A
LAN側インタフェース ethernet0のIPアドレス 192.168.10.1/24
WAN側インタフェース ethernet1のIPアドレス 10.10.10.1/24
IPsecローカルポリシー 1
スタティックルート No.1 宛先IPアドレス 192.168.20.0/24
ゲートウェイ(インタフェース) tunnel1
ディスタンス 1
No.2 宛先IPアドレス 192.168.20.0/24
ゲートウェイ(インタフェース) null
ディスタンス 254
No.3 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(IPアドレス) 10.10.10.254
IPsec IPsecアクセスリスト リスト名 ipsec_acl
送信元IPアドレス any
宛先IPアドレス any
IPsecローカルポリシー1 address ip
IPsec ISAKMPポリシー1 名前 NXR_B
認証方式 pre-share
認証鍵 ipseckey
認証アルゴリズム sha1
暗号化アルゴリズム aes128
DHグループ 5
ライフタイム 10800秒
ISAKMPモード アグレッシブモード
リモートアドレス any
リモートID(FQDN) nxrb
DPD 再送間隔 30秒
リトライ回数 3回
動作 clear
ローカルポリシー 1
IPsecトンネルポリシー1 名前 NXR_B
ネゴシエーションモード レスポンダ
認証アルゴリズム sha1
暗号化アルゴリズム aes128
PFS 有効(グループ5)
ライフタイム 3600秒
ISAKMPポリシー 1
IPsecアクセスリスト ipsec_acl
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
MSS自動調整 オート
FastFowarding 有効

〔NXR_Bの設定〕

設定項目 設定内容
ホスト名 NXR_B
LAN側インタフェース ethernet0のIPアドレス 192.168.20.1/24
WAN側インタフェース ethernet1のIPアドレス 動的IPアドレス
IPsecローカルポリシー 1
スタティックルート No.1 宛先IPアドレス 192.168.10.0/24
ゲートウェイ(インタフェース) tunnel1
ディスタンス 1
No.2 宛先IPアドレス 192.168.10.0/24
ゲートウェイ(インタフェース) null
ディスタンス 254
IPsec IPsecアクセスリスト リスト名 ipsec_acl
送信元IPアドレス any
宛先IPアドレス any
IPsecローカルポリシー1 address ip
セルフID(FQDN) nxrb
IPsec ISAKMPポリシー1 名前 NXR_A
認証方式 pre-share
認証鍵 ipseckey
認証アルゴリズム sha1
暗号化アルゴリズム aes128
DHグループ 5
ライフタイム 10800秒
ISAKMPモード アグレッシブモード
リモートアドレス 10.10.10.1
DPD 再送間隔 30秒
リトライ回数 3回
動作 restart
ローカルポリシー 1
IPsecトンネルポリシー1 名前 NXR_A
ネゴシエーションモード オート
認証アルゴリズム sha1
暗号化アルゴリズム aes128
PFS 有効(グループ5)
ライフタイム 3600秒
ISAKMPポリシー 1
IPsecアクセスリスト ipsec_acl
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
MSS自動調整 オート
FastFowarding 有効

【 設定例 】

〔NXR_Aの設定〕

nxr120#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
nxr120(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 0.0.0.0/0 10.10.10.254
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)#exit
NXR_A(config)#ipsec isakmp policy 1
NXR_A(config-ipsec-isakmp)#description NXR_B
NXR_A(config-ipsec-isakmp)#authentication pre-share ipseckey
NXR_A(config-ipsec-isakmp)#hash sha1
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 aggressive
NXR_A(config-ipsec-isakmp)#remote address ip any
NXR_A(config-ipsec-isakmp)#remote identity fqdn nxrb
NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic clear
NXR_A(config-ipsec-isakmp)#local policy 1
NXR_A(config-ipsec-isakmp)#exit
NXR_A(config)#ipsec tunnel policy 1
NXR_A(config-ipsec-tunnel)#description NXR_B
NXR_A(config-ipsec-tunnel)#negotiation-mode responder
NXR_A(config-ipsec-tunnel)#set transform esp-aes128 esp-sha1-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 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)#interface ethernet 1
NXR_A(config-if)#ip address 10.10.10.1/24
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の設定〕

nxr120#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
nxr120(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)#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 pre-share ipseckey
NXR_B(config-ipsec-isakmp)#hash sha1
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 aggressive
NXR_B(config-ipsec-isakmp)#remote address ip 10.10.10.1
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)#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-sha1-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 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)#interface ethernet 1
NXR_B(config-if)#ip address dhcp
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. <ホスト名の設定>
nxr120(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

LAN_B向けのルートを設定します。ゲートウェイインタフェースはtunnel 1を設定します。また、このルートのディスタンス値として1を設定します。

(☞) これはIPsecで使用するスタティックルートであり、ここで設定した宛先IPアドレスにマッチしたパケットがIPsecのカプセル化対象となります。なお、ゲートウェイアドレスはIPsecで使用するトンネルインタフェースを設定します。

NXR_A(config)#ip route 192.168.20.0/24 null 254

LAN_B向けのルートを設定します。ただし、ゲートウェイインタフェースはnullを設定します。また、このルートのディスタンス値として254を設定します。

(☞) nullインタフェースを出力インタフェースとして設定した場合、パケットが出力されることはありません(ドロップされます)。よって、パケット出力を行う場合はnullインタフェースよりもディスタンス値の小さいルートを設定する必要があります。

NXR_A(config)#ip route 0.0.0.0/0 10.10.10.254

デフォルトルートを設定します。

 

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

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

(☞) Route Based IPsecでESP化するか否かはIPsecアクセスリストではなく、トンネルインタフェースをゲートウェイとするルート設定の有無で決まります。よっ て、Policy Based IPsecではIPsecアクセスリストで設定したルールに基づきIPsecでESP化するかどうかが決定されましたが、Route Based IPsecではIPsecアクセスリストをIKEフェーズ2のIDとしてのみ使用します。

 

5. <IPsecローカルポリシー設定>
NXR_A(config)#ipsec local policy 1

IPsecローカルポリシー1を設定します。

NXR_A(config-ipsec-local)#address ip

IPsecトンネルの送信元IPアドレスをip(IPv4)と設定します。

(☞) このIPアドレスには、インタフェース設定でipsec policy 1と指定したインタフェースのIPアドレスが自動的に設定されます。

 

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

NXR_BとのIPsec接続で使用するISAKMPポリシー1を設定します。

NXR_A(config-ipsec-isakmp)#description NXR_B

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

NXR_A(config-ipsec-isakmp)#authentication pre-share ipseckey

認証方式として pre-share(事前共有鍵) を選択し、事前共有鍵ipseckeyを設定します。
(☞) 事前共有鍵はNXR_Bと共通の値を設定します。

NXR_A(config-ipsec-isakmp)#hash sha1

認証アルゴリズムとしてsha1を設定します。

NXR_A(config-ipsec-isakmp)#encryption aes128

暗号化アルゴリズムとしてaes128を設定します。

NXR_A(config-ipsec-isakmp)#group 5

Diffie-Hellman(DH)グループとしてgroup 5を設定します。

NXR_A(config-ipsec-isakmp)#lifetime 10800

ISAKMP SAのライフタイムとして10800秒を設定します。

NXR_A(config-ipsec-isakmp)#isakmp-mode aggressive

フェーズ1のネゴシエーションモードを設定します。この設定例では、IPsecを使用するルータのWAN側IPアドレスが片側動的IPアドレスのためアグレッシブモードを設定します。

NXR_A(config-ipsec-isakmp)#remote address ip any

対向のNXR_BのWAN側IPアドレスを設定します。この設定例では、対向のNXRのWAN側IPアドレスが動的IPアドレスのためanyを設定します。

NXR_A(config-ipsec-isakmp)#remote identity fqdn nxrb

対向のNXR_Bのidentityを設定します。この設定例では、IDとしてFQDN方式でnxrbと設定します。

(☞) この設定が必要な理由は、対向のNXRのWAN側IPアドレスが動的IPアドレスのためIPアドレスをIDとして利用することができないためです。

NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic clear

IKE KeepAlive(DPD)を設定します。この設定例では、30秒間隔で3回リトライを行いkeepalive失敗時にSAを削除するよう設定します。
(☞) DPD(Dead Peer Detection)はISAKMP SAを監視する機能で、対向のNXRのWAN側で障害が発生した場合などにそれを検知し、現在利用しているSAを削除したりSAを削除して再ネゴシエー ションを行ったりするなどの機能があります。なお、DPDは常に定期的に送信されるわけではなく、対向のNXRよりIPsecパケットを受信している場合、DPDパケットの送信は行われません。

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

関連づけを行うIPsecローカルポリシーとしてIPsecローカルポリシー1を設定します。

 

7. <IPsec トンネルポリシー設定>
NXR_A(config)#ipsec tunnel policy 1

NXR_BとのIPsec接続で使用するトンネルポリシー1を設定します。

NXR_A(config-ipsec-tunnel)#description NXR_B

トンネルポリシー1の説明としてNXR_Bを設定します。

NXR_A(config-ipsec-tunnel)#negotiation-mode responder

IPsecポリシーのネゴシエーションモードを設定します。この設定例では、ネゴシエーションモードをresponderに設定します。これにより、こちらからいかなる場合(Rekeyを含む)においてもネゴシエーションを開始することはありません。
(☞) IPsecポリシーのネゴシエーションモードはネゴシエーションを自ら開始したり、逆にいかなる場合も自らネゴシエーションを開始しないという設定が可能です。

NXR_A(config-ipsec-tunnel)#set transform esp-aes128 esp-sha1-hmac

IPsecトンネルポリシーで使用するトランスフォーム(プロポーザル)を設定します。
この設定例では、暗号化アルゴリズムとしてaes128、認証アルゴリズムとしてsha1を設定します。

NXR_A(config-ipsec-tunnel)#set pfs group5

PFS(Perfect Forward Secrecy)の設定とそれに伴うDHグループを設定します。
この設定例では、PFSを有効にし、かつDHグループとしてgroup5を設定します。

NXR_A(config-ipsec-tunnel)#set sa lifetime 3600

IPsec SAのライフタイムとして3600秒を設定します。

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

関連づけを行うISAKMPポリシーとしてISAKMPポリシー1を設定します。

NXR_A(config-ipsec-tunnel)#match address ipsec_acl

IPsecアクセスリストとしてipsec_aclを設定します。

 

8. <トンネルインタフェース設定>
NXR_A(config)#interface tunnel 1
NXR_A(config-tunnel)#tunnel mode ipsec ipv4

トンネル1インタフェースで使用するトンネルモードを設定します。

(☞) トンネルインタフェースをRoute Based IPsec(IPv4)で使用する場合は、ipsec ipv4を設定します。

NXR_A(config-tunnel)#tunnel protection ipsec policy 1

使用するIPsecトンネルポリシーとして1を設定します。

(☞) IPsecローカルポリシーではありませんのでご注意下さい。

NXR_A(config-tunnel)#ip tcp adjust-mss auto

TCP MSSの調整機能をオートに設定します。

TCP MSS調整機能はTCPのネゴシエーション時にMSS値を調整することで、サイズの大きいTCPパケットを転送する際にフラグメントによるスループットの低下を抑制する場合に利用します。

 

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

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

NXR_A(config-if)#ipsec policy 1

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

 

10. <ファストフォワーディングの有効化>
NXR_A(config)#fast-forwarding enable

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

 

〔NXR_Bの設定〕

1. <ホスト名の設定>
nxr120(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

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

(☞) nullインタフェースを出力インタフェースとして設定した場合、パケットが出力されることはありません(ドロップされます)。

 

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

ipsec_aclという名前のIPsecアクセスリストを設定します。

なお、送信元IPアドレス,宛先IPアドレスともにanyとします。

 

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

IPsecトンネルの送信元IPアドレスをip(IPv4)と設定します。

NXR_B(config-ipsec-local)#self-identity fqdn nxrb

本装置のidentityを設定します。この設定例では、IDとしてFQDN方式でnxrbと設定します。

(☞) この設定が必要な理由は、WAN側IPアドレスが動的IPアドレスのため対向のNXRで本装置のIPアドレスをIDとして設定しておくことができないためです。

 

6. <IPsec ISAKMPポリシー設定>
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A
NXR_B(config-ipsec-isakmp)#authentication pre-share ipseckey

ISAKMPポリシーの説明としてNXR_A、認証方式としてpre-share(事前共有鍵)を選択し、事前共有鍵ipseckeyを設定します。

(☞) 事前共有鍵はNXR_Aと共通の値を設定します。

NXR_B(config-ipsec-isakmp)#hash sha1
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 aggressive

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

NXR_B(config-ipsec-isakmp)#remote address ip 10.10.10.1
NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart
NXR_B(config-ipsec-isakmp)#local policy 1

リ モートアドレスにNXR_AのWAN側IPアドレスを設定します。また、IKE KeepAlive(DPD)を監視間隔30秒,リトライ回数3回としkeepalive失敗時にSAを削除しIKEのネゴシエーションを開始するよう設定します。そして、IPsecローカルポリシー1と関連づけを行います。

 

7. <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トンネルポリシーの説明としてNXR_A、ネゴシエーションモードとしてautoを設定します。

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

暗号化アルゴリズムとしてaes128、認証アルゴリズムとしてsha1、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を設定します。

 

8. <トンネルインタフェース設定>
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、使用するトンネルポリシーとして1を設定します。また、TCPMSS値をオートに設定します。

 

9. <WAN側(ethernet1)インタフェース設定>
NXR_B(config)#interface ethernet 1
NXR_B(config-if)#ip address dhcp
NXR_B(config-if)#ipsec policy 1

ethernet1インタフェースのIPアドレスを設定します。動的IPアドレスのため、DHCPクライアントとして動作するように設定します。また、IPsecトンネルのエンドポイントとなるためIPsecローカルポリシー1を設定します。

 

10. <ファストフォワーディングの有効化>
NXR_B(config)#fast-forwarding enable

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

 

【 端末の設定例 】

LAN_Aの端末 LAN_Bの端末
IPアドレス 192.168.10.100 192.168.20.100
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.10.1 192.168.20.1