Почему транспорт IPSec все еще существует, если почти всегда его можно изменить на туннелирование и наоборот?
Я не вижу транспортный режим IPSec, используемый сегодня для большинства пользователей сетевых устройств. Я думаю, что он никогда не набирал достаточный импульс для повсеместного развертывания. У поставщиков программного обеспечения и сетей была мотивация продавать реализации в туннельном режиме (плюс обширные серверные части) корпоративным клиентам с необходимостью удаленного доступа, но никому не предлагал режим транспорта. Возможности могли существовать, но простота использования все еще оставляет желать лучшего.
Так что он существует, но все еще актуален? Транспортный режим исторически был недоступен для большого количества пользователей. Единственным исключением были люди из свободных программ.
История и статус реализации Оппортунистического Шифрования для IPsec
Приведенная выше ссылка описывает исторические усилия по повсеместному использованию IPSec и то, как эти усилия были заблокированы. Причины можно резюмировать как небезопасность инфраструктуры Интернета (то есть DNS) и относительное самодовольство тех, кто вовлечен в ее изменение.
Почему все эти подходы существуют и дублируют друг друга?
Все эти подходы существуют главным образом благодаря независимой идентификации и решению вариаций потребности в безопасном удаленном доступе примерно в один и тот же период времени. Немного улучшенная версия вашего вопроса может быть: «Почему все эти подходы все еще используются?"
Вы ответили на свой вопрос о том, почему L2TP все еще используется: учет и настройка. (может быть более интересно посмотреть, почему другие протоколы, такие как PPTP, больше не используются.) Во многих случаях, даже если вы не заботитесь об учете и настройке,
В других случаях ответ не так ясен. Возьмите случай от шлюза до шлюза. Вы можете использовать чистый туннельный режим IPSec или GRE-туннели через IPSec (на самом деле я считаю, что они находятся в транспортном режиме IPSec). Я не знаю, есть ли какое-либо преимущество, кроме знакомства. Лично я никогда не настраивал IPSec в туннельном режиме на маршрутизаторе Cisco. Я всегда делал зашифрованные GRE. Зачем? Потому что все, что я знаю о простой GRE, относится к зашифрованной GRE. Так что мне это знакомо.
Не забывайте VPN / туннели уровня приложения, такие как OpenVPN или Secure Shell. Как правило, они имеют более низкую производительность, чем реализации на уровне ядра или устройства. Но они были (и являются), как правило, более простыми в использовании и имели преимущество в том, что им было легче проходить через прокси и брандмауэры (по крайней мере, до появления глубокой проверки содержимого). Кроме того, они часто имеют меньше зависимостей; гораздо проще скомпилировать OpenVPN на старом сервере Linux, чем перекомпилировать ядро для поддержки IPSec.
Не могли бы вы привести пример ситуации, когда один из этих методов является "единственным правильным"?
В сети (как и в вычислительной технике) вы никогда не увидите "единственно правильного в использовании". В большинстве случаев вы застряли на том, что возможно. Например, все устройства Android работают с VPN на основе L2TP. Так что это возможно, даже если вам не нужна конфигурация или учет. Знакомство с туннелями GRE на устройствах Cisco облегчает их внедрение, чем использование чистого туннельного режима IPSec. И я могу создать OpenVPN или туннель на основе SSH на древнем сервере Linux, который я не могу обновить (по той или иной причине).