L2TPv2, L2TPv3, GRE и VPWS: выбор по полезной нагрузке
Сравните L2TPv2, L2TPv3, GRE и MPLS VPWS по полезной нагрузке, которую они несут, добавляемым накладным расходам и тому, кто на самом деле управляет транспортом.
Большинство споров L2TP против GRE рушатся по одной причине: названия находятся на разных уровнях проблемы. Два из них описывают инкапсуляцию, которую вы настраиваете на своих маршрутизаторах. Один описывает услугу, которую вам продаёт кто-то другой. Начните с полезной нагрузки, которую должны нести оконечные точки, и сравнение превратится в короткий список последствий, а не в борьбу за функции.
Сначала нагрузка, потом протокол
На практике полезная нагрузка — это одно из четырёх: сессия PPP, необработанный кадр Ethernet, пакет IP или кадр MPLS, переданный провайдеру. Каждый предъявляет разные требования к адресации, обработке широковещания и обнаружению сбоев. Ошибётесь в этом списке — и никакая настройка инкапсуляции не спасёт проект.
| Payload | Natural fit | What it needs |
|---|---|---|
| PPP session | L2TPv2 | UDP reachability, PPP negotiation on both ends |
| Ethernet frame | L2TPv3 or VPWS | Pseudowire signalling, matched MTU on both sides |
| IP packet | GRE, with IPsec alongside | Routed underlay, protocol type supported by both devices |
| MPLS frame | VPWS | Provider attachment circuits and demarcation points |
Всё, что за пределами этих строк, добавляется позже: шифрование, сжатие или формирование трафика. Сначала выберите строку.
L2TPv2 и L2TPv3 делят имя и почти ничего больше
L2TPv2 существует, чтобы переносить сессии PPP по сети IP, поэтому он читается как протокол удалённого доступа, а не как универсальный транспорт кадров. L2TPv3 обобщает эту идею: управляющее соединение согласует сессии, и каждая сессия несёт определённое соединение уровня 2 между двумя оконечными точками IP. То же семейное имя, другой протокол управления, другая модель сессии. Требование, в котором указан только L2TP, неполно, а шаблон, скопированный из неправильной версии, даже не договорится.
Если вам нужен PPP, L2TPv2 — единственный реалистичный член семейства; если вам нужны кадры Ethernet через маршрутизируемое ядро, вы на территории L2TPv3.
Детали транспорта различаются так, что это всплывает при проверке межсетевого экрана. L2TPv3 может идти напрямую по протоколу IP 115 или внутри UDP, обычно на порту 1701, тогда как L2TPv2 остаётся на UDP 1701 с PPP внутри. Политика, написанная для одной версии, может выглядеть совершенно правильной и всё же отбрасывать другую.
GRE — это заголовок, а не услуга
GRE заворачивает полезную нагрузку в четырёхбайтовый заголовок с необязательным полем ключа и последовательности, а затем передаёт результат IP для доставки. Он ничего не утверждает о смысле нагрузки, поэтому реализации могут туннелировать IPv4, IPv6 или Ethernet, если эти типы протоколов поддерживаются. Общее — не то же самое, что универсальное: проверьте тип протокола и поведение фрагментации на реальном устройстве.
Поле ключа — это то, что делает GRE полезным, когда несколько туннелей делят одну пару адресов оконечных точек, поскольку получатель демультиплексирует по этому значению. GRE поверх IPv4 стоит около 24 байт до любых дополнительных опций, и это начинает иметь значение на каналах, уже рассчитанных на кадры в 1500 байт. Сам по себе GRE не обеспечивает конфиденциальности, поэтому обычная схема сочетает его с IPsec и оставляет криптографическую границу за IPsec. Такое сочетание работает, но бюджет MTU тогда должен покрывать оба заголовка.
GRE также передаёт многоадресную и широковещательную рассылку через туннель, когда нагрузка — Ethernet, чего обычный одноадресный туннель IP не может. Именно это свойство, а не аббревиатура, обычно заставляет проект выбрать его.
VPWS покупают, а не настраивают
Услуга виртуальной выделенной линии доставляет соединение «точка-точка» уровня 2 через сеть провайдера. Ваша соединительная линия заканчивается на пограничном устройстве провайдера, а псевдопровод через ядро принадлежит провайдеру. Важные вопросы операционные: где проходит граница ответственности, кому принадлежит первая и последняя миля и что провайдер делает с чрезмерно большими кадрами.
Здесь сравнение переворачивается. L2TPv3 и GRE — это то, что вы эксплуатируете от края до края, поэтому отлаживаете их своими учётными данными и своими записями трафика. VPWS — это договор с передачей, поэтому сбой начинается с заявки, а не с записи пакетов. Ни одна модель не выигрывает безоговорочно; они отказывают в разных местах, и выбор зависит от того, хотите ли вы владеть последней милей.
Стек меток псевдопровода остаётся внутри сети провайдера, поэтому он не меняет вашу арифметику MTU так, как это делает видимый заголовок туннеля.
Выберите одну строку и запишите её
Зафиксируйте решение одним предложением из трёх частей: нагрузка, инкапсуляция и владелец транспорта. Затем приложите числа, которые делают его проверяемым.
Для каждого кандидата запишите накладные расходы на линии, самый большой кадр, который принимает путь, и первый переход, который сообщил бы о проблеме MTU. Убедитесь, что обе оконечные точки поддерживают выбранный вами тип протокола или сессии, а не только маркетинговый термин в спецификации. Решите, как выглядело бы мультиплексирование, если в следующем году появится второе соединение, потому что ключи GRE и идентификаторы сессий L2TPv3 не являются взаимозаменяемыми решениями этой проблемы. Затем отправьте один чрезмерно большой кадр и один обычный; эта пара отлавливает большинство проектов, которые хорошо выглядели на бумаге.
Сравнение туннелей по названию продолжает порождать споры, которые никто не может разрешить. Сравнение по нагрузке, расходам и владению даёт решение за один день, плюс доказательства, необходимые, чтобы защитить его позже.