Учет трафика

Учет трафика выполняется с помощью системы фильтрации пакетов ipfw. Собственно, подсчитывать трафик - это еще одна задача этой подсистемы.

Все пакеты, которые соответствуют какому-либо правилу автоматически учитываются системой фильтрации. Посмотреть, чему равны счетчики для каждого из правил можно командой ipfw:

# ipfw -a list
65535 4386 844198 allow ip from any to any

Ключ -a команды заставляет ее показывать не только список правил, но и счетчики каждого из них. Строка содержит три числа: номер правила (65535), количество пакетов (4386) и байтов (844198), которые совпали с правилом.

Если все, что нужно сделать с трафиком это подсчитать его (то есть к нему не нужно применять никаких други действий, для данного типа трафика у фильтра нет специального правила), следует использовать действие count.

Например, для того чтобы подсчитать весь трафик, который направляется из подсети 192.168.15.0 и который проходит через даный хост, нужно добавить правило:

# ipfw add count ip from 192.168.15.0/24 to any

Это правило не затронет никаких остальных правил фильтрации, которые идут за ним. Напимер, если далее явным образом явным образом разрешается прохождение трафика с 192.168.15.1 и запрщается с 192.68.15.2, они будут работать как и до этого.

[Tip]
Правила подсчета трафика лучше всего ставить в начало цепочки, то есть там, где они учтут все пакеты, даже те из них, которые будут после отброшены.