L2TP/IPsec

$Date: 2023/09/29 16:52:22 $


1. 概要

L2TP (Layer Two Tunneling Protocol) は、ネットワーク間でのVPN (Virtual Private Network) 接続を実現するトンネリングプロトコルです。L2TP自体は暗号化の仕組みを持ちませんが、IPsecを併用することでデータの機密性や完全性を確保したVPN接続を実現するL2TP/IPsecがあります。 ヤマハルーターは、L2TP/IPsecを用いたリモートアクセスVPNのサーバーとして動作します。スマートフォンなどに搭載されているL2TPクライアントからインターネット越しにヤマハルーター配下のプライベートネットワーク内の端末とのセキュアな通信を可能にします。

ヤマハルーターでサポートするL2TP/IPsecには以下の制限があります。 【L2TP/IPsecを用いたリモートアクセスVPN接続】


▲ このドキュメントの先頭へ


2. 対応機種とファームウェアリビジョン

ヤマハルーターでは以下の機種およびファームウェアで、L2TP/IPsecをサポートしています。
リビジョンによって対応している項目が異なります。対応項目は以下のようになります

機種 ファームウェア 最大接続可能数(※1) NATトラバーサルを
用いた
L2TP/IPsec接続
ファストパス対応 PPTPとの
anonymous接続併用
トンネルテンプレート対応
vRX VMware ESXi版 すべてのリビジョン 1000 (L2TP/IPsec 接続の最大数) PPTP非対応
vRX Amazon EC2版 1000 (L2TP/IPsec 接続の最大数) PPTP非対応
RTX3510 1000 (※2) PPTP非対応
RTX1300 100
RTX1220 100
RTX830 Rev.15.02.01 20
Rev.15.02.22 以降 20 (※2)
NVR510 Rev.15.01.03 以降 4
NVR700W Rev.15.00.02 6
Rev.15.00.10 以降 20
RTX1210 Rev.14.01.05 以降 100
RTX5000 Rev.14.00.08 3000 PPTP非対応 ×
Rev.14.00.12 以降 PPTP非対応
RTX3500 Rev.14.00.08 1000 PPTP非対応 ×
Rev.14.00.12 以降 PPTP非対応
FWX120 Rev.11.03.02 30 ×
Rev.11.03.08 以降
RTX810 Rev.11.01.04 6 × × × ×
Rev.11.01.06 以降 ×
Rev.11.01.21 以降
NVR500 Rev.11.00.36 以降 4
RTX1200 Rev.10.01.32
Rev.10.01.34
100 × × × ×
Rev.10.01.36 以降 ×
Rev.10.01.59 以降
SRT100 Rev.10.00.60 10 × × PPTP非対応 ×
Rev.10.00.61 以降 PPTP非対応 ×
RTX3000 Rev.9.00.60 以降 1000 × PPTP非対応
RTX1500 Rev.8.03.92 以降 100 × ×
RTX1100 30 × ×
RT107e 6 × PPTP非対応 ×

(※1)IPsecによるVPN設定とPPTPによるVPN設定とL2TP/IPsecによるVPN設定を併用する場合はその合計数になります。
(※2)拡張ライセンスをインポートすることで拡張可能です。詳細は拡張ライセンスの技術資料を参照してください。

▲ このドキュメントの先頭へ


3. 用語の定義

LAC (L2TP Access Concentrator)
L2TPトンネルの端点であり、L2TP/IPsecコネクションの開始を要求する端末。L2TPクライアントがこれに該当します。
LNS (L2TP Network Server)
L2TPトンネルのLACに対峙する端点であり、L2TP/IPsecコネクションの開始要求を受け付ける端末。リモートアクセスVPNにおいてヤマハルーターがこの役割となります。
ZLB (Zero-Length Body) メッセージ
L2TPヘッダのみで構成されたL2TPの制御メッセージ。L2TPの制御メッセージに対する確認応答として用いられます。

▲ このドキュメントの先頭へ


4. L2TP/IPsecの詳細

▲ このドキュメントの先頭へ


5. L2TP/IPsecに関連したコマンド

【新設コマンド】 【仕様拡張コマンド】 【関連コマンド】

▲ このドキュメントの先頭へ


6. L2TP/IPsecの設定例

L2TP/IPsecを用いてインターネット越しにヤマハルーターのプライベートネットワークへ接続する場合の設定例を以下に示します。

設定例1:特定のL2TPクライアント(アドレス固定)の接続を受け付ける場合


設定例2:複数のL2TPクライアント(アドレス不定)の接続を受け付ける場合


設定例3:NATトラバーサルを利用してL2TPクライアントの接続を受け付ける場合


設定例4:L2TP/IPsecのanonymous接続とPPTPのanonymous接続を併用する場合


設定例5:テンプレートを利用してL2TPクライアントの接続を受け付ける場合


設定例6:AWS上のヤマハ仮想ルーターに接続する場合

AWS(Amazon Web Services)上のヤマハ仮想ルーター(vRX)の下のプライベートネットワークへ接続する場合の設定例です。
AWSでのvRXの設定や操作については「ヤマハ仮想ルーターvRXユーザーガイド」を参照してください。

▲ このドキュメントの先頭へ


7. L2TP/IPsecのクライアント設定

7-1. 動作確認済みクライアント一覧

【重要】
Android 12以降では、L2TP/IPsecが使用できなくなったため、 ヤマハルーターとAndroid 12以降のクライアント間でのL2TP/IPsec接続はできません。

L2TP/IPsecの動作確認済みクライアントとして以下のものがあります。

通信事業者 機種 OSバージョン
NTTドコモ Xperia arc SO-01C Android 2.3.2
Galaxy S2 SC-02C Android 2.3.3
Galaxy S4 SC-04E Android 4.2.2
Galaxy S5 SC-04F Android 4.4.2
Android 5.0
Android 6.0.1
XPERIA XZ SO-01J Android 8.0.0(*)
KDDI Xperia acro IS11S Android 2.3.3
iPhone 4S iOS 9.3.6(*)
iPhone 5 iOS 7.0.4
iPhone 5S iOS 12.4(*)
iPhone 6 iOS 12.4.1(*)
SoftBank iPhone 4 iOS 4.3.3
iOS 5.0
iPad 2 iOS 4.3.3
iOS 5.0
iOS 6.0.1
- SonyTablet Android 4.2.2(*)
Nexus 4 Android 4.3
Nexus7 2013 Android 6.0.1(*)
ASUS ZenPad 3 8.0 Android 6.1.1(*)
Nexus9 2014 Android 7.1.1(*)
iPad Air 2 (WiFiモデル) iOS 8.1.3
iPad mini 16G (WiFiモデル) iOS 9.3.5(*)
iPad Pro 32G (WiFiモデル) iOS 12.4.1(*)
(*)2019年9月時点の弊社における試験結果に基づきます。
また、(*)がないOSバージョンにつきましては2016年9月時点の弊社における試験結果に基づきます。

※各端末の初期状態からアプリケーションを何もインストールしていない状態で、
  各端末からヤマハルーターへのL2TP/IPsecの接続動作を確認したものです。
  動作検証には各端末に標準搭載されているL2TP/IPsec接続を用いています。
  実際のご利用にあたっては、お客様環境での動作を検証の上、ご利用ください。

※Microsoft社製Windows OSのL2TP/IPsec接続はサポートしません。

※動作検証では、接続・通信・切断が正常に行えることを確認しています。
  長時間の接続試験は行っておりません。

※Android 6, Android 4系とAndroid 7系の一部のOSでは、切断時にルーターに対して切断メッセージを送信しないものがあります。
  そのため、ルーター側でセッションが残ってしまい、次の接続をすぐに受けることができなくなります。
  対策として、ルーター側で早期に切断を検知できるようL2TPキープアライブを有効にすることを薦めます。
ルーター側で設定可能なパラメータ値である、IPsec暗号化アルゴリズム、認証アルゴリズム
およびPPPの認証方式の3パラメータについて、接続確認結果は以下のようになります。
接続確認には、以下を用いています。

   ※弊社環境での接続確認結果であり、お客様の環境で接続を保証するものではありません。
     ご利用の際には事前に十分な検証をお願いいたします。

7-2. iOS端末に標準搭載されたL2TP/IPsecクライアントの設定手順


   ※すべてのiOS端末が下記設定手順通りにL2TP/IPsecクライアントを設定できるとは限りません。
     詳しい設定はiOS端末のマニュアルを参照してください。
   ※また、画像は「iPhone 6」を使用しています。
  1. ホーム画面から「設定」を選択します。
  2. 設定画面から「一般」を選択します。
  3. 一般画面から「VPN」を選択します。
  4. 「VPN構成を追加...」を選択します。
    ->
    ->

  5. 構成の追加ページのタイプで「L2TP」を選択し、以下のように各項目を設定します。
    例としてL2TPクライアントの名前を「Yamaha-vpn」とします。
    各項目を入力したら「保存」をタップします。
    説明L2TPクライアントの名前(任意の文字列)
    サーバ接続先のホスト名もしくはIPアドレス
    アカウントPPP認証に用いるアカウント
    RSA SecurIDオフ
    パスワードPPP認証に用いるパスワード
    シークレットIPsecの事前共有鍵
    すべての信号を送信オン
    プロキシオフ

  6. VPN接続(Yamaha-vpn)が作成されますので、作成したVPNを選択してオンにします。
    L2TP/IPsecが接続されると、「状況」に「接続済み」と表示されます。
    ->

7-3. Android端末に標準搭載されたL2TP/IPsecクライアントの設定手順


   ※すべてのAndroid端末が下記設定手順通りにL2TP/IPsecクライアントを設定できるとは限りません。
     詳しい設定はAndroid端末のマニュアルを参照してください。
   ※また、画像は「XPERIA XZ SO-01J」を使用しています。
  1. メニュー画面から「設定」を選択します。
  2. 設定画面から「ネットワークとインターネット」を選択します。
  3. ネットワークとインターネットの設定画面から「VPN」を選択します。
  4. VPN設定画面から「+」をタッチします。
    ->
    ->

  5. タイプで「L2TP/IPsec PSK」を選択し、以下のように各項目を設定します。
    例としてL2TPクライアントの名前を「Yamaha-vpn」とします。
    各項目を入力したら保存を押します。
    名前VPNの名前(任意の文字列)
    サーバーアドレス接続先のホスト名もしくはIPアドレス
    L2TPセキュリティ保護(未使用)
    IPsec ID(未使用)
    IPSec事前共有鍵IPsecの事前共有鍵
    ユーザー名PPP認証で用いるユーザ名
    パスワードPPP認証で用いるパスワード

  6. VPN(Yamaha-vpn)が作成されますので、作成したVPNを選択します。
    ユーザ名とパスワードの入力を求められるので、PPP認証で用いるユーザ名とパスワードを入力します。
    「接続」をタップするとL2TP/IPsec接続が開始されます。
    ->

▲ このドキュメントの先頭へ


8. SYSLOGメッセージ一覧

本機能において出力されるSYSLOGメッセージを以下に示します。
実際に出力されるメッセージには "[L2TP]" というプレフィックスが付加されます。

レベル 出力メッセージ 意味
INFO opend port 1701/udp UDPのポート番号1701を開放
closed port 1701/udp UDPのポート番号1701を閉鎖
TUNNEL[XX] connected from IPアドレス L2TPクライアントからコネクション確立要求(SCCRQ)を受信
TUNNEL[XX] tunnel トンネル番号 established L2TPトンネルが確立
TUNNEL[XX] session セッション番号 established L2TPセッションが確立
TUNNEL[XX] disconnecting tunnel トンネル番号 L2TPトンネルの切断処理を実行中
TUNNEL[XX] disconnect tunnel トンネル番号 complete L2TPトンネルの削除が完了
TUNNEL[XX] disconnect session セッション番号 complete L2TPセッションの削除が完了
state timer for waiting L2TP制御メッセージ expired L2TP制御メッセージの受信待ちタイマーが満了したため、L2TPトンネルの切断処理を開始
disconnect timer expired tunnel トンネル番号 L2TP切断タイマーが満了したため、L2TPトンネルの切断処理を開始
keepalive timer expired tunnel トンネル番号 L2TPキープアライブで接続先のダウンを検出したため、L2TPトンネルの切断処理を開始
authentication error tunnel トンネル番号 L2TPトンネル認証エラーにより、L2TPトンネルの切断処理を開始
DEBUG can't find tunnel number L2TP接続で使用されるトンネルインタフェースがみつからない。
ipsec ike remote addressコマンドで接続相手のIPアドレスを固定しているときに、
tunnel endpoint addressコマンドで接続相手のIPアドレスを設定いない場合などに出力されます。
can't find valid pp interface L2TP接続で使用されるトンネルインタフェースがバインドされたPPインタフェースがみつからない。
pp bindコマンドによってトンネルインタフェースがバインドされていない場合や、
バインドされた PPインタフェースがすでに使用されている場合に出力されます。
DEBUG
(l2tp syslog on設定時)

接続から切断までの
一連のログ例
 recv message AVPs :                              -+
   (0)message type SCCRQ                           | SCCRQの受信処理
   (2)protocol version 1 revision 0                |
   (7)hostname anonymous                           | (番号) 属性 設定値
   (3)framing capability Abit:1 Sbit:0             | 番号... AVPの属性番号
   (9)assigned tunnel id 61471                     | 属性... AVPの種別
   (10)receive window size 1                       | 設定値... AVPで通知された情報
 recv SCCRQ in idle from 203.0.113.1              -+
 TUNNEL[1] connected from 203.0.113.1                L2TP接続を確認(INFO)
 send message AVPs :                              -+
   set (0)message type SCCRP                       | SCCRPの送信処理
   set (2)protocol version 1 revision 0            |
   set (3)framing capability sync                  | set (番号) 属性 設定値
   set (4)bearer capability 0                      |
   set (6)firmware revision 0x500                  | 番号... AVPの属性番号
   set (7)hostname RTX1200                         | 属性... AVPの種別
   set (8)vendorname YAMAHA Corporation            | 設定値... AVPに格納して相手に通知する情報
   set (9)assigned tunnel id 32882                 |
   set (10)receive window size 1                   |
 send SCCRP to 203.0.113.1                        -+
   recv message AVPs :                            -+
   (0)message type SCCCN                           | SCCCNの受信処理
 recv SCCCN in wait_ctl_conn from 203.0.113.1     -+
 send ZLB to 203.0.113.1                             ZLBの送信処理
 TUNNEL[1] tunnel 32882 established                  L2TPトンネルの確立(INFO)
   recv message AVPs :                            -+
   (0)message type ICRQ                            | ICRQの受信処理
   (14)assigned session id 6819                    |
   (15)call serial number 1548737386               |
 recv ICRQ in idle from 203.0.113.1               -+
   send message AVPs :                            -+
   set (0)message type ICRP                        | ICRPの送信処理
   set (14)assigned session id 16892               |
 send ICRP to 203.0.113.1                         -+
   recv message AVPs :                            -+
   (0)message type ICCN                            | ICCNの受信処理
   (24)tx connect speed 100Mbit/s                  |
   (19)framing type 3                              |
 recv ICCN in wait_connect from 203.0.113.1       -+
 send ZLB to 203.0.113.1                             ZLBの送信処理
 TUNNEL[1] session 16892 established                 L2TPセッションの確立(INFO)

  recv message AVPs :                             -+
   (0)message type StopCCN                         | StopCCNの受信処理
   (9)assigned StopCCN tunnel id 61471             |
   (1)result code 6                                |
 recv StopCCN in established from 203.0.113.1     -+
 send ZLB to 203.0.113.1                             ZLBの送信処理
 TUNNEL[1] disconnect session 16892 complete         L2TPセッションの削除完了(INFO)
 TUNNEL[1] disconnect tunnel 32882 complete          L2TPトンネルの削除完了(INFO)
DEBUG
(l2tp keepalive use on設定時)
 set (0)message type HELLO
 keepalive HELLO send to 203.0.113.1                 HELLOの送信処理
 recv ZLB from 203.0.113.1                           HELLOに対してZLBを受信

 set (0)message type HELLO                        -+
 keepalive HELLO send to 203.0.113.1               | L2TPキープアライブのタイマーが
 keepalive timeout count=6                         | 満了してタイムアウト回数をカウント
 set (0)message type HELLO                         |
 keepalive HELLO send to 203.0.113.1               |
 keepalive timeout count=5                         |
  ・・・                                              |
 set (0)message type HELLO                         |
 keepalive HELLO send to 203.0.113.1               | L2TPキープアライブによってダウンを検知
 keepalive timeout count=1                        -+
 disconnecting tunnel 4795                           L2TPトンネルの切断開始(INFO)
   send Message AVPs :                            -+
   set (0)message type StopCCN                     | StopCCNの送信処理
   set (9)assigned tunnel id 4795                  |
   set (1)resultcode 2                             |
 send StopCCN to 203.0.113.1                      -+

▲ このドキュメントの先頭へ


9. 関連技術資料