FutureNet

NXR,VXRシリーズ

IPsec編

1. Route Based IPsec設定

1-11. IPsec+PBR設定

Route Based IPsecを使用したハブ&スポーク構成のIPsec接続設定例です。ハブ拠点のIPsec経路制御にポリシーベースルーティング(以下PBR)を利用します。

 

【 IPsec機能対応機種 】NXR-1300シリーズ,NXR-650,NXR-610Xシリーズ,NXR-530,NXR-350/C,NXR-230/C,NXR-160/LW,NXR-G180/L-CA,NXR-G200シリーズ,NXR-G110シリーズ,NXR-G100シリーズ,NXR-G050シリーズ,VXRシリーズ(2022/8現在)

設定例で使用している機能の対応状況は、各製品の更新履歴やユーザーズガイドをご確認ください。

 

コンテンツ
構成図 設定例 設定例解説 端末の設定例 補足 付録

 

【 構成図 】

  • この例で使用しているルータは、NXR_AがNXR-650、NXR_B,CがNXR-530です。
  • NXR_Aのeth1で接続しているISPのDNSサーバアドレスを以下とします。
    プライマリDNSサーバ:203.0.113.253
    セカンダリDNSサーバ:203.0.113.254
  • PBRは通常の宛先IPアドレスによるルーティングよりも優先されます。
    この設定例では、自発パケットはPBRの対象ではありません。自発パケットも含める場合はこちら

 

【 設定例 】

〔 NXR_Aの設定 〕

nxr650#configure terminal
nxr650(config)#hostname NXR_A
NXR_A(config)#ip policy access-list tunnel1_PBR_OUT 192.168.10.0/24 192.168.20.0/24
NXR_A(config)#ip policy access-list tunnel2_PBR_OUT 192.168.11.0/24 192.168.30.0/24
NXR_A(config)#route-map eth0_PBR permit 1
NXR_A(config-route-map)#match ip address tunnel1_PBR_OUT
NXR_A(config-route-map)#set interface tunnel 1
NXR_A(config-route-map)#exit
NXR_A(config)#route-map eth2_PBR permit 1
NXR_A(config-route-map)#match ip address tunnel2_PBR_OUT
NXR_A(config-route-map)#set interface tunnel 2
NXR_A(config-route-map)#exit
NXR_A(config)#interface ethernet 0
NXR_A(config-if)#ip address 192.168.10.1/24
NXR_A(config-if)#ip policy route-map eth0_PBR
NXR_A(config-if)#exit
NXR_A(config)#interface ethernet 2
NXR_A(config-if)#ip address 192.168.11.1/24
NXR_A(config-if)#ip policy route-map eth2_PBR
NXR_A(config-if)#exit
NXR_A(config)#ip route 192.168.0.0/16 null 254
NXR_A(config)#ip route 0.0.0.0/0 203.0.113.2
NXR_A(config)#ip access-list eth1_IN permit any 203.0.113.1 udp 500 500
NXR_A(config)#ip access-list eth1_IN permit any 203.0.113.1 50
NXR_A(config)#ipsec priority-ignore enable
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 IPsecKEY1
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 86400
NXR_A(config-ipsec-isakmp)#isakmp-mode main
NXR_A(config-ipsec-isakmp)#remote address ip 192.0.2.1
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 28800
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)#ipsec isakmp policy 2
NXR_A(config-ipsec-isakmp)#description NXR_C
NXR_A(config-ipsec-isakmp)#authentication pre-share IPsecKEY2
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 86400
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 NXRC
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)#interface tunnel 2
NXR_A(config-tunnel)#tunnel mode ipsec ipv4
NXR_A(config-tunnel)#tunnel protection ipsec policy 2
NXR_A(config-tunnel)#ip tcp adjust-mss auto
NXR_A(config-tunnel)#exit
NXR_A(config)#ipsec tunnel policy 2
NXR_A(config-ipsec-tunnel)#description NXR_C
NXR_A(config-ipsec-tunnel)#negotiation-mode responder
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 28800
NXR_A(config-ipsec-tunnel)#set key-exchange isakmp 2
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)#ip masquerade
NXR_A(config-if)#ip spi-filter
NXR_A(config-if)#ip access-group in eth1_IN
NXR_A(config-if)#ip tcp adjust-mss auto
NXR_A(config-if)#ipsec policy 1
NXR_A(config-if)#exit
NXR_A(config)#dns
NXR_A(config-dns)#service enable
NXR_A(config-dns)#address 203.0.113.253
NXR_A(config-dns)#address 203.0.113.254
NXR_A(config-dns)#exit
NXR_A(config)#fast-forwarding enable
NXR_A(config)#exit
NXR_A#save config

 

〔 NXR_Bの設定 〕

nxr530#configure terminal
nxr530(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 0.0.0.0/0 ppp 0
NXR_B(config)#ip access-list ppp0_IN permit 203.0.113.1 192.0.2.1 udp 500 500
NXR_B(config)#ip access-list ppp0_IN permit 203.0.113.1 192.0.2.1 50
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)#exit
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A
NXR_B(config-ipsec-isakmp)#authentication pre-share IPsecKEY1
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 86400
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)#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 28800
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)#ppp account username [ISP_B接続用ユーザID] password [ISP_B接続用パスワード]
NXR_B(config)#interface ppp 0
NXR_B(config-ppp)#ip address 192.0.2.1/32
NXR_B(config-ppp)#ip masquerade
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip access-group in ppp0_IN
NXR_B(config-ppp)#ip tcp adjust-mss auto
NXR_B(config-ppp)#ppp username [ISP_B接続用ユーザID]
NXR_B(config-ppp)#ipsec policy 1
NXR_B(config-ppp)#exit
NXR_B(config)#interface ethernet 1
NXR_B(config-if)#no ip address
NXR_B(config-if)#pppoe-client ppp 0
NXR_B(config-if)#exit
NXR_B(config)#dns
NXR_B(config-dns)#service enable
NXR_B(config-dns)#exit
NXR_B(config)#fast-forwarding enable
NXR_B(config)#exit
NXR_B#save config

 

〔 NXR_Cの設定 〕

nxr530#configure terminal
nxr530(config)#hostname NXR_C
NXR_C(config)#interface ethernet 0
NXR_C(config-if)#ip address 192.168.30.1/24
NXR_C(config-if)#exit
NXR_C(config)#ip route 192.168.11.0/24 tunnel 1 1
NXR_C(config)#ip route 192.168.11.0/24 null 254
NXR_C(config)#ip route 0.0.0.0/0 ppp 0
NXR_C(config)#ip access-list ppp0_IN permit 203.0.113.1 any udp 500 500
NXR_C(config)#ip access-list ppp0_IN permit 203.0.113.1 any 50
NXR_C(config)#ipsec access-list IPsec_ACL ip any any
NXR_C(config)#ipsec local policy 1
NXR_C(config-ipsec-local)#address ip
NXR_C(config-ipsec-local)#self-identity fqdn NXRC
NXR_C(config-ipsec-local)#exit
NXR_C(config)#ipsec isakmp policy 1
NXR_C(config-ipsec-isakmp)#description NXR_A
NXR_C(config-ipsec-isakmp)#authentication pre-share IPsecKEY2
NXR_C(config-ipsec-isakmp)#hash sha256
NXR_C(config-ipsec-isakmp)#encryption aes128
NXR_C(config-ipsec-isakmp)#group 5
NXR_C(config-ipsec-isakmp)#lifetime 86400
NXR_C(config-ipsec-isakmp)#isakmp-mode aggressive
NXR_C(config-ipsec-isakmp)#remote address ip 203.0.113.1
NXR_C(config-ipsec-isakmp)#keepalive 30 3 periodic restart
NXR_C(config-ipsec-isakmp)#local policy 1
NXR_C(config-ipsec-isakmp)#exit
NXR_C(config)#interface tunnel 1
NXR_C(config-tunnel)#tunnel mode ipsec ipv4
NXR_C(config-tunnel)#tunnel protection ipsec policy 1
NXR_C(config-tunnel)#ip tcp adjust-mss auto
NXR_C(config-tunnel)#exit
NXR_C(config)#ipsec tunnel policy 1
NXR_C(config-ipsec-tunnel)#description NXR_A
NXR_C(config-ipsec-tunnel)#negotiation-mode auto
NXR_C(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_C(config-ipsec-tunnel)#set pfs group5
NXR_C(config-ipsec-tunnel)#set sa lifetime 28800
NXR_C(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_C(config-ipsec-tunnel)#match address IPsec_ACL
NXR_C(config-ipsec-tunnel)#exit
NXR_C(config)#ppp account username [ISP_C接続用ユーザID] password [ISP_C接続用パスワード]
NXR_C(config)#interface ppp 0
NXR_C(config-ppp)#ip address negotiated
NXR_C(config-ppp)#ip masquerade
NXR_C(config-ppp)#ip spi-filter
NXR_C(config-ppp)#ip access-group in ppp0_IN
NXR_C(config-ppp)#ip tcp adjust-mss auto
NXR_C(config-ppp)#ppp username [ISP_C接続用ユーザID]
NXR_C(config-ppp)#ipsec policy 1
NXR_C(config-ppp)#exit
NXR_C(config)#interface ethernet 1
NXR_C(config-if)#no ip address
NXR_C(config-if)#pppoe-client ppp 0
NXR_C(config-if)#exit
NXR_C(config)#dns
NXR_C(config-dns)#service enable
NXR_C(config-dns)#exit
NXR_C(config)#fast-forwarding enable
NXR_C(config)#exit
NXR_C#save config

 

【 設定例解説 】

〔 NXR_Aの設定 〕

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

ホスト名を設定します。

 

2. <IPポリシアクセスリスト設定>
NXR_A(config)#ip policy access-list tunnel1_PBR_OUT 192.168.10.0/24 192.168.20.0/24

IPポリシアクセスリストtunnel1_PBR_OUTを以下のルールで設定します。

  • 送信元IPアドレス … 192.168.10.0/24
  • 宛先IPアドレス … 192.168.20.0/24
NXR_A(config)#ip policy access-list tunnel2_PBR_OUT 192.168.11.0/24 192.168.30.0/24

IPポリシアクセスリストtunnel2_PBR_OUTを以下のルールで設定します。

  • 送信元IPアドレス … 192.168.11.0/24
  • 宛先IPアドレス … 192.168.30.0/24

 

3. <ルートマップ設定>
NXR_A(config)#route-map eth0_PBR permit 1

ルートマップ名をeth0_PBRとし、No.1のルールを作成します。

NXR_A(config-route-map)#match ip address tunnel1_PBR_OUT

マッチ条件としてIPポリシアクセスリストtunnel1_PBR_OUTを設定します。

NXR_A(config-route-map)#set interface tunnel 1

条件にマッチした際の出力インタフェースとしてtunnel1インタフェースを設定します。

NXR_A(config)#route-map eth2_PBR permit 1

ルートマップ名をeth2_PBRとし、No.1のルールを作成します。

NXR_A(config-route-map)#match ip address tunnel2_PBR_OUT

マッチ条件としてIPポリシアクセスリストtunnel2_PBR_OUTを設定します。

NXR_A(config-route-map)#set interface tunnel 2

条件にマッチした際の出力インタフェースとしてtunnel2インタフェースを設定します。

 

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

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

NXR_A(config-if)#ip policy route-map eth0_PBR

PBR用に定義したルートマップ名eth0_PBRを設定します。

 

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

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

NXR_A(config-if)#ip policy route-map eth2_PBR

PBR用に定義したルートマップ名eth2_PBRを設定します。

 

6. <スタティックルート設定>
NXR_A(config)#ip route 192.168.0.0/16 null 254

192.168.0.0/16向けのnullルートを設定します。

NXR_A(config)#ip route 0.0.0.0/0 203.0.113.2

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

 

7. <IPアクセスリスト設定>
NXR_A(config)#ip access-list eth1_IN permit any 203.0.113.1 udp 500 500
NXR_A(config)#ip access-list eth1_IN permit any 203.0.113.1 50

IPアクセスリストeth1_INを以下のルールで設定します。

  • 宛先IPアドレス203.0.113.1、送信元,宛先UDPポート500番を許可
  • 宛先IPアドレス203.0.113.1、プロトコル番号50(ESP)を許可

(☞) IPアクセスリストを設定しただけではフィルタとして有効にはなりません。フィルタリングを行うインタフェースでの登録が必要になります。

 

8. <IPsec priority-ignore設定>
NXR_A(config)#ipsec priority-ignore enable

ipsec priority-ignoreを有効にします。

 

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

IPsecアクセスリストIPsec_ACLを以下のルールで設定します。

  • 送信元IPアドレス … any
  • 宛先IPアドレス … any

 

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

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

 

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

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

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

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

NXR_A(config-ipsec-isakmp)#hash sha256

認証アルゴリズムをsha256に設定します。

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 86400

ISAKMP SAのライフタイムを設定します。

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

フェーズ1のネゴシエーションモードをメインモードに設定します。

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

リモートアドレスにNXR_BのWAN側IPアドレスを設定します。

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

IKE KeepAlive(DPD)を以下のルールで設定します。

  • 監視間隔 … 30秒
  • リトライ回数 … 3回
  • ダウン検知後の動作 … IKEの再ネゴシエーション
NXR_A(config-ipsec-isakmp)#local policy 1

このIPsec ISAKMPポリシーで使用するIPsecローカルポリシーを設定します。

 

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

トンネル1インタフェースのトンネルモードをipsec ipv4に設定します。

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

このトンネルインタフェースで使用するIPsecトンネルポリシーを設定します。

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

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

 

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

IPsecトンネルポリシー1の説明文を設定します。

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

ネゴシエーションモードをautoに設定します。

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

暗号化アルゴリズムをaes128、認証アルゴリズムをsha256に設定します。

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

PFSを有効、DHグループをgroup5に設定します。

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

IPsec SAのライフタイムを設定します。

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

このIPsecトンネルポリシーで使用するIPsec ISAKMPポリシーを設定します。

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

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

 

14. <IPsec ISAKMPポリシー2設定>
NXR_A(config)#ipsec isakmp policy 2
NXR_A(config-ipsec-isakmp)#description NXR_C

ISAKMPポリシー2の説明文を設定します。

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

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

NXR_A(config-ipsec-isakmp)#hash sha256

認証アルゴリズムをsha256に設定します。

NXR_A(config-ipsec-isakmp)#encryption aes128

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

NXR_A(config-ipsec-isakmp)#group 5

DHグループをgroup 5に設定します。

NXR_A(config-ipsec-isakmp)#lifetime 86400

ISAKMP SAのライフタイムを設定します。

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

フェーズ1のネゴシエーションモードをアグレッシブモードに設定します。

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

リモートアドレスにanyを設定します。

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

リモートID(FQDN方式)を設定します。
(☞) NXR_Cのipsec local policy 1のセルフIDと同じIDを設定します。

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

IKE KeepAlive(DPD)を以下のルールで設定します。

  • 監視間隔 … 30秒
  • リトライ回数 … 3回
  • ダウン検知後の動作 … SA削除
NXR_A(config-ipsec-isakmp)#local policy 1

このIPsec ISAKMPポリシーで使用するIPsecローカルポリシーを設定します。

 

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

トンネル2インタフェースのトンネルモードをipsec ipv4に設定します。

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

このトンネルインタフェースで使用するIPsecトンネルポリシーを設定します。

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

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

 

16. <IPsec トンネルポリシー2設定>
NXR_A(config)#ipsec tunnel policy 2
NXR_A(config-ipsec-tunnel)#description NXR_C

IPsecトンネルポリシー2の説明文を設定します。

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

ネゴシエーションモードをresponderに設定します。

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

暗号化アルゴリズムをaes128、認証アルゴリズムをsha256に設定します。

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

PFSを有効、DHグループをgroup5に設定します。

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

IPsec SAのライフタイムを設定します。

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

このIPsecトンネルポリシーで使用するIPsec ISAKMPポリシーを設定します。

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

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

 

17. <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)#ip masquerade
NXR_A(config-if)#ip spi-filter

IPマスカレード、ステートフルパケットインスペクションを有効にします。

NXR_A(config-if)#ip access-group in eth1_IN

IPアクセスグループのinフィルタにIPアクセスリストeth1_INを設定します。

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

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

NXR_A(config-if)#ipsec policy 1

このインタフェースで使用するIPsecローカルポリシーを設定します。

 

18. <DNS設定>
NXR_A(config)#dns
NXR_A(config-dns)#service enable

DNSサービスを有効にします。

NXR_A(config-dns)#address 203.0.113.253
NXR_A(config-dns)#address 203.0.113.254

DNSサーバアドレスを設定します。

 

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

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

 

20. <設定の保存>
NXR_A#save config

設定内容を保存します。

 

〔 NXR_Bの設定 〕

1. <ホスト名の設定>
nxr530(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向けのルートを設定します。

NXR_B(config)#ip route 0.0.0.0/0 ppp 0

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

 

4. <IPアクセスリスト設定>
NXR_B(config)#ip access-list ppp0_IN permit 203.0.113.1 192.0.2.1 udp 500 500
NXR_B(config)#ip access-list ppp0_IN permit 203.0.113.1 192.0.2.1 50

IPアクセスリストppp0_INを以下のルールで設定します。

  • 送信元IPアドレス203.0.113.1、宛先IPアドレス192.0.2.1、送信元,宛先UDPポート500番を許可
  • 送信元IPアドレス203.0.113.1、宛先IPアドレス192.0.2.1、プロトコル番号50(ESP)を許可

 

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

IPsecアクセスリストIPsec_ACLを以下のルールで設定します。

  • 送信元IPアドレス … any
  • 宛先IPアドレス … any

 

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

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

 

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

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

NXR_B(config-ipsec-isakmp)#authentication pre-share IPsecKEY1

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

NXR_B(config-ipsec-isakmp)#hash sha256

認証アルゴリズムをsha256に設定します。

NXR_B(config-ipsec-isakmp)#encryption aes128

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

NXR_B(config-ipsec-isakmp)#group 5

DHグループをgroup 5に設定します。

NXR_B(config-ipsec-isakmp)#lifetime 86400

ISAKMP SAのライフタイムを設定します。

NXR_B(config-ipsec-isakmp)#isakmp-mode main

フェーズ1のネゴシエーションモードをメインモードに設定します。

NXR_B(config-ipsec-isakmp)#remote address ip 203.0.113.1

リモートアドレスにNXR_AのWAN側IPアドレスを設定します。

NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart

IKE KeepAlive(DPD)を以下のルールで設定します。

  • 監視間隔 … 30秒
  • リトライ回数 … 3回
  • ダウン検知後の動作 … IKEの再ネゴシエーション
NXR_B(config-ipsec-isakmp)#local policy 1

このIPsec ISAKMPポリシーで使用するIPsecローカルポリシーを設定します。

 

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

トンネル1インタフェースのトンネルモードをipsec ipv4に設定します。

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

このトンネルインタフェースで使用するIPsecトンネルポリシーを設定します。

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

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

 

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

IPsecトンネルポリシー1の説明文を設定します。

NXR_B(config-ipsec-tunnel)#negotiation-mode auto

ネゴシエーションモードをautoに設定します。

NXR_B(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac

暗号化アルゴリズムをaes128、認証アルゴリズムをsha256に設定します。

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

PFSを有効、DHグループをgroup5に設定します。

NXR_B(config-ipsec-tunnel)#set sa lifetime 28800

IPsec SAのライフタイムを設定します。

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

このIPsecトンネルポリシーで使用するIPsec ISAKMPポリシーを設定します。

NXR_B(config-ipsec-tunnel)#match address IPsec_ACL

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

 

10. <PPPアカウント設定>
NXR_B(config)#ppp account username [ISP_B接続用ユーザID] password [ISP_B接続用パスワード]

ISP_B接続用ユーザID,パスワードを設定します。

 

11. <WAN側(ppp0)インタフェース設定>
NXR_B(config)#interface ppp 0
NXR_B(config-ppp)#ip address 192.0.2.1/32

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

NXR_B(config-ppp)#ip masquerade
NXR_B(config-ppp)#ip spi-filter

IPマスカレード、ステートフルパケットインスペクションを有効にします。

NXR_B(config-ppp)#ip access-group in ppp0_IN

IPアクセスグループのinフィルタにIPアクセスリストppp0_INを設定します。

NXR_B(config-ppp)#ip tcp adjust-mss auto

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

NXR_B(config-ppp)#ppp username [ISP_B接続用ユーザID]

ISP_B接続用ユーザIDを設定します。

NXR_B(config-ppp)#ipsec policy 1

このインタフェースで使用するIPsecローカルポリシーを設定します。

 

12. <ethernet1インタフェース設定>
NXR_B(config)#interface ethernet 1
NXR_B(config-if)#no ip address
NXR_B(config-if)#pppoe-client ppp 0

PPPoEクライアントにppp0を設定します。

 

13. <DNS設定>
NXR_B(config)#dns
NXR_B(config-dns)#service enable

DNSサービスを有効にします。

 

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

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

 

15. <設定の保存>
NXR_B#save config

設定内容を保存します。

 

〔 NXR_Cの設定 〕

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

ホスト名を設定します。

 

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

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

 

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

192.168.11.0/24向けのルートを設定します。

NXR_C(config)#ip route 0.0.0.0/0 ppp 0

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

 

4. <IPアクセスリスト設定>
NXR_C(config)#ip access-list ppp0_IN permit 203.0.113.1 any udp 500 500
NXR_C(config)#ip access-list ppp0_IN permit 203.0.113.1 any 50

IPアクセスリストppp0_INを以下のルールで設定します。

  • 送信元IPアドレス203.0.113.1、送信元,宛先UDPポート500番を許可
  • 送信元IPアドレス203.0.113.1、プロトコル番号50(ESP)を許可

 

5. <IPsecアクセスリスト設定>
NXR_C(config)#ipsec access-list IPsec_ACL ip any any

IPsecアクセスリストIPsec_ACLを以下のルールで設定します。

  • 送信元IPアドレス … any
  • 宛先IPアドレス … any

 

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

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

NXR_C(config-ipsec-local)#self-identity fqdn NXRC

セルフID(FQDN方式)を設定します。
(☞) NXR_Aのipsec isakmp policy 2のリモートIDと同じIDを設定します。

 

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

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

NXR_C(config-ipsec-isakmp)#authentication pre-share IPsecKEY2

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

NXR_C(config-ipsec-isakmp)#hash sha256

認証アルゴリズムをsha256に設定します。

NXR_C(config-ipsec-isakmp)#encryption aes128

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

NXR_C(config-ipsec-isakmp)#group 5

DHグループをgroup 5に設定します。

NXR_C(config-ipsec-isakmp)#lifetime 86400

ISAKMP SAのライフタイムを設定します。

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

フェーズ1のネゴシエーションモードをアグレッシブモードに設定します。

NXR_C(config-ipsec-isakmp)#remote address ip 203.0.113.1

リモートアドレスにNXR_AのWAN側IPアドレスを設定します。

NXR_C(config-ipsec-isakmp)#keepalive 30 3 periodic restart

IKE KeepAlive(DPD)を以下のルールで設定します。

  • 監視間隔 … 30秒
  • リトライ回数 … 3回
  • ダウン検知後の動作 … IKEの再ネゴシエーション
NXR_C(config-ipsec-isakmp)#local policy 1

このIPsec ISAKMPポリシーで使用するIPsecローカルポリシーを設定します。

 

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

トンネル1インタフェースのトンネルモードをipsec ipv4に設定します。

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

このトンネルインタフェースで使用するIPsecトンネルポリシーを設定します。

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

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

 

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

IPsecトンネルポリシー1の説明文を設定します。

NXR_C(config-ipsec-tunnel)#negotiation-mode auto

ネゴシエーションモードをautoに設定します。

NXR_C(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac

暗号化アルゴリズムをaes128、認証アルゴリズムをsha256に設定します。

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

PFSを有効、DHグループをgroup5に設定します。

NXR_C(config-ipsec-tunnel)#set sa lifetime 28800

IPsec SAのライフタイムを設定します。

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

このIPsecトンネルポリシーで使用するIPsec ISAKMPポリシーを設定します。

NXR_C(config-ipsec-tunnel)#match address IPsec_ACL

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

 

10. <PPPアカウント設定>
NXR_C(config)#ppp account username [ISP_C接続用ユーザID] password [ISP_C接続用パスワード]

ISP_C接続用ユーザID,パスワードを設定します。

 

11. <WAN側(ppp0)インタフェース設定>
NXR_C(config)#interface ppp 0
NXR_C(config-ppp)#ip address negotiated

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

NXR_C(config-ppp)#ip masquerade
NXR_C(config-ppp)#ip spi-filter

IPマスカレード、ステートフルパケットインスペクションを有効にします。

NXR_C(config-ppp)#ip access-group in ppp0_IN

IPアクセスグループのinフィルタにIPアクセスリストppp0_INを設定します。

NXR_C(config-ppp)#ip tcp adjust-mss auto

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

NXR_C(config-ppp)#ppp username [ISP_C接続用ユーザID]

ISP_C接続用ユーザIDを設定します。

NXR_C(config-ppp)#ipsec policy 1

このインタフェースで使用するIPsecローカルポリシーを設定します。

 

12. <ethernet1インタフェース設定>
NXR_C(config)#interface ethernet 1
NXR_C(config-if)#no ip address
NXR_C(config-if)#pppoe-client ppp 0

PPPoEクライアントにppp0を設定します。

 

13. <DNS設定>
NXR_C(config)#dns
NXR_C(config-dns)#service enable

DNSサービスを有効にします。

 

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

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

 

15. <設定の保存>
NXR_C#save config

設定内容を保存します。

 

【 端末の設定例 】

192.168.10.0/24 192.168.11.0/24 192.168.20.0/24 192.168.30.0/24
IPアドレス 192.168.10.100 192.168.11.100 192.168.20.100 192.168.30.100
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.10.1 192.168.11.1 192.168.20.1 192.168.30.1
DNSサーバアドレス

 

【 補足 】

上記設定例のPBRは、NXRのLANインタフェースで受信したパケットに対して適用されますが、NXR自身が生成した自発パケットには適用されません。以下は自発パケットを対象にしたPBRの設定例です。

〔 PBR(自発パケット)設定 〕

<IPポリシアクセスリスト設定>
NXR_A(config)#ip policy access-list tunnel1_PBR_OUT 192.168.10.0/24 192.168.20.0/24

IPポリシアクセスリストtunnel1_PBR_OUTを以下のルールで設定します。

  • 送信元IPアドレス … 192.168.10.0/24
  • 宛先IPアドレス … 192.168.20.0/24
NXR_A(config)#ip policy access-list tunnel2_PBR_OUT 192.168.11.0/24 192.168.30.0/24

IPポリシアクセスリストtunnel2_PBR_OUTを以下のルールで設定します。

  • 送信元IPアドレス … 192.168.11.0/24
  • 宛先IPアドレス … 192.168.30.0/24

 

<ルートマップ設定>
NXR_A(config)#route-map LOCAL_PBR permit 1
NXR_A(config-route-map)#match ip address tunnel1_PBR_OUT
NXR_A(config-route-map)#set interface tunnel 1

ルートマップ名LOCAL_PBRを以下のルールで設定します。

  • No.1
    マッチ条件 … tunnel1_PBR_OUT
    出力インタフェース … tunnel1
NXR_A(config)#route-map LOCAL_PBR permit 2
NXR_A(config-route-map)#match ip address tunnel2_PBR_OUT
NXR_A(config-route-map)#set interface tunnel 2
  • No.2
    マッチ条件 … tunnel2_PBR_OUT
    出力インタフェース … tunnel2

 

<IPローカルポリシルートマップ設定>
NXR_A(config)#ip local policy route-map LOCAL_PBR

ルートマップ名LOCAL_PBRを登録します。

 

【 付録 】