Выражения Tcpdump
Выражения Tcpdump определяют выбор отображаемых сетевых пакетов. Именно здесь происходит реальная работа Tcpdump. Выдаются только те объекты, которые соответствуют выражению; если выражения не заданы, отображаться будут все пакеты. Выражение Tcpdump состоит из одной или нескольких директив, называемых примитивами, которые, в свою очередь, состоят из идентификатора и следующего за ним квалификатора. В табл. 6.3 перечислены три различных вида квалификаторов, а в табл. 6.4 - доступные комбинации примитивов.
Существуют также более сложные выражения, которые можно строить с помощью булевых операций, таких как И, ИЛИ, НЕ, и операций сравнения (больше, меньше и т.п.). Обратитесь к оперативной справке Tcpdump, чтобы детальнее ознакомиться с примерами и методами применения выражений.
| тип | Определяет, к чему относится идентификатор, заданный как имя или номер. Возможными типами служат host, net и port. Например, host foo, net 128.3 или port 20 |
| направление | Определяет направление трафика от определенного идентификатора. Возможными направлениями служат src; dst; src or dst и src and dst (src обозначает исходный адрес, dst - целевой) |
| протокол | Позволяет определить протокол для фильтрации. Возможными протоколами являются ether, fddi, tr, ip, ipv6, arp, rarp, decnet, tcp и udp. Если протокол не задан, то допустимы все протоколы, совместимые с остальной частью выражения. При помощи фильтров с этим квалификатором можно определить, какая машина делает чрезмерное количество arp-запросов, или для отбрасывания на фильтре udp-запросов, которых немало во многих сетях, так как DNS использует udp |
| dst host хост | Показывает только трафик, адресованный хосту, который может быть задан IP-адресом или именем |
| src host хост | Показывает только трафик, исходящий из хоста |
| host хост | Показывает как исходящий, так и входящий трафик хоста |
| ether dst Ethernet-хост | Показывает трафик, предназначенный для указанного Ethernet-хоста, который может быть задан либо именем, либо MAC-адресом |
| ether src Ethernet-хост | Показывает трафик, исходящий из Ethernet-хоста |
| ether host Ethernet-хост | Показывает как исходящий, так и входящий трафик Ethernet-хоста |
| gateway хост | Показывает любой трафик, использующий хост в качестве шлюза. Иными словами, трафик, переправляемый с хоста. Так происходит, когда IP-адрес отправителя или получателя не соответствует Ethernet-адресу хоста. Данную возможность целесообразно использовать, когда необходимо отследить весь трафик, проходящий через Интернет-шлюз или некоторый конкретный маршрутизатор |
| dst net сеть | Фильтрует трафик, предназначенный для конкретной сети, заданной в нотации 0.0.0.0. Аналогично ether dst Ethernet-хост за исключением того, что это может быть значительно больше, чем один хост |
| src net сеть | Фильтрует сеть отправителя |
| net сеть | То же, что и две предыдущие инструкции, но трафик разрешен как в заданную сеть, так и из нее |
| net сеть mask маска_сети | Сопоставляется с трафиком в заданную сеть или из нее, с указанной маской сети. Применяется для задания точного размера сети с шагом меньше, чем класс C. В этой комбинации допускается использование примитивов src и dst для указания направления потоков данных |
| net сеть/длина_маски | Сопоставляется с трафиком с сетевыми адресами из указанной сети и заданным числом бит в маске сети. Аналогична предыдущей комбинации |
| dst port порт | Фильтрует трафик TCP и UDP с заданным целевым портом. Здесь можно также специфицировать тип перехватываемого трафика, TCP или UDP. По умолчанию отображается трафик обоих типов |
| src port порт | То же, что и предыдущая комбинация, только перехватывается трафик с заданным исходным портом |
| less длина | Отображает пакеты с длиной, меньшей или равной заданной. Допустима также комбинация len <= длина |
| greater длина | То же, что и предыдущая комбинация, только перехватывается трафик с длиной пакетов больше или равной указанной |
| ip proto протокол | Перехватывает трафик заданного протокола. Допустимыми протоколами служат icmp, icmpv6, igmp, igrp, pim, ah, esp, vrrp, udp и tcp. Имена tcp, udp и icmp должны помещаться между двумя обратными косыми чертами, чтобы они не читались как ключевые слова. Пример: ip proto \tcp\ |
| ip6 proto протокол | Аналогично предыдущей комбинация, но для пакетов и типов IPv6 |
| ip6 protochain протокол | Ищет пакеты IPv6, имеющие заголовок указанного протокола |
| ip protochain протокол | То же, что и выше, но для пакетов IPv4 |
| ip broadcast | Идентифицирует только широковещательный трафик, то есть трафик, имеющий все нули или все единицы в поле целевого адреса |
| ether multicast | Регистрирует вещательные пакеты Ethernet |
| ip multicast | Регистрирует вещательные пакеты IP |
| ip6 multicast | Регистрирует вещательные пакеты IPv6 |
| ether proto протокол | Отображает трафик, который имеет указанный тип протокола Ethernet. Допустимыми именами протоколов служат ip, ipv6, arp, rarp, atalk, aarp, decnet, sca, lat, mopdl, moprc, iso, stp, ipx и netbeui. Эти имена являются также идентификаторами, поэтому они должны быть экранированы с помощью обратных косых черт |
| decnet src хост | Перехватывает трафик DECnet с исходным адресом хоста |
| decnet dst хост | Аналогична предыдущей комбинация, но фильтрует целевой адрес хоста |
| decnet хост | Фильтрует трафик DECnet с исходным или целевым адресом хоста |
| ip | Сокращенный вариант описанной выше комбинации ether proto ip. Ловит трафик, соответствующий Ethernet-протоколу ip |
| ip6 | Сокращенный вариант описанной выше комбинации ether proto ip6. Ловит трафик, соответствующий Ethernet-протоколу ip6 |
| arp | Сокращенный вариант описанной выше комбинации ether proto arp. Ловит трафик, соответствующий Ethernet-протоколу arp |
| rarp | Сокращенный вариант описанной выше комбинации ether proto rarp. Ловит трафик, соответствующий Ethernet-протоколу rarp |
| atalk | Сокращенный вариант описанной выше комбинации ether proto atalk. Ловит трафик, соответствующий Ethernet-протоколу atalk |
| aarp | Сокращенный вариант описанной выше комбинации ether proto aarp. Ловит трафик, соответствующий Ethernet-протоколу aarp |
| decnet | Сокращенный вариант описанной выше комбинации ether proto decnet. Ловит трафик, соответствующий Ethernet-протоколу decnet |
| iso | Сокращенный вариант описанной выше комбинации ether proto iso. Ловит трафик, соответствующий Ethernet-протоколу iso |
| stp | Сокращенный вариант описанной выше комбинации ether proto stp. Ловит трафик, соответствующий Ethernet-протоколу stp |
| ipx | Сокращенный вариант описанной выше комбинации ether proto ipx. Ловит трафик, соответствующий Ethernet-протоколу ipx |
| netbeui | Сокращенный вариант описанной выше комбинации ether proto netbeui. Ловит трафик, соответствующий Ethernet-протоколу netbeui |
| vlan идентификатор_ВЛВС | Перехватывает пакеты на основе стандарта 802.1Q VLAN. Идентификатор виртуальной локальной сети можно опускать |
| tcp | Сокращенная форма комбинации ip proto tcp |
| udp | Сокращенная форма комбинации ip proto udp |
| icmp | Сокращенная форма комбинации ip proto icmp |
| iso proto протокол | Перехватывает пакеты ВОС с заданным типом протокола - clnp, esis или isis |
| clnp | Сокращенная форма описанной выше комбинации с clnp в качестве протокола |
| esis | Сокращенная форма комбинации iso proto протокол с esis в качестве протокола |
| isis | Сокращенная форма комбинации iso proto протокол с isis в качестве протокола |