ヤマハルーターでPort ForwardとL2TPv3OverIPsec

# １台のヤマハルーターでPort ForwardとL2TPv3OverIPsec
LTE対応の１台のヤマハルーターでPort ForwardとL2TPv3OverIPsecを実現する。

## 組み合わせる
小生の下記記事の組み合わせ＋αである。
- [ヤマハルーターでL2TPv3 over IPsec（NATあり）](https://qiita.com/infinite1oop/items/bf375772655d606f931d)
- [ヤマハルーターで複数Global IP AddressとNAT](https://qiita.com/infinite1oop/items/8c8b1ecb4b522050f26f)
- [ヤマハルーターをLTE接続](https://qiita.com/infinite1oop/items/5216a33297f6d362118a)

## ネットワーク
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/0b2570bd-3273-e31b-6d44-ba81393371c6.png)
今回のメインとなるルーターは、ヤマハのLTE RouterであるNVR700Wである。WAN側のIPアドレスは200.a.b.cとする。
対抗ルーターであるRTX830とL2TPv3OverIPsecを確立し、両端のPCを同一ネットワークに所属させる。NVR700Wの物理ポート2つをL2TPv3OverIPsec用に割り当てる。
また、LAN側の特定ポートのIPアドレスを192.168.20.1として、Port Forwardにより、WAN側に届いた特定ポート（ここでは、TCP port 80, 443）の通信を、192.168.20.10に転送する。こちらも物理ポート2つをブリッジ化し、192.168.20.1に割り当てる。

## 設定
RTX830の設定情報は下記リンクのRouter1と同じである。
- [ヤマハルーターでL2TPv3 over IPsec（NATあり）](https://qiita.com/infinite1oop/items/bf375772655d606f931d)

以下、LTEルーターNVR700Wの設定情報を解説。

### LTE（WAN）
ここは下記リンク参照。
- [ヤマハルーターをLTE接続](https://qiita.com/infinite1oop/items/5216a33297f6d362118a)

```
wwan select 1                       # LTE(wan1)の設定
 wwan always-on on
 wwan auth accept chap              # 認証方式chap
 wwan auth myname watashi pasuwaado # IDとパスワード
 wwan auto connect on
 wwan disconnect time off
 wwan disconnect input time off
 wwan disconnect output time off
 wwan access-point name namae.net   # APN名
 wwan access limit length off
 wwan access limit time off
 wwan enable 1                      # wan1有効化

wwan-module use on                  # LTEモジュール有効化
```

### LAN, etc
ここが最もキーとなる設定であろう。下記リンク参照。
- [ヤマハルーターで複数Global IP AddressとNAT](https://qiita.com/infinite1oop/items/8c8b1ecb4b522050f26f)

```
ip route default gateway pdp wan1               # デフォルトゲートウェイをwan1に設定
bridge member bridge1 vlan2 tunnel1             # I/F bridge1, vlan2, tunnel1をブリッジ化
ip bridge1 address 192.168.2.20/24              # bridge1のIPアドレス
vlan port mapping lan1.1 vlan1                  # LAN(lan1)のポート1をvlan1に設定
vlan port mapping lan1.2 vlan1                  # LAN(lan1)のポート2をvlan1に設定
vlan port mapping lan1.3 vlan2                  # LAN(lan1)のポート3をvlan2に設定
vlan port mapping lan1.4 vlan2                  # LAN(lan1)のポート4をvlan2に設定
lan type lan1 port-based-option=divide-network  # LAN(lan1)の分割有効化
ip vlan1 address 192.168.20.1/24                # vlan1のIPアドレス
ip wan1 address pdp                             # wan1のIPアドレス
ip wan1 nat descriptor 1                        # wan1に適用されるNAT定義ID(1)
wan1 bind wwan 1                                # LTEモジュールをwan1に結びつける

dns server 8.8.8.8
```
- LANポート1および2がvlan1としてブリッジ化され、IPアドレスが192.168.20.1/24となる。このvlan1がPort Forwardの対象。
- LANポート3および4がvlan2としてブリッジ化され、このvlan2がL2TPv3OverIPsecの対象。

### L2TPv3OverIPsec
ここは下記リンク参照。
- [ヤマハルーターでL2TPv3 over IPsec（NATあり）](https://qiita.com/infinite1oop/items/bf375772655d606f931d)

```
tunnel select 1                              # Tunnel I/F ID(1)の設定
 tunnel encapsulation l2tpv3                 # Tunnel 方式L2TPv3OverIPsec
 ipsec tunnel 101                            # IPsec Tunnel ID(101)
  ipsec sa policy 101 1 esp aes-cbc sha-hmac # 暗号化方式など
  ipsec ike keepalive log 1 on
  ipsec ike keepalive use 1 on
  ipsec ike local address 1 192.168.2.20     # IPsecで使用する自機IPアドレス
  ipsec ike nat-traversal 1 on               # NATトラバーサルON
  ipsec ike pre-shared-key 1 text yamaha     # 事前共有鍵
  ipsec ike remote address 1 any             # IPsec対向IPアドレス（any = すべて受け入れ）
  ipsec ike remote name 1 l2tpv3 key-id      # IPsec対向の名称（対向ルーターで”l2tpv3”と設定要）
 l2tp always-on on
 l2tp hostname RT2
 l2tp tunnel auth on yamaha                  # L2TPv3トンネル認証ONおよびパスワード
 l2tp tunnel disconnect time off
 l2tp keepalive use on 60 3
 l2tp keepalive log on
 l2tp syslog on
 l2tp local router-id 192.168.2.20           # L2TPv3自機IPアドレス
 l2tp remote router-id 192.168.2.10          # L2TPv3対向IPアドレス
 l2tp remote end-id yamaha                   # L2TPv3対向ID（名称）
 ip tunnel tcp mss limit auto
 tunnel enable 1                             # Tunnel ID(1)有効化

ipsec auto refresh on                        # IKE鍵交換有効化
ipsec transport 1 101 udp 1701               # L2TP（UDP 1701）をIPsecトランスポートモードで利用

l2tp service on l2tpv3                       # L2TPv3有効化
```

### Port Forward, NAT, etc
L2TPv3も内部的には、Port Forwardを利用。関連設定を下記。

```
nat descriptor type 1 masquerade                            # マスカレード
nat descriptor address outer 1 primary                      # NAT外側IPアドレスはwan1
nat descriptor address inner 1 auto                         # NAT内側IPアドレスはすべてが対象
nat descriptor masquerade static 1 1 192.168.20.10 tcp 80   # TCPポート80は192.168.20.10に転送
nat descriptor masquerade static 1 2 192.168.20.10 tcp 443  # TCPポート443は192.168.20.10に転送
nat descriptor masquerade static 1 3 192.168.2.20 udp 1701  # UDPポート1701(L2TP)は192.168.2.20に転送
nat descriptor masquerade static 1 4 192.168.2.20 udp 500   # UDPポート500(IKE)は192.168.2.20に転送
nat descriptor masquerade static 1 5 192.168.2.20 udp 4500  # UDPポート4500(IKE)は192.168.2.20に転送
nat descriptor masquerade static 1 6 192.168.2.20 esp       # ESP(IPsec)パケットを192.168.2.20へ転送
nat descriptor masquerade static 1 7 192.168.2.20 icmp      # ICMPパケットを192.168.2.20へ転送（おまけ）
```
- ID 1-2にマッチしたパケットは、192.160.20.10が属するネットワークであるvlan1（ポート1および2）に転送される。
- ID 3-7にマッチしたパケットは、192.168.2.20に転送される。
    - 192.168.2.20はI/F bridge1のIPアドレスであり、Tunnel ID(1)およびvlan2（ポート3および4）とブリッジ化されている。
    - L2TPv3OverIPsecでは、ESP(IPsec)パケット内にL2TPv3が含まれるため、UDPポート1701の転送は不要のはず。
    - NATトラバーサルにより、ポート4500のUDPパケット内に含まれるため、ESP(IPsec)の転送は不要のはず。

### すべての設定
```
administrator password himitsu
ip route default gateway pdp wan1
bridge member bridge1 vlan2 tunnel1
ip bridge1 address 192.168.2.20/24
vlan port mapping lan1.1 vlan1
vlan port mapping lan1.2 vlan1
vlan port mapping lan1.3 vlan2
vlan port mapping lan1.4 vlan2
lan type lan1 port-based-option=divide-network
ip vlan1 address 192.168.20.1/24
ip wan1 address pdp
ip wan1 nat descriptor 1
wan1 bind wwan 1
pp disable all
wwan disable all
wwan select 1
 wwan always-on on
 wwan auth accept chap
 wwan auth myname watashi pasuwaado
 wwan auto connect on
 wwan disconnect time off
 wwan disconnect input time off
 wwan disconnect output time off
 wwan access-point name namae.net
 wwan access limit length off
 wwan access limit time off
 wwan enable 1
no tunnel enable all
tunnel select 1
 tunnel encapsulation l2tpv3
 ipsec tunnel 101
  ipsec sa policy 101 1 esp aes-cbc sha-hmac
  ipsec ike keepalive log 1 on
  ipsec ike keepalive use 1 on
  ipsec ike local address 1 192.168.2.20
  ipsec ike nat-traversal 1 on
  ipsec ike pre-shared-key 1 text yamaha
  ipsec ike remote address 1 any
  ipsec ike remote name 1 l2tpv3 key-id
 l2tp always-on on
 l2tp hostname RT2
 l2tp tunnel auth on yamaha
 l2tp tunnel disconnect time off
 l2tp keepalive use on 60 3
 l2tp keepalive log on
 l2tp syslog on
 l2tp local router-id 192.168.2.20
 l2tp remote router-id 192.168.2.10
 l2tp remote end-id yamaha
 ip tunnel tcp mss limit auto
 tunnel enable 1
nat descriptor type 1 masquerade
nat descriptor address outer 1 primary
nat descriptor address inner 1 auto
nat descriptor masquerade static 1 1 192.168.20.10 tcp 80
nat descriptor masquerade static 1 2 192.168.20.10 tcp 443
nat descriptor masquerade static 1 3 192.168.2.20 udp 1701
nat descriptor masquerade static 1 4 192.168.2.20 udp 500
nat descriptor masquerade static 1 5 192.168.2.20 udp 4500
nat descriptor masquerade static 1 6 192.168.2.20 esp
nat descriptor masquerade static 1 7 192.168.2.20 icmp
ipsec auto refresh on
ipsec transport 1 101 udp 1701
telnetd host lan
dns server 8.8.8.8
l2tp service on l2tpv3
wwan-module use on
```

EOF