Опубликован: 26.07.2011 | Уровень: для всех | Доступ: свободно
Лекция 9:

Анализ сетевого трафика как метод диагностики сети

< Лекция 8 || Лекция 9: 123 || Лекция 10 >
Аннотация: Даны краткие сведения об анализе сетевого трафика и консольной утилите tcpdump. Приведены примеры анализа трафика протоколов ARP, IP, TCP и UDP

Содержание

  1. "Прослушивание" сетевого трафика
  2. Утилита tcpdump
  3. Анализ трафика на уровне сетевых интерфейсов и сетевом уровне с помощью tcpdump
  4. Анализ трафика на транспортном уровне с помощью tcpdump

"Прослушивание" сетевого трафика

В некоторых случаях для обнаружения проблем функционирования сетевого стека узла и сегментов сети используется анализ сетевого трафика. Существуют средства, которые позволяют отобразить (прослушать) и проанализировать работу сети на уровне передаваемых фреймов, сетевых пакетов, сетевых соединений, датаграмм и прикладных протоколов.

В зависимости от ситуации для диагностики может быть доступен как трафик узла, на котором производится прослушивание сетевого трафика, так и трафик сетевого сегмента, порта маршрутизатора и т. д. Расширенные возможности для перехвата трафика основаны на "беспорядочном" (promiscuous) режиме работы сетевого адаптера: обрабатываются все фреймы (а не только те, которые предназначены данному MAC-адресу и широковещательные, как в нормальном режиме функционирования).

В сети Ethernet существуют следующие основные возможности прослушивания трафика:

  • В сети на основе концентраторов весь трафик домена коллизий доступен любой сетевой станции.
  • В сетях на основе коммутаторов сетевой станции доступен ее трафик, а также весь широковещательный трафик данного сегмента.
  • Некоторые управляемые коммутаторы имеют функцию копирования трафика данного порта на порт мониторинга ("зеркалирование",мониторинг порта).
  • Использование специальных средств (ответвителей), включаемых в разрыв сетевого подключения и передающих трафик подключения на отдельный порт.
  • "Трюк" с концентратором — порт коммутатора, трафик которого необходимо прослушать, включают через концентратор, подключив к концентратору также узел-монитор (при этом в большинстве случаев уменьшается производительность сетевого подключения).

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

Примечание: Хорошим выбором базового инструмента для анализа сетевого трафика в графической среде является бесплатный пакет wireshark [ 43 ] , доступный для Windows и в репозиториях некоторых дистрибутивов Linux.

Утилита 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

где srcMAC-адрес источника, dstMAC-адрес назначения, hostsrc или 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.

Фильтрация по IP протоколу:

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.

< Лекция 8 || Лекция 9: 123 || Лекция 10 >
Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?

Сергей Пархоменко
Сергей Пархоменко
Россия, Ростов-на-Дону, ЮФУ (ДГТУ), 2008