FutureNet

NXR,WXRシリーズ

IPv6編

4. IPv6 IPsec設定

4-5. IPsec冗長化設定(メインIPv6+バックアップIPv4)

メイン回線にIPv6、バックアップ回線にIPv4という構成で冗長化する設定例です。メインのVPN回線障害時は自動的にバックアップのVPN回線に切り替えて通信を継続できます。なおこの例では「OPEN IPv6 ダイナミック DNS for フレッツ・光ネクスト」を利用します。
※「OPEN IPv6 ダイナミック DNS for フレッツ・光ネクスト」はソフトイーサ株式会社が開発・提供しているサービスです。詳細についてはこちらをご参照ください。
(☞) この設定例は2019年7月時点において弊社で接続確認を行い、その検証結果を元に作成しております。よって将来にわたって必ずしも接続性を保証するものではありません。またサービス利用時はDDNSプロバイダの利用規約に則った利用を行うようお願い致します。

 

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

 

【 構成図 】

  • この例では、NGN網との接続回線はひかり電話契約なしを想定しています。
  • OPEN IPv6 DDNSサーバ上で各ルータのDDNS名を以下のように作成しているものとします。
    NXR_A:sample1.i.open.ad.jp
    NXR_B:sample2.i.open.ad.jp
  • NXR_Aのeth2で接続しているISPのIPv4 DNSサーバアドレスを以下とします。
    プライマリDNSサーバ:203.0.113.253
    セカンダリDNSサーバ:203.0.113.254

〔正常時〕

  • NGN網経由でIPsecトンネルを確立します。
  • NXR_B配下の端末はIPsecトンネル経由でインターネット(IPv4)にアクセスします。

 

〔NXR_A側NGN回線障害時〕

  • インターネット(IPv4)経由でIPsecトンネルを確立します。
  • NXR_B配下の端末のインターネット(IPv4)アクセスはNXR_Bで破棄します。

※NXR_B側NGN回線障害時の動作は、NXR_A側NGN回線障害時と同様になります。

 

【 設定例 】

〔NXR_Aの設定〕

nxr350#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxr350(config)#hostname NXR_A
NXR_A(config)#ipv6 dhcp-client ipv6dhcpc
NXR_A(config-dhcp6c)#information-only enable
NXR_A(config-dhcp6c)#option-request dns-servers
NXR_A(config-dhcp6c)#exit
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 tunnel 2 10
NXR_A(config)#ip route 192.168.0.0/16 null
NXR_A(config)#ip route 0.0.0.0/0 203.0.113.2
NXR_A(config)#ipv6 access-list eth1_in permit any any icmpv6
NXR_A(config)#ipv6 access-list eth1_in permit any any udp any 546
NXR_A(config)#ipv6 access-list eth1_in permit any any udp 500 500
NXR_A(config)#ipv6 access-list eth1_in permit any any 50
NXR_A(config)#ip access-list eth2_in permit any 203.0.113.1 udp any 500
NXR_A(config)#ip access-list eth2_in permit any 203.0.113.1 udp any 4500
NXR_A(config)#ip access-list eth2_in permit any 203.0.113.1 50
NXR_A(config)#ipsec nat-traversal enable
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 ipv6
NXR_A(config-ipsec-local)#exit
NXR_A(config)#ipsec isakmp policy 1
NXR_A(config-ipsec-isakmp)#description NXR_B_main
NXR_A(config-ipsec-isakmp)#authentication pre-share ipseckey
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 ipv6 sample2.i.open.ad.jp
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 ipv6
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_main
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 local policy 2
NXR_A(config-ipsec-local)#address ip
NXR_A(config-ipsec-local)#exit
NXR_A(config)#ipsec isakmp policy 2
NXR_A(config-ipsec-isakmp)#description NXR_B_backup
NXR_A(config-ipsec-isakmp)#authentication pre-share ipseckey
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 nxrb
NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic clear
NXR_A(config-ipsec-isakmp)#local policy 2
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_B_backup
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)#no ip address
NXR_A(config-if)#ipv6 address autoconfig interface-id ::1
NXR_A(config-if)#ipv6 spi-filter
NXR_A(config-if)#ipv6 access-group in eth1_in
NXR_A(config-if)#ipv6 dhcp client ipv6dhcpc
NXR_A(config-if)#ipsec policy 1
NXR_A(config-if)#exit
NXR_A(config)#interface ethernet 2
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 eth2_in
NXR_A(config-if)#ipsec policy 2
NXR_A(config-if)#exit
NXR_A(config)#dns
NXR_A(config-dns)#service enable
NXR_A(config-dns)#edns-query enable
NXR_A(config-dns)#address 203.0.113.253
NXR_A(config-dns)#address 203.0.113.254
NXR_A(config-dns)#priority dhcpv6 1
NXR_A(config-dns)#timeout 5
NXR_A(config-dns)#exit
NXR_A(config)#ddns
NXR_A(config-ddns)#service enable
NXR_A(config-ddns)#ddns-provider http-client
NXR_A(config-ddns)#account username [DDNS用ユーザID] password [DDNS用パスワード]
NXR_A(config-ddns)#bind-interface ethernet 1
NXR_A(config-ddns)#url ipv6 http://ddnsapi-v6.open.ad.jp/api/renew/
NXR_A(config-ddns)#query [ホストキー]
NXR_A(config-ddns)#forced-update-interval 1
NXR_A(config-ddns)#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)#ipv6 dhcp-client ipv6dhcpc
NXR_B(config-dhcp6c)#information-only enable
NXR_B(config-dhcp6c)#option-request dns-servers
NXR_B(config-dhcp6c)#exit
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 203.0.113.1/32 ppp 0
NXR_B(config)#ip route 192.168.10.0/24 tunnel 2
NXR_B(config)#ip route 0.0.0.0/0 tunnel 1 1
NXR_B(config)#ip route 0.0.0.0/0 null 254
NXR_B(config)#ipv6 access-list eth1_in permit any any icmpv6
NXR_B(config)#ipv6 access-list eth1_in permit any any udp any 546
NXR_B(config)#ipv6 access-list eth1_in permit any any udp 500 500
NXR_B(config)#ipv6 access-list eth1_in permit any any 50
NXR_B(config)#ip access-list ppp0_in permit 203.0.113.1 any udp 500 500
NXR_B(config)#ip access-list ppp0_in permit 203.0.113.1 any udp 4500 4500
NXR_B(config)#ip access-list ppp0_in permit 203.0.113.1 any 50
NXR_B(config)#track 1 ipsec isakmp 1
NXR_B(config)#ipsec nat-traversal enable
NXR_B(config)#ipsec priority-ignore enable
NXR_B(config)#ipsec access-list ipsec_acl ip any any
NXR_B(config)#ipsec local policy 1
NXR_B(config-ipsec-local)#address ipv6
NXR_B(config-ipsec-local)#exit
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A_main
NXR_B(config-ipsec-isakmp)#authentication pre-share ipseckey
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 ipv6 sample1.i.open.ad.jp
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 ipv6
NXR_B(config-tunnel)#tunnel protection ipsec policy 1
NXR_B(config-tunnel)#ip tcp adjust-mss auto
NXR_B(config-tunnel)#no ip rebound
NXR_B(config-tunnel)#exit
NXR_B(config)#ipsec tunnel policy 1
NXR_B(config-ipsec-tunnel)#description NXR_A_main
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)#ipsec local policy 2
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 2
NXR_B(config-ipsec-isakmp)#description NXR_A_backup
NXR_B(config-ipsec-isakmp)#authentication pre-share ipseckey
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 aggressive
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 2
NXR_B(config-ipsec-isakmp)#netevent 1 connect
NXR_B(config-ipsec-isakmp)#exit
NXR_B(config)#interface tunnel 2
NXR_B(config-tunnel)#tunnel mode ipsec ipv4
NXR_B(config-tunnel)#tunnel protection ipsec policy 2
NXR_B(config-tunnel)#ip tcp adjust-mss auto
NXR_B(config-tunnel)#exit
NXR_B(config)#ipsec tunnel policy 2
NXR_B(config-ipsec-tunnel)#description NXR_A_backup
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 2
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)#no ip address
NXR_B(config-if)#ipv6 address autoconfig interface-id ::1
NXR_B(config-if)#ipv6 spi-filter
NXR_B(config-if)#ipv6 access-group in eth1_in
NXR_B(config-if)#ipv6 dhcp client ipv6dhcpc
NXR_B(config-if)#ipsec policy 1
NXR_B(config-if)#exit
NXR_B(config)#ppp account username [モバイル接続用ユーザID] password [モバイル接続用パスワード]
NXR_B(config)#interface ppp 0
NXR_B(config-ppp)#ip address negotiated
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 [モバイル接続用ユーザID]
NXR_B(config-ppp)#mobile apn [APN] cid [CID] pdp-type ip
NXR_B(config-ppp)#dial-up string *99***[CID]#
NXR_B(config-ppp)#dial-up timeout 30
NXR_B(config-ppp)#ppp ipcp dns reject
NXR_B(config-ppp)#ipsec policy 2
NXR_B(config-ppp)#exit
NXR_B(config)#mobile error-recovery-reset
NXR_B(config)#mobile termination-recovery reset
NXR_B(config)#mobile 1 ppp 0
NXR_B(config)#mobile 1 carrier [キャリア]
NXR_B(config)#exit
NXR_B#clear mobile 1
NXR_B#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
NXR_B(config)#dns
NXR_B(config-dns)#service enable
NXR_B(config-dns)#edns-query enable
NXR_B(config-dns)#exit
NXR_B(config)#ddns
NXR_B(config-ddns)#service enable
NXR_B(config-ddns)#ddns-provider http-client
NXR_B(config-ddns)#account username [DDNS用ユーザID] password [DDNS用パスワード]
NXR_B(config-ddns)#bind-interface ethernet 1
NXR_B(config-ddns)#url ipv6 http://ddnsapi-v6.open.ad.jp/api/renew/
NXR_B(config-ddns)#query [ホストキー]
NXR_B(config-ddns)#forced-update-interval 1
NXR_B(config-ddns)#exit
NXR_B(config)#fast-forwarding enable
NXR_B(config)#exit
NXR_B#save config

 

【 設定例解説 】

〔NXR_Aの設定〕

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

ホスト名を設定します。

 

2. <DHCPv6クライアント設定>
NXR_A(config)#ipv6 dhcp-client ipv6dhcpc

DHCPv6クライアント設定の名前を定義します。

NXR_A(config-dhcp6c)#information-only enable

information-only機能を有効にします。

NXR_A(config-dhcp6c)#option-request dns-servers

DNSサーバアドレスの通知を要求するように設定します。

 

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

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

 

4. <IPv4スタティックルート設定>
NXR_A(config)#ip route 192.168.20.0/24 tunnel 1 1
NXR_A(config)#ip route 192.168.20.0/24 tunnel 2 10

192.168.20.0/24向けのルートを設定します。
(☞) ディスタンス値による優先度設定により、正常時は出力先がtunnel1インタフェースのルートが優先されます。

NXR_A(config)#ip route 192.168.0.0/16 null

出力先をnullインタフェースとする192.168.0.0/16のルートを設定します。
(☞) 出力先がnullインタフェースのパケットは破棄されます。

NXR_A(config)#ip route 0.0.0.0/0 203.0.113.2

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

 

5. <IPv6アクセスリスト設定>
NXR_A(config)#ipv6 access-list eth1_in permit any any icmpv6
NXR_A(config)#ipv6 access-list eth1_in permit any any udp any 546
NXR_A(config)#ipv6 access-list eth1_in permit any any udp 500 500
NXR_A(config)#ipv6 access-list eth1_in permit any any 50

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

  • ICMPv6を許可
  • 宛先UDPポート546番(DHCPv6クライアント)を許可
  • 送信元UDPポート500番、宛先UDPポート500番を許可
  • ESP(プロトコル番号50)を許可

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

 

6. <IPv4アクセスリスト設定>
NXR_A(config)#ip access-list eth2_in permit any 203.0.113.1 udp any 500
NXR_A(config)#ip access-list eth2_in permit any 203.0.113.1 udp any 4500
NXR_A(config)#ip access-list eth2_in permit any 203.0.113.1 50

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

  • 宛先IPv4アドレス203.0.113.1、宛先UDPポート500番を許可
  • 宛先IPv4アドレス203.0.113.1、宛先UDPポート4500番を許可
  • 宛先IPv4アドレス203.0.113.1、ESPを許可

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

 

7. <IPsec NATトラバーサル設定>
NXR_A(config)#ipsec nat-traversal enable

NATトラバーサルを有効にします。

 

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

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

 

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

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

 

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

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

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

認証方式として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

DH(Diffie-Hellman)グループを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 ipv6 sample2.i.open.ad.jp

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

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

IKE KeepAlive(DPD)を監視間隔30秒、リトライ回数3回、keepalive失敗時にSAを削除し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 ipv6

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

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

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

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

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

 

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

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ローカルポリシー2設定>
NXR_A(config)#ipsec local policy 2
NXR_A(config-ipsec-local)#address ip

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

 

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

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

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

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

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 nxrb

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

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

IKE KeepAlive(DPD)を監視間隔30秒、リトライ回数3回、keepalive失敗時にSAを削除するように設定します。

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

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

 

16. <トンネル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

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

 

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

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アクセスリストを設定します。

 

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

ethernet1インタフェースのIPv4アドレスを無効にします。

NXR_A(config-if)#ipv6 address autoconfig interface-id ::1

ethernet1インタフェースのIPv6アドレスを設定します。
(☞) RAで取得したIPv6プレフィックスを使用し、プレフィックス以降は::1とします。

NXR_A(config-if)#ipv6 spi-filter

IPv6ステートフルパケットインスペクションを有効にします。

NXR_A(config-if)#ipv6 access-group in eth1_in

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

NXR_A(config-if)#ipv6 dhcp client ipv6dhcpc

DHCPv6クライアント名を設定し、DHCPv6クライアントを有効にします。

NXR_A(config-if)#ipsec policy 1

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

 

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

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

NXR_A(config-if)#ip masquerade
NXR_A(config-if)#ip spi-filter

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

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

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

NXR_A(config-if)#ipsec policy 2

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

 

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

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

NXR_A(config-dns)#edns-query enable

EDNSを有効にします。

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

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

NXR_A(config-dns)#priority dhcpv6 1

DNSサーバの優先度を変更します。
(☞) この設定によりDHCPv6で取得したIPv6DNSサーバアドレスをaddressコマンドで設定したIPv4DNSサーバアドレスよりも優先させることができます。

NXR_A(config-dns)#timeout 5

タイムアウト時間を設定します。

 

21. <DDNS設定>
NXR_A(config)#ddns
NXR_A(config-ddns)#service enable

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

NXR_A(config-ddns)#ddns-provider http-client

接続するDDNSプロバイダにhttp-client(汎用プロバイダ)を設定します。

NXR_A(config-ddns)#account username [DDNS用ユーザID] password [DDNS用パスワード]

DDNSのユーザID,パスワードを設定します。
(☞) 「OPEN IPv6 ダイナミック DNS for フレッツ・光ネクスト」では、接続用のユーザID,パスワードは不要ですが、DDNSサービスを起動するにあたり必須の設定項目のため、この例では設定しています。

NXR_A(config-ddns)#bind-interface ethernet 1

接続回線のインタフェースを設定します。

NXR_A(config-ddns)#url ipv6 http://ddnsapi-v6.open.ad.jp/api/renew/

「OPEN IPv6 ダイナミック DNS for フレッツ・光ネクスト」接続用URLを設定します。

NXR_A(config-ddns)#query [ホストキー]

HTTPクエリにDDNSホスト名の「ホストキー」を設定します。

NXR_A(config-ddns)#forced-update-interval 1

IPアドレス変更通知を1時間毎に送信するように設定します。
(☞) IPアドレス変更の有無に関わらず送信する間隔を設定します。

 

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

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

 

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

設定内容を保存します。

 

〔NXR_Bの設定〕

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

ホスト名を設定します。

 

2. <DHCPv6クライアント設定>
NXR_B(config)#ipv6 dhcp-client ipv6dhcpc

DHCPv6クライアント設定の名前を定義します。

NXR_B(config-dhcp6c)#information-only enable

information-only機能を有効にします。

NXR_B(config-dhcp6c)#option-request dns-servers

DNSサーバアドレスの通知を要求するように設定します。

 

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

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

 

4. <IPv4スタティックルート設定>
NXR_B(config)#ip route 203.0.113.1/32 ppp 0

203.0.113.1/32向けのルートを設定します。

NXR_B(config)#ip route 192.168.10.0/24 tunnel 2

192.168.10.0/24向けのルートを設定します。
(☞) tunnel2インタフェースのIPsecトンネル確立時のみ有効になります。

NXR_B(config)#ip route 0.0.0.0/0 tunnel 1 1
NXR_B(config)#ip route 0.0.0.0/0 null 254

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

 

5. <IPv6アクセスリスト設定>
NXR_B(config)#ipv6 access-list eth1_in permit any any icmpv6
NXR_B(config)#ipv6 access-list eth1_in permit any any udp any 546
NXR_B(config)#ipv6 access-list eth1_in permit any any udp 500 500
NXR_B(config)#ipv6 access-list eth1_in permit any any 50

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

  • ICMPv6を許可
  • 宛先UDPポート546番(DHCPv6クライアント)を許可
  • 送信元UDPポート500番、宛先UDPポート500番を許可
  • ESP(プロトコル番号50)を許可

 

6. <IPv4アクセスリスト設定>
NXR_B(config)#ip access-list ppp0_in permit 203.0.113.1 any udp 500 500
NXR_B(config)#ip access-list ppp0_in permit 203.0.113.1 any udp 4500 4500
NXR_B(config)#ip access-list ppp0_in permit 203.0.113.1 any 50

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

  • 送信元IPv4アドレス203.0.113.1、送信元UDPポート500番、宛先UDPポート500番を許可
  • 送信元IPv4アドレス203.0.113.1、送信元UDPポート4500番、宛先UDPポート4500番を許可
  • 送信元IPv4アドレス203.0.113.1、ESPを許可

 

7. <トラック設定(ISAKMP SA監視)>
NXR_B(config)#track 1 ipsec isakmp 1

トラックNo.1にIPsec ISAKMPポリシー1のISAKMP SA監視を設定します。

 

8. <IPsec NATトラバーサル設定>
NXR_B(config)#ipsec nat-traversal enable

NATトラバーサルを有効にします。

 

9. <IPsec priority-ignore設定>
NXR_B(config)#ipsec priority-ignore enable

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

 

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

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

 

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

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

 

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

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

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

認証方式として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 ipv6 sample1.i.open.ad.jp

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

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

IKE KeepAlive(DPD)を監視間隔30秒、リトライ回数3回、keepalive失敗時にSAを削除しIKEのネゴシエーションを開始するように設定します。

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

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

 

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

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

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

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

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

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

NXR_B(config-tunnel)#no ip rebound

IPリバウンドを無効にします。

 

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

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アクセスリストを設定します。

 

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

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

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

セルフID(FQDN方式)を設定します。
(☞) NXR_AのIPsec ISAKMPポリシー2のリモートIDと同じIDを設定します。

 

16. <IPsec ISAKMPポリシー2設定>
NXR_B(config)#ipsec isakmp policy 2
NXR_B(config-ipsec-isakmp)#description NXR_A_backup

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

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

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

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 aggressive

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

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

リモートアドレスにNXR_Aのethernet2のIPv4アドレスを設定します。

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

IKE KeepAlive(DPD)を監視間隔30秒、リトライ回数3回、keepalive失敗時にSAを削除しIKEのネゴシエーションを開始するように設定します。

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

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

NXR_B(config-ipsec-isakmp)#netevent 1 connect

トラックNo.1で障害を検知した場合、 このIPsec ISAKMPポリシーの接続を開始します。

 

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

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

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

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

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

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

 

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

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

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 2

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

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

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

 

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

ethernet1インタフェースのIPv4アドレスを無効にします。

NXR_B(config-if)#ipv6 address autoconfig interface-id ::1

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

NXR_B(config-if)#ipv6 spi-filter

IPv6ステートフルパケットインスペクションを有効にします。

NXR_B(config-if)#ipv6 access-group in eth1_in

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

NXR_B(config-if)#ipv6 dhcp client ipv6dhcpc

DHCPv6クライアント名を設定し、DHCPv6クライアントを有効にします。

NXR_B(config-if)#ipsec policy 1

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

 

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

ppp0インタフェースで使用するモバイル接続用ユーザID,パスワードを設定します。

 

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

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

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

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

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

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

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

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

NXR_B(config-ppp)#ppp username [モバイル接続用ユーザID]

モバイル接続用ユーザIDを設定します。

NXR_B(config-ppp)#mobile apn [APN] cid [CID] pdp-type ip

APN,CID,pdp-typeを設定します。

NXR_B(config-ppp)#dial-up string *99***[CID]#

発信用の電話番号を設定します。

NXR_B(config-ppp)#dial-up timeout 30

ダイアルタイムアウトを設定します。

NXR_B(config-ppp)#ppp ipcp dns reject

IPCPで割り当てられるDNSサーバアドレスを拒否します。

NXR_B(config-ppp)#ipsec policy 2

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

 

22. <モバイルエラーリカバリー設定>
NXR_B(config)#mobile error-recovery-reset

内蔵通信モジュールとの通信に重大な問題が発生する可能性が高いと判断した場合、内蔵通信モジュールのリセットを行うように設定します。

 

23. <モバイルターミネーションリカバリー設定>
NXR_B(config)#mobile termination-recovery reset

モバイル接続時に網側から切断された場合、内蔵通信モジュールのリセットを行うように設定します。

 

24. <モバイル割り当て設定>
NXR_B(config)#mobile 1 ppp 0

mobile1(内蔵通信モジュール)で使用するpppインタフェースを設定します。

 

25. <モバイルキャリア設定>
NXR_B(config)#mobile 1 carrier [キャリア]

mobile1で使用する通信キャリアを設定します。
(☞) モバイルキャリア設定はマルチキャリア対応の機種でのみ設定します。

 

26. <キャリア設定の反映>
NXR_B#clear mobile 1

キャリア設定を反映させるためにモバイルリセットを行います。

 

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

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

NXR_B(config-dns)#edns-query enable

EDNSを有効にします。

 

28. <DDNS設定>
NXR_B(config)#ddns
NXR_B(config-ddns)#service enable

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

NXR_B(config-ddns)#ddns-provider http-client

接続するDDNSプロバイダにhttp-client(汎用プロバイダ)を設定します。

NXR_B(config-ddns)#account username [DDNS用ユーザID] password [DDNS用パスワード]

DDNSのユーザID,パスワードを設定します。

NXR_B(config-ddns)#bind-interface ethernet 1

接続回線のインタフェースを設定します。

NXR_B(config-ddns)#url ipv6 http://ddnsapi-v6.open.ad.jp/api/renew/

「OPEN IPv6 ダイナミック DNS for フレッツ・光ネクスト」接続用URLを設定します。

NXR_B(config-ddns)#query [ホストキー]

HTTPクエリにDDNSホスト名の「ホストキー」を設定します。

NXR_B(config-ddns)#forced-update-interval 1

IPアドレス変更通知を1時間毎に送信するように設定します。

 

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

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

 

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

設定内容を保存します。

 

【 端末の設定例 】

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
DNSサーバアドレス 192.168.10.1 203.0.113.253
203.0.113.254

 

【 付録 】