Теория
Часть 1
Часть 2
Часть 3
Часть 4
Часть 5

Практика
Часть 1
Часть 2
Часть 3
Часть 4
Часть 5
Часть 6

Руководство
Часть 1
Часть 2
Часть 3
Часть 4
Часть 5
Часть 6
Часть 7
Часть 8
Часть 9
Часть 10
Часть 11

О Проекте
О SoftEther VPN
Спецификация
Вопрос-ответ
Соглашение
Лицензия

Теория (часть 4)

4. Большая пропускная способность и высокая доступность.

4.1. Высокооптимизированная работа VPN модулей.

SoftEther VPN имеет высокооптимизированные VPN модули в ядре, написанные строго на языке Си. Архитектура этого дизайна является полностью современной, для того чтобы обеспечить наилучшую производительность на современных широкополосных подключениях к Интернету.

Сравнения.

Устаревшие протоколы VPN, такие как L2TP или PPTP, унаследовали неправильное поведение от древнего протокола PPP (Point-to Point Protocol). Протокол PPP предназначен для передачи пакетов по низкоскоростным телефонным линиям. Его применение на современных высокоскоростных каналах подключения к Интернету плохая идея.
Согласно исследованию, проведенному в университете Цукуба в 2006, пропускная способность SoftEther VPN в 4 раза быстрее, чем PPTP-VPN. А также в 13 раз быстрее, чем OpenVPN. Почти все другие VPN протоколы и их реализации не достигают высокой пропускной способности.

Почему SoftEther VPN так быстр?

При разработке SoftEther VPN одной из главных целей было достижение высоких показателей производительности. Другие виртуальные частные сети были разработаны только для целей обеспечения безопасности. SoftEther VPN имеет две главные цели безопасность и производительность. Таким образом, архитектуры VPN, связанные с обработкой VPN пакетов, совершенно разные.

Уменьшение количества копирований в памяти.

Копирование содержимого памяти всегда уменьшает скорость программ. SoftEther VPN разрабатывался так, чтобы уменьшить количество копирований в памяти в каждом цикле обработки VPN пакета.

Устранение проблем с MTU.

По умолчанию компьютеры используют MTU (максимальная единица передачи данных) равное 1514 байт, поскольку это стандартный размер пакета Ethernet без FCS. И практически нет способа определить оптимальный размер MTU при передачи этого пакета через VPN.
Устаревшие протоколы VPN, такие как IPsec, PPTP и L2TP, не подходят для передачи Ethernet пакета с таким значением MTU. Существует серьезная проблема, называемая "проблемой MTU", присущая устаревшим VPN, которая возникает из-за ограничения связанного с тем, что устаревшие VPN должны передавать пакеты через туннели, состоящих из датаграмм физической линии.
Если компьютер передает пакеты с полным размером (1514 байт) через Ethernet сегмент, он получит наибольшую пропускную способность. Но если между двумя компьютерами существует устаревшая VPN, производительность будет почти вдвое ниже. Каждый пакет будет разбит на два пакета из-за проблемы MTU. Увеличение общего количества пакетов уменьшит общую пропускную способность.
В идеальном случае эта проблема может быть решена с помощью протокола PMTU Discovery и соответствующих настроек на конечных узлах. Но Path MTU Discovery бесполезен в реальной сети. И установить соответствующие настройки MTU на всех компьютерах сети невозможно.
В отличие от устаревших VPN, SoftEther VPN применяет механизм потокового туннелирования. SoftEther VPN оптимизирует отправку пакетов блоками, заполненными Ethernet пакетами по 1514 байт, через VPN туннель. Пакеты будут объединены в пачку и будут рассматриваться как единый блок целиком. SoftEther VPN обернёт весь блок протоколом HTTPS и SSL, и, наконец, он будет отправлен в физическую сеть. В этом случае будет наблюдаться лишь небольшое увеличение количества пакетов при туннелирования, а это обеспечивает хорошую производительность.

4.2. Механизм параллельной передачи по нескольким туннелям.

Чтобы обеспечить хорошую проходимость через брандмауэр, прокси и NAT, SoftEther VPN использует протокол HTTPS. Но протокол HTTPS основан на TCP, а TCP плохо себя ведёт в случае большого числа потерь и задержек пакетов.
Поэтому SoftEther VPN применяет дополнительные расширения протокола HTTPS. Они называются "механизм параллельной передачи". Пользователь может настроить количество параллельных каналов передачи данных в диапазоне от 1 до 32. В медленных сетях и сетях с большими задержками эта настройка приводит к хорошим результатам пропускной способности.
Если эта функция включена, логический сеанс VPN будет состоять из нескольких TCP соединений (HTTPS). Все пакеты будут добавлены к одному из соответствующих TCP соединений из расчета модулей оптимизации. Если в TCP-соединении логического VPN сеанса обнаружены некоторые потери пакетов, тогда новый пакет будет использовать другое здоровое TCP-соединение. Это определение потерь и быстрое переключения между TCP-соединениями обеспечивает высокую пропускную способность.

Логический VPN сеанс состоит из нескольких TCP подключений для повышения пропускной способности сети с большими задержками. 

ВЫ можете указать число параллельных TCP-подключений для создания логического сеанса VPN.

4.3. Подальше от глаз брандмауэра, маскировка под обычное HTTPS соединение.

Некоторые наиболее умные брандмауэры доступные на современном рынке могут обнаруживать аномальное поведение TCP-соединений, проходящих через них. VPN-сеанс SoftEther VPN может быть обнаружен по ненормальному поведению TCP-подключения и прерван таким брандмауэром при выходе через него в сеть Интернет. Это станет причиной нестабильной работы VPN.
Поэтому SoftEther VPN использует протокол HTTPS в качестве туннеля для передачи внутренних VPN пакетов, соединение HTTPS/TCP будет двунаправленным. В стандартном HTTPS протоколе имеется ограничение на максимальное количество переключений направления передачи данных в одном и том же TCP сеансе от момента его создания и до завершения. Это значения равно 15, так определено в RFC протокола HTTP 1.1. Если SoftEther VPN использует одно соединение HTTPS/TCP для целей туннелирования, то число переключений направлений передачи может превышать 15. Это недопустимо при использовании HTTPS при передаче обычного web-трафика. После превышения переключений направления трафика смарт-брандмауэр, который имеет режим Полной-Пакетной инспекции, будет обрывать такую HTTPS сессию.
У SoftEther VPN имеется два способа снизить риск обнаружения аномального поведения HTTPS соединения. Во-первых, SoftEther VPN делит все TCP-подключения из которого состоит логический VPN сеанс на две группы. Первая группа используется только для передачи данных от клиента к серверу(uplink), а другая группа-только для передачи данных от сервера к клиенту(downlink). Эта дешевая уловка приводит к отсутствию переключения направления трафика внутри одного HTTPS соединения. Во-вторых, SoftEther VPN устанавливает время жизни для каждой из подключенных TCP-сессий. Брандмауэр может обнаружить слишком длинное TCP соединение, посчитать его аномальным и завершить его. Для того, чтобы избежать этого SoftEther VPN периодически сам завершает старые TCP-соединения и устанавливает новые.
Эти два механизма могут помочь обойти обнаружение брандмауэром с полной пакетной инспекцией VPN соединения.

Логический сеанс VPN состоит из множества TCP-подключений.
Каждое подключение TCP имеет короткий срок жизни.
Брандмауэр не может идентифицировать их как VPN соединение.

4.4. Виртуальный NAT и виртуальный DHCP-сервер.

DHCP-сервер рекомендуется размещать в Ethernet сегменте, чтобы автоматически назначать IP-адреса VPN-клиентам из пула. Но если вы не хотите тратить ресурсы и делать отдельный DHCP-сервера в Ethernet сегменте, можно настроить функцию виртуального DHCP на виртуальном концентраторе. Виртуальный DHCP-сервер будет реальным DHCP-сервером. Его функциональность ограничена, но вы можете пользоваться всеми стандартными DHCP функциями.
Функция Виртуального NAT`а также реализуется на виртуальном концентраторе. Эта функция полезна, если нельзя использовать функции локального моста, но по-прежнему требуется доступ к физической локальной сети из виртуального концентратора, например, при удаленном доступе VPN. Виртуальный NAT работает в пользовательском режиме ОС и не зависит от драйверов режима ядра. Таким образом, если установка VPN-сервера SoftEther ограничена в правах, можно по-прежнему использовать доступ к физической локальной сети с помощью функции виртуального NAT`а.
Обратите внимание, что реализованная функция виртуального NAT`а имеет ограниченное применение, она подойдёт для временного использования или экстренной ситуации. Но не рекомендуется использовать его в качестве повседневной работы компании.
Сочетание виртуального NAT и виртуального DHCP-сервера на виртуальном концентраторе называется «SecureNAT».

Окно с настройками функций "Виртуальный NAT" и "Виртуальный DHCP" 

Можно задать свойства виртуального IP-интерфейса для функции Virtual NAT и DHCP-сервера.

4.5. Поддержка QoS.

QoS (качество обслуживания) поддерживается, чтобы помечать VoIP пакеты наивысшим приоритетом. Можно включить QoS, чтобы повысить качество голосовой связи через VPN в ситуации, когда имеется большая загрузка другими данными, передаваемыми по одной и той же VPN сети.

4.6. Симулятор задержки, дрожания и потери пакетов.

Виртуальные концентраторы SoftEther VPN могут создавать задержки, джиттер и потери пакетов в целях имитации физических сетей в плохом состоянии. Эта функция может быть полезной, если архитектор сети хочет проверить в лабораторных условиях, что произойдет, если будут задержки, джиттер или потери пакетов.

Генератор задержек и потери пакетов.

4.7. Кластеризация.

SoftEther VPN-сервер может создать кластерную ферму. Это означает, что два или более компьютеров с SoftEther VPN-сервером могут стать группой для обслуживания VPN-подключений, как если бы это был только один VPN-сервер.

Балансировка нагрузки.

При создании кластера из нескольких VPN-серверов все сеансы VPN-клиентов будут балансироваться между узлами VPN кластера. Без балансировки нагрузки на VPN-сервере можно разместить только несколько тысяч VPN сеансов. Однако балансировка нагрузки позволит разместить несколько десятков тысяч VPN сеансов.

Отказоустойчивость.

В кластере VPN, если один узел выйдет из строя из-за проблем с оборудованием, все VPN сеансы, подключенные к этому серверу-узлу, будут автоматически перенаправлены на другие работоспособные серверы. Пользователям и администраторам в этом случае вручную ничего делать не надо, а инженеры могут спокойно заняться починкой неисправного сервера.

VPN кластер состоит из большого числа VPN-серверов узлов кластера. 

Создать кластер просто. Это можно сделать только через графический интерфейс пользователя.

4.8. Полная поддержка IPv6.

SoftEther VPN поддерживает IPv6. Это означает, что не только все функции безопасности и управления, такие как фильтрация пакетов, могут обрабатывать пакеты IPv6, но также можно установить VPN туннель через IPv6 Интернет.
Например, если Интернет-провайдер поддерживает только IPv6 для глобальной коммуникации, можно установить SoftEther VPN-сеанс через магистраль IPv6-сети, и в этом VPN сеансе можно гонять любые типы пакетов Ethernet, включая IPv4.
Можно легко установить IPv4 в IPv4, IPv4 в IPv6, IPv6 в IPv4 и IPv6 в IPv6.

Виртуальный концентратор полностью понимает IPv4 и IPv6. 

Можно определить правила фильтрации пакетов IPv6 на виртуальном концентраторе, аналогично как для пакетов протокола IPv4.

4.9. Средства проверки пропускной способности как физической, так и VPN сети.

Чтобы доказать фактическую пропускную способность как VPN, так и исходной физической сети, рекомендуется использовать средство проверки пропускной способности, реализованное в SoftEther VPN в качестве бесплатного подарка. Без каких-либо посторонних продуктов измерения пропускной способности каналов можно проверить скорость используя этот инструмент.

Средство проверки скорости сетевого трафика. Удобно для измерения возможностей физической и виртуальной сети. 

Пример результатов инструмента проверки скорости трафика.

  © SoftEther Проект