# VPN / L2TPv3

L2TPv3（Layer Two Tunnelling Protocol Version 3）は、L2フレームをIP（UDP）でトンネリングするプロトコルです。
本製品では、Ethernetフレームのトンネリング（L2TPv3 Ethernet Pseudowire）により、固定IP/IPv6アドレスを持つ拠点間のL2接続（ブリッジ接続）に使います。
また、トランスポートモードIPsecを併用した通信内容の暗号化と認証にも対応しています。
Note

L2TPv3は弊社AW+製品および一部のクラウドサービスとの接続のみをサポートします。

本製品のL2TPv3トンネルインターフェースの基本仕様は以下のとおりです。

- デリバリー（外側）プロトコル：IPv4/IPv6
  IPv4およびIPv6ネットワーク上にL2TPv3トンネルを構築可能
- ペイロード（内側）プロトコル：Ethernet
  - トンネルインターフェースをソフトウェアブリッジに割り当てれば、ブリッジポートとしてEthernetフレームのブリッジングが可能。
  - トンネルインターフェースにIPv4アドレスを割り当てれば、IPv4インターフェースとしてIPv4パケットのルーティングが可能
  - トンネルインターフェースにIPv6アドレスを割り当てれば、IPv6インターフェースとしてIPv6パケットのルーティングが可能
    Note

    L2TPv3トンネルインターフェースを使用してルーティングを行う場合は、他のトンネルインターフェースと異なりネクストホップアドレスを明確にする必要があります。そのため、ip route / ipv6 routeコマンドでスタティック経路を登録するときには、L2TPv3トンネルインターフェースを送出インターフェースとして指定するのではなく、ネクストホップアドレスを明示的に指定してください。

- トランスポートモード IPsec を併用することによりトンネルトラフィックの保護（ESPによる暗号化と認証）が可能。
  またIPアドレスが不定な対向装置との接続も可能。

本章ではL2TPv3トンネルインターフェースに特化した説明を行います。
トンネルインターフェース全般については「VPN」/「トンネルインターフェース」を、インターフェース全般については「インターフェース」/「一般設定」を、ブリッジングについては「ブリッジング」/「一般設定」を、IPsecについては「VPN」/「IPsec」をご覧ください。
また、L2TPv3を使用するための具体的かつ全体的な設定については「設定例集」をご覧ください。

## 基本設定

### L2TPv3 over IPv4（ブリッジング構成）

IPv4ネットワーク上にL2TPv3トンネルインターフェースを作成し、ルーターA、ルーターB配下のeth0同士をリモートブリッジ接続し、Ethernetフレームのブリッジングを行うには、次の手順にしたがいます。

以下では、上記構成図のルーターAを例に、L2TPv3による拠点間ブリッジ接続の基本的な設定手順を示します。
なお、前提事項として、ルーターA・BはIPv4でインターネットに接続しているものとします。WAN側インターフェースのIPアドレスは固定であり、ルーター間でのIP通信もできているものとします。

1. トンネルインターフェースtunnel0を作成します。これにはinterfaceコマンドを使います。

       AT-vFW-app(config)# interface tunnel0

2. トンネリング方式としてl2tp v3（L2TPv3 over IPv4）を指定します。これには、tunnel mode l2tp v3コマンドを使います。

       AT-vFW-app(config-if)# tunnel mode l2tp v3

3. トンネルインターフェースから送信するデリバリーパケットの始点・終点アドレス（自装置と対向装置のIPアドレス）を指定します。これには、tunnel source / tunnel destinationコマンドを使います。

       AT-vFW-app(config-if)# tunnel source 10.1.1.1
       AT-vFW-app(config-if)# tunnel destination 10.2.2.2

4. トンネルの自装置IDと対向装置IDを指定します。これには、tunnel local id / tunnel remote idコマンドを使います。
   各IDには任意の値を設定できますが、対向装置との間で、自装置のlocal idと対向装置のremote id、自装置のremote idと対向装置のlocal idを一致させる必要があります。

       AT-vFW-app(config-if)# tunnel local id 101
       AT-vFW-app(config-if)# tunnel remote id 102
       AT-vFW-app(config-if)# exit

5. ソフトウェアブリッジ「1」を作成します。これには、bridgeコマンドを使います。

       AT-vFW-app(config)# bridge 1

6. ソフトウェアブリッジ「1」にeth0を追加します。これには、bridge-groupコマンドを使います。

       AT-vFW-app(config)# interface eth0
       AT-vFW-app(config-if)# bridge-group 1
       AT-vFW-app(config-if)# exit

7. ソフトウェアブリッジ「1」にtunnel0を追加します。これには、bridge-groupコマンドを使います。

       AT-vFW-app(config)# interface tunnel0
       AT-vFW-app(config-if)# mtu 1500
       AT-vFW-app(config-if)# tunnel df clear
       AT-vFW-app(config-if)# bridge-group 1
       AT-vFW-app(config-if)# exit

設定は以上です。
ブリッジングについては「ブリッジング」/「一般設定」をご覧ください。

#### IPsecによる保護

上記設定ではL2TPv3トンネル上を流れるEthernetパケットは平文のままです。トンネル上のトラフィックを暗号化するには、次の手順を追加してIPsec保護を有効にしてください。

1. ISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。addressパラメーターで指定するのは、IPsecの接続相手（対向装置）、すなわち、ブリッジBのIPアドレスです。

       AT-vFW-app(config)# crypto isakmp key ouR4ecret address 10.2.2.2

2. L2TPv3トンネルインターフェースtunnel0に対し、IPsecによる保護を適用します。これにはtunnel protection ipsecコマンドを使います。

       AT-vFW-app(config)# interface tunnel0
       AT-vFW-app(config-if)# tunnel protection ipsec

### L2TPv3 over IPv4（ルーティング構成）

IPv4ネットワーク上にL2TPv3トンネルインターフェースを作成し、ルーターA、ルーターB配下のeth0同士をL3接続するには、次の手順にしたがいます。

以下では、上記構成図のルーターAを例に、L2TPv3による拠点間L3接続の基本的な設定手順を示します。
なお、前提事項として、ルーターA・BはIPv4でインターネットに接続しているものとします。WAN側インターフェースのIPアドレスは固定であり、ルーター間でのIP通信もできているものとします。

1. トンネルインターフェースtunnel0を作成します。これにはinterfaceコマンドを使います。

       AT-vFW-app(config)# interface tunnel0

2. トンネリング方式としてl2tp v3（L2TPv3 over IPv4）を指定します。これには、tunnel mode l2tp v3コマンドを使います。

       AT-vFW-app(config-if)# tunnel mode l2tp v3

3. トンネルインターフェースから送信するデリバリーパケットの始点・終点アドレス（自装置と対向装置のIPアドレス）を指定します。これには、tunnel source / tunnel destinationコマンドを使います。

       AT-vFW-app(config-if)# tunnel source 10.1.1.1
       AT-vFW-app(config-if)# tunnel destination 10.2.2.2

4. トンネルの自装置IDと対向装置IDを指定します。これには、tunnel local id / tunnel remote idコマンドを使います。
   各IDには任意の値を設定できますが、対向装置との間で、自装置のlocal idと対向装置のremote id、自装置のremote idと対向装置のlocal idを一致させる必要があります。

       AT-vFW-app(config-if)# tunnel local id 101
       AT-vFW-app(config-if)# tunnel remote id 102
       AT-vFW-app(config-if)# exit

5. トンネルインターフェースtunnel0にIPアドレスを設定して、同インターフェースでIPv4パケットのルーティングが行われるようにします。これには、ip addressコマンドを使います。
   また、ip tcp adjust-mssコマンドによりTCPのMSS値を書き換える設定も行います。

       AT-vFW-app(config-if)# ip address 192.168.254.1/24
       AT-vFW-app(config-if)# ip tcp adjust-mss pmtu

6. 対向拠点へのスタティック経路を登録します。これには、ip routeコマンドを使います。

       AT-vFW-app(config-if)# exit
       AT-vFW-app(config)# ip route 192.168.20.0/24 192.168.254.2

   Note

   L2TPv3トンネルインターフェースを使用してルーティングを行う場合は、他のトンネルインターフェースと異なりネクストホップアドレスを明確にする必要があります。そのため、ip routeコマンドでスタティック経路を登録するときには、L2TPv3トンネルインターフェースを送出インターフェースとして指定するのではなく、ネクストホップアドレスを明示的に指定してください。

設定は以上です。
インターフェースへのIPアドレス設定については「IP」/「IPインターフェース」を、IPの経路設定については「IP」/「経路制御」、および、ダイナミックルーティングに関する各セクションをご覧ください。

#### IPsecによる保護

上記設定ではL2TPv3トンネル上を流れるEthernetパケットは平文のままです。トンネル上のトラフィックを暗号化するには、次の手順を追加してIPsec保護を有効にしてください。

1. ISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。addressパラメーターで指定するのは、IPsecの接続相手（対向装置）、すなわち、ルーターBのIPアドレスです。

       AT-vFW-app(config)# crypto isakmp key ouR4ecret address 10.2.2.2

2. L2TPv3トンネルインターフェースtunnel0に対し、IPsecによる保護を適用します。これにはtunnel protection ipsecコマンドを使います。

       AT-vFW-app(config)# interface tunnel0
       AT-vFW-app(config-if)# tunnel protection ipsec

### L2TPv3 over IPv6（ブリッジング構成）

IPv6ネットワーク上にL2TPv3トンネルインターフェースを作成し、ルーターA、ルーターB配下のeth0同士をリモートブリッジ接続し、Ethernetフレームのブリッジングを行うには、次の手順にしたがいます。

以下では、上記構成図のルーターAを例に、L2TPv3による拠点間ブリッジ接続の基本的な設定手順を示します。
なお、前提事項として、ルーターA・BはIPv6でインターネットに接続しているものとします。WAN側インターフェースのIPv6アドレスは固定であり、ルーター間でのIPv6通信もできているものとします。

1. トンネルインターフェースtunnel0を作成します。これにはinterfaceコマンドを使います。

       AT-vFW-app(config)# interface tunnel0

2. トンネリング方式としてl2tp v3 ipv6（L2TPv3 over IPv6）を指定します。これには、tunnel mode l2tp v3コマンドを使います。

       AT-vFW-app(config-if)# tunnel mode l2tp v3 ipv6

3. トンネルインターフェースから送信するデリバリーパケットの始点・終点アドレス（自装置と対向装置のIPv6アドレス）を指定します。これには、tunnel source / tunnel destinationコマンドを使います。

       AT-vFW-app(config-if)# tunnel source 2001:db8:1:1::1
       AT-vFW-app(config-if)# tunnel destination 2001:db8:2:2::2

4. トンネルの自装置IDと対向装置IDを指定します。これには、tunnel local id / tunnel remote idコマンドを使います。
   各IDには任意の値を設定できますが、対向装置との間で、自装置のlocal idと対向装置のremote id、自装置のremote idと対向装置のlocal idを一致させる必要があります。

       AT-vFW-app(config-if)# tunnel local id 101
       AT-vFW-app(config-if)# tunnel remote id 102
       AT-vFW-app(config-if)# exit

5. ソフトウェアブリッジ「1」を作成します。これには、bridgeコマンドを使います。

       AT-vFW-app(config)# bridge 1

6. ソフトウェアブリッジ「1」にeth0を追加します。これには、bridge-groupコマンドを使います。

       AT-vFW-app(config)# interface eth0
       AT-vFW-app(config-if)# bridge-group 1
       AT-vFW-app(config-if)# exit

7. ソフトウェアブリッジ「1」にtunnel0を追加します。これには、bridge-groupコマンドを使います。

       AT-vFW-app(config)# interface tunnel0
       AT-vFW-app(config-if)# mtu 1500
       AT-vFW-app(config-if)# tunnel df clear
       AT-vFW-app(config-if)# bridge-group 1
       AT-vFW-app(config-if)# exit

設定は以上です。
ブリッジングについては「ブリッジング」/「一般設定」をご覧ください。

#### IPsecによる保護

上記設定ではL2TPv3トンネル上を流れるEthernetパケットは平文のままです。トンネル上のトラフィックを暗号化するには、次の手順を追加してIPsec保護を有効にしてください。

1. ISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。addressパラメーターで指定するのは、IPsecの接続相手（対向装置）、すなわち、ブリッジBのIPアドレスです。

       AT-vFW-app(config)# crypto isakmp key ouR4ecret address 2001:db8:2:2::2

2. L2TPv3トンネルインターフェースtunnel0に対し、IPsecによる保護を適用します。これにはtunnel protection ipsecコマンドを使います。

       AT-vFW-app(config)# interface tunnel0
       AT-vFW-app(config-if)# tunnel protection ipsec

### L2TPv3 over IPv6（ルーティング構成）

IPv6ネットワーク上にL2TPv3トンネルインターフェースを作成し、ルーターA、ルーターB配下のeth0同士をL3接続するには、次の手順にしたがいます。

以下では、上記構成図のルーターAを例に、L2TPv3による拠点間L3接続の基本的な設定手順を示します。
なお、前提事項として、ルーターA・BはIPv6でインターネットに接続しているものとします。WAN側インターフェースのIPv6アドレスは固定であり、ルーター間でのIPv6通信もできているものとします。

1. トンネルインターフェースtunnel0を作成します。これにはinterfaceコマンドを使います。

       AT-vFW-app(config)# interface tunnel0

2. トンネリング方式としてl2tp v3 ipv6（L2TPv3 over IPv6）を指定します。これには、tunnel mode l2tp v3コマンドを使います。

       AT-vFW-app(config-if)# tunnel mode l2tp v3 ipv6

3. トンネルインターフェースから送信するデリバリーパケットの始点・終点アドレス（自装置と対向装置のIPv6アドレス）を指定します。これには、tunnel source / tunnel destinationコマンドを使います。

       AT-vFW-app(config-if)# tunnel source 2001:db8:1:1::1
       AT-vFW-app(config-if)# tunnel destination 2001:db8:2:2::2

4. トンネルの自装置IDと対向装置IDを指定します。これには、tunnel local id / tunnel remote idコマンドを使います。
   各IDには任意の値を設定できますが、対向装置との間で、自装置のlocal idと対向装置のremote id、自装置のremote idと対向装置のlocal idを一致させる必要があります。

       AT-vFW-app(config-if)# tunnel local id 101
       AT-vFW-app(config-if)# tunnel remote id 102
       AT-vFW-app(config-if)# exit

5. トンネルインターフェースtunnel0にIPv6アドレスを設定して、同インターフェースでIPv6パケットのルーティングが行われるようにします。これには、ipv6 addressコマンドを使います。
   また、ipv6 tcp adjust-mssコマンドによりTCPのMSS値を書き換える設定も行います。

       AT-vFW-app(config-if)# ipv6 address 2001:db8:1:1000::1/64
       AT-vFW-app(config-if)# ipv6 tcp adjust-mss pmtu

6. 対向拠点へのスタティック経路を登録します。これには、ipv6 routeコマンドを使います。

       AT-vFW-app(config-if)# exit
       AT-vFW-app(config)# ipv6 route 2001:db8:10:20::/64 2001:db8:1:1000::2

   Note

   L2TPv3トンネルインターフェースを使用してルーティングを行う場合は、他のトンネルインターフェースと異なりネクストホップアドレスを明確にする必要があります。そのため、ipv6 routeコマンドでスタティック経路を登録するときには、L2TPv3トンネルインターフェースを送出インターフェースとして指定するのではなく、ネクストホップアドレスを明示的に指定してください。

設定は以上です。
インターフェースへのIPv6アドレス設定については「IPv6」/「IPv6インターフェース」を、IPv6の経路設定については「IPv6」/「経路制御」、および、ダイナミックルーティングに関する各セクションをご覧ください。

#### IPsecによる保護

上記設定ではL2TPv3トンネル上を流れるEthernetパケットは平文のままです。トンネル上のトラフィックを暗号化するには、次の手順を追加してIPsec保護を有効にしてください。

1. ISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。addressパラメーターで指定するのは、IPsecの接続相手（対向装置）、すなわち、ルーターBのIPアドレスです。

       AT-vFW-app(config)# crypto isakmp key ouR4ecret address 2001:db8:2:2::2

2. L2TPv3トンネルインターフェースtunnel0に対し、IPsecによる保護を適用します。これにはtunnel protection ipsecコマンドを使います。

       AT-vFW-app(config)# interface tunnel0
       AT-vFW-app(config-if)# tunnel protection ipsec

## 設定と状態の確認

L2TPv3トンネルインターフェースの情報はshow interfaceコマンドで確認できます。

    AT-vFW-app> show interface tunnel0
    Interface tunnel0
      Link is UP, administrative state is UP
      Hardware is Tunnel
      index 16804709 metric 1 mtu 1488
      Bridge-group 1 (br1)
      <UP,BROADCAST,RUNNING,MULTICAST>
      SNMP link-status traps: Disabled
      Tunnel source 10.1.1.1, destination 10.2.2.2
      Tunnel name local 10.1.1.1, remote 10.2.2.2
      Tunnel ID local 101, remote 102
      Tunnel protocol/transport l2tp v3, key disabled, sequencing disabled
      Tunnel TTL -
      Checksumming of packets disabled, path MTU discovery disabled
        input packets 0, bytes 0, dropped 0, multicast packets 0
        output packets 0, bytes 0, multicast packets 0 broadcast packets 0
      Time since last state change: 0 days 00:01:32