FutureNet

NXR,WXRシリーズ

IPv6編

4. IPv6 IPsec設定

4-2. IPv6 IPoE(RA)IPsec接続設定(ネームの利用)

NTT東日本/西日本が提供するフレッツ光ネクスト回線でIPv6 IPoEを使用したIPv4 over IPv6のIPsec接続設定例です。なおこの例ではひかり電話契約なしの場合を想定しており、かつNGN網内でIPsec接続します。

 

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

 

【 構成図 】

  • この設定例はフレッツv6オプションの「ネーム」の利用を想定しています。よって、事前にサービス情報サイトで「ネーム」の登録が必要です。
    (☞) 「ネーム」を利用してNTT東日本,西日本間で通信することはできません。
  • NXR_A,Bともに対向ルータのFQDNの名前解決後、IPsec接続を開始します。よって名前解決ができない場合、IPsec接続を開始することができませんのでご注意ください。

 

【 設定例 】

〔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 null 254
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)#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
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 △△△.aoi.flets-east.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
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)#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)#dns
NXR_A(config-dns)#service enable
NXR_A(config-dns)#edns-query enable
NXR_A(config-dns)#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 192.168.10.0/24 tunnel 1 1
NXR_B(config)#ip route 192.168.10.0/24 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)#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
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 ○○○.aoi.flets-east.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)#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)#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)#dns
NXR_B(config-dns)#service enable
NXR_B(config-dns)#edns-query enable
NXR_B(config-dns)#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 null 254

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

 

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

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

 

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

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

 

8. <IPsec ISAKMPポリシー設定>
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 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 △△△.aoi.flets-east.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ローカルポリシーを設定します。

 

9. <トンネル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の調整機能をオートに設定します。

 

10. <IPsec トンネルポリシー設定>
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アクセスリストを設定します。

 

11. <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ローカルポリシーを設定します。

 

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

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

NXR_A(config-dns)#edns-query enable

EDNSを有効にします。

 

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

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

 

14. <設定の保存>
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 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向けのルートを設定します。

 

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

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

 

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

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

 

8. <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 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 ○○○.aoi.flets-east.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ローカルポリシーを設定します。

 

9. <トンネル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の調整機能をオートに設定します。

 

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

 

11. <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ローカルポリシーを設定します。

 

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

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

NXR_B(config-dns)#edns-query enable

EDNSを有効にします。

 

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

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

 

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

設定内容を保存します。

 

【 端末の設定例 】

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

 

【 付録 】