NetworkTest: различия между версиями
(Новая страница: «{{Note|Обратите внимание, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам.}} =Тестирование и мониторинг сети= ==Проверка доступности хоста== ping 192.168.0.1 ==Определение маршрута сетевых пакетов== tracepath ya....») |
|||
(не показано 10 промежуточных версий этого же участника) | |||
Строка 23: | Строка 23: | ||
#:<pre>$ iperf -c 192.168.0.12</pre> | #:<pre>$ iperf -c 192.168.0.12</pre> | ||
#На сервере и на клиенте отобразятся максимальные скорость отправки и получения | #На сервере и на клиенте отобразятся максимальные скорость отправки и получения | ||
===Параметры=== | |||
====Общие==== | |||
{| class="wikitable collapsible" style="float:center; | |||
!№ | |||
!Параметр сокращенно | |||
!Параметр подробно | |||
!Назначение | |||
|- | |||
|1 | |||
|<nowiki>-p</nowiki> <nowiki>#</nowiki> | |||
|<nowiki>--port</nowiki> <nowiki>#</nowiki> | |||
|<nowiki>#</nowiki> - порт, на котором будут работать сервер и клиент (по-умолчанию 5201) | |||
|- | |||
|2 | |||
|<nowiki>-f</nowiki> | |||
|<nowiki>--format</nowiki> | |||
|формат скорости в результатах теста: k (Кбит), K (Кбайт), m (Мбит), M (Мбайт), g (Гбит), G (Гбайт) | |||
|- | |||
|3 | |||
|<nowiki>-i #</nowiki> | |||
|<nowiki>--interval #</nowiki> | |||
|интервал между выводом результата тестирования, в секундах | |||
|} | |||
====Сервер==== | |||
{| class="wikitable collapsible" style="float:center; | |||
!№ | |||
!Параметр сокращенно | |||
!Параметр подробно | |||
!Назначение | |||
|- | |||
|1 | |||
|<nowiki>-s</nowiki> | |||
|<nowiki>--server</nowiki> | |||
|запуск сервера c отображением информации на экране | |||
|- | |||
|2 | |||
|<nowiki>-D</nowiki> | |||
|<nowiki>--daemon</nowiki> | |||
|запуск сервера в фоновом режиме в виде службы, будет оставаться запущенным, даже после закрытия консоли. Можно прописать в виде юнита systemd. | |||
|} | |||
====Клиент==== | |||
*где <nowiki>#[KMG]</nowiki> - можно указать значение и объем K - килобит, M - мегабит и G - гигабит соответственно. | |||
*где <nowiki>#</nowiki> - нужно подставить значение | |||
{| class="wikitable collapsible" style="float:center; | |||
!№ | |||
!Параметр сокращенно | |||
!Параметр подробно | |||
!Назначение | |||
|- | |||
|1 | |||
|<nowiki>-c</nowiki> <хост> | |||
|<nowiki>--client</nowiki> <хост> | |||
|запуск клиента и подключение к серверу <хосту> | |||
|- | |||
|2 | |||
|<nowiki>-u</nowiki> | |||
|<nowiki>--udp</nowiki> | |||
|протокол UDP вместо TCP | |||
|- | |||
|3 | |||
|<nowiki>-b #[KMG][/#]</nowiki> | |||
|<nowiki>--bandwidth #[KMG][/#]</nowiki> | |||
|максимальная скорость в битах/сек (0 - отсутствует ограничение); по умолчанию отсутствует ограничение скорости для TCP, а для UDP составляет 1 Мбит/сек (опция /# для пакетного режима передачи данных) | |||
|- | |||
|4 | |||
|<nowiki>-t #</nowiki> | |||
|<nowiki>--time #</nowiki> | |||
|время тестирования в секундах (по умолчанию 10 сек) | |||
|- | |||
|5 | |||
|<nowiki>-n #[KMG]</nowiki> | |||
|<nowiki>--bytes #[KMG]</nowiki> | |||
|количество байт для передачи данных (вместо ключа -t) | |||
|- | |||
|6 | |||
|<nowiki>-l</nowiki> #[KMG] - | |||
|<nowiki>--len #[KMG]</nowiki> | |||
|размер буфера (по умолчанию 128 КБ для TCP, 8 КБ для UDP) | |||
|- | |||
|7 | |||
|<nowiki>-P #</nowiki> | |||
|<nowiki>--parallel #</nowiki> | |||
|число одновременных параллельных клиентских потоков | |||
|- | |||
|8 | |||
|<nowiki>-R</nowiki> | |||
|<nowiki>--reverse</nowiki> | |||
|запуск в обратном режиме (Reverse mode: сервер отправляет трафик, клиент принимает) | |||
|- | |||
|9 | |||
|<nowiki>-4</nowiki> | |||
|<nowiki>--version4</nowiki> | |||
|использовать только IPv4 | |||
|- | |||
|10 | |||
|<nowiki>-6</nowiki> | |||
|<nowiki>--version6</nowiki> | |||
|использовать только IPv6 | |||
|- | |||
|11 | |||
|<nowiki>-Z</nowiki> | |||
|<nowiki>--zerocopy</nowiki> | |||
|метод отправки данных по технологии zero copу для снижения нагрузки на процессор | |||
|- | |||
|12 | |||
|<nowiki>-O</nowiki> N | |||
|<nowiki>--omit N</nowiki> | |||
|пропустить первые n секунд (игнорировать алгоритм TCP slowstart--) | |||
|- | |||
|13 | |||
|colspan="2"|<nowiki>--get-server-output</nowiki> | |||
|получить результаты с сервера | |||
|} | |||
===Пример использования=== | |||
====Вариант 1: простой==== | |||
#Адрес сервера 192.168.0.17, адрес клиента 192.168.0.136 | |||
#Запускаем iperf на сервере | |||
#:<pre>$ iperf -s</pre> | |||
#Запускаем iperf на клиенте | |||
#:<pre>$ iperf -c 192.168.0.17</pre> | |||
Вывод будет следующим: | |||
Сервер: | |||
<pre> | |||
[admin@server]$ iperf -s | |||
Server listening on TCP port 5001 TCP window size: 128 KByte (default) | |||
[ 4] local 192.168.0.17 port 5001 connected with 192.168.0.136 port 46060 | |||
[ ID] Interval Transfer Bandwidth | |||
[ 4] 0.0-10.7 sec 62.1 MBytes 48.8 Mbits/sec | |||
</pre> | |||
Клиент: | |||
<pre> | |||
[uer@client]$ iperf -c 192.168.0.17 | |||
Client connecting to 192.168.0.17, TCP port 5001 TCP window size: 45.0 KByte (default) | |||
[ 3] local 192.168.0.136 port 46060 connected with 192.168.0.17 port 5001 | |||
[ ID] Interval Transfer Bandwidth | |||
[ 3] 0.0-10.3 sec 62.1 MBytes 50.8 Mbits/sec | |||
</pre> | |||
==Определение скорости интернет-соединения== | ==Определение скорости интернет-соединения== | ||
Установка: | Установка: | ||
Строка 30: | Строка 179: | ||
Утилита проверит скорость до ближайшего сервера и выведет скорость загрузки и скачивания. | Утилита проверит скорость до ближайшего сервера и выведет скорость загрузки и скачивания. | ||
==Анализ сети с использованием Wireshark== | |||
===Установка и запуск=== | |||
Установка: | |||
# apt-get install wireshark | |||
Запуск: | |||
$ beesu wireshark | |||
===Сценарии использования=== | |||
====Проверка HTTP-трафика==== | |||
Введите {{cmd|http}} в поле фильтра и нажмите «Применить». Затем запустите браузер и перейдите на любой сайт: | |||
[[File:Wireshark_start1.png]] | |||
Чтобы начать новый анализ, остановите захват в реальном времени и отредактируйте фильтр параметров съемки. | |||
====Проверка трафика HTTP с заданного IP-адреса==== | |||
Чтобы осуществить проверку, добавим в фильтр для отслеживания HTTP-трафика между локальным компьютером и 192.168.0.1 параметр ip.src: | |||
{{cmd|<nowiki>ip.src==192.168.0.1&&</nowiki>}} | |||
[[File:Wireshark_start2.png]] | |||
====Проверка HTTP-трафика на заданный IP-адрес==== | |||
Этот пункт тесно связан с советом №2. Но в этом случае мы будем использовать параметр ip.dst как часть фильтра захвата: | |||
{{cmd|<nowiki>ip.dst==192.168.0.108&&http</nowiki>}} | |||
[[File:Wireshark_start3.png]] | |||
Объединяя советы №2 и №3, Вы можете использовать ip.addr в правиле фильтрации вместо ip.src или ip.dst. | |||
====Мониторинг трафика Apache и MySQL в сети==== | |||
Эта функция может Вам пригодиться при необходимости проверить трафик, который будет соответствовать определенным условиям. К примеру, чтобы контролировать трафик на портах TCP 80 (веб-сервер) и 3306 (сервер базы данных MySQL / MariaDB), можно использовать условие OR в фильтре захвата: | |||
{{cmd|<nowiki>tcp.port==80||tcp.port==3306</nowiki>}} | |||
[[File:Wireshark_start4.png]] | |||
В советах №2 и №3 символ {{cmd|<nowiki>||</nowiki>}} и слово {{cmd|or}} производят одинаковые операции. То же самое справедливо для символов {{cmd|&&}} и слова {{cmd|and}}. | |||
====Исключение пакетов с заданными IP-адресами==== | |||
Чтобы исключить пакеты, не соответствующие правилам фильтра, используйте {{cmd|<nowiki>!</nowiki>}} и заключите правило в круглые скобки. Например, чтобы исключить отправляемые пакеты или направляющиеся к заданному IP-адресу, Вы можете использовать: | |||
{{cmd|<nowiki>!(ip.addr == 192.168.0.10)</nowiki>}} | |||
====Мониторинг трафика локальной сети (192.168.0.0/24)==== | |||
Это правило фильтра позволит отображать только локальный трафик и исключать различные пакеты (как адресованные, так и поступающие из Интернета): | |||
{{cmd|<nowiki>ip.src==192.168.0.0/24 and ip.dst==192.168.0.0/24</nowiki>}} | |||
[[File:Wireshark_start5.png]] | |||
====Отслеживание содержания в TCP conversation==== | |||
*Статистика-Диалоги | |||
*Протоколы - отмечаем TCP | |||
*Снимите галочку "Ограничить соотиветственн..." | |||
*Выбираем пакет | |||
*Жмем "Отслеживание трафика" | |||
*Показать данные как > YAML | |||
[[File:Wireshark_start6.png]] | |||
====Изменение правил раскраски==== | |||
Наверняка Вы уже заметили, что каждая строка в окне захвата окрашена. Если Вы хотите изменить эти настройки, перейдите в {{path|Просмотр|Цветовые правила}} | |||
[[File:Wireshark_start7.png]] | |||
====Сохранение Capture в файл==== | |||
Вы можете изучить содержимое захвата Wireshark подробнее, сохранив его. Для этого перейдите в меню {{path|Файл|Экспорт результатов анализа пакетов}}. | |||
[[File:Wireshark_start8.png]] | |||
=Источники= | |||
*[https://help.keenetic.com/hc/ru/articles/360010536580-Тестирование-пропускной-способности-локального-подключения-с-помощью-iperf help.keenetic.com] | |||
*[https://blog.sedicomm.com/2017/03/27/10-sovetov-po-ispolzovaniyu-wireshark-dlya-analiza-paketov-dannyh/#6 blog.sedicomm.com] | |||
{{Category navigation|title=Начинающему системному администратору|category=Начинающему системному администратору|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Начинающему системному администратору|category=Начинающему системному администратору|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 23:26, 15 ноября 2023
Тестирование и мониторинг сети
Проверка доступности хоста
ping 192.168.0.1
Определение маршрута сетевых пакетов
tracepath ya.ru tracepath 8.8.8.8
или
traceroute ya.ru traceroute 8.8.8.8
Клиент-серверное определение скорости сети
На сервере и на клиенте установите утилиту iPerf:
# apt-get install iperf
Чтобы проверить скорость от клиента до сервера, выполните следующее:
- Запустите iperf на сервере с ключом -s
$ iperf -s
- Запустите iperf на клиенте с ключом -c и указанием адреса:
$ iperf -c 192.168.0.12
- На сервере и на клиенте отобразятся максимальные скорость отправки и получения
Параметры
Общие
№ | Параметр сокращенно | Параметр подробно | Назначение |
---|---|---|---|
1 | -p # | --port # | # - порт, на котором будут работать сервер и клиент (по-умолчанию 5201) |
2 | -f | --format | формат скорости в результатах теста: k (Кбит), K (Кбайт), m (Мбит), M (Мбайт), g (Гбит), G (Гбайт) |
3 | -i # | --interval # | интервал между выводом результата тестирования, в секундах |
Сервер
№ | Параметр сокращенно | Параметр подробно | Назначение |
---|---|---|---|
1 | -s | --server | запуск сервера c отображением информации на экране |
2 | -D | --daemon | запуск сервера в фоновом режиме в виде службы, будет оставаться запущенным, даже после закрытия консоли. Можно прописать в виде юнита systemd. |
Клиент
- где #[KMG] - можно указать значение и объем K - килобит, M - мегабит и G - гигабит соответственно.
- где # - нужно подставить значение
№ | Параметр сокращенно | Параметр подробно | Назначение |
---|---|---|---|
1 | -c <хост> | --client <хост> | запуск клиента и подключение к серверу <хосту> |
2 | -u | --udp | протокол UDP вместо TCP |
3 | -b #[KMG][/#] | --bandwidth #[KMG][/#] | максимальная скорость в битах/сек (0 - отсутствует ограничение); по умолчанию отсутствует ограничение скорости для TCP, а для UDP составляет 1 Мбит/сек (опция /# для пакетного режима передачи данных) |
4 | -t # | --time # | время тестирования в секундах (по умолчанию 10 сек) |
5 | -n #[KMG] | --bytes #[KMG] | количество байт для передачи данных (вместо ключа -t) |
6 | -l #[KMG] - | --len #[KMG] | размер буфера (по умолчанию 128 КБ для TCP, 8 КБ для UDP) |
7 | -P # | --parallel # | число одновременных параллельных клиентских потоков |
8 | -R | --reverse | запуск в обратном режиме (Reverse mode: сервер отправляет трафик, клиент принимает) |
9 | -4 | --version4 | использовать только IPv4 |
10 | -6 | --version6 | использовать только IPv6 |
11 | -Z | --zerocopy | метод отправки данных по технологии zero copу для снижения нагрузки на процессор |
12 | -O N | --omit N | пропустить первые n секунд (игнорировать алгоритм TCP slowstart--) |
13 | --get-server-output | получить результаты с сервера |
Пример использования
Вариант 1: простой
- Адрес сервера 192.168.0.17, адрес клиента 192.168.0.136
- Запускаем iperf на сервере
$ iperf -s
- Запускаем iperf на клиенте
$ iperf -c 192.168.0.17
Вывод будет следующим:
Сервер:
[admin@server]$ iperf -s Server listening on TCP port 5001 TCP window size: 128 KByte (default) [ 4] local 192.168.0.17 port 5001 connected with 192.168.0.136 port 46060 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.7 sec 62.1 MBytes 48.8 Mbits/sec
Клиент:
[uer@client]$ iperf -c 192.168.0.17 Client connecting to 192.168.0.17, TCP port 5001 TCP window size: 45.0 KByte (default) [ 3] local 192.168.0.136 port 46060 connected with 192.168.0.17 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.3 sec 62.1 MBytes 50.8 Mbits/sec
Определение скорости интернет-соединения
Установка:
# apt-get install speedtest-cli
Тест:
$ speedtest-cli
Утилита проверит скорость до ближайшего сервера и выведет скорость загрузки и скачивания.
Анализ сети с использованием Wireshark
Установка и запуск
Установка:
# apt-get install wireshark
Запуск:
$ beesu wireshark
Сценарии использования
Проверка HTTP-трафика
Введите http в поле фильтра и нажмите «Применить». Затем запустите браузер и перейдите на любой сайт:
Чтобы начать новый анализ, остановите захват в реальном времени и отредактируйте фильтр параметров съемки.
Проверка трафика HTTP с заданного IP-адреса
Чтобы осуществить проверку, добавим в фильтр для отслеживания HTTP-трафика между локальным компьютером и 192.168.0.1 параметр ip.src:
ip.src==192.168.0.1&&
Проверка HTTP-трафика на заданный IP-адрес
Этот пункт тесно связан с советом №2. Но в этом случае мы будем использовать параметр ip.dst как часть фильтра захвата:
ip.dst==192.168.0.108&&http
Объединяя советы №2 и №3, Вы можете использовать ip.addr в правиле фильтрации вместо ip.src или ip.dst.
Мониторинг трафика Apache и MySQL в сети
Эта функция может Вам пригодиться при необходимости проверить трафик, который будет соответствовать определенным условиям. К примеру, чтобы контролировать трафик на портах TCP 80 (веб-сервер) и 3306 (сервер базы данных MySQL / MariaDB), можно использовать условие OR в фильтре захвата:
tcp.port==80||tcp.port==3306
В советах №2 и №3 символ || и слово or производят одинаковые операции. То же самое справедливо для символов && и слова and.
Исключение пакетов с заданными IP-адресами
Чтобы исключить пакеты, не соответствующие правилам фильтра, используйте ! и заключите правило в круглые скобки. Например, чтобы исключить отправляемые пакеты или направляющиеся к заданному IP-адресу, Вы можете использовать:
!(ip.addr == 192.168.0.10)
Мониторинг трафика локальной сети (192.168.0.0/24)
Это правило фильтра позволит отображать только локальный трафик и исключать различные пакеты (как адресованные, так и поступающие из Интернета):
ip.src==192.168.0.0/24 and ip.dst==192.168.0.0/24
Отслеживание содержания в TCP conversation
- Статистика-Диалоги
- Протоколы - отмечаем TCP
- Снимите галочку "Ограничить соотиветственн..."
- Выбираем пакет
- Жмем "Отслеживание трафика"
- Показать данные как > YAML
Изменение правил раскраски
Наверняка Вы уже заметили, что каждая строка в окне захвата окрашена. Если Вы хотите изменить эти настройки, перейдите в Просмотр
Сохранение Capture в файл
Вы можете изучить содержимое захвата Wireshark подробнее, сохранив его. Для этого перейдите в меню Файл.