---
title: 3.16 L2TPv3設定
description: "## 3.16 L2TPv3設定 **対象機種**: AX30 / AX11 /…"
url: "https://manual.amnimo.com/docs/utilization-dev/3-16-dev/"
updated: "2026-11-09"
category: デベロッパーズマニュアル / 第3章　エッジゲートウェイの活用
---

# 3.16 L2TPv3設定

## 3.16 L2TPv3設定

**対象機種**: AX30 / AX11 / AX21 / AG10 / AG20 / AR10 / AR20

本節ではエッジゲートウェイでL2TPv3 over UDPを使用するための設定について説明します。

L2TPv3を使用する事で、2つの拠点間で同一セグメントのL2ネットワークを構築することが可能になります。LinuxカーネルにL2TPv3の機能が搭載されているため、ソフトウェアの追加無く構築が可能です。

> ![warning](https://manual.amnimo.com/wp-content/uploads/2026/11/warning.png) **注意**: TODO(移行) ここに図が入ります（DOCX の図形を組み合わせた図のため自動変換できません。Word で PNG に書き出して差し替えてください。図中の文字: eth0 (203.0.113.1)、インターネット、br0 (192.168.0.1)、l2tpeth0、ecm0 (203.0.113.2)、br0 (192.168.0.2)、ゲートウェイB、ゲートウェイA）

エッジゲートウェイのローカルネットワークインターフェイスとL2TPv3仮想インターフェイスをブリッジすることで、同一のL2ネットワークを作成します。

デフォルトでブリッジインターフェイスが定義されていない機種では、事前にbr0インターフェイスを作成します。

```
amnimo(cfg)# interface eth1
amnimo(cfg-interface-eth1)# no address 192.168.0.254/24
amnimo(cfg-interface-eth1)# exit
amnimo(cfg)# interface br0
amnimo(cfg-interface-br0)# bridge eth1        #ローカルネットワークのデバイスを指定
amnimo(cfg-interface-br0)# address 192.168.0.2/24          #IPアドレスを指定
amnimo(cfg-interface-br0)# enable
amnimo(cfg-interface-br0)# exit
amnimo(cfg)# exit
amnimo# config file save startup-config
startup-config file already exists. Do you want to overwrite? (y/N): y
amnimo#
```

各ゲートウェイにL2TPv3設定をipコマンドで行います。l2tpeth0インターフェイスのmtuは、br0に合わせます。

> ![note](https://manual.amnimo.com/wp-content/uploads/2026/11/note.png) **補足**: br0, l2tpeth0インターフェイスではL2フレームをフラグメントしないため、設定されたmtuを超えるパケットは、L2TPv3トンネルを通過することができません。ローカルネットワークに接続される端末のmtuを調整する必要があります。
>
>
>
> L2TPv3でカプセル化後パケットは送信インターフェイスのmtuに応じてIPフラグメントされます。

ゲートウェイA

```
$ sudo ip l2tp add tunnel tunnel_id 10 peer_tunnel_id 20 encap udp local 203.0.113.1 remote 203.0.113.2 udp_sport 1701 udp_dport 1701
$ sudo ip l2tp add session tunnel_id 10 session_id 30 peer_session_id 40

$ sudo ip link set dev l2tpeth0 master br0
$ sudo ip link set dev l2tpeth0 up mtu 1500    #br0のmtuに合わせる
```

ゲートウェイB

```
$ sudo ip l2tp add tunnel tunnel_id 20 peer_tunnel_id 10 encap udp local 203.0.113.2 remote 203.0.113.1 udp_sport 1701 udp_dport 1701
$ sudo ip l2tp add session tunnel_id 20 session_id 40 peer_session_id 30

$ sudo ip link set dev l2tpeth0 master br0
$ sudo ip link set dev l2tpeth0 up mtu 1500    #br0のmtuに合わせる
```

設定の確認。

```
$ sudo ip l2tp show tunnel
Tunnel 10, encap UDP
  From 203.0.113.1 to 203.0.113.2
  Peer tunnel 20
  UDP source / dest ports: 1701/1701
  UDP checksum: disabled

$ sudo ip l2tp show session
Session 30 in tunnel 10
  Peer session 40, tunnel 20
  interface name: l2tpeth0
  offset 0, peer offset 0
```

設定の削除は、以下コマンドで行います。tunnel設定を削除した際に、l2tpeth0インターフェイスも削除されます。

```
$ sudo ip l2tp del tunnel tunnel_id 10    #削除するTunnel IDを指定
```

### 3.16.1 サービス起動のユニットファイルを作成

L2TPv3の設定を行うスクリプト /usr/local/sbin/l2tpv3.shを作成します。

環境に合わせ、IPアドレス、Tunnel ID、Session IDを設定します。またbr0のmtu値を変更している場合、l2tpeth0のmtu値をbr0に合わせます。

##### l2tpv3.sh

```
#!/bin/sh

#環境に合わせ、IP, Tunnel ID, Session IDを変更
LOCAL_IP=203.0.113.1
REMOTE_IP=203.0.113.2
TUNNEL_ID=20
PEER_TUNNEL_ID=10
SESSION_ID=40
PEER_SESSION_ID=30

ip l2tp add tunnel tunnel_id ${TUNNEL_ID} peer_tunnel_id ${PEER_TUNNEL_ID} encap udp local ${LOCAL_IP} remote ${REMOTE_IP} udp_sport 1701 udp_dport 1701
ip l2tp add session tunnel_id ${TUNNEL_ID} session_id ${SESSION_ID} peer_session_id ${PEER_SESSION_ID}

#L2TPv3/IPSecとして動作させる場合にはコメントアウトを外して、IPSecではないL2TPv3パケットをDROPするルールを追加
#対向と通信を行うインタフェース名を指定します、モバイル通信を使用する場合ecm0等を指定
#iptables -A OUTPUT -o eth0 -p udp --dport 1701 -m policy --dir out --pol ipsec -j ACCEPT
#iptables -A OUTPUT -o eth0 -p udp --dport 1701 -j DROP

ip link set dev l2tpeth0 master br0
ip link set dev l2tpeth0 up mtu 1500            #br0のmtuに合わせる

exit 0
```

l2tpv3ユニットファイル（l2tpv3.service）を、/lib/systemd/system配下に作成します。

##### l2tpv3.service

```
[Unit]
Description=L2TPv3 Tunnel
After=network.target amnimo-amsrv.service

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/l2tpv3.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

ユニットを有効化します。

```
$ sudo systemctl enable l2tpv3.service
```

### 3.16.2 IPsecの併用

L2TPv3は通信が暗号化されていないため、セキュアな通信が必要となる場合、IPsec等と組み合わせる必要があります。

エッジゲートウェイのIPsecの設定を行うことで対応可能です。

> ![note](https://manual.amnimo.com/wp-content/uploads/2026/11/note.png) **補足**: エッジゲートウェイでのIPsec設定には、CLI（amsh）を使用する方法とGUIを使用する方法があります。
>
>
>
> 設定方法については、以下を参照してください。
>
>
>
> CLI（amsh）を使用する方法
> 『エッジゲートウェイシリーズ CLIユーザーズマニュアル』の『第6章　ネットワークの設定』
>
>
>
> GUIを使用する方法
> 『エッジゲートウェイシリーズ GUIユーザーズマニュアル』の『IPSEC設定をする』

L2TPv3は、IPsec無しの状態でもトンネルが成立するため、IPsecと併用する場合、IPsec適用前のL2TPパケットが出力されない様、iptablesで制限することが可能です。トンネルの対向と通信を行うために使用するインターフェイス名がeth0としてコマンド例を記載します。

```
$ sudo iptables -A OUTPUT -o eth0 -p udp --dport 1701 -m policy --dir out --pol ipsec -j ACCEPT
$ sudo iptables -A OUTPUT -o eth0 -p udp --dport 1701 -j DROP
```
