У меня есть настройка VPN между удаленным офисом с 2 подключениями ADSL (8 Мб нисходящего потока, 512 Кб восходящего потока) и главным офисом с EFM-соединением 10 Мб (10 Мб и вверх, и вниз).
VPN представляет собой соединение IPSec с использованием маршрутизатора DrayTek 2930 для ADSL и маршрутизатора DrayTek 3200 на стороне EFM. Однако я не могу получить скорость по этому соединению (проверено с помощью iperf) для чего-либо более 600 Кб или около того из главного офиса (трафик почти всегда будет из главного офиса в удаленный)
Хотя я понимаю, что есть накладные расходы, и я никогда не получу «полную» пропускную способность, доступную через эту VPN, я хотел бы думать, что есть кое-что, на что я должен обратить внимание, что может помочь улучшить его.
Я пробовал использовать встроенные в DrayTek функции «VPN Trunking», которые должны балансировать нагрузку на соединения, но это, похоже, не сильно улучшает ситуацию.
Я предполагаю, что мой вопрос: такой производительности я должен ожидать от такого рода настройки, и мне просто придется с этим жить, или я должен выжать из этого что-то большее с помощью какой-то магии VPN?
Проблема заключается в том, что многие более дешевые маршрутизаторы с VPN-сервером / клиентами не могут фактически использовать функции VPN на проводной скорости (или даже на полной скорости WAN).
Раньше я управлял организацией, в головном офисе которой был установлен Draytek Vigor 2950, изначально подключенный к услуге 2 Мб, которую мы обновили до 50 Мб. Обычно к нему подключалось 10-15 удаленных сайтов с помощью Draytek Vigor 2800/2820.
Когда мы перешли на 50 МБ, мы обнаружили сайты, которые по-прежнему не могли использовать более 2 МБ пропускной способности VPN. Я использовал свой домашний компьютер в качестве VPN-клиента для подключения с использованием 10-мегабайтного соединения и все равно увидел аналогичные результаты.
Затем я заменил головной офис 2950 на маршрутизатор pfSense с двумя Xeon p4 и внезапно обнаружил гораздо большую пропускную способность VPN - повторение того же теста с моим домашним компьютером внезапно дало почти все 10 МБ полосы пропускания, доступные мне для тестирования.
Затем я намеревался протестировать 2950 с некоторыми 2800/2820 на стенде, но с улучшением, которое я увидел после замены 2950 на pfSense, я не видел смысла продолжать использовать 2950. На сайте 28 * 0 скорость немного увеличилась, но сайты с более быстрым (более 10 МБ) подключением по-прежнему не могли в полной мере использовать - я подозреваю, что из-за ограничений с 28 * 0.
Проведя еще немного исследований, я обнаружил команду для тестирования моего маршрутизатора pfSense из командной строки, которая показала, что шифрование через пропускную способность сильно зависит от размера пакета. Я подозреваю, что заявленная пропускная способность VPN в 90 Мб для 2950 использовала массивные пакеты, которых никогда не было в реальном мире, хотя, честно говоря, Draytek - не единственный поставщик, виновный в такой практике. Если вы можете изменить размер пакетов с помощью iperf, я не удивлюсь, если вы заметите различия.
После того, как вы подумали, достаточно ли мощны ваши устройства, чтобы поддерживать VPN-туннель со скоростью, на которую вы рассчитываете, следующим шагом будет рассмотрение устройств для оптимизации WAN, если позволяет ваш бюджет. Есть устройства, произведенные такими компаниями, как Riverbed Technologies и Cisco, которые стараются уменьшить фактический трафик, отправляемый через VPN, не вызывая при этом видимой разницы ни с одной стороны.
Также с помощью Drayteks вы можете попробовать включить сжатие vj, чтобы посмотреть, поможет ли это.
Чтобы найти узкое место, вам необходимо проводить сравнительный анализ и контролировать как можно больше во время тестов.
Запустите тест iperf между сайтами по одним и тем же ссылкам без включенного VPN. Это даст вам основу.
Какое у вас время приема-передачи через пинг? Вам может потребоваться использовать параметр -W команды iperf для увеличения размера окна TCP, поскольку по умолчанию он равен 8k fixed, что ограничивает пропускную способность для чего угодно, кроме локальной LAN. Следить за публикациями продукт задержки полосы пропускания. При нормальной работе современные ОС изменяют размер окна TCP на лету, но iperf отменяет это поведение и по умолчанию использует окно TCP размером 8K.
Убедитесь, что вы не блокирует слишком большие сообщения ICMP-пакета либо внутри, либо за пределами VPN. Вы также должны убедиться, что маршрутизаторы правильно генерируют эти ICMP-сообщения; они жизненно важны для пропускной способности TCP. И ваш DSL, и сам туннель IPsec ограничивают максимальный размер пакета, который вы можете обработать, намного меньше 1500 байтов. Также убедитесь, что вы не фрагментируете пакеты с битом do-not-fragment, установленным на любом из ваших устройств.
Отключите балансировку нагрузки по ссылкам для ваших тестов, используя только одну ссылку. В зависимости от реализации это может привести к переупорядочению пакетов и снижению пропускной способности TCP. Если вы повторно активируете балансировку нагрузки после получения хорошей пропускной способности на одном канале, вы, вероятно, захотите выполнить балансировку нагрузки только для «пары IP-адресов источника-назначения», если это возможно, не выбирайте «балансировку нагрузки по пакетам».
Что нужно отслеживать во время тестов: использование канала с точки зрения маршрутизаторов, ЦП на хостах и маршрутизаторах, количество прерываний в секунду, отбрасывание пакетов в секунду, ошибки интерфейса, если таковые имеются.
Я предполагаю, что ваши маршрутизаторы выполняют весь IPsec программно и не имеют криптографической разгрузки. Таким образом, выберите AES-128 и SHA-1 в качестве алгоритмов шифрования для туннеля IPsec; они используют около 20% ЦП по сравнению с 3DES + SHA-1 в программном обеспечении.
Отключите все остальные функции на маршрутизаторах, такие как сканирование IDS / IPS, антивирусное сканирование, веб-фильтрация и т. Д. Они могут сильно перегружать процессор или вызывать задержки в очереди.
Берегись буфери уменьшите количество буферов маршрутизатора слишком большого размера, которые вы можете настроить, до чего-то реалистичного на основе наблюдаемого времени проверки связи.
Проверьте в нерабочее время, чтобы убедиться, что у вас нет проблем с нормальным трафиком.
При использовании IPsec с AES-128 и SHA-1 вы должны быть в пределах 10-20% от базового теста, не связанного с VPN, при условии, что все работает правильно.