Порядок проверки пропускной способности VPN для виртуальной сети

Внимание

Эта статья ссылается на CentOS, дистрибутив Linux, который приближается к состоянию конца жизни (EOL). Обратите внимание на использование и план соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.

Подключение к VPN-шлюзу позволяет установить защищенное распределенное соединение между виртуальной сетью в Azure и локальной ИТ-инфраструктурой.

В этой статье описано, как проверить пропускную способность сети от локальных ресурсов до виртуальной машины Azure.

Примечание.

Эта статья помогает диагностировать и устранить распространенные проблемы. Если вам не удается решить проблему с помощью приведенных ниже сведений, обратитесь в службу поддержки.

Обзор

Подключение к VPN-шлюзу состоит из следующих компонентов:

На следующей схеме показано логическое подключение между локальной сетью и виртуальной сетью Azure через VPN.

Логическое подключение сети клиента к сети MSFT с помощью VPN

Расчет максимального ожидаемого исходящего и входящего трафика

  1. Определите базовые требования приложения к пропускной способности.
  2. Определите предел пропускной способности для VPN-шлюза Azure. Справочные сведения см. в разделе "Номера SKU шлюзов" в статье VPN-шлюз.
  3. Определите рекомендованную пропускную способность для используемого размера виртуальной машины Azure.
  4. Определите пропускную способность поставщика услуг Интернета (ISP).
  5. Вычислите ожидаемую пропускную способность, взяв за основу наименьшую пропускную способность виртуальной машины, VPN-шлюза или поставщика услуг Интернета (в Мбит/с) и поделив ее на 8. Это вычисление дает вам мегабайты в секунду.

Если расчетная пропускная способность не удовлетворяет базовым потребностям приложения, необходимо увеличить пропускную способность ресурса, который представляет собой узкое место. Чтобы изменить размер VPN-шлюза Azure, см. статью Изменение SKU шлюза. Чтобы изменить размер виртуальной машины, см. статью Изменение размера виртуальной машины. Если ожидаемая пропускная способность Интернета не обеспечивается, рекомендуется обратиться к поставщику услуг Интернета.

Примечание.

Пропускная способность VPN-шлюза — это совокупность всех подключений "сеть-сеть"/"виртуальная сеть-виртуальная сеть" или "точка — сеть".

Проверка пропускной способности сети с помощью средств повышения производительности

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

Для этого теста мы используем средство iPerf, которое работает в Windows и Linux, а также имеет режимы клиента и сервера. Для виртуальных машин Windows его пропускная способность ограничена значением 3 Гбит/с.

Это средство не выполняет операции чтения и записи на диск. Оно лишь создает самостоятельно сформированный TCP-трафик с одного конца на другой. Средство формирует статистику по результатам эксперимента, измеряющего пропускную способность между узлами клиента и сервера. При тестировании между двумя узлами один выступает в качестве сервера, а другой — в качестве клиента. После завершения теста рекомендуется поменять эти роли местами, чтобы проверить пропускную способность как при отправке, так и при скачивании на обоих узлах.

Скачивание iPerf

Скачайте iPerf. Дополнительные сведения см. в документации по iPerf.

Примечание.

Продукты сторонних производителей, обсуждаемые в этой статье, разрабатываются компаниями, независимыми от корпорации Майкрософт. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.

Запуск iPerf (iperf3.exe)

  1. Включите правило NSG/ACL, разрешающее такой трафик (для тестирования общедоступного IP-адреса на виртуальной машине Azure).

  2. На обоих узлах включите исключение брандмауэра для порта 5001.

    Windows. Выполните следующую команду от имени администратора:

    netsh advfirewall firewall add rule name="Open Port 5001" dir=in action=allow protocol=TCP localport=5001
    

    Чтобы удалить правило после окончания тестирования, выполните следующую команду:

    netsh advfirewall firewall delete rule name="Open Port 5001" protocol=TCP localport=5001
    

    Linux в Azure. Образы Linux в Azure имеют нестрогие брандмауэры. Если приложение прослушивает порт, трафик разрешен. Для защищенных пользовательских образов может потребоваться явно открыть нужные порты. В число распространенных брандмауэров уровня ОС для Linux входят iptables, ufw и firewalld.

  3. На узле сервера перейдите в каталог, куда извлекается iperf3.exe. Затем запустите iPerf в режиме сервера и настройте его для прослушивания порта 5001, как показано в следующих командах:

    cd c:\iperf-3.1.2-win65
    
    iperf3.exe -s -p 5001
    

    Примечание.

    Порт 5001 можно настроить с учетом определенных ограничений брандмауэра в вашей среде.

  4. На узле клиента перейдите в каталог, куда извлекается средство iperf, и выполните следующую команду:

    iperf3.exe -c <IP of the iperf Server> -t 30 -p 5001 -P 32
    

    Клиент направляет 30 секунд трафика через порт 5001 на сервер. Флаг "-P" указывает, что мы делаем 32 одновременных подключений к узлу сервера.

    Ниже представлены выходные данные для этого примера:

    Выходные данные

  5. (НЕОБЯЗАТЕЛЬНО) Чтобы сохранить результаты тестирования, выполните следующую команду:

    iperf3.exe -c IPofTheServerToReach -t 30 -p 5001 -P 32  >> output.txt
    
  6. После завершения предыдущих шагов выполните те же действия, изменив роли на противоположные, чтобы узел сервера стал клиентом, и наоборот.

Примечание.

Iperf — не единственный инструмент. NTTTCP — это альтернативное решение для тестирования.

Тестирование виртуальных машин Windows

Загрузка Latte.exe на виртуальные машины

Скачайте последнюю версию Latte.exe.

Рекомендуется поместить Latte.exe в отдельную папку, например c:\tools

Разрешите доступ к Latte.exe в настройках брандмаэура Windows

В брандмауэре Windows на виртуальной машине-получателе создайте правило, разрешающее прием трафика Latte.exe. Проще разрешить саму программу Latte.exe по имени, чем входящий трафик через определенные TCP-порты.

Разрешите доступ к Latte.exe в настройках брандмаэура Windows

netsh advfirewall firewall add rule program=<PATH>\latte.exe name="Latte" protocol=any dir=in action=allow enable=yes profile=ANY

Например, если файл Latte.exe скопирован в папку "c:\tools", используйте следующую команду:

netsh advfirewall firewall add rule program=c:\tools\latte.exe name="Latte" protocol=any dir=in action=allow enable=yes profile=ANY

Запуск тестов задержки

Запустите Latte.exe на виртуальной машине-получателе (в командной строке, а не в PowerShell).

latte -a <Receiver IP address>:<port> -i <iterations>

Примерно 65 тысяч итераций достаточно, чтобы получить репрезентативные результаты.

Подходит любой доступный номер порта.

Для виртуальной машины с IP-адресом 10.0.0.4 команда будет выглядеть следующим образом.

latte -c -a 10.0.0.4:5005 -i 65100

Запустите Latte.exe на виртуальной машине-отправителе (в командной строке, а не в PowerShell).

latte -c -a <Receiver IP address>:<port> -i <iterations>

Результирующая команда такая же, как и для виртуальной машины-получателя, но необходимо добавить "-c", чтобы показать, что это "клиент" или "отправитель"

latte -c -a 10.0.0.4:5005 -i 65100

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

Тестирование виртуальных машин Linux

Используйте SockPerf для тестирования виртуальных машин.

Установите SockPerf на виртуальных машинах

Выполните приведенные ниже команды на виртуальных машинах Linux (отправителе и получателе), чтобы подготовить их к использованию SockPerf.

CentOS/RHEL — установка GIT и других полезных средств

sudo yum install gcc -y -q sudo yum install git -y -q sudo yum install gcc-c++ -y sudo yum install ncurses-devel -y sudo yum install -y automake

Ubuntu — установка GIT и других полезных средств

sudo apt-get install build-essential -y sudo apt-get install git -y -q sudo apt-get install -y autotools-dev sudo apt-get install -y automake

Bash -all

Из командной строки bash (предполагается, что Git установлен)

git clone https://github.com/mellanox/sockperf cd sockperf/ ./autogen.sh ./configure --prefix=

Выполняется медленнее, может занять несколько минут

make

Команда make install выполняется быстро

sudo make install

Запустите SockPerf на виртуальных машинах

Примеры команд после установки. Сервер или получатель — предполагается, что IP-адрес сервера — 10.0.0.4

sudo sockperf sr --tcp -i 10.0.0.4 -p 12345 --full-rtt

Клиент — предполагается, что IP-адрес сервера — 10.0.0.4

sockperf ping-pong -i 10.0.0.4 --tcp -m 1400 -t 101 -p 12345 --full-rtt

Примечание.

Убедитесь в отсутствии промежуточных прыжков (например, виртуального устройства) во время проверки пропускной способности между виртуальной машиной и шлюзом. При получении неудовлетворительных результатов предыдущих тестов iPERF/NTTTCP (с точки зрения общей пропускной способности), ознакомьтесь с этой статьей, чтобы понять основные факторы, которые могут быть возможными первопричинами проблемы:

В частности, анализ трассировок отслеживания пакетов (Wireshark/Network Monitor), собранных параллельно с клиента и сервера во время этих тестов, помогает оценить плохую производительность. Эти трассировки могут включать потери пакетов, высокую задержку, размер MTU. фрагментация, окно TCP 0, фрагменты неупорядоченного кода и т. д.

Решение проблем с низкой скоростью при копировании файлов

Даже если общая пропускная способность, оцененная с помощью предыдущих тестов (iPERF/NTTTCP/и т. д.), была хорошей, может возникнуть задержка при копировании файлов в Проводнике Windows или перетаскивании файлов в сеансе удаленного рабочего стола. Обычно эта проблема вызвана одним или обоими следующими факторами:

  • Приложения копирования файлов, такие как Windows Обозреватель и RDP, не используют несколько потоков при копировании файлов. Для повышения производительности используйте многопоточное приложение, например Richcopy, которое копирует файлы с помощью 16 или 32 потоков. Чтобы изменить число используемых потоков в Richcopy, выберите Action (Действие)>Copy options (Параметры копирования)>File copy (Копирование файлов).

    Проблемы с низкой скоростью при копировании файлов

    Примечание.

    Не все приложения работают одинаково, и некоторые приложения и процессы используют не все потоки. При выполнении теста можно увидеть, что некоторые потоки пусты и не могут дать точных результатов пропускной способности. Чтобы проверить производительность передачи файлов в приложении, используйте многопоточность. Постепенно увеличивайте или уменьшайте число потоков, чтобы определить оптимальную пропускную способность приложения или передачи файлов.

  • Недостаточная скорость чтения и записи виртуальной машины. Дополнительные сведения см. в статье Устранение неполадок службы хранилища Azure.

Внешний интерфейс для локального устройства

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

  • Шлюз на основе маршрутов. Политика или селектор трафика для VPN на основе маршрутов, настроенные по принципу "любой к любому" (или подстановочные знаки).

  • Шлюз на основе политик. VPN на основе политики шифрует и направляет пакеты через туннели IPsec в соответствии с комбинациями префиксов адресов между локальной сетью и виртуальной сетью Azure. Политика (или селектор трафика) обычно определяется как список доступа в конфигурации VPN.

  • Использование подключений UsePolicyBasedTrafficSelector : (UsePolicyBasedTrafficSelectors" для $True подключения настраивает VPN-шлюз Azure для подключения к брандмауэру VPN на основе политик в локальной среде. Если включен параметр PolicyBasedTrafficSelectors, то вместо режима "любой к любому" необходимо обеспечить соответствующие селекторы трафика для VPN-устройства со всеми комбинациями префиксов локальной сети (шлюза локальной сети) и префиксами виртуальной сети Azure.

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

Проверка задержки

Задержку можно проверить с помощью следующих средств:

  • WinMTR
  • TCPTraceroute
  • ping и psping (эти средства могут обеспечить хорошую оценку RTT, но использовать их можно не во всех случаях).

Проверка задержки

Если вы заметили пиковую задержку на любом из прыжков перед выходом на магистраль сети Майкрософт, рекомендуется обратиться за консультацией к поставщику услуг Интернета.

Если наблюдается значительное и необычное увеличение задержки на прыжках в "msn.net", обратитесь в службу поддержки Майкрософт для дальнейшего исследования проблемы.

Следующие шаги

Дополнительные сведения см. в следующих источниках: