Насколько медленным должен быть мой VPN?
У меня есть настройка VPN между удаленным офисом с 2 ADSL-соединениями (8 Мб в нисходящем направлении, 512 Кб в восходящем направлении) и главным офисом с 10 Мб соединением EFM (10 Мб как вверх, так и вниз).
VPN представляет собой соединение IPSec с использованием маршрутизатора DrayTek 2930 для ADSL и маршрутизатора DrayTek 3200 на стороне EFM. Тем не менее, я не могу получить скорость через это соединение (протестировано с iperf), превышающую 600 КБ или около того, из основного офиса (трафик почти всегда будет из основного офиса в удаленный офис)
Хотя я понимаю, что есть издержки, и я никогда не собираюсь получать "полную" пропускную способность, доступную через эту VPN, я хотел бы думать, что есть кое-что, на что я должен обратить внимание, что может помочь улучшить его.
Я пытался использовать встроенные в DrayTek функции "VPN Trunking", которые должны балансировать нагрузку на соединения, но, похоже, это мало что меняет.
Я предполагаю, что мой вопрос - это та производительность, которую я должен ожидать от такого рода установки, и мне просто придется с этим смириться, или я смогу выжать что-то большее из этого с помощью некоторой магии VPN?
3 ответа
Проблема заключается в том, что многие более дешевые маршрутизаторы с VPN-сервером / клиентами не могут фактически использовать функциональные возможности VPN на скорости соединения (или даже на полной скорости глобальной сети).
Раньше я управлял организацией, в головном офисе которой был 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, что ограничивает пропускную способность в любом месте, кроме локальной сети. Читайте о продукте с задержкой пропускной способности. При нормальной работе современные ОС на лету корректируют размер окна TCP, но iperf переопределяет это поведение и по умолчанию использует окно TCP 8K.
Убедитесь, что вы не блокируете сообщения слишком большого размера ICMP внутри или вне VPN. Вы также должны убедиться, что маршрутизаторы правильно генерируют эти сообщения ICMP; они жизненно важны для пропускной способности TCP. И ваш DSL, и сам IPsec-туннель будут ограничивать максимальный размер пакета, который вы можете обработать, до чего-то гораздо меньшего, чем 1500 байтов. Также убедитесь, что вы не фрагментируете пакеты с битом "не фрагментировать", установленным на любом из ваших устройств.
Отключите балансировку нагрузки для ваших тестов, используя только одну ссылку. В зависимости от реализации это может привести к переупорядочению пакетов и снижению пропускной способности TCP. Если вы снова включите балансировку нагрузки после получения хорошей пропускной способности на одном канале, вы, вероятно, захотите только балансировать нагрузку на "IP-паре источник-назначение", если это вариант, не выбирайте "балансировка нагрузки на пакет".
Вещи, которые нужно отслеживать во время ваших тестов: использование канала, видимое маршрутизаторами, ЦП на хостах и маршрутизаторах, количество прерываний в секунду, отбрасывание пакетов в секунду, ошибки интерфейса, если таковые имеются.
Я предполагаю, что ваши маршрутизаторы выполняют все IPsec в программном обеспечении и не имеют крипто-разгрузки. Таким образом, выберите AES-128 и SHA-1 в качестве алгоритмов шифрования для туннеля IPsec; они используют около 20% ЦП по сравнению с 3DES+SHA-1 в программном обеспечении.
Отключите все другие функции на маршрутизаторах, такие как сканирование IDS/IPS, антивирусное сканирование, веб-фильтрация и т. Д. Они могут перегружать процессор или вызывать задержки в очереди.
Следите за буферной загрузкой и уменьшите любые чрезмерно большие буферы маршрутизатора, которые вы можете настроить, до чего-то реалистичного в зависимости от наблюдаемого вами времени пинга.
Проверьте в нерабочее время, чтобы убедиться, что вы не боретесь с нормальным движением.
При использовании IPsec с AES-128 и SHA-1 вы должны быть в пределах 10-20% от базового теста, не относящегося к VPN, при условии, что все работает правильно.
Просто прочитал это несколько лет спустя. :) Узким местом, указанным в исходном вопросе, является ограничение скорости загрузки 512 Кбит/с на удаленном конце, где находится VPN-сервер.
Например, если вы подключаетесь с ноутбука (независимо от того, какой протокол VPN вы используете) к VPN удаленного сайта, а затем выполняете тест скорости с помощью Speedtest.net со своего ноутбука, весь этот трафик теста скорости проходит через VPN-туннель. А поскольку скорость «загрузки» удаленной системы на ее конце ограничена примерно 512 Кбит/с, вы не увидите большего, чем скорость «Загрузки» на конце вашего ноутбука. Для вас это загрузка, но с удаленного сайта это загрузка трафика на ваш ноутбук через VPN-туннель. И, как мы уже установили, на удаленной стороне есть ограничение скорости загрузки 512 КБ. Ясно как грязь?
На самом деле вы получаете довольно хорошую скорость, если получаете 600 кбит/с, поскольку это больше, чем рейтинг загрузки 512 кбит/с на удаленном сайте.