Примитив | Описание |
---|
dst host HOST | Истинно, если поле IP-пакета "адрес получателя" (IPv4) совпадает со значением идентификатора "HOST" (может указываться имя или адрес хоста). | src host HOST | Истинно, если поле IP-пакета "адрес отправителя" совпадает со значением идентификатора "HOST". | host HOST | Истинно, если поле IP-пакета "адрес отправителя", либо поле IP-пакета "адрес получателя" совпадает со значением идентификатора "HOST". |
Note |
---|
| Любое вышеуказанное выражение можно дополнить с помощью префиксов "ip", "ip6", "arp", "rarp". |
| ether dst EHOST | Истинно, если поле "адрес получателя" канального уровня совпадает со значением идентификатора "EHOST". "EHOST" должен быть представлен в следующем формате: XX:XX:XX:XX:XX:XX. | ether src EHOST | Истинно, если поле "адрес отправителя" канального уровня совпадает со значением идентификатора "EHOST". | ether host EHOST | Истинно, если поля "адрес отправителя" или "адрес получателя" канального уровня совпадают со значением идентификатора "EHOST". | dst net NET | Истинно, если поле "адрес получателя" заголовка IP-пакета содержит заданный адрес, принадлежащий диапазону указанной сети "NET". | src net NET | Истинно, если поле "адрес отправителя" заголовка IP-пакета содержит заданный адрес, принадлежащий диапазону указанной сети "NET". | net NET | Истинно, если поля "адрес отправителя" или "адрес получателя" содержат заданный адрес, принадлежащий диапазону указанной сети "NET". | net net mask NETMASK | Истинно, если IP-адрес содержит заданный адрес, принадлежащий диапазону указанной сети "NET" с определенной маской "NETMASK". Можно дополнить примитивами "src" и "dst". | net NET/LEN | Истинно, если IP-адрес содержит заданный адрес, принадлежащий диапазону указанной сети "NET" с определенной длиной маски "NET/LEN". Можно дополнить примитивами "src" и "dst". | dst port PORT | Истинно, если порт получателя заголовка UDP или TCP содержит заданный номер порта "PORT". | src port PORT | Истинно, если порт отправителя заголовка UDP или TCP содержит заданный номер порта "PORT". | port PORT | Истинно, если порт отправителя или получателя заголовка UDP или TCP содержит заданный номер порта "PORT". | dst portrange PORT1-PORT2 | Истинно, если поле "порт получателя" заголовка UDP или TCP входит в заданный диапазон портов "PORT1-PORT2". | src portrange PORT1-PORT2 | Истинно, если поле "порт отправителя" заголовка UDP или TCP входит в заданный диапазон портов "PORT1-PORT2". | portrange PORT1-PORT2 | Истинно, если поля "порт получателя" или "порт отправителя" заголовка UDP или TCP входят в заданный диапазон портов "PORT1-PORT2". |
Note |
---|
| Любые вышеуказанные выражения, связанные с фильтрацией по номеру портов/диапазону портов можно дополнить ключевыми словами "tcp" и "udp", в этом случае фильтрация будет дополнительно выполняться по значению протокола. |
| less LENGTH | Истинно, если длина пакета меньше или равна "LENGTH". Это аналогично следующему выражению: "len <= length". | greater LENGTH | Истинно, если длина пакета больше или равна "LENGTH". Это аналогично следующему выражению: "len >= length". | ip proto PROTOCOL | Истинно, если в поле "PROTOCOL" заголовка IP-пакета содержится идентификатор указанного протокола. "PROTOCOL" - не только численные значения, но и стандартные имена протоколов: "icmp", "icmp6", "igmp", "igrp", "pim", "ah", "esp", "vrrp", "udp" или "tcp". Стоит иметь в виду, что символьные имена "tcp", "udp" и "icmp" также являются ключевыми, и перед ними должен быть помещен символ обратного слэша (\). Обратите внимание, что этот примитив не исследует всю цепочку заголовков протокола. | ip protochain PROTOCOL | Истинно, если пакет является пакетом IPv4 и содержит в цепочке заголовков протоколов заданный протокол "PROTOCOL". | ether broadcast | Истинно, если пакет является широковещательным пакетом Ethernet. Ключевое слово "ether" может быть опущено. | ether multicast | Истинно, если пакет является пакетом групповой рассылки (или широковещательным) Ethernet. Ключевое слово "ether" может быть опущено. Это сокращенная форма записи выражения "ether[0] & 1 != 0". | ip multicast | Истинно, если пакет является пакетом групповой рассылки (или широковещательным) в IPv4. | ether proto PROTOCOL | Истинно, если в поле "protocol" заголовка пакета содержится идентификатор указанного протокола "PROTOCOL". "PROTOCOL" может принимать не только численные значения, но и стандартные имена протоколов: "icmp", "icmp6", "igmp", "igrp", "pim", "ah", "esp", "vrrp", "udp" или "tcp", но перед ними должен быть помещен символ обратного слэша (\). | svlan [vlan_id] | Истинно, если пакеты соответствуют IEEE 802.1Q с типом Ethernet заголовка 0x88A8. В случае соединения Ethernet ОС WANFleX проверяет поле типа Ethernet для большинства протоколов. Исключения: - "iso", "stp" и "netbeui" - WANFLeX проверяет кадр на соответствие стандарту 802.3, а затем проверяет заголовок LLC, как для FDDI, Token Ring и 802.11.
- "atalk" - на AppleTalkWANFLeX проверяет поле etype в кадре Ethernet, а также, для пакета SNAP-формата, FDDI, Token Ring и 802.11.
- "aarp" - WANFLeX проверяет на AppleTalk ARP как в кадре Ethernet, так и в стандарте 802.2 SNAP с OUI 0x000000.
- "ipx" - WANFLeX проверяет на IPX поле etype в кадре Ethernet, IPX DSAP в заголовке LLC, 802.3-без-LLC-заголовка инкапсуляцию IPX и IPX etype в кадре SNAP.
| vlan [vlan_id] | Истинно, если пакеты соответствуют IEEE 802.1Q с типом Ethernet заголовка 0x8100. Если указан "[vlan_id]", то фильтруются кадры с указанным "vlan_id". Note |
---|
| Обратите внимание, что выражение "vlan [vlan_id]" может использоваться более одного раза для фильтрации по иерархиям VLAN. |
| mpls [label_num] | Истинно, если пакеты являются пакетами MPLS. Если указана метка MPLS "[label_num]", то фильтроваться будут пакеты с указанной "label_num". Note |
---|
| Обратите внимание, что выражение "mpls [label_num]" может использоваться более одного раза для фильтрации по иерархиям MPLS. |
| pppoed | Истинно, если пакеты являются пакетами PPP-over-Ethernet Discovery (Ethernet type 0x8863). | pppoes | Истинно, если пакеты являются пакетами PPP-over-Ethernet Session (Ethernet type 0x8864). | iso proto PROTOCOL | Истинно, если пакеты являются пакетами OSI, принадлежащими протоколу "PROTOCOL". Протокол может принимать численное значение или одно из следующих символьных: "clnp", "esis", "isis". | expr relop expr | Истинно, если "relop" принимает одно из следующих значений ">", "<", ">=", "<=", "=", "!=", а "expr" является арифметическим действием "+", "-", "*", "/", "&", "|", "<<", ">>". Note |
---|
| Все сравнения беззнаковые, так что, например, 0x80000000 и 0xffffffff будут > 0. |
Чтобы получить доступ к данным внутри пакета, используется следующий синтаксис:"proto [ expr : size ]". - "proto" может принимать значения "ether", "fddi", "tr", "wlan", "ppp", "slip", "link", "ip", "arp", "rarp", "tcp", "udp", "icmp"и указывать уровень протокола для операции фильтрации. Значения "ether", "fddi", "tr", "wlan", "ppp", "slip", "link" относятся к канальному уровню. Стоит иметь в виду, что "tcp", "udp" и другие протоколы более высокого уровня применяются только к IPv4.
- "size" является необязательным параметром и показывает размер пакета в байтах. Может быть равен 1, 2 или 4, по умолчанию 1.
Длина пакета задается параметром "len". Возможны следующие смещения полей заголовка протокола: "icmptype" (поле типа ICMP), "icmpcode" (поле кода ICMP) и "tcpflags" (поле метки TCP): - Возможные значения поля типа ICMP: "icmp-echoreply", "icmp-unreach", "icmp-sourcequench", "icmp-redirect", "icmp-echo", "icmp-routeradvert", "icmp-routersolicit", "icmp-timxceed", "icmp-paramprob", "icmp-tstamp", "icmp-tstampreply", "icmp-ireq", "icmp-ireqreply", "icmp-maskreq", "icmp-maskreply".
- Возможные значения поля метки TCP: "tcp-fin", "tcp-syn", "tcp-rst", "tcp-push", "tcp-ack", "tcp-urg".
|
|