Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами разобрали применение очень полезной утилиты Robocopy, с помощью которой мы мигрировали данные файлового сервера. В сегодняшней статье я хочу вас познакомить с утилитой Iperf, я разберу ее установку, примеры ее использования в вашей инфраструктуре. Хочу отметить, что она должна быть частью вашего административного набора программ.
Что такое Iperf
В жизни каждого системного администратора наступает такая ситуация, что у него есть проблемы со скоростью сети между серверами, как физическими, так и виртуальными. В такой ситуации необходимо произвести тестирования пропускной способности сетевого канала между участниками.
Iperf — это бесплатная сетевая утилита с открытым кодом, которая позволяет вам протестировать и определить пропускную способность сети между серверами на базе Windows и Linux. Так же Iperf-у можно дать и такое определение, это инструмент для активных измерений максимально достижимой полосы пропускания в IP-сетях. Он поддерживает настройку различных параметров, связанных с синхронизацией, буферами и протоколами (TCP, UDP, SCTP с IPv4 и IPv6). Для каждого теста он сообщает о пропускной способности, потерях и других параметрах.
IPerf. Как измерить скорость сети?
Виды и версии Iperf
Сама утилита работает по умолчанию в режиме командной строки, но у нее так же есть надстройка на Java, для графического интерфейса. Так же есть две независимых ветки у данного инструмента по тестированию сети. Первая ветка, это Iperf2, вторая Iperf3.
Какова история iperf3 и в чем разница между iperf2 и iperf3?
iperf2 был заброшен в конце 2000-х годов на версии 2.0.5, несмотря на некоторые известные ошибки и проблемы. Потратив некоторое время на решение проблем с iperf2, ESnet к 2010 году решила, что нужен новый, более простой инструмент, и приступила к разработке iperf3. Цель состояла в том, чтобы сделать инструмент как можно более простым, чтобы другие могли внести свой вклад в код. По этой причине было решено сделать инструмент однопоточным и не беспокоиться о обратной совместимости с iperf2.Многие запросы функций для iperf3 поступили из проекта perfSONAR ( http://www.perfsonar.net).
На момент написания статьи (2019), iperf2 и iperf3 активно (хотя и независимо) разрабатываются. Я рекомендуем ознакомиться с обоими инструментами и использовать те функции, которые лучше всего соответствуют вашим потребностям.
Основные отличия Iperf2 и Iperf3
Каждый из этих инструментов имеет несколько разные функции и немного другую архитектуру, поэтому не стоит ожидать, что какой-то один инструмент будет иметь все необходимое. Лучше быть знакомым с несколькими инструментами и использовать правильный инструмент для вашего конкретного случая использования. Одно ключевое отличие заключается в том, является ли инструмент однопоточным или многопоточным. Если вы хотите протестировать производительность параллельного потока, вы должны использовать многопоточный инструмент, такой как iperf2, хотя в iperf3 так же можно сделать костыль.
Обратите внимание, что по умолчанию Iperf3 официально не поддерживается в Windows, но это не означает, что он там не будет работать, могут быть нюансы и глюки
Обратите внимание, что все три из этих инструментов находятся в активной разработке, и список уникальных функций для данного инструмента, вероятно, со временем изменится. Исходя из моего опыта, я рекомендуем следующее:
- Используйте iperf2 для параллельных потоков, двунаправленных тестов или тестов на базе MS Windows.
- Используйте nuttcp или iperf3 для высокоскоростного тестирования UDP
Где скачать Iperf
Загрузить утилиту можно из разных источников. Если мы говорим про Linux, Unix версии, то вы можете использовать ссылку с github:
https://github.com/esnet/iperf/releases
Если нужно скачать Iperf для Windows, то воспользуйтесь ссылкой с моего ресурса:
Загрузка Iperf3 Windows и с графическим интерфейсом или же с https://sourceforge.net/projects/iperf2/files/
Как установить Iperf в Windows
Скачать отдельно cygwin1.dll можно по ссылке https://sourceforge.net/projects/cygwin1-dll/files/
Далее вы открываете командную строку, желательно от имени администратора. После чего пишите команду:
cd и путь до exe файла iperf, например
cd C:Tempiperf-2.0.14a-win
После чего вывод списка файлов командой dir
аналогично делаем и в случае с третьей версией утилиты.
Как установить Iperf в CentOS 7
Начнем с установки Iperf2, для этого выполните команду:
yum install iperf
У вас должна выскочить ошибка
Failed to synchronize cache for repo ‘AppStream’, ignoring this repo.
Failed to synchronize cache for repo ‘BaseOS’, ignoring this repo.
Failed to synchronize cache for repo ‘extras’, ignoring this repo.
No match for argument: iperf
Error: Unable to find a match
Давайте посмотрим список репозиториев, делается это командой:
yum repolist
Как видим, список будет вот такой:
CentOS-7 — AppStream
CentOS-7 — Base
CentOS-7 — Extras
Напоминаю, что утилита Iperf является дополнительным пакетом, который не входит в основные репозитории, это прекрасно описано в Вики http://fedoraproject.org/wiki/EPEL. Дополнительные пакеты для Enterprise Linux (EPEL) — это одобренный сообществом репозиторий, который указан в вики CentOS в разделе «Доступные репозитории для Linux», в котором отмечается, что хотя репозитории сообщества не связаны с проектом CentOS, эти репозитории часто рекомендованы сообществом. Выполните команду:
ls /etc/yum.repos.d
Как видите в файле yum.repos.d прописаны подключенные репозитории, и тут не хватает репозитория epel-release.
Давайте установим epel-release, для этого выполните:
yum install epel-release
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
Пробуем теперь посмотреть список репозиториев в файле yum.repos.d и видим, что epel появился.
Произведем установку Iperf
yum install iperf
Все успешно выполнено. Конечно вам никто не запрещает подключить репозиторий от седьмой версии CentOS в восьмую, но они могут конфликтовать в будущем по зависимостям. Поэтому, если у вас CentOS 8, то я рекомендую сделать вот так.
Установка iperf на CentOS 8
Ранее, я так же установил CentOS 8 в тестовой среде. Хочу отметить, что если вы попытаетесь добавить репозиторий epel-release командой:
yum install epel-release или yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
То он успешно установится, но когда вы попытаетесь сделать поиск iperf по нему, то обнаружите, что восьмая ветка не содержит данной утилиты.
dnf repository-packages epel list | grep -i iperf
Как я и писал выше не желательно устанавливать epel 7 и 8 версии репозитория, я лично в такой ситуации просто выхожу подобным образом. Я открываю сайт https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/ и ищу нужный мне пакет, копирую на нужный мне прямую ссылку.
Далее я устанавливаю в CentOS 8 пакет wget, для этого выполняем:
yum install wget -y
Далее скачиваем пакет, ссылку на который мы заранее выяснили.
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/i/iperf-2.0.13-1.el7.x86_64.rpm
Далее производим установку iperf2 в системе, через выполнение команды:
rpm -ivh iperf-2.0.13-1.el7.x86_64.rpm
Так же для CentOS 8 рекомендуется включить репозиторий PowerTools, поскольку пакеты EPEL могут зависеть от пакетов из него
dnf config-manager —set-enabled PowerTools
Установка iperf3 в CentOS 7 и 8
В CentOS 8 с установкой Iperf3 еще проще, так как это пакет является уже частью стандартных репозиториев, чтобы его поставить просто введите:
yum install iperf3
Если мы имеем дело с CentOS 7 и ниже, то нужно добавлять репозиторий epel-release
yum install epel-release
Открытие портов Iperf на CentOS
После того. как вы произвели инсталляцию пакета, вам необходимо открыть порты, которые будет слушать ваша служба при подключении к ней. Напоминаю, что порты по умолчанию у iperf и iperf3, это 5201. Для решения этой задачи мы выполним две команды:
firewall-cmd —permanent —add-port=5201/tcp
firewall-cmd —permanent —add-port=5201/udp
Проверим слушает ли сервер входящие подключения по порту 5210, для этого выполните:
Продолжение следует.
Популярные Похожие записи:
- Набор администрирования AD RMS SP2 Administration Toolkit
- Установка NuGet в Windows
Что такое виртуальный сетевой адаптер и в каких случаях он может пригодиться?
- Сравнение маршрутизаторов Cisco и Juniper, что лучше в 2022 году?
Инструменты управления DNS сервером
Установка DIG в Windows, за минуту
One Response to Iperf, установка и примеры использования тестирования сети
Очень крутая утилита, спасибо, что поделились методом установки Iperf в CentOS 8, не знал, что они поменяли слегка этот принцип.
Источник: pyatilistnik.org
Как пользоваться утилитой iperf на компе с ОС Windows, ее установка и опции
Узнать, как воспользоваться iperf в ОС Windows не так сложно. А польза от данных знаний несомненна. Материала на тему обычно встречается немного, да и объяснения там далеки от понятных. Попытаемся разобраться, как действует утилита. Для чего она предназначена. Программа работает под Windows, Linux, имеет несколько разновидностей.
Настройка, если вникнуть, позволит воспользоваться всеми возможностями программы.
Что такое iperf?
Iperf представляет собой специализированное ПО, предназначенное для оценки пропускной способности канала. Тонкость состоит в том, что необходимы 2 ПК. Один будет работать как сервер, другой – как клиент. И на обоих нужны установленные iperf. По поводу замера скорости существует 2 разновидности:
- на выходе;
- на входе.
В первом варианте компьютер будет работать как «клиент». Во втором – как «сервер».
Что умеет?
Ipref служит для замера пропускной способности канала. В утилите имеется несколько настраиваемых параметров. Работает с протоколами TCP, UDP, SCTP, IPv4, IPv6. Для сисадмина iperf – незаменимый инструмент. Главное, что ПО бесплатно, не требует расходов на покупку, лицензирование.
Различают 2 разновидности iperf: iperf2 и iperf3. Они действуют независимо друг от друга. Допускается использовать посредством Командой строки Windows. Либо в оболочке Java с графическим интерфейсом.
Установка ipref
Для начала утилиту iperf следует скачать. Она не входит в сборки Windows, не является частью ОС. Загружают iperf отдельно. Можно скачать здесь, предварительно выбрав требуемую разрядность ОС:
Дожидаемся завершения загрузки iperf. Проще всего сразу скачивать файл инсталляции на системный диск. Казалось бы, можно запустить утилиту и пользоваться. Но нет. Ничего не получится.
Следует воспользоваться Командной строкой.
- Запустить Командную строку (в Windows 10 ввести «cmd» в поиске).
- Ввести «cd c:/» (если утилита находится на данном диске).
- Далее, для использования в качестве клиента, вводится сочетание: «iperf -c -t 30 -i 10». Здесь «t» задает время теста, а «i» – периодичность обновления данных.
Если будет архивный файл дистрибутива iperf, то его перед установкой потребуется распаковать. Иногда необходимо запускать утилиту под учетной записью Администратора. Список доступных команд появится после ввода «dir». Обязательно скачивается наиболее свежая версия ПО. Выбрать «двойку» или «тройку» iperf – решать самому пользователю.
Синтаксис и опции
Применительно к синтаксису ПО iperf следует понимать, что клиентская и серверная части существуют независимо друг от друга. И значит, запускаются различными командами. Вот как нужно действовать применительно к каждой ситуации:
- для сервера – $ iperf3 -s опции;
- для клиента – $ iperf3 -c адрес_сервера опции;
Когда разобрались с запуском, можно переходить к командам, опциям программы. Их перечень обширен, но и здесь не так сложно вникнуть, если захотеть. Начнем с общих.
Ввод «-p» определяет порт для подключения. «-f» означает формат данных для отображения на дисплее. Доступны килобиты, мегабиты, килобайты, мегабайты в секунду. Остальные команды перечислены ниже:
- «-i» означает интервал в демонстрации данных теста iperf;
- «-F» задает использование информации из файла (а не генерации случайных показателей);
- «-l» позволяет определить размер буфера (изначально установлено 8 килобайт);
- «-m» отсылает к сегменту, его величине;
- «-o» выводит результаты для записи в файл;
- «-p» устанавливает порт привязки (5201 в пресете);
- «-u» задает UDP сетевой протокол;
- «-w» управляет размером окна;
- «-B» привязывает к интерфейсу, хосту;
- «-J» запускает переход к JSON-формату.
Это были базовые команды. Далее перейдем к серверным.
Опции для сервера
Данные действия предназначены для управления приложением ipref на серверном компьютере. Вот что приготовили разработчики:
- «-s» задает работу в режиме сервера;
- «-D» активирует фоновый запуск;
- «-I» устанавливает путь сохранения PID-файла;
- «-1» назначает однократное клиентское подключение с последующим выходом.
Не так много, как бы хотелось. Для режима «клиент» выбор побогаче.
Опции для клиента
Как уже известно, приложение iperf может работать в 2 базовых режимах. Вот что доступно для ПК клиента:
- «—sctp» включает замену сетевого протокола TCP на SCTP;
- «-u» переключает на протокол UDP;
- «—connect-timeout» позволяет задать время начального подключения к серверу (измеряется в миллисекундах);
- «-b» означает скорость, битрейт. В режиме TCP ничем не ограничен, для UDP протокола задан от 1 мегабита в секунду;
- «-t» устанавливает время на прогонку теста. Измеряется в секундах. Изначально параметр задан в 10 секунд;
- «-R» запускает реверс. То есть измерение производится не от клиента к серверному ПК, а в обратном направлении;
- «-P» определяет число действующих потоков;
- «-w» регулирует размеры окна TCP.
Кроме того, доступно принудительное переключение на настройки протокола IPv4 (ввести «-4»), IPv6 («-6»).
Как пользоваться в операционной системе Windows
Прежде всего, следует выбрать требуемую версию приложения iperf. Она зависит от разрядности Windows, ее версии – 7, 8, 10. Когда определена нужная разновидность, скачивают дистрибутив, устанавливают ПО. Затем запускают Командную строку, это базовый режим работы iperf. Обязательно следует использовать учетную запись Администратора.
Далее принимается решение, какой параметр пропускной способности будет измеряться. То есть, станет приложение iperf определять скорость для сервера либо же для клиентского ПК.
Примеры
Проще всего понять работу приложения на конкретном примере. Тогда станет понятно, что происходит в iperf. А также, что именно, как там измеряется. Для упрощения ситуации используем сервер с конкретным адресом, 192.168.0.101. Клиентский адрес может быть каким угодно.
Начинаем с запуска серверного ПК.
Используем версию iperf3, но допускается и другая. Алгоритм действий следующий:
- Ввести «iperf3 –s». Чтобы определить единицы измерения скорости, задается команда «-f». Среди наиболее часто используемых – кило, мега, гигабиты. Обозначаются, соответственно, литерами «k», «m», «g». Доступны также кило, мега, гига и терабайты. Для них выбраны символы «K», «M», «G», «T». Сочетание «iperf3 -s -f K» означает отображение скорости в килобайтах.
- Настроить порт. В базовых установках задан порт 5201. Чтобы сменить адрес, используется команда «-p». Для перехода на другой порт нужно ввести «ipref3 -s -p 4000».
- Настроить брандмауэр. Для версии ufw набирается сочетание «sudo ufw allow 5201». Соответственно, для firewalld оно будет «sudo firewall-cmd —permanent —add-port=5201/tcp» (при TCP протоколе). Для UDP меняются последние 3 символа.
- Запуск в фоне. С этим справляется назначенная литера «-D». В таком случае данные записываются в архив. Что нужно сделать: «iperf3 -s -D —logfile /var/log/ipref.log».
- Проверка работы сервера. Проводится вводом «ss». Полностью команда выглядит так: «ss -tulpn | grep 5201».
- Назначение айпи. Для IPv4 ставим символ «4». Для IPv6 – «6». Задание конкретно подключаемых айпи производится командой «iperf3 -s -4 -D —logfile /var/log/ipref.log».
Не забываем, что продолжительность теста (в секундах) выставляется командой «-t». Пропускная способность выводится в разделе «Bitrate».
Команда «iperf3 -c 192.168.0.101 -f M -i 5 -t 30» означает, что сервер работает на адресе 192.168.0.101, выдавая промежуточные значения каждые 5 секунд. Общая длительность теста равна при этом 30 секундам. Кстати, iperf работает не только под Windows, но и с другими ОС. Но об этом поговорим в следующий раз.
Источник: it-tehnik.ru
Использование утилиты iPerf для VoIP-тестирования
Утилита iPerf знакома многим сетевым администраторам, как инструмент для тестирования реальной пропускной способности сетевых каналов и траблшутинга проблем на уровне сети. Это простая и эффективная программа, бесплатная и кроссплатформенная. Она удобна и проста в освоении. В данной статье мы рассмотрим применение iPref,как средства для поиска проблем в сетевой инфраструктуре, как основы VoIP-сети, и разберем примеры […]
Утилита iPerf знакома многим сетевым администраторам, как инструмент для тестирования реальной пропускной способности сетевых каналов и траблшутинга проблем на уровне сети. Это простая и эффективная программа, бесплатная и кроссплатформенная. Она удобна и проста в освоении. В данной статье мы рассмотрим применение iPref,как средства для поиска проблем в сетевой инфраструктуре, как основы VoIP-сети, и разберем примеры тестов, для обнаружения возможных проблем, проявляющихся при работе с VoIP-трафиком. Мы не будем рассматривать базовый функционал данной утилиты, так как материал по данной теме уже приводился в этой статье на нашем сайте.
Установка и особенности
iPref изначально был спроектирован, как инструмент для измерения максимально достижимой полосы пропускания в IP-сетях между хостами. Среди его возможностей работа с протоколами TCP, UDP, SCTP (в iPref3), поддержка IPv4 и IPv6.
Приложение использует модель клиент-сервер, таким образом тестирование линка происходит с обеих сторон: клиент генерирует трафик, сервер принимает его, обрабатывает и предоставляет статистику пользователю. На основании статистики можно делать выводы о пропускной способности линка, сетевом джиттере, потерях при доставке пакетов.
Возможности тестирования и управления потоком, предоставляемые iPref, весьма широки: вы можете создавать одно-/двунаправленный либо обратнонаправленный поток, переопределять клиентов и сервер, тестировать линк между несколькими клиентами и сервером, динамически менять адреса серверов.Параметры потока могут принимать различные типы протоколов, маршрутизацию по портам, битрейт, максимальные значения полосы, используемую задержку, время проведения теста и т.д. Существует также список публичных серверов Ipref, которые можно использовать для тестирования внешних линков. Этот список можно найти на сайте проекта.
Существует две ветки проекта iPerf: собственно iPerf и iPerf3. Они имеют различную кодовую базу и не совместимы между собой (клиенты iPerf не смогут работать с серверами iPerf3 и наоборот). В рамках данной статьи мы будем работать с версией iPerf3, как актуальной. Среди функций, поддерживаемых веткой iPerf3 отметим следующие:
- использование SCTP вместо TCP;
- обратный режим — сервер генерирует трафик, а клиент обрабатывает;
- динамическая смена сервера;
- возможность указать клиентский порт;
- использование только IPv4/v6;
- тегирование IPv6-трафика;
- вывод отладочной информации.
Ipref доступен для всех десктопных платформ, также существует официальное мобильное приложение для Android и iOS.
Варианты применения iPerf в VoIP-телефонии
Нагрузочное тестирование сети
Предположим, что перед Вами возникла задача развернуть сервер VoIP-телефонии в офисе Вашей компании и ее удаленных филиалах. Вы хотите протестировать имеющуюся сетевую инфраструктуру под нагрузкой, дабы узнать, сможет ли она обеспечить стабильное качество обслуживания ваших абонентов при большом количестве звонков.
Для того чтобы обеспечить нагрузочное тестирование сети мы настроим iPerf на генерацию большого количества TCP-трафика, увеличив размер окна TCP до 32KB (по умолчанию размер окна 8KB) и зададим количество потоков равное 8 (имитация восьми одновременных звонков):
Со стороны сервера включим прослушивание на стандартном порту 5201:
iperf3 -s
Со стороны клиента:
iperf3 -c *server_ip* -P 8 -w 32768
- с — указывает, что данный хост является клиентом;
- P определяет число потоков;
- w указывает размер окна TCP в байтах.
Следующий нагрузочный тест мы проведем, сгенерировав полосу UDP трафика 1Гбит/с одним потоком. Данный тест также позволит нам отследить количество потерь пакетов и сетевой джиттер.
Со стороны клиента запускаем iPerf с параметрами:
iperf3 -c *server_ip* -u -b 1000M
- с — указывает, что данный хост является клиентом;
- u определяет протокол UDP;
- b — максимальную полосу генерируемого трафика.
Эмуляция RTP-потока
Как известно, в технологии VoIP протокол SIP используется для лишь для установления сессий между устройствами, голосовые и видео данные передаются в RTP потоках. Отследить проблемы с потоком RTP, такие как, например, задержки при передаче голоса в результате некорректной настройки сетевого оборудования можно в том числе с помощью утилиты iPerf.
Проведем тест, симулирующий голосовой трафик по порту 5061:
Со стороны сервера:
iperf3 -s -p 5061
Со стороны клиента:
iperf3 -c *server_ip* -u -p 5061 -S 0xC0 -l 250
- с — указывает, что данный хост является клиентом;
- u определяет протокол UDP;
- p используемый порт 5061;
- S определяет параметр DSCP/TOS (в формате Hex) — внутрисетевое тестирование;
- l размер самой дейтаграммы.
Эмуляция голосового трафика
Теперь с помощью iPerf мы проведем тест сети, моделируя поток голосовых данных в таком же двунаправленном потоке, как это делает наиболее распространенный и часто используемый в VoIP-сетях кодек G.711. Параметры голосового потока можно рассчитать с помощью калькулятора полосы нагрузки: VoIP Bandwidth Calculator.
Наш поток RTP будет использовать битрейт 64кб/с с частотой отправки 50 пакетов в секунду.
Со стороны сервера:
iperf3 -s -p 5061 iperf3 -c *server_ip* -u -l 300 -b 67000 -d -S 0xC0 -fk -i 5 -p 5061
- с — указывает, что данный хост является клиентом;
- u — определяет протокол UDP;
- l — указывает размер дейтаграммы;
- b — битрейт передачи данных;
- d — использование двунаправленного потока;
- S — определяет параметр DSCP/TOS (в формате Hex) — внутрисетевое тестирование;
- i — интервал отправки дейтаграмм;
- p — используемый порт.
Логирование в процессе тестирования
Начиная с версии 3.1 iPerf позволяет производить запись результатов тестирования в текстовый файл. Также в версии 3.0 введена поддержка вывода в формате JSON. Использование данных опций позволяет производить множественные тесты с отслеживанием операций на каждом этапе тестирования.
Со стороны сервера:
iperf3 -s -p 5061
Со стороны клиента:
iperf3 -c *server_ip* -u -l 300 -b 67000 -p 5061 -J —logfile trace.json
- с — указывает, что данный хост является клиентом;
- u — определяет протокол UDP;
- l — указывает размер дейтаграммы;
- b — битрейт передачи данных;
- J — определяет вывод в формате JSON;
— logfile — указывает файл для записи вывода.
Лог выполнения теста мы можем видеть в файле trace.json
Книга 101 функция Asterisk
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
Источник: voxlink.ru