Определение простыми словами
L2TP (Layer 2 Tunneling Protocol) — это туннельный протокол, который заворачивает кадры канального уровня в UDP-пакеты и доставляет их между двумя точками поверх любой IP-сети. Сам по себе он не шифрует данные, поэтому в реальной эксплуатации поверх L2TP накладывают IPsec — получается комбинация L2TP/IPsec, которую поддерживают встроенные клиенты Windows, macOS, iOS и большинство роутеров. Подробнее об общей идее туннеля смотрите в материале о VPN, а про криптопрослойку — в статье об IPsec.
Стандарт описан в RFC 2661 и развит в RFC 3931 (L2TPv3). Управляющая сессия идёт по UDP/1701, а IPsec добавляет ещё UDP/500 и UDP/4500 при работе через NAT. Из-за двойной инкапсуляции реальный заголовок съедает 60–70 байт, что снижает полезный throughput на каналах с малым MTU.
Сравнение
| Протокол | Шифрование | Порты | Поддержка из коробки |
|---|---|---|---|
| L2TP/IPsec | Через IPsec | UDP 1701, 500, 4500 | Windows, macOS, iOS, Android |
| WireGuard | ChaCha20-Poly1305 | UDP, любой | Современные ОС, нужен клиент |
| OpenVPN | TLS | TCP/UDP 1194 | Сторонний клиент |
| PPTP | MPPE (устарело) | TCP 1723, GRE | Признан небезопасным |
Кейсы использования
- Подключение филиалов и удалённых сотрудников к корпоративной сети через MikroTik, Keenetic, Cisco.
- Резервный канал, когда WireGuard или OpenVPN заблокированы провайдером по DPI.
- Доступ с iPhone и Android без установки сторонних приложений.
- Негативный сценарий: на загруженных каналах двойная инкапсуляция и работа через NAT-T заметно режут скорость, поэтому для нагруженных туннелей на больших объёмах данных лучше выбирать WireGuard.
Технические детали
Минимальный конфиг сервера на Linux через strongSwan и xl2tpd:
apt install strongswan xl2tpd ppp
cat > /etc/ipsec.conf <<EOF
conn L2TP-PSK
authby=secret
type=transport
keyexchange=ikev1
left=%defaultroute
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
auto=add
EOF
echo "%any %any : PSK "YourPreSharedKey"" > /etc/ipsec.secrets
ipsec restart
systemctl restart xl2tpd
Не забудьте открыть на файрволе UDP 500, 4500 и 1701, а также протокол ESP (50). Без NAT Traversal клиенты за домашними роутерами не подключатся.
🔥 Где это применяется
Частые вопросы
Чем L2TP отличается от L2TP/IPsec?
Чистый L2TP передаёт данные в открытом виде. L2TP/IPsec добавляет криптографическую защиту через IPsec и считается рабочим вариантом для продакшена.
Какие порты открыть для L2TP/IPsec?
UDP 1701 для самого L2TP, UDP 500 и 4500 для IKE и NAT-T, плюс протокол ESP (номер 50). Без NAT Traversal клиенты за домашним роутером не подключатся.
Почему L2TP медленнее WireGuard?
Из-за двойной инкапсуляции и AES-CBC в IPsec. WireGuard использует ChaCha20 и один UDP-заголовок, поэтому даёт ощутимо больший throughput на одинаковом железе.