Учет трафика с помощью ipfw во FreeBSD


Учет трафика выполняется с помощью системы фильтрации пакетов 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, они будут работать как и до этого.
Правила подсчета трафика лучше всего ставить в начало цепочки, то есть там, где они учтут все пакеты, даже те из них, которые будут после отброшены

Обновлено: 12.03.2015