Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей. |
Анализ сетевого трафика как метод диагностики сети
Содержание
- "Прослушивание" сетевого трафика
- Утилита tcpdump
- Анализ трафика на уровне сетевых интерфейсов и сетевом уровне с помощью tcpdump
- Анализ трафика на транспортном уровне с помощью tcpdump
"Прослушивание" сетевого трафика
В некоторых случаях для обнаружения проблем функционирования сетевого стека узла и сегментов сети используется анализ сетевого трафика. Существуют средства, которые позволяют отобразить (прослушать) и проанализировать работу сети на уровне передаваемых фреймов, сетевых пакетов, сетевых соединений, датаграмм и прикладных протоколов.
В зависимости от ситуации для диагностики может быть доступен как трафик узла, на котором производится прослушивание сетевого трафика, так и трафик сетевого сегмента, порта маршрутизатора и т. д. Расширенные возможности для перехвата трафика основаны на "беспорядочном" (promiscuous) режиме работы сетевого адаптера: обрабатываются все фреймы (а не только те, которые предназначены данному MAC-адресу и широковещательные, как в нормальном режиме функционирования).
В сети Ethernet существуют следующие основные возможности прослушивания трафика:
- В сети на основе концентраторов весь трафик домена коллизий доступен любой сетевой станции.
- В сетях на основе коммутаторов сетевой станции доступен ее трафик, а также весь широковещательный трафик данного сегмента.
- Некоторые управляемые коммутаторы имеют функцию копирования трафика данного порта на порт мониторинга ("зеркалирование",мониторинг порта).
- Использование специальных средств (ответвителей), включаемых в разрыв сетевого подключения и передающих трафик подключения на отдельный порт.
- "Трюк" с концентратором — порт коммутатора, трафик которого необходимо прослушать, включают через концентратор, подключив к концентратору также узел-монитор (при этом в большинстве случаев уменьшается производительность сетевого подключения).
Существуют программы (сетевые мониторы или анализаторы, sniffer), которые реализуют функцию прослушивания сетевого трафика (в т.ч. в беспорядочном режиме), отображения его или записи в файл. Дополнительно ПО для анализа может фильтровать трафик на основе правил, декодировать (расшифровать) протоколы, считать статистику и диагностировать некоторые проблемы.
Утилита tcpdump
Консольная утилита tcpdump входит в состав большинства Unix-систем и позволяет перехватывать и отображать сетевой трафик [ 44 ] . Утилита использует libpcap, переносимую C/C++ библиотеку для перехвата сетевого трафика.
Для установки tcpdump в Debian можно использовать команду:
# apt-get install tcpdump
Для запуска данной утилиты необходимо иметь права суперпользователя (в частности, в связи с необходимостью перевода сетевого адаптера в "беспорядочный" режим). В общем виде формат команды имеет следующий вид:
tcpdump <опции> <фильтр-выражение>
Для вывода на консоль описание заголовков (расшифрованные данные) перехваченных пакетов необходимо указать интерфейс для анализа трафика (опция -i ):
# tcpdump -i eth0
Можно отключить преобразования IP адресов в доменные имена (т.к. при больших объемах трафика создается большое число запросов к DNS-серверу) — опция -n:
# tcpdump -n -i eth0
Для вывода данных канального уровня (например, mac адреса и прочее) - опция -e:
# tcpdump -en -i eth0
Вывод дополнительной информации (например, TTL, опции IP) — опция -v:
# tcpdump -ven -i eth0
Увеличение размера захватываемых пакетов (больше 68 байт по умолчанию) — опция -s с указанием размера ( -s 0 — захватывать пакеты целиком):
# tcpdump -s 0
Запись в файл (непосредственно пакеты - "дамп" ) - опция -w с указанием имени файла:
# tcpdump -w traf.dump
Чтение пакетов из файла — опция - r с указанием имени файла:
# tcpdump -r traf.dump
По умолчанию tcpdump работает в беспорядочном режиме. Ключ -p указывает tcpdump перехватывать только трафик, предназначенный данному узлу.
Дополнительную информацию по ключам и формате фильтров tcpdump можно получить в справочном руководстве ( man tcpdump ).
Анализ трафика на уровне сетевых интерфейсов и сетевом уровне с помощью tcpdump
Для выделения Ethernet-фреймов используются следующие конструкции tcpdump (общий вид):
tcpdump ether { src | dst | host } MAC_ADDRESS
где src — MAC-адрес источника, dst — MAC-адрес назначения, host — src или dst, а также для выделения широковещательного трафика:
tcpdump ether broadcast
Например:
# tcpdump -n -i vlan0 ether src 0:2:b3:d8:d8:2c # tcpdump -n -e -i vlan0 ether broadcast
В первом случае выбираются с интерфейса vlan0 фреймы с указанным MAC-адресом источника. Во втором - выбирается широковещательный трафик на интерфейсе vlan0.
Фильтрация по IP адресам ( net — сеть, для указания маски подсети - mask ):
tcpdump { src | dst } { net | host }
Например:
# tcpdump -n -i eth0 src 192.168.66.1 # tcpdump -n -i eth0 host 192.168.66.1 # tcpdump -n -i eth0 src net 10.0.0.0 mask 255.0.0.0
В первом случае фильтруются сетевые пакеты, в заголовке которых в поле источник указан IP-адрес 192.168.66.1. Во втором случае — пакеты, в которых данный IP-адрес указан как источник или как получатель пакета. В третьем — пакеты, в которых источником указаны узлы сети 10.0.0.0/8.
tcpdump { arp | rarp | ip | tcp | udp | icmp }
Например, выбирать ICMP-пакеты:
# tcpdump -n -i eth0 icmp
Сложные фильтры могут содержать множество примитивов, связанных между собой с использованием логических операторов and, or и not.
Например: host 192.168.12.5 and host 192.168.13.4.