ヤマハルーターでL2TPv3 over IPsec

# L2TPv3 over IPsecをヤマハルーターで実現
[前回の「ヤマハルーターでL2TPv3」](https://qiita.com/infinite1oop/items/73e2e57c90e377c7bae3)の続きである。拠点間接続では経路のセキュア化がほぼ必須となることから、L2TPv3 over IPsecをヤマハルーターで実現してみた。参考サイトは前回と同じ。
- [L2TPv3を用いたL2VPN](http://www.rtpro.yamaha.co.jp/RT/docs/l2tpv3/)

## ネットワークトポロジー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/3ea0e8f6-1884-8fe8-2008-0f64a1182f98.png)
両端が同一セグメントである。今回は、右端（遠隔地）のDHCPサーバーから、左端のクライアントPCがIPアドレスを取得する状況とした。

## 設定
関連するところのみ記載。下記はRouter 1の設定、Router 2では、各種IPアドレスが反転する。ホスト名も別のものとなる。
```
bridge member bridge1 lan1 tunnel1   # LAN側とトンネルとをブリッジ化
ip bridge1 address 192.168.2.10/24   # ブリッジにIPアドレスアサイン
ip lan2 address 10.0.0.1/24          # WAN側IPアドレス
ip lan2 nat descriptor 1             # 適用するNATディスクリプタ
tunnel select 1                      # トンネル設定
 tunnel encapsulation l2tpv3         # L2TPv3/IPsec トンネル
 tunnel endpoint address 192.168.2.10 10.0.0.2 # トンネル始点（ブリッジIPアドレス）と終点（対向ルーターのWAN IPアドレス）
 ipsec tunnel 101                    # IPsecトンネルポリシー
  ipsec sa policy 101 1 esp aes-cbc sha-hmac # ESP及びアルゴリズム
  ipsec ike keepalive log 1 on       # IKEキープアライブSyslog化
  ipsec ike keepalive use 1 on       # IKEキープアライブ有効化
  ipsec ike local address 1 192.168.2.10 # IKEローカルIPアドレス
  ipsec ike pre-shared-key 1 text yamaha # IKE事前共有鍵
  ipsec ike remote address 1 10.0.0.2 # IPsecリモートIPアドレス
 l2tp always-on on                   # L2TPv3の常時接続
 l2tp hostname RT1                   # ホスト名
 l2tp tunnel auth on yamaha          # トンネル認証ONおよびパスワード
 l2tp tunnel disconnect time off     # トンネル切断タイマーOFF
 l2tp keepalive use on 60 3          # トンネルキープアライブON、インターバル（秒）、ダウン検出カウント
 l2tp keepalive log on               # トンネルキープアライブログON
 l2tp syslog on                      # L2TPトンネル制御をSyslog化
 l2tp local router-id 192.168.2.10   # ローカル（自分）ルーターID
 l2tp remote router-id 192.168.2.20  # リモート（対向）ルーターID
 l2tp remote end-id yamaha           # リモートエンドID（ルーターどうしで同一）
 ip tunnel tcp mss limit auto        # TCP MSS自動制御
 tunnel enable 1                     # トンネル有効化
nat descriptor type 1 masquerade     # NAT IPマスカレード 
nat descriptor address outer 1 primary # NAT外側IPアドレス（LAN2） 
nat descriptor address inner 1 auto  # NAT内側IPアドレス（自動）
nat descriptor masquerade static 1 1 192.168.2.10 udp 1701 # L2TPポート番号（1701）をブリッジIPアドレスへ転送
nat descriptor masquerade static 1 2 192.168.2.10 udp 500  # ISAKMPポート番号（500）を同様に転送
nat descriptor masquerade static 1 3 192.168.2.10 udp 4500 # IPsec NAT-Traversalポート番号（4500）を同様に転送（これは不要かもしれない）
nat descriptor masquerade static 1 4 192.168.2.10 esp      # ESPパケットを同様に転送
ipsec auto refresh on                # IKE鍵交換有効化
ipsec transport 1 101 udp 1701       # IPsecトランスポートモードでL2TP（1701）利用
l2tp service on l2tpv3               # L2TPv3有効化
```

## ルーター間のネットワークキャプチャデータ
![IKE&ESPのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/6264cdd8-7319-4c5b-2c7f-bda19f886033.png)
IPsec関連パケット（IKE、ESP）が確認できる。

## クライアントPCでのネットワークキャプチャデータ
![DHCPのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/a9dba280-408a-6428-9c4b-73f28e23fe9d.png)
両端が同一ネットワークセグメントであり、ブロードキャストパケットが見える。

## L2TPおよびIPsec状況
```
# show status l2tp  
------------------- L2TP INFORMATION -------------------
L2TP情報テーブル
  L2TPトンネル数: 1, L2TPセッション数: 1 
TUNNEL[1]:
  トンネルの状態: established
  バージョン: L2TPv3
  自機側トンネルID: 6056
  相手側トンネルID: 13876
  自機側IPアドレス: 192.168.2.10
  相手側IPアドレス: 10.0.0.2
  自機側送信元ポート: 1701
  相手側送信元ポート: 1701
  ベンダ名: YAMAHA Corporation
  ホスト名: RT2
  Next Transmit sequence(Ns): 33
  Next Receive sequence(Nr) : 35
  トンネル内のセッション数: 1 session
  セッション情報:
    セッションの状態: established
    自機側セッションID: 64312
    相手側セッションID: 59495
    Circuit Status 自機側:UP 相手側:UP
    通信時間: 31分28秒
    受信: 1991 パケット [1239749 オクテット]
    送信: 4476 パケット [501909 オクテット]
# 
# show ipsec sa  
Total: isakmp:2 send:4 recv:4

sa    sgw isakmp connection    dir  life[s] remote-id
----------------------------------------------------------------------------
1     1    -     isakmp        -    26590   10.0.0.2
2     1    1     tun[0001]esp  send 26592   10.0.0.2
3     1    1     tun[0001]esp  recv 26592   10.0.0.2
4     1    1     tra[0001]esp  send 26592   10.0.0.2
5     1    1     tra[0001]esp  recv 26592   10.0.0.2
6     1    1     tun[0001]esp  send 26592   10.0.0.2
7     1    1     tun[0001]esp  recv 26592   10.0.0.2
8     1    1     tra[0001]esp  send 26592   10.0.0.2
9     1    1     tra[0001]esp  recv 26592   10.0.0.2
10    1    -     isakmp        -    26597   10.0.0.2
```

## 終わりに
次は、途中にNATが含まれるネットワークで、L2TPv3 over IPsecを実現する。