[index] CentreCOM AR550S コマンドリファレンス 2.9

# L2TP/概要・基本設定

      - L2TPの接続形態
       - リモートアクセス型の構成
       - LAN間接続型の構成
      - 設定例
       - リモートアクセス型
       - LAN間接続型
        - スタティックPPP
        - ダイナミックPPP
      - その他
       - ファイアウォールとの併用
       - IPsecとの併用

L2TP（Layer Two Tunnelling Protocol）は、PPPフレームをIP（UDP）でトンネリングするプロトコルです。
なお、L2TPはトンネリングの機能を提供するだけであり、セキュリティー機能は持っていません。L2TPトンネル上を流れるデータは平文のままです。セキュリティー機能が必要な場合は、IPsecなどと併用する必要があります。L2TPとIPsecを組み合わせて使う方法については後述します。

L2TPの接続形態

L2TPを使用したネットワークには、次の2つの形態があります。

- リモートアクセス型
- LAN間接続型

リモートアクセス型の構成

リモートアクセス型の構成では、ダイヤルアップユーザー・アクセスサーバー間の通信回線の一部をIPネットワークで置き換えることにより、リモートアクセスにかかる費用を軽減します。おもにインターネットサービスプロバイダー（ISP）などがVPNサービスとして提供している形態です。

この構成ではL2TPルーターの役割が2つに分かれています。L2TP VPNサービスを提供するISPは、LAC（L2TP Access Concentrator）と呼ばれるL2TPルーターを用意します。LACはユーザーからのダイヤルアップを受け付け、ユーザーから受け取ったデータ（フレーム）を本来の接続先であるLNSに転送する中継ルーターです。図ではBがLACになります。
またVPNサービスの利用者（企業など）は、自社ネットワークとインターネットの接続点にLNS（L2TP Network Server）と呼ばれるL2TPルーターを用意します。LNSはIP経由でのリモートアクセスを受け入れる一種のアクセスサーバーです。図ではCがLNSです。
ユーザー（A）は、自社ネットワークに直接接続する代わりに、近場のLAC（B）にダイヤルアップします。これは、距離に応じて増大する通信料金を低く抑えるためです。
ダイヤルアップを受け付けたLACは、あらかじめ設定された情報にしたがって、LNS（C）との間にL2TPのトンネルを作成し、ユーザーAから受け取ったPPPフレームをL2TPパケットにカプセル化した上でLNSに送ります。LNSはL2TPパケットからPPPフレームを取り出し、あたかもユーザーAから直接PPPフレームを受け取ったかのようにこれを処理します。
これにより、ユーザー（A）とLNS（C）からは、A・C間に直接PPPのコネクションが確立されているように見えます。

LAN間接続型の構成

LAN間接続型の構成では、インターネットなどのIPネットワーク経由で2つのプライベートLANを接続します。IPネットワーク上に仮想的な呼を張り、その上でPPPセッションを確立するのが特徴的です。

図では、ルーターAとルーターBがL2TPを利用して仮想的なPPPセッションを張っている様子を示しています。各ルーターは、インターネット（ISP）接続用とルーター間接続用の2つのPPPインターフェースを持つことになります。
L2TP上のインターフェースは、ISDN回線や専用線上に作成したPPPインターフェースと同じように使用できます。プライベートLAN間のIP接続はもちろん、他のプロトコルのリモートブリッジ接続なども可能です。

設定例

L2TPの基本的な設定例をいくつか示します。

リモートアクセス型

リモートアクセス型のネットワーク構成では、LACとLNSで役割が明確に分かれるため、以下の例ではそれぞれ個別に説明しています。なお、IPの設定までは終わっているものと仮定しています。

■ LACの設定
LACは、ISDNやアナログ公衆網経由でユーザーからのダイヤルアップを受け付け、PPPフレームを最終的な接続先であるLNSに中継するルーターです。LACは、ダイヤルアップを受けると同時にIPネットワーク経由でLNSに接続し、LAC・LNS間にL2TPトンネルを確立します。そして、ダイヤルアップユーザーから受信したPPPフレームをL2TPパケットに包み込んで、LNSに転送します。
いったんユーザー・LNS間のPPPセッションが確立すると、それ以降LACの存在が意識されることはほとんどありません。単なるPPPフレームの中継装置として動作します。
ここでは、ISDN経由でダイヤルアップを受け付けるための設定例を示します。

1. ユーザーが接続してきたときに動的に作成するPPPインターフェースのテンプレートを作成します。

   `CREATE PPP TEMPLATE=0 BAP=OFF LQR=OFF AUTHENTICATION=EITHER LOGIN=USER ↓`
2. ISDNコールを作成し、着信を受け付けるための設定を行います。任意の電話番号から接続を受け入れるため「INANY=ON」を指定し、発信をしないためNUMBERに0を、PRECEDENCEにINを指定しています。また、「USER=PPP」と「PPPTEMPLATE=0」は、着信時にPPPテンプレート「0」に基づいてPPPインターフェースを動的作成することを意味します。

   `ADD ISDN CALL=rmt NUMBER=0 PRECEDENCE=IN INANY=ON INTREQ=bri0 USER=PPP PPPTEMPLATE=0 ↓`
3. L2TPモジュールを有効にします。

   `ENABLE L2TP ↓`
4. L2TPサーバーをLACモードで起動します。

   `ENABLE L2TP SERVER=LAC ↓`
5. ユーザーが接続してきたときに、LNSとの間にトンネルを張るための設定をします。ADD L2TP USERコマンドは、ダイヤルアップしてきたユーザーごとに、最終接続先のLNSを指定するコマンドです。USER=ALLは、PPPの接続認証を受けたすべてのユーザーを対象とする設定であることを意味します。ACTIONパラメーターは該当ユーザーが接続してきたときに実行する動作を指定するもので、DATABASEを指定した場合は、IPパラメーターと（オプションの）PORTパラメーターで指定したLNSにセッションを中継することを意味します。IPパラメーターには接続先のLNSを、PASSWORDにはLNSに接続するときのパスワードを指定します。

   `ADD L2TP USER=ALL ACTION=DATABASE IP=2.2.2.2 PASSWORD=password ↓`

■ LNSの設定
LNSは、L2TPトンネル経由でPPPユーザーからの接続を受け入れるルーターです。ユーザーがトンネル経由で接続してくること以外は、通常のネットワークアクセスサーバーと同じ働きをします。

1. L2TPトンネル経由で接続してくるPPPユーザーを登録します。

   `ADD USER=remuser PASSWORD=rempass LOGIN=NO ↓`
2. IPプールを作成し、接続してきたユーザーに割り当てるIPアドレスの範囲を指定します。

   `CREATE IP POOL=ips IP=192.168.20.200-192.168.20.210 ↓`
3. トンネル経由でユーザーが接続してきたときに動的に作成するPPPインターフェース（ダイナミックPPPインターフェース）のテンプレートを作成します。

   `CREATE PPP TEMPLATE=0 BAP=OFF LQR=OFF AUTHENTICATION=EITHER IPPOOL=ips ↓`
4. L2TPモジュールを有効にします。

   `ENABLE L2TP ↓`
5. L2TPサーバーをLNSモードで起動します。

   `ENABLE L2TP SERVER=LNS ↓`
6. LACからL2TPトンネルの確立要求を受けたときに、相手を認証するためのパスワードを設定します。

   `ADD L2TP PASSWORD=password ↓`
7. トンネル確立のために接続してくるLACのIPアドレスを指定し、またトンネル確立時に動的に作成するPPPインターフェースのテンプレートを指定します。ここではLACのIPアドレスを1.1.1.1としています。

   `ADD L2TP IP=1.1.1.1 PPPTEMPLATE=0 ↓`

■ IPプールを使わずにユーザーごとに固定的にIPアドレスを割り当てることもできます。その場合は、手順1〜3を次のように変更します。

`ADD USER=remuser PASSWORD=rempass LOGIN=NO IPADDRESS=192.168.20.200 NETMASK=255.255.255.255 ↓
CREATE PPP TEMPLATE=0 BAP=OFF LQR=OFF AUTHENTICATION=EITHER ↓
`

LAN間接続型

LAN間接続型の構成では、各ルーターがトラフィックの向きによってLACとLNSのどちらにもなり得ます。そのため、L2TPサーバーの動作モードをBOTH（LAC/LNS兼用）にします。LAN間接続の形態には次の2種類があります。

- スタティックPPP（ISDN2点間接続に類似）
- ダイナミックPPP（ISDN端末型ダイヤルアップに類似）

通常は、両側のルーターにL2TPコールを設定して、固定的にPPPインターフェースを作成するスタティックPPPの形態をとりますが、片側をセンターサイトとして不特定のリモートルーターから端末型の接続を受け入れる構成をとることもできます（ダイナミックPPP）。以下の例では、IPの設定までは終わっているものと仮定します。

#### スタティックPPP

両側のルーターのIPアドレスが固定されているような環境では、両方のルーターにL2TPコールを定義して、固定的なトンネルを設定することができます。設定はどちらのルーターも基本的に同じです。

ルーターA

1. L2TPモジュールを有効にします。

   `ENABLE L2TP ↓`
2. L2TPサーバーをLNS/LACの兼用モードで起動します。

   `ENABLE L2TP SERVER=BOTH ↓`
3. 相手側からL2TPのコネクション確立要求が来たときに相手を認証するためのパスワードを設定します。

   `ADD L2TP PASSWORD=l2tpA ↓`
4. L2TPコールを定義します。これはISDNにおけるISDNコールに相当するもので、接続先のL2TPサーバーとの間に仮想回線を張るための情報を定義します。CALLには任意の名前を、REMOTEには相手側で定義されているL2TPコールの名前を指定します。LAN間接続の場合、TYPEにはVIRTUALを指定します。IPは接続先のL2TPルーター、PRECEDENCEは優先する呼の方向です。また、相手側にL2TPパスワードが設定されている場合は、PASSWORDパラメーターで接続パスワードを指定します。

   `ADD L2TP CALL=remote REMOTE=remote TYPE=VIRTUAL IP=2.2.2.2 PRECEDENCE=IN PASSWORD=l2tpB ↓`
5. L2TPコール上にPPPインターフェースを作成し、さらに上位プロトコルのインターフェースを作成します。CREATE PPPコマンドでL2TPコールを物理インターフェースとして指定するときは、L2TPコール名の前に「TNL-」を付けます。

   `CREATE PPP=1 OVER=TNL-remote IDLE=999999999 BAP=OFF LQR=OFF ECHO=ON ↓
   ADD IP INT=ppp1 IP=0.0.0.0 ↓
   ADD IP ROUTE=192.168.20.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 ↓
   `

ルーターB

1. L2TPモジュールを有効にします。

   `ENABLE L2TP ↓`
2. L2TPサーバーをLNS/LACの兼用モードで起動します。

   `ENABLE L2TP SERVER=BOTH ↓`
3. 相手側からL2TPのコネクション確立要求が来たときに相手を認証するためのパスワードを設定します。

   `ADD L2TP PASSWORD=l2tpB ↓`
4. L2TPコールを定義します。これはISDNにおけるISDNコールに相当するもので、接続先のL2TPサーバーとの間に仮想回線を張るための情報を定義します。CALLには任意の名前を、REMOTEには相手側で定義されているL2TPコールの名前を指定します。LAN間接続の場合、TYPEにはVIRTUALを指定します。IPは接続先のL2TPルーター、PRECEDENCEは優先する呼の方向です。また、相手側にL2TPパスワードが設定されている場合は、PASSWORDパラメーターで接続パスワードを指定します。

   `ADD L2TP CALL=remote REMOTE=remote TYPE=VIRTUAL IP=1.1.1.1 PRECEDENCE=OUT PASSWORD=l2tpA ↓`
5. L2TPコール上にPPPインターフェースを作成し、さらに上位プロトコルのインターフェースを作成します。CREATE PPPコマンドでL2TPコールを物理インターフェースとして指定するときは、L2TPコール名の前に「TNL-」を付けます。

   `CREATE PPP=1 OVER=TNL-remote IDLE=999999999 BAP=OFF LQR=OFF ECHO=ON ↓
   ADD IP INT=ppp1 IP=0.0.0.0 ↓
   ADD IP ROUTE=192.168.10.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 ↓
   `

■ 片側のルーターのアドレスが不定なときは、アドレスが固定されているほうのL2TPコール定義（手順4）を次のようにします。「IP=0.0.0.0」は自分からは接続しに行かないことを示しています。

`ADD L2TP CALL=remote REMOTE=remote TYPE=VIRTUAL IP=0.0.0.0 PRECEDENCE=IN ↓`

このようなケースでは、常にアドレス不定側から発呼する形になります。なお、アドレス不定側の設定は変わりません。

#### ダイナミックPPP

片側のルーターのIPアドレスが固定されていない環境では、アドレス不定側から固定側への接続しかできません。この場合は、前述の固定的なL2TPコール設定でもかまいませんが、アドレス不定側にだけL2TPコールを定義して、固定側はL2TPの接続を受け入れるだけの設定もあります。この場合、アドレス不定側のルーターは、端末型ダイヤルアップでアドレス固定側のネットワークに接続することになります。

ルーターA（アドレス不定側）

1. L2TPモジュールを有効にします。

   `ENABLE L2TP ↓`
2. L2TPサーバーをLNS/LACの兼用モードで起動します。

   `ENABLE L2TP SERVER=BOTH ↓`
3. L2TPコールを定義します。これはISDNにおけるISDNコールに相当するもので、接続先のL2TPサーバーとの間に仮想回線を張るための情報を定義します。CALLには任意の名前、TYPEにはVIRTUAL、IPには接続先のL2TPルーターを指定します。発呼のみなので、PRECEDENCEにはOUTを指定します。また、相手側にL2TPパスワードが設定されている場合は、PASSWORDパラメーターで接続パスワードを指定します。

   `ADD L2TP CALL=remote TYPE=VIRTUAL IP=2.2.2.2 PRECEDENCE=OUT PASSWORD=l2tpB ↓`
4. L2TPコール上にPPPインターフェースを作成し、さらに上位プロトコルのインターフェースを作成します。CREATE PPPコマンドでL2TPコールを物理インターフェースとして指定するときは、L2TPコール名の前に「TNL-」を付けます。また、この例ではルーターBにIPアドレスの割り当てを要求しています。

   `CREATE PPP=1 OVER=TNL-remote BAP=OFF LQR=OFF IPREQUEST=ON ↓
   SET PPP=1 USER=RouterA PASSWORD=PasswordA ↓
   ENABLE IP REMOTEASSIGN ↓
   ADD IP INT=ppp1 IP=0.0.0.0 ↓
   ADD IP ROUTE=192.168.20.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 ↓
   `
5. ルーターBから1つしかアドレスを割り当てられない端末型の接続なので、NATを使ってLAN側ホストが対向LANにアクセスできるようにします。

   `ENABLE IP NAT ↓
   ADD IP NAT IP=192.168.10.0 MASK=255.255.255.0 GBLINT=ppp1 ↓
   `

ルーターB（アドレス固定側）

1. 接続してくるPPPユーザー（リモート側ルーター）を登録します。

   `ADD USER=RouterA PASSWORD=PasswordA LOGIN=NO ↓`
2. IPプールを作成し、接続してきたルーターに割り当てるIPアドレスの範囲を指定します。

   `CREATE IP POOL=ips IP=192.168.20.200-192.168.20.210 ↓`
3. リモート側ルーターが接続してきたときに動的に作成するPPPインターフェース（ダイナミックPPPインターフェース）のテンプレートを作成します。

   `CREATE PPP TEMPLATE=0 IDLE=60 BAP=OFF LQR=OFF AUTHEN=EITHER IPPOOL=ips ↓`
4. L2TPモジュールを有効にします。

   `ENABLE L2TP ↓`
5. L2TPサーバーをLNS/LAC兼用モードで起動します。

   `ENABLE L2TP SERVER=BOTH ↓`
6. L2TP接続を受け入れるためのパスワードを設定します。

   `ADD L2TP PASSWORD=l2tpB ↓`
7. 接続してくるルーターのIPアドレスを指定し、接続を受けたときに動的に作成するPPPインターフェースのテンプレートを指定します。ここではリモート側ルーターのIPアドレスが不定なので、どのアドレスでも受け入れる設定にしています。

   `ADD L2TP IP=0.0.0.0-255.255.255.255 PPPTEMPLATE=0 ↓`

その他

ファイアウォールとの併用

L2TPとファイアウォールを併用するときは、次の点がポイントになります。

- L2TPパケット（始点・終点UDPポート1701）がファイアウォールで遮断されないようにルールを設定する
- L2TP上のPPPインターフェースをファイアウォールポリシーに追加する

■ L2TPパケットを許可するには、次のようなファイアウォールルールを設定してください。
NATを使用しているときは次のようにします。

`ADD FIREWALL POLICY=net RU=1 AC=ALLOW INT=ppp0 PROT=UDP GBLPORT=1701 GBLIP=1.1.1.1 PORT=1701 IP=1.1.1.1 ↓`

NATを使用していないときは次のようにします。

`ADD FIREWALL POLICY=net RU=1 AC=ALLOW INT=ppp0 PROT=UDP PORT=1701 IP=1.1.1.1 ↓`

■ L2TP上のPPPインターフェースをファイアウォールポリシーに追加するには、次のようにします。

`ADD FIREWALL POLICY=net INT=ppp1 TYPE=PRIVATE ↓`

IPsecとの併用

L2TPトンネルを暗号化したいときはIPsecを併用します。L2TPトンネルの実体はルーター間のUDP通信（始点・終点とも1701番ポート）です。したがって、このL2TPパケットにトランスポートモードのSAを適用すれば、トンネルを暗号化することができます。
■ L2TPパケットに適用するSAスペックは次のようになります（自動鍵の場合）

`CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTO=ESP ENCALG=DES HASHALG=SHA MODE=TRANSPORT ↓
CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STR="1" ↓
`

■ L2TPパケットに対するIPsecポリシーは次のようになります。

`CREATE IPSEC POLICY=l2 INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=2.2.2.2 ↓
SET IPSEC POLICY=vpn LAD=1.1.1.1 LPORT=1701 RAD=2.2.2.2 RPORT=1701 TRANSPORT=UDP ↓
`

詳しくは「IPsec」の章をご覧ください。

(C) 2005-2012 アライドテレシスホールディングス株式会社

PN: J613-M0710-03 Rev.H