Технологии тунеллирования
Виртуальные частные сети
Virtual Private Network (VPN) – это различные технологии, которые позволяют создавать логические сети, использующие в качестве транспорта другие сетевые протоколы. При этом характеристики безопасности созданной логической сети могут отличаться от характеристик безопасности сети, которая используется в качестве транспорта. Такие сети могут создаваться на разных уровнях стека OSI исходной транспортной сети. Создаваемая логическая сеть не обязательно должна быть маршрутизируемой, она может обеспечивать соединение типа точка-точка.
VPN используются в двух основных сценариях:
- Для соединения двух удаленных локальных сетей, используя в качестве транспорта сеть с другими параметрами безопасности.
- Для входа удаленного пользователя в локальную сеть, используя в качестве транспорта сеть с другими параметрами безопасности.
При создании VPN всегда следует помнить, что безопасность компьютерной системы и сетевого трафика зависит от многих факторов. Развертывание VPN с использованием той или иной технологии является только частью комплексного подхода к обеспечению безопасности.
Безопасность, обеспечиваемая VPN, зависит от многих параметров операционного окружения, в котором VPN выполняется. Например, от безопасности ОС, источника случайных чисел, способов управления системой и т.д.
Рассмотрим основные протоколы создания VPN и проанализируем их характеристики с точки зрения безопасности создаваемых соединений, возможностей масштабирования и наличия каких-либо дополнительных возможностей.
Протоколы канального уровня
Терминология
Протокол РРР определяет механизм инкапсуляции для пересылки пакетов, принадлежащих любым сетевым протоколам, по каналам точка-точка 2 уровня. Обычно пользователь получает соединение канального уровня (так называемое L2-соединение) к Network Access Server (NAS), используя одну из технологий доступа типа точка-точка: dial-up POTS, ISDN, ADSL и т.п. Протокол РРР выполняется поверх данного соединения. В простейшем случае завершение L2-соединения и конечная точка РРР-протокола расположены на одном и том же физическом устройстве NAS.
L2TP расширяет возможности РРР, допуская, чтобы конечные точки L2 и РРР были расположены на разных устройствах, соединенных между собой сетью, по которой могут передаваться пакеты. При использовании L2TP пользователь создает L2-соединение с концентратором (например, модемом, ADSL DSLAM и т.п.), затем концентратор туннелирует отдельные РРР-кадры к NAS. Это позволяет обрабатывать РРР-кадры отдельно от точки завершения L2-соединения.
Одно очевидное преимущество такого разделения состоит в том, что вместо требования завершения L2-соединения на NAS (что может требовать тянуть провода на большие расстояния), соединение может заканчиваться на локальном концентраторе, который создает логическую РРР-сессию поверх разделяемой инфраструктуры такой, как frame relay или интернет. С точки зрения пользователя не существует различия между завершением L2 непосредственно на NAS или использованием L2TP.
Протокол L2TP определяет создание туннелей между двумя узлами и последующую инкапсуляцию туннелируемых РРР сессий.
В протоколах, выполняющих пересылку РРР-данных по сети Ethernet, используется следующая терминология.
L2TP концентратор доступа (L2TP Access Concentrator - LAC) | Узел, который является одной из конечных точек L2TP-туннеля. LAC является противоположной сто-роной L2TP сетевого сервера (LNS). LAC расположен между LNS и удаленной системой и перенаправляет пакеты к каждой из них. Пакеты, посылаемые от LAC к LNS, туннелируются по протоколу L2TP. Соедине-ние между LAC и удаленной системой является либо локальным, либо выполняется по протоколу РРР. Если вместо L2TP используется протокол РРТР, то аналогичный узел называется РРТР концентратор доступа – РАС. |
L2TP сетевой сервер (L2TP Network Server - LNS) | Узел, который является одной из конечных точек L2TP-туннеля. LNS является противоположной стороной LAC. LNS является логической конечной точкой РРР-сессии, которая туннелируется от удаленной системы с помощью LAC. LNS также является конечной точкой туннеля между LNS и LAC. Если вместо L2TP используется протокол РРТР, то аналогичный узел называется РРТР сетевой сервер – PNS. |
Сервер сетевого доступа (NAS) | Устройство, предоставляющее пользователям сетевой доступ по требованию. Этот доступ является доступом типа точка-точка, использующим PSTN или ISDN каналы. Функции NAS может выполнять и LAC, и LNS. |
L2TP/PPTP-туннель | Туннель между LAC и LNS. Туннель состоит из управляющего соединения и нуля или более L2TP-сессий. L2TP/PPTP-туннель передает инкапсулированные дейтограммы PPP и управляющие сообщения между LAC и LNS. |
L2TP/PPTP-сессия | В протоколах РРТР и L2TP определено понятие сес-сии. LNS и LAC поддерживают состояние для каждого вызова, который инициирован LAC или на который ответил LAC. L2TP-сессия создается между LAC и LNS, когда РРР-соединение установлено между удаленной системой и LNS. Дейтаграммы, относящиеся к РРР-соединению, посылаются по туннелю между LAC и LNS. Между установленными сессиями и соответствующими вызовами существует взаимнооднозначное соответствие. |
Управляющее соединение L2TP/PPTP | Управляющее соединение используется для установ-ление и поддержки как для сессий, так и самого L2TP/PPTP-туннеля и создается для каждой пары LАС, LNS. Управляющее соединение определяет все характеристики туннеля и связанных с ним сессий. |
Point-to-Point Protocol (PPP)
Обзор
Протокол РРР предназначен для создания не маршрутизируемых каналов, по которым передаются пакеты между двумя участниками. Каналы являются полнодуплексными и функционируют в обоих направлениях.
Протокол обеспечивает инкапсуляцию различных протоколов сетевого уровня в один канал.
Протокол РРР определяет способ передачи дейтаграмм по последова-тельным каналам. Протокол РРР состоит из следующих протоколов:
- Протокол управления каналом (Link Control Protocol – LCP) для установления, конфигурирования и тестирования последовательного соединения.
- Семейство протоколов управления сетью (Network Control Protocol – NCP) для установления и конфигурирования различных протоколов сетевого уровня.
Для согласования параметров канала используется протокол управления каналом LCP. Протокол LCP может также выполнять аутентификацию конечных точек канала.
В РРР-каналах необходимо задавать многие параметры маршрутизируемых сетевых протоколов. Например, назначение и управление IP-адресами. Для решения этих проблем используются протоколы управления сетью NCP.
Конфигурирование выполняется с помощью переговоров об используемом наборе опций. Для этого каждая сторона канала описывает противоположной стороне свои возможности и требования.
Для того, чтобы установить соединение точка-точка, каждый конец РРР-канала должен во-первых послать LCP-пакеты для конфигурирования и тестирования канала данных. После того, как канал установлен и выпол-нены переговоры о дополнительных опциях, которые необходимы LCP, РРР должен послать NCP-пакеты для выбора и конфигурирования прото-колов сетевого уровня. После того, как протокол сетевого уровня сконфигурирован, по каналу могут посылаться дейтаграммы.
Канал будет оставаться открытым до тех пор, пока явно не будет закрыт LCP- или NCP-пакетами, или пока не произойдет какое-нибудь внешнее событие.
Диаграмма состояний
В течение своего жизненного цикла РРР-канал проходит через следующие состояния.
Установление канала
Для установления соединения используется LCP-протокол, в котором выполняется обмен конфигурационными пакетами. Инициализация канала выполняется с помощью пакета Configure-Request, на который получатель отвечает Configure-Ack. Инициализация канала завершается, и состояние LCP становится открытым после того, как пакет Configure-Ack отправлен и получен.
Протоколом LCP конфигурируются только те опции, которые не зависят от конкретных протоколов сетевого уровня. Конфигурированием протоколов сетевого уровня занимается отдельные протоколы управления сетью (NCP).
Любые не-LCP-пакеты, полученные в этом состоянии, отбрасываются.
Получатель LCP-запроса на конфигурацию переходит в состояние пересылки дейтаграмм сетевого уровня после инициализации канала и выполнения аутентификации.
Аутентификация
В некоторых случаях перед обменом пакетами протокола сетевого уровня может требоваться аутентификация противоположной стороны.
Аутентификация должна иметь место сразу же после установления канала.
Переход из состояния аутентификации в состояние пересылки дейтаграмм сетевого уровня не происходит до тех пор, пока аутентификация не завершиться.