L2TP
本页介绍 MikroTik RouterOS L2TP 配置,涵盖客户端与服务器设置、认证方式、MTU/MRRU、IPsec 集成以及二层隧道的动态接口管理。
L2TP
本节介绍 L2TP 示例。可使用本节配置 LAC 与 LNS 场景及相关 L2TP 互操作案例。
第二层隧道协议(L2TP)扩展了 PPP 模型,允许 L2 与 PPP 端点位于由分组交换网络互联的不同设备上。L2TP 为每条 L2TP 连接提供 PPP 认证与计费。每条连接的完整认证与计费可通过 RADIUS 客户端或本地完成。L2TP 流量的控制与数据包均使用 UDP 协议。UDP 端口 1701 仅用于链路建立,后续流量使用任意可用 UDP 端口(可以不同于 1701)。这意味着只要允许 UDP 流量通过防火墙或路由器,L2TP 就能与大多数防火墙和路由器(即使存在 NAT)配合使用。L2TP 标准定义于 RFC 2661。L2TPv3 支持在 7.1 版本中加入,支持 IPv4 与 IPv6。
简介
L2TP 可以像其他隧道协议一样使用,支持或不支持加密。L2TP 标准规定,最安全的数据加密方式是 L2TP over IPsec(这也是 Microsoft L2TP 客户端的默认模式),因为特定隧道的所有 L2TP 控制与数据包对 IPsec 系统而言都表现为同质的 UDP/IP 数据包。
支持多链路 PPP(MP),以提供 MRRU(能够传输完整大小的 1500 及更大数据包)以及通过 PPP 链路使用桥接控制协议(BCP)进行桥接,从而允许在 PPP 链路上发送原始以太网帧。这样无需 EoIP 即可建立桥接。网桥应配置管理性 MAC 地址,或包含一个类以太网接口,因为 PPP 链路没有 MAC 地址。
警告
L2TP 不为隧道流量提供加密机制。可使用 IPsec 增加安全层。
快速示例

L2TP 服务器
在服务器侧启用 L2TP 服务器,并为特定用户创建 PPP 配置文件:
[admin@MikroTik] > /interface/l2tp-server/server/set enabled=yes
[admin@MikroTik] > /ppp/secret/add local-address=10.0.0.2 name=MT-User password=StrongPass profile=default-encryption remote-address=10.0.0.1 service=l2tp
L2TP 客户端
本示例配置用户名为 "MT-User"、密码为 "StrongPass"、服务器为 192.168.51.3 的 L2TP 客户端:
[admin@MikroTik] > /interface/l2tp-client \
add connect-to=192.168.51.3 disabled=no name=MT-User password=StrongPass user=MT-User
[admin@MikroTik] > /interface/l2tp-client/print
Flags: X - disabled, R - running
0 R name="MT-User" max-mtu=1450 max-mru=1450 mrru=disabled connect-to=192.168.51.3 user="MT-User"
password="StrongPass" profile=default-encryption keepalive-timeout=60 use-ipsec=no ipsec-secret=""
allow-fast-path=no add-default-route=no dial-on-demand=no allow=pap,chap,mschap1,mschap2
L2TP Ether
概述
第二层隧道协议版本 3(L2TPv3)由互联网工程任务组(IETF)的 RFC 3931 定义。它对原始 L2TP 进行了多项改进,允许在 L2TP 中封装二层(L2)载荷,用于二层虚拟专用网络(VPN)。L2TP Ether 隧道在两个端点之间传输原始以太网帧(以太网伪线,Pseudowire-Type 5)。
要建立 L2TP Ether 隧道,必须在客户端侧创建 L2TP Ether 接口,同时在远端(服务器)侧启用 L2TP 服务器。两端正确配置后,它们之间会自动创建动态接口,形成跨越 IP 网络的透明二层连接。
L2TP Ether 可通过 UDP 封装(l2tp-proto-version=l2tpv3-udp,默认值),也可直接通过 IP 封装(l2tp-proto-version=l2tpv3-ip)。支持 IPv4 与 IPv6 覆盖网络;connect-to 可接受 IPv4 或 IPv6 地址。
拓扑与角色
L2TP Ether 隧道有两种不同角色:
- 主动(客户端)侧:创建
/interface/l2tp-ether条目,并用connect-to=指向服务器。该侧发起 L2TPv3 控制连接与以太网会话。 - 被动(服务器)侧:只需启用 L2TP 服务器(
/interface/l2tp-server/server)。主动侧连接后,RouterOS 会在服务器上自动创建动态l2tp-ether接口(标志D);无需手工配置。
通常会将两个接口加入网桥,使两个站点共享二层域。
配置示例
本示例在两台路由器之间建立 L2TP Ether 隧道。
服务器侧(L2TP 服务器)
/interface/l2tp-server/server/set enabled=yes
客户端侧(L2TP Ether 接口)
/interface/l2tp-ether/add connect-to=1.1.1.1 disabled=no
在主动侧验证会话(示例输出):
[admin@MikroTik] > /interface/l2tp-ether/print
Flags: X - disabled, R - running, D - dynamic, u - unmanaged
0 R name="l2tp-ether1" mac-address=02:3D:2B:00:00:00 connect-to=1.1.1.1 ...
在被动侧,隧道建立后会自动出现动态接口(标志 D)(示例输出):
[admin@MikroTik] > /interface/l2tp-ether/print
Flags: X - disabled, R - running, D - dynamic, u - unmanaged
0 DR name="l2tp-ether1" mac-address=02:3D:2B:00:00:01 connect-to=0.0.0.0 ...
服务器侧会话接受
服务器是否接受传入的以太网会话由 /interface/l2tp-server/server 中的 L2TP 服务器设置控制。完整属性列表请参阅 CLI 参考。
| 设置 | 控制内容 |
|---|---|
max-sessions | 服务器上并发 L2TP 会话的最大数量。达到限制后,服务器会拒绝新会话。 |
accept-proto-version | 接受哪些 L2TP 协议版本(all、l2tpv2、l2tpv3)。 |
accept-pseudowire-type | 接受哪些伪线类型(all、ether、ppp)。L2TP Ether 隧道必须允许 ether。 |
l2tpv3-ether-interface-list | 动态以太网伪线端点所附加的接口列表。 |
l2tpv3-circuit-id | 服务器为传入会话使用的 L2TPv3 电路标识符。 |
l2tpv3-cookie-length | 服务器通告的 L2TPv3 cookie 长度。 |
l2tpv3-digest-hash | 服务器使用的 L2TPv3 摘要哈希算法。 |
匹配 circuit-id 与 cookie
当服务器设置 l2tpv3-circuit-id、l2tpv3-cookie-length 或 l2tpv3-digest-hash 时,客户端侧 l2tp-ether 条目需要对应值(circuit-id、cookie-length、digest-hash)。如果这些值不一致,即使控制连接已建立,会话也可能失败;请检查两端设置是否一致。客户端侧属性请参阅 L2TP Ether CLI 参考。
验证与故障排查
如果 L2TP 控制连接已建立,但以太网会话立即被拆除,即使传输层看起来正常,隧道也无法工作。
| 症状 | 可能原因 | 检查 |
|---|---|---|
日志显示 maximum session count reached,随后 CDN(Result-Code=4)且隧道断开 | 达到服务器会话限制时会话被拒绝,这是常见检查项,但不能作为确定诊断 | 确认 /interface/l2tp-server/server 上的 max-sessions 未限制新会话 |
| 会话被拒绝,服务器上没有动态接口 | 未接受伪线或协议类型 | accept-pseudowire-type 应允许 ether;accept-proto-version 应允许 l2tpv3 |
| 被动侧没有动态接口 | 接口列表未覆盖隧道端点 | 检查 l2tpv3-ether-interface-list |
| 会话建立但流量不通过 | 客户端与服务器之间的 circuit-id / cookie-length / digest-hash 不一致 | 比较 l2tp-ether 与 l2tp-server 设置 |
可随时使用 monitor 命令检查活动会话:
/interface/l2tp-ether/monitor l2tp-ether1