L2TP — что это за протокол, как работает, настройка | Глоссарий FREEHOSTING

L2TP

Layer 2 Tunneling Protocol
L2TP — Протокол туннелирования канального уровня для построения VPN. Сам по себе шифрования не даёт, поэтому почти всегда работает в связке с IPsec и пакуется как L2TP/IPsec в роутерах и операционных системах.

Определение простыми словами

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 на одинаковом железе.