Порядок проверки пропускной способности VPN для виртуальной сети
Подключение к VPN-шлюзу позволяет установить защищенное распределенное соединение между виртуальной сетью в Azure и локальной ИТ-инфраструктурой.
В этой статье описано, как проверить пропускную способность сети от локальных ресурсов до виртуальной машины Azure.
Примечание.
Эта статья помогает диагностировать и устранить распространенные проблемы. Если вам не удается решить проблему с помощью приведенных ниже сведений, обратитесь в службу поддержки.
Обзор
Подключение к VPN-шлюзу состоит из следующих компонентов:
- Локальное VPN-устройство (см. список проверенных VPN-устройств).
- Общедоступный Интернет
- VPN-шлюз Azure
- Azure
На следующей схеме показано логическое подключение между локальной сетью и виртуальной сетью Azure через VPN.
Расчет максимального ожидаемого исходящего и входящего трафика
- Определите базовые требования приложения к пропускной способности.
- Определите предел пропускной способности для VPN-шлюза Azure. Справочные сведения см. в разделе "Номера SKU шлюзов" в статье VPN-шлюз.
- Определите рекомендованную пропускную способность для используемого размера виртуальной машины Azure.
- Определите пропускную способность поставщика услуг Интернета (ISP).
- Вычислите ожидаемую пропускную способность, взяв за основу наименьшую пропускную способность виртуальной машины, VPN-шлюза или поставщика услуг Интернета (в Мбит/с) и поделив ее на 8. Это вычисление дает вам мегабайты в секунду.
Если расчетная пропускная способность не удовлетворяет базовым потребностям приложения, необходимо увеличить пропускную способность ресурса, который представляет собой узкое место. Чтобы изменить размер VPN-шлюза Azure, см. статью Изменение SKU шлюза. Чтобы изменить размер виртуальной машины, см. статью Изменение размера виртуальной машины. Если ожидаемая пропускная способность Интернета не обеспечивается, рекомендуется обратиться к поставщику услуг Интернета.
Примечание.
Пропускная способность VPN-шлюза — это совокупность всех подключений "сеть-сеть"/"виртуальная сеть-виртуальная сеть" или "точка — сеть".
Проверка пропускной способности сети с помощью средств повышения производительности
Эта проверка должна выполняться в неписаные часы, так как насыщенность пропускной способности VPN-туннеля во время тестирования не дает точных результатов.
Для этого теста мы используем средство iPerf, которое работает в Windows и Linux, а также имеет режимы клиента и сервера. Для виртуальных машин Windows его пропускная способность ограничена значением 3 Гбит/с.
Это средство не выполняет операции чтения и записи на диск. Оно лишь создает самостоятельно сформированный TCP-трафик с одного конца на другой. Средство формирует статистику по результатам эксперимента, измеряющего пропускную способность между узлами клиента и сервера. При тестировании между двумя узлами один выступает в качестве сервера, а другой — в качестве клиента. После завершения теста рекомендуется поменять эти роли местами, чтобы проверить пропускную способность как при отправке, так и при скачивании на обоих узлах.
Скачивание iPerf
Скачайте iPerf. Дополнительные сведения см. в документации по iPerf.
Примечание.
Продукты сторонних производителей, обсуждаемые в этой статье, разрабатываются компаниями, независимыми от корпорации Майкрософт. Корпорация Microsoft не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Запуск iPerf (iperf3.exe)
Включите правило NSG/ACL, разрешающее такой трафик (для тестирования общедоступного IP-адреса на виртуальной машине Azure).
На обоих узлах включите исключение брандмауэра для порта 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
.На узле сервера перейдите в каталог, куда извлекается iperf3.exe. Затем запустите iPerf в режиме сервера и настройте его для прослушивания порта 5001, как показано в следующих командах:
cd c:\iperf-3.1.2-win65 iperf3.exe -s -p 5001
Примечание.
Порт 5001 можно настроить с учетом определенных ограничений брандмауэра в вашей среде.
На узле клиента перейдите в каталог, куда извлекается средство iperf, и выполните следующую команду:
iperf3.exe -c <IP of the iperf Server> -t 30 -p 5001 -P 32
Клиент направляет 30 секунд трафика через порт 5001 на сервер. Флаг "-P" указывает, что мы делаем 32 одновременных подключений к узлу сервера.
Ниже представлены выходные данные для этого примера:
(НЕОБЯЗАТЕЛЬНО) Чтобы сохранить результаты тестирования, выполните следующую команду:
iperf3.exe -c IPofTheServerToReach -t 30 -p 5001 -P 32 >> output.txt
После завершения предыдущих шагов выполните те же действия, изменив роли на противоположные, чтобы узел сервера стал клиентом, и наоборот.
Примечание.
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.
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", обратитесь в службу поддержки Майкрософт для дальнейшего исследования проблемы.
Следующие шаги
Дополнительные сведения см. в следующих источниках: