You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Этот способ сбора данных о трафике (источник) позволяет собирать информацию на одной машине (PC-роутере), и передавать ее на сервер биллинга (другую машину) по сети. Конечно, в простом случае это может быть одной машиной.

Сбор данных осуществляется через библиотеку libpcap, аналогично утилитам tcpdump и Wireshark. Преимуществом данного подхода являеются:

  • уход от медленной и ненадежной (FreeBSD) библиотеки jnetpcap
  • возможность разнести пропуск трафика и обработку статистики на разные машины (и разные платформы)
  • возможность осуществлять блокировку по трафику (FreeBSD / pf)

Вопрос: Почему бы не работать через ipfw?

Ответ: Работа по механизму ipfw предусматривает копирование пакета из kernel space в user space два раза, что замедляет работу сервера-маршрутизатора. К тому же, такой подсчет не корректно работает в случае трансляции адресов, является потенциально небезопасным (не работает биллинг-трафик не ходит).

"Удаленный агент" представляет собой программу, собранную статически (нет зависимостей от внешних библиотек), работающую под операционными системами Linux и FreeBSD (32 и 64 бит). Агент слушает проходящий мимо указанного сетевого интерфейса трафик, фильтрует его согласно заданной политике, формирует потоки статистики, и отправляет их в сторону сервера биллинга. Протокол обмена - собственный, поверх UDP, порт по умолчанию: 20002.

Ответная часть на стороне сервера биллинга (jserver) представляет собой настроенный источник данных (data source) типа RemoteAgentDatasource.

Перечислим все возможные настраиваемые параметры источника:

Параметр

Описание

ds_name

Человеческое имя источника данных

listen_at

Локальный IP-адрес, на котором слушать входящие соединения. По умолчанию 0.0.0.0 - на всех.

port

Локальный UDP-порт, на котором слушать входящие соединения. По умолчанию 20002.

accept_from

IP-адрес удаленной стороны (агента), который будет подключаться к серверу. По умолчанию разрешить подключение отовсюду (0.0.0.0)

password

Пароль на подключение агента, по умолчанию "password". Его хэшем подписываются все пакеты.

interface

Имя локального интерфейса на стороне агента, на котором обрабатывать трафик. Если не задано, то выставляется на стороне агента. По умолчанию "интерфейс лупбэк0".

rule

Правило, которым на стороне агента происходит фильтрование трафика. Если не задано, то выставляется на стороне агента. По умолчанию "весь трафик".

Агент на "удаленной стороне" - UNIX-демон. Скачать можно с сайта, или взять в дистрибутиве из каталога jserver/bin.

Запускается так:

demo:~#n4agent_pcap_event -c demo.netams.com:20002 -i eth0

Параметры командной строки:

Параметр

Описание

-q

Ничего не выводить при запуске, работать молча

-c hostname:port

Параметры подключения к сервисе биллинга (RemoteAgentDatasource), адрес сервера и UDP-порт (по умолчанию localhost:20002)

-p password

Пароль на подключение (password)

-i interface

Интерфейс, на которм слушает PCAP (lo0, нужного трафика там наверняка нет)

-r rule

Правило фильтрации (man tcpdump). По умолчанию отсутствует (весь трафик)

-e scriptname

Имя shell-скрипта, который вызывается для блокировки трафика посредством помещения IP-адреса в соответствующую таблицу pf.

  • No labels