Файл: Принципы маршрутизации и преобразования ipтрафика в vpnсети, созданной с использованием технологии ViPNet.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 70
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Принципы маршрутизации и преобразования IP-трафика в VPN-сети, созданной с использованием технологии ViPNet
В публикации рассматриваются основные принципы маршрутизации и преобразования трафика в виртуальной сети ViPNet, которые обеспечивают взаимодействие узлов ViPNet при разных способах их подключения к телекоммуникационным сетям.
Публикация ориентирована на технических специалистов, которым нужно разобраться в специфике работы сети ViPNet. Например, в случаях, когда нужно оценить возможность ее внедрения или спланировать ее развертывание.
Для чтения статьи нужно иметь базовые представления об IP-сетях и межсетевых экранах.
Введение
Многие VPN-системы предназначены главным образом для безопасного соединения локальных сетей через Интернет и организации защищенного удаленного доступа к ресурсам. В случае, если наряду с данными задачами есть задача организации защиты трафика напрямую между узлами независимо от их месторасположения, в том числе внутри локальной сети, по схеме Peer-to-Peer, то использование таких систем сильно затрудняется. Технология ViPNet позволяет легко решить задачи VPN-связности узлов в любых топологиях.
Одним из выгодных отличий технологии ViPNet от классических VPN-систем является отсутствие каких-либо процедур синхронизации и выработки ключей в процессе сеансов обмена защищенной информацией между узлами ViPNet. Это свойство значительно повышает устойчивость системы и обеспечивает высокую надежность работы различных сетевых служб.
1.1 Компоненты виртуальной сети ViPNet
Виртуальная сеть строится с использованием компонентов ViPNet для различных операционных систем, программно-аппаратных комплексов ViPNet, а также готовых виртуальных машин для различных виртуальных сред. В виртуальную сеть могут включаться также мобильные устройства на платформах iOS, Android и других ОС, на которых установлены приложения ViPNet Client, разработанные для данных платформ.
Компьютеры и мобильные устройства с ПО ViPNet Client в дальнейшем именуются Клиентами. Клиенты обеспечивают сетевую защиту и включение в VPN-сеть отдельных компьютеров и устройств.
Компьютеры с ПО ViPNet Coordinator для Windows и Linux, программно-аппаратные комплексы ViPNet для больших и мелких сетей, индустриальные шлюзы безопасности различной мощности, координаторы ViPNet на виртуальных машинах в дальнейшем именуются Координаторами. Координаторы различного класса защищенности обеспечивают шифрование трафика туннелируемых ими сетевых ресурсов (как VPN-шлюзы), ретранслируют VPN-трафик между другими VPN-узлами, выполняют служебные функции по поддержанию связности защищенной сети и оптимизации маршрутов прохождения VPN-трафика между узлами.
Клиенты и Координаторы называются узлами виртуальной сети ViPNet или просто узлами ViPNet. Возможность обмена трафиком через защищенные каналы между узлами ViPNet (связи между узлами) централизованно задает администратор.
1.2 Функции координатора
Координаторы, как правило, устанавливаются на границе сетей и выполняют следующие функции:
-
VPN-шлюз — стандартная для классических VPN функция, реализующая создание защищенных каналов (туннелей) site-to-site и client-to-site между локальными и удаленными узлами. Координатор может создавать такой канал через каскад других координаторов, выполняющих функцию маршрутизации VPN-пакетов. -
Межсетевой экран — функция фильтрации открытых, защищенных и туннелируемых транзитных и локальных сетевых соединений, а также функция трансляции адресов для открытых и туннелируемых соединений. -
Сервер IP-адресов — функция автоматического обмена актуальной информацией о топологии сети между узлами ViPNet как внутри данной виртуальной сети, так и при взаимодействии с узлами других виртуальных сетей ViPNet. Обмен информацией осуществляется с помощью специального защищенного протокола динамической маршрутизации VPN-трафика (см. «Протокол динамической маршрутизации»). Результатом работы данного протокола является возможность маршрутизации VPN-трафика между узлами сети ViPNet по маршруту, оптимальному для используемого способа и места подключения узла к сети. -
Маршрутизатор VPN-пакетов — функция, обеспечивающая маршрутизацию транзитного VPN-трафика, проходящего через координатор на другие узлы ViPNet. Маршрутизация осуществляется на основании идентификаторов защищенных узлов, передаваемых в открытой части VPN-пакетов и защищенных от подделки имитовставкой, и на основании данных, полученных в результате работы протокола динамической маршрутизации VPN-трафика. Любой VPN-трафик, прошедший на координаторе маршрутизацию, отправляется на следующий или конечный узел ViPNet на IP-адрес и порт, по которому этот узел доступен. IP-адрес источника пакета заменяется на адрес интерфейса координатора, с которого ушел пакет. При работе в роли маршрутизатора VPN-пакетов координатор не имеет доступа к самим зашифрованным данным других узлов, а только выполняет их пересылку. -
Если клиент или координатор подключается к Интернету через устройство с динамическим NAT, то они недоступны напрямую для входящих инициативных соединений других узлов. В этом случае для организации доступа к ресурсам корпоративной сети за этим координатором или для соединения с таким клиентом с удаленных узлов один из координаторов во внешней сети определяется для них как сервер соединений, с которым они поддерживают постоянную связь. За счет функционала маршрутизатора VPN-пакетов сервер соединений служит промежуточным звеном для установления связи с таким узлом из внешней сети (с возможностью последующего перехода на прямое общение, подробнее см. «Соединение двух узлов, которые подключаются к Интернету через устройства с динамическим NAT»). -
Сервер соединений автоматически задается в настройках клиентов при их развертывании, и впоследствии его можно менять. Для координатора при необходимости сервер соединений можно задать в его настройках. -
Транспортный сервер — функция, которая обеспечивает доставку обновлений ключей, справочной информации, политик, обновлений ПО ViPNet из программ управления сетью ViPNet на защищенные узлы, а также маршрутизацию почтовых конвертов прикладного ПО ViPNet (например, программ ViPNet Деловая почта, Файловый обмен).
По умолчанию сервер IP-адресов является сервером соединений для клиента. При необходимости сервером соединений может быть назначен другой координатор.
2. Общие принципы взаимодействия узлов ViPNet в виртуальной сети
Узлы сети ViPNet могут располагаться в сетях любого типа, поддерживающих IP-протокол. Способ подключения узла к сети может быть любой: сеть Ethernet, PPPoE через XDSL-подключение, PPP через подключение Dial-up или ISDN, любая сеть сотовой связи, устройства Wi-Fi, сети MPLS или VLAN и другие.
2.1 Протокол динамической маршрутизации
Два узла в сети ViPNet могут взаимодействовать друг с другом, если администратор задал между ними связи в управляющем приложении (ViPNet Administrator). Для доступа к удаленным туннелируемым узлам нужно задать связь с туннелирующим их координатором. Задание связи между двумя узлами означает появление у двух узлов необходимой ключевой информации для организации защищенного VPN-соединения между ними.
У каждого клиента есть «свой» координатор — его сервер IP-адресов, сервер соединений и транспортный сервер (см. «Функции координатора». При необходимости можно настроить выполнение этих функций разными координаторами).
Постоянную возможность доступа узлов ViPNet друг к другу обеспечивает протокол динамической маршрутизации VPN-трафика, работающий на прикладном уровне ОС. Обмен служебными данными в рамках этого протокола происходит через те же VPN-соединения и, таким образом, защищен.
Работа протокола динамической маршрутизации заключается в автоматической передаче между узлами сети ViPNet актуальной информации о возможных способах доступа друг к другу, а также списков своих реальных IP-адресов. Протокол распространяет эту информацию не только в рамках своей сети ViPNet, но и также между узлами разных сетей ViPNet (если администраторы двух сетей договорились и обменялись между собой соответствующей информацией о связях между узлами двух сетей для защищенного взаимодействия в соответствии со своими задачами).
Ключевую роль в работе протокола играют координаторы, которые и обеспечивают все узлы сети необходимой информацией для организации связи. Выполняя функцию сервера IP-адресов, координаторы собирают информацию об актуальных способах доступа к «своим» клиентам. Далее серверы IP-адресов передают эту информацию на связанные с их клиентами узлы, напрямую или через некоторую цепочку других координаторов.
Для обеспечения защищенной передачи трафика в соответствии с задачами информационного обмена (далее целевого трафика) нужно задать связи между узлами, обеспечивающими защиту этого трафика (клиентами и туннелирующими координаторами), а также задать связи клиентов со «своими» координаторами, которые в большинстве случаев создаются автоматически.
Для обеспечения защищенной передачи трафика протокола динамической маршрутизации (далее служебного трафика) требуется также задать связи между координаторами, по цепочке которых должна передаваться информация о доступе к узлам. В небольших сетях для простоты можно связать координаторы по принципу «все со всеми». Однако в больших сетях с целью сокращения служебного трафика число связей между координаторами следует минимизировать и задавать связи исходя из следующих возможностей маршрутизации служебного трафика:
-
В рамках одной сети ViPNet информация передается по цепочке, в которой присутствует не более двух координаторов. То есть, если клиенты связаны между собой, то должны быть связаны между собой и координаторы, которые выполняют для этих клиентов функции сервера IP-адресов. -
При взаимодействии двух разных сетей ViPNet обмен служебным трафиком может происходить по цепочке до двух координаторов в каждой из сетей. Благодаря этому в каждой сети достаточно выделить один координатор (шлюзовой), через который будет происходить обмен с другой сетью, и связать его с таким же координатором в другой сети. А уже с этими координаторами связываются координаторы каждой из сетей, которые должны передать служебную информацию в другую сеть. При такой топологии шлюзовые координаторы становятся «единой точкой входа» в другую сеть, что упрощает и управление, и контроль межсетевого обмена. Естественно, если координаторы двух сетей связать напрямую, а не через выделенные шлюзовые координаторы, то информация будет передаваться более коротким путем.
В результате работы протокола динамической маршрутизации все узлы ViPNet владеют информацией о параметрах доступах к другим узлам, с которыми связаны. При этом во всех случаях целевой трафик между узлами независимо от маршрута служебного трафика пойдет кратчайшим путем, минуя координаторы, если это позволяет существующая сетевая инфраструктура (см., например: «Соединение двух узлов, которые подключаются к Интернету через устройства с динамическим NAT»).
2.2 Инкапсуляция
ПО ViPNet перехватывает весь сетевой трафик клиента или координатора. Трафик, предназначенный для передачи через защищенный канал на другой узел ViPNet, инкапсулируется в защищенные ViPNet IP-пакеты. Инкапсулируются исходные IP-пакеты любых протоколов (туннелирование на сетевом уровне).
При появлении любого IP-пакета в адрес других узлов ViPNet, с которыми есть связь, пакет без каких-либо протоколов предварительного установления соединений с узлом-получателем шифруется, инкапсулируется в ViPNet-пакет и передается через VPN-сеть на узел-получатель.
Определенные модификации координаторов также поддерживают построение туннелей на канальном уровне (L2 OSI), что позволяет объединить в единую локальную сеть удаленные сегменты сетей. В этом случае в защищенные ViPNet IP-пакеты (UDP-протокол) инкапсулируются Ethernet-кадры любых сетевых протоколов, а не только IP.
Для инкапсуляции в ViPNet-пакеты используются два типа IP-протокола:
-
IP/UDP с портом источника 55777 по умолчанию или любым другим портом, который автоматически регистрируется на других узлах. -
IP/241 — используется при взаимодействии узлов в одной локальной сети.
Для взаимодействия узлов в одном широковещательном домене автоматически используется протокол IP/241, у которого меньше накладные расходы благодаря отсутствию дополнительных UDP-заголовков.
Для инкапсуляции трафика между узлами в одном широковещательном домене используется протокол IP/241
В других случаях автоматически используется протокол UDP, для которого легко организовать прохождение IP-пакетов через любые типы межсетевых экранов и устройства с NAT. При формировании защищенных UDP-пакетов узлы по умолчанию задают порт источника 55777 (порт инкапсуляции), но в их настройках можно задать произвольный порт, который благодаря протоколу динамической маршрутизации станет известен и другим узлам для организации доступа по этому порту. При прохождении через устройства NAT в сети порт источника в пакетах может поменяться. Информация об этом также станет известной другим узлам для организации прохождения встречного трафика.
Для инкапсуляции трафика между узлами, разделенными NAT-устройством, используется UDP-протокол
Бывают случаи, когда передача UDP-пакетов запрещена Интернет-провайдером, и взаимодействие защищенных узлов по UDP-протоколу невозможно. Например, UDP-трафик бывает запрещен при использовании точек доступа в гостиницах и других общественных местах.