Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> подсчёт трафика —> pfctl

Подсчет трафика с помощью pf

Автор: fr33man.


Решил считать трафик на внешнем интерфейсе. Сначала хотел считать с помощью trafd, но подумал, что лишняя программа в памяти не есть гуд. Второй моей мыслью был snmp, но нагружать машинку еще и snmp запросами я не решился. И тут я вспомнил, что это роутер, на котором стоит packet filter. Считать решил именно pf.
Итак, приступим. Я предполагаю, что pf у Вас уже настроен и работает. Добавляем в pf.conf следующую строку:


set loginterface ng0

Теперь проверяем работоспособность конфига:

shield@/usr/ports/net> pfctl -nf /etc/pf.conf
shield@/usr/ports/net>

И подгружаем правила:

shield@/usr/ports/net> pfctl -f /etc/pf.conf
shield@/usr/ports/net>

Вот и все. Давайте посмотрим, сколько трафика набежало:

shield@/usr/ports/net> pfctl -s info
Status: Enabled for 1 days 23:43:24           Debug: Urgent

Hostid: 0x153793d2

Interface Stats for ng0               IPv4             IPv6
  Bytes In                        41872728                0
  Bytes Out                       90656050                0
  Packets In
    Passed                          547083                0
    Blocked                             29                0
  Packets Out
    Passed                          556623                0
    Blocked                              2                0

State Table                          Total             Rate
  current entries                        4
  searches                         6146672           35.8/s
  inserts                             3730            0.0/s
  removals                            3726            0.0/s
Counters
  match                            3946799           23.0/s
  bad-offset                             0            0.0/s
  fragment                               0            0.0/s
  short                                  0            0.0/s
  normalize                              0            0.0/s
  memory                                 0            0.0/s
  bad-timestamp                          0            0.0/s
  congestion                             0            0.0/s
  ip-option                              0            0.0/s
  proto-cksum                            0            0.0/s
  state-mismatch                         0            0.0/s
  state-insert                           0            0.0/s
  state-limit                            0            0.0/s
  src-limit                              0            0.0/s
  synproxy                               0            0.0/s
shield@/usr/ports/net>

В самом верху видно, сколько байт принято и сколько отправлено.

Могу только добавить, чтобы очистить счетчик можно воспользоваться командой pfctl:


shield@/usr/ports/net> pfctl -F info
pf: statistics cleared
shield@/usr/ports/net>

Я не стал писать полный конфиг pf, так как я сейчас пишу статью про Policy Based Routing и pf. ))



размещено: 2006-11-04,
последнее обновление: 2006-11-04,
автор: fr33man


fr33man, 2006-11-07 в 19:38:24

Дописал статью про PBR & pf. Читать можно здесь:
http://fr33man.ru/22.html

Удачной настройки!

ma4o, 2007-01-16 в 14:26:19

Не работает ссылка :(

WisDem, 2007-03-17 в 10:59:41

Спасибо атору за его старания, но
на мой взгляд, лучше пользоваться pfctl -sI -vv -i ng0
для вывода информации для конкретного ифейса или pfctl -sI -vv для всех

vovans, 2007-04-27 в 17:47:38

вот если бы хоть какая-то детализация трафа — кто и скока, а ещё лучше и где! =))

sergey, 2007-06-06 в 12:56:01

"вот если бы хоть какая-то детализация трафа — кто и скока, а ещё лучше и где! =))"
--это мечта чувак:)
pf+полная статистика эхххх

opt1k, 2007-06-25 в 17:08:49

2vovans, а что мешает использовать mpd и считать трафик на его интерфейсах?

lamerz, 2007-12-11 в 7:01:14

Товарищи! Это поля для ввода комментариев к статье, а не для вопросов. Сюда пишите найденные баги, или какие-то фичи :)
Для вопросов есть форум!!

Максим Прокопов, 2007-12-28 в 15:35:32

Обратите внимание на pfflowd

Хрямзик, 2008-02-29 в 20:31:29

На внешнем интерфейсе все и вся, это, конечно, гут, но обычно нужно по юзерам... Да после ната...

mephius, 2008-03-07 в 15:49:24

"вот если бы хоть какая-то детализация трафа — кто и скока, а ещё лучше и где! =))"

/usr/ports/net/ntop
выглядеть это будет вот так: http://www.ntop.org/overview.html

schizoid, 2008-04-25 в 12:18:56

set loginterface interface

Задать интерфейс для которого пакетный фильтр собирает статистическую информацию: количество прошедших пакетов, количество заблокированных пакетов, сколько байт вошло, сколько вышло. Статистику можно собирать одновременно только на одном интерфейсе. При этом, счётчики match, bad-offset и т.п., а также счётчики в таблице состояний, работают независимо от этой опции. Чтобы отключить сбор статистики следует выставить опцию в none. Значение по умолчанию — none.

---
как-то можно это обойти? что б собирать статистику со всех интерфейсов?

Саид, 2008-08-05 в 10:18:40

Красивые картинки в стиле МРТГ рисует pfstat. Статистику берет прям от pf

Сергей, 2009-02-01 в 11:29:16

ТАК ДЕЛАТЬ НЕЛЬЗЯ!!! Предложенный метод будет работать лишь до следующей перезагрузки, т.к. pf не загрузит правила со строкой "set loginterface ng0" в момент, когда ng0 еще не существует!

meth, 2010-11-04 в 9:41:35

Срок регистрации домена fr33man.ru закончился )

Asd, 2010-11-13 в 11:56:59

\"вот если бы хоть какая-то детализация трафа — кто и скока, а ещё лучше и где! =))\" - поменьше подбного рода хауту нужно читать. В \"The Book of PF\" все хорошо описано.



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0521 секунд
Из них PHP: 30%; SQL: 70%; Число SQL-запросов: 77 шт.
Исходный размер: 24906; Сжатая: 6263