FutureNet

NXR,VXRシリーズ

IPsec編

3. リモートアクセスVPN設定

3-4. L2TP/IPsec接続設定(FQDNでの接続)

L2TP/IPsecで接続する設定例です。この設定例ではNXRでダイナミックDNSを利用することでWAN側アドレスが動的IPアドレス環境でも接続できるようにします。なおダイナミックDNSサービスとして弊社が提供しているWarpLinkDDNSサービスを使用します。

 

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

 

【 構成図 】

  • この設定例ではNXRとして「NXR-G110/L-CA」を使用しています。
  • この設定例は弊社独自の検証結果を元に作成しております。よってL2TP/IPsec機能を有するすべての端末との接続を保証するものではありません。
  • NAT環境下でも接続できるようにするため、IPsec NATトラバーサルを有効にします。
  • 接続してきた端末にはIPアドレスプールよりアドレスを割り当てます。
  • 払い出しIPアドレスをNXRのLAN側ネットワーク内のアドレスとするため、virtual-template0インタフェースでプロキシARPを有効にします。
  • L2TP/IPsec接続時、IPアドレスの他にDNSサーバのIPアドレスも割り当てることができます。設定はこちら
  • forbidden-access-wan機能が有効になっている場合、L2TP/IPsec経由でルータにアクセスすることはできません。L2TP/IPsec経由でルータにアクセスする場合はこちら

 

【 設定例 】

nxrg110#configure terminal
nxrg110(config)#hostname NXR
NXR(config)#interface ethernet 0
NXR(config-if)#ip address 192.168.10.1/24
NXR(config-if)#exit
NXR(config)#ip access-list wwan0_in permit any any udp any 500
NXR(config)#ip access-list wwan0_in permit any any udp any 4500
NXR(config)#ip access-list wwan0_in permit any any 50
NXR(config)#ipsec nat-traversal enable
NXR(config)#ipsec local policy 1
NXR(config-ipsec-local)#address ip
NXR(config-ipsec-local)#exit
NXR(config)#ipsec isakmp policy 1
NXR(config-ipsec-isakmp)#description smartdevice
NXR(config-ipsec-isakmp)#authentication pre-share ipseckey
NXR(config-ipsec-isakmp)#hash sha256
NXR(config-ipsec-isakmp)#encryption aes128
NXR(config-ipsec-isakmp)#group 5
NXR(config-ipsec-isakmp)#lifetime 86400
NXR(config-ipsec-isakmp)#isakmp-mode main
NXR(config-ipsec-isakmp)#remote address ip any
NXR(config-ipsec-isakmp)#local policy 1
NXR(config-ipsec-isakmp)#exit
NXR(config)#ipsec tunnel policy 1
NXR(config-ipsec-tunnel)#description smartdevice
NXR(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR(config-ipsec-tunnel)#no set pfs
NXR(config-ipsec-tunnel)#set sa lifetime 28800
NXR(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR(config-ipsec-tunnel)#match protocol l2tp-smartphone nat-traversal
NXR(config-ipsec-tunnel)#exit
NXR(config)#ppp account username android01 password android01pass
NXR(config)#ppp account username ios01 password ios01pass
NXR(config)#ppp account username windows01 password windows01pass
NXR(config)#ip local pool smartdevice address 192.168.10.100 192.168.10.102
NXR(config)#interface virtual-template 0
NXR(config-if-vt)#ip address 192.168.10.1/32
NXR(config-if-vt)#ip tcp adjust-mss auto
NXR(config-if-vt)#no ip rebound
NXR(config-if-vt)#peer ip pool smartdevice
NXR(config-if-vt)#peer ip proxy-arp
NXR(config-if-vt)#exit
NXR(config)#l2tp udp source-port 1701
NXR(config)#l2tp 1
NXR(config-l2tp)#tunnel address any ipsec
NXR(config-l2tp)#tunnel mode lns
NXR(config-l2tp)#tunnel virtual-template 0
NXR(config-l2tp)#exit
NXR(config)#interface wwan 0
NXR(config-wwan)#ip masquerade
NXR(config-wwan)#ip spi-filter
NXR(config-wwan)#ip access-group in wwan0_in
NXR(config-wwan)#ip tcp adjust-mss auto
NXR(config-wwan)#wwan username [WWAN接続用ユーザID] password [WWAN接続用パスワード]
NXR(config-wwan)#wwan authentication chap
NXR(config-wwan)#mobile apn [APN] cid 1 pdp-type ip
NXR(config-wwan)#ipsec policy 1
NXR(config-wwan)#exit
NXR(config)#mobile error-recovery-reset
NXR(config)#mobile 1 carrier [キャリア]
NXR(config)#exit
NXR#clear mobile 1
NXR#configure terminal
NXR(config)#warplink
NXR(config-warplink)#service enable
NXR(config-warplink)#account username [WarpLinkユーザID] password [WarpLinkパスワード]
NXR(config-warplink)#exit

NXR(config)#dns
NXR(config-dns)#service enable
NXR(config-dns)#exit
NXR(config)#exit
NXR#save config

【 設定例解説 】

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

ホスト名を設定します。

 

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

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

 

3. <IPアクセスリスト設定>
NXR(config)#ip access-list wwan0_in permit any any udp any 500
NXR(config)#ip access-list wwan0_in permit any any udp any 4500
NXR(config)#ip access-list wwan0_in permit any any 50

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

  • 宛先UDPポート500番を許可
  • 宛先UDPポート4500番を許可
  • ESP(プロトコル番号50)を許可

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

 

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

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

 

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

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

 

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

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

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

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

NXR(config-ipsec-isakmp)#hash sha256

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

NXR(config-ipsec-isakmp)#encryption aes128

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

NXR(config-ipsec-isakmp)#group 5

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

NXR(config-ipsec-isakmp)#lifetime 86400

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

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

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

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

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

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

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

 

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

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

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

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

NXR(config-ipsec-tunnel)#no set pfs

PFSを無効にします。

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

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

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

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

NXR(config-ipsec-tunnel)#match protocol l2tp-smartphone nat-traversal

match protocolでl2tp-smartphone nat-traversalを設定します。この設定を行うことで、IPsec接続を行う際に下記項目が自動的に設定されます。

・protocol-mode → transport
・negotiation-mode → responder
・IPsecセレクタ → 以下のように自動設定されます。またNATトラバーサル有効時はNAT配下のどのアドレスからの接続も受け付けます。

IDペイロード NXR側 接続端末側
IPv4アドレス host host
プロトコル UDP UDP
ポート番号 1701 any(どのポートでも受け付ける)
8. <PPPアカウント設定>
NXR(config)#ppp account username android01 password android01pass
NXR(config)#ppp account username ios01 password ios01pass
NXR(config)#ppp account username windows01 password windows01pass

L2TPv2のLNS機能による着信時のユーザID,パスワードを設定します。

 

9. <IPアドレスプール設定>
NXR(config)#ip local pool smartdevice address 192.168.10.100 192.168.10.102

IPアドレスプール名をsmartdeviceとし、プール範囲のIPアドレスを設定します。

 

10. <virtual-template0インタフェース設定>
NXR(config)#interface virtual-template 0
NXR(config-if-vt)#ip address 192.168.10.1/32

virtual-template0インタフェースのIPアドレスを設定します。
(☞) virtual-templateインタフェースは仮想的なインタフェースであり、実際に作成されるわけではありません。virtual-templateインタフェースを使用するとコールを受けた際にPPPのクローンを作成し、本ノードの設定内容を当該PPPに適用します。なおPPPクローンのインタフェース番号は本装置が自動的に割り当てます。

NXR(config-if-vt)#ip tcp adjust-mss auto

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

NXR(config-if-vt)#no ip rebound

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

NXR(config-if-vt)#peer ip pool smartdevice

IPアドレスプール名「smartdevice」を設定します。

NXR(config-if-vt)#peer ip proxy-arp

プロキシARPを設定します。

 

11. <L2TPv2設定>
NXR(config)#l2tp udp source-port 1701

L2TPv2で使用する送信元ポートを設定します。

NXR(config)#l2tp 1

接続端末との接続で使用するL2TPv2を設定します。

NXR(config-l2tp)#tunnel address any ipsec

トンネルアドレスにanyを設定します。またany指定時にバインドするプロトコルとしてIPsecを指定します。これによりIPsec SAの確立したクライアントからの接続のみ許可します。

NXR(config-l2tp)#tunnel mode lns

L2TPv2のトンネルモードを設定します。

NXR(config-l2tp)#tunnel virtual-template 0

LNS利用時に使用するvirtual-templateインタフェースを設定します。

 

12. <WAN側(wwan0)インタフェース設定>
NXR(config)#interface wwan 0

wwan0インタフェースを設定します。
(☞) wwan0インタフェースはデフォルトでDHCPクライアントが設定されています。

NXR(config-wwan)#ip masquerade
NXR(config-wwan)#ip spi-filter

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

NXR(config-wwan)#ip access-group in wwan0_in

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

NXR(config-wwan)#ip tcp adjust-mss auto

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

NXR(config-wwan)#wwan username [WWAN接続用ユーザID] password [WWAN接続用パスワード]

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

NXR(config-wwan)#wwan authentication chap

WWAN接続用の認証方式を設定します。

NXR(config-wwan)#mobile apn [APN] cid 1 pdp-type ip

APN,CID,PDPタイプを設定します。

NXR(config-wwan)#ipsec policy 1

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

 

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

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

 

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

mobile1(内蔵通信モジュール)のキャリアを設定します。
(☞) キャリア設定は「clear mobile 1」コマンドによるモバイルリセットを行うことで反映されます。

 

15. <WarpLink設定>
NXR(config)#warplink
NXR(config-warplink)#service enable

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

NXR(config-warplink)#account username [WarpLinkユーザID] password [WarpLinkパスワード]

WarpLinkサービスで使用するユーザID,パスワードを設定します。

 

16. <DNS設定>
NXR(config)#dns
NXR(config-dns)#service enable

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

 

17. <設定の保存>
NXR#save config

設定内容を保存します。

 

【 接続端末の設定例 】

(☞) ここで記載した設定はあくまで一例ですので、ご利用頂いている機種やOSのバージョンによって画面構成が異なる場合があります。
(☞) この設定例はL2TP/IPsec機能を有するすべての端末との接続を保証するものではありません。ご利用頂く際には十分な検証を行った上でのご利用をお願い致します。

 

ここで記載した接続端末の設定例は、FQDN部分に関する設定の抜粋になります。その他設定については各端末との接続設定例をご参照ください。

〔Android端末の設定例〕

VPNプロファイルの編集画面で各項目を設定し、「保存」をタップします。

設定項目 設定値 備考
名前 L2TP/IPsec 任意の名称を設定します
タイプ L2TP/IPSec PSK
サーバーアドレス nxr.ddns.warplink.ne.jp NXRのFQDNを設定します
L2TPセキュリティ保護 (未使用) この設定例では使用していません
IPSec ID (未使用) この設定例では使用していません
IPSec事前共有鍵 ipseckey NXRで設定した事前共有鍵を設定します
詳細オプションを表示する 無効
ユーザー名 android01 L2TPで使用するアカウントを設定します
パスワード android01pass L2TPで使用するパスワードを設定します

〔iOS端末の設定例〕

構成を追加画面で各項目を設定し、「完了」をタップします。

設定項目 設定値 備考
タイプ L2TP 接続方式を設定します
説明 L2TP/IPsec 任意の名称を設定します
サーバ nxr.ddns.warplink.ne.jp NXRのFQDNを設定します
アカウント ios01 L2TPで使用するアカウントを設定します
パスワード ios01pass L2TPで使用するパスワードを設定します
シークレット ipseckey NXRで設定した事前共有鍵を設定します
すべての信号を送信 オン

〔Windows端末の設定例〕

VPN接続追加画面で各項目を設定し、「保存」をクリックします。

設定項目 設定値 備考
VPNプロバイダー Windows(ビルトイン)
接続名 L2TP_IPsec 任意の名称を設定します
サーバー名またはアドレス nxr.ddns.warplink.ne.jp NXRのFQDNを設定します
VPNの種類 事前共有キーを使ったL2TP/IPsec
事前共有キー ipseckey NXRで設定した事前共有鍵を設定します
サインイン情報の種類 ユーザー名とパスワード
ユーザー名(オプション) windows01 L2TPで使用するアカウントを設定します
パスワード(オプション) windows01pass L2TPで使用するパスワードを設定します

 

【 補足 】

〔DNSサーバアドレス割り当て設定〕

L2TP/IPsec接続時、IPアドレスの他にDNSサーバのIPアドレスを割り当てることもできます。

<IPCP DNS設定>
(config)#interface virtual-template 0
(config-if-vt)#ppp ipcp dns [プライマリDNSサーバアドレス] [セカンダリDNSサーバアドレス]

接続端末に対してDNSサーバアドレスを割り当てます。

 

〔L2TP/IPsec経由でのルータアクセス〕

forbidden-access-wan機能が有効になっている場合、L2TP/IPsec経由でルータにアクセスすることはできません。アクセスするためにはvirtual-templateインタフェースでアクセスを許可するフィルタを設定します。

(☞) 工場出荷状態では、ethernet0インタフェース以外からのTELNETサーバ,HTTPサーバへのアクセス禁止が有効になっています。

<IPアクセスリスト設定>
(config)#ip access-list vt0_in permit 192.168.10.0/24 192.168.10.1 tcp any 23
(config)#ip access-list vt0_in permit 192.168.10.0/24 192.168.10.1 tcp any 880

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

  • 送信元IPアドレス192.168.10.0/24、宛先IPアドレス192.168.10.1、宛先TCPポート23番を許可
  • 送信元IPアドレス192.168.10.0/24、宛先IPアドレス192.168.10.1、宛先TCPポート880番を許可

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

 

<virtual-template0インタフェース設定>
(config)#interface virtual-template 0
(config-if-vt)#ip access-group in vt0_in

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

 

【 付録 】