Введение

Введение

Программный комплекс NeTAMS предназначен для учета и управления трафиком в вашей IP–сети передачи данных. Он работает на сервере под управлением операционных систем Linux, FreeBSD или Solaris и занимается непрерывным сбором, анализом, фильтрацией и отображением статиски о передаваемой в вашей локальной сети информации. NeTAMS выполнен в виде монолитного процесса–демона и написан на языке C/C++ в виде многопоточного приложения. Он состоит из следующих компонентов (которые здесь будет принято называть сервисами):

processor хранит в себе полные сведения обо всех объектах, подлежащих учету (IP–адреса, подсети), политиках учета, организует передачу сообщений между другими сервисами

data–source поставляет сервису processor данные о прошедшем трафике

storage хранит статистическую информацию, частично конфигурационную информацию

server обеспечивает интерактивное взаимодействие работающей программы с администратором и внешними скриптами через telnet–подобный API

scheduler, html, quota, billing и т.д. обеспечивают вторичные функции обработки статистики, такие как поддержка квот, профилей пользователей биллинга, статических HTML–страниц и прочее.

Поскольку первичным источником информации о трафике является IP–пакет, то основным объектом, статистика по которому учитывается, является IP–адрес. Совместно с адресом хранятся правила (политики) учета и фильтрации, ключ БД и другая информация, совместно образуя единую учетную единицу, или юнит (NetUnit). В настоящий момент поддерживаются следующие типы юнитов:

host — характеризуется единственным IP–адресом

cluster — характеризуется набором (до 12) IP–адресов

net — характеризуется адресом подсети и сетевой маской

user — то же, что и тип host, однако может нести дополнительные параметры, например адрес электронной почты для уведомления или пароль

group — представляет собой логическую группу (объединение) любого количества юнитов любого типа, в том числе и других групп (могут быть вложенными)

Информация о прошедшем трафике может поставляться сервису data–source от операционной системы или от внешнего устройства/приложения. Операционная система может предоставлять механизм перехвата (divert, ipq) и/или копирования (tee, ulog) проходящих через ядро пакетов userland–приложению, каковым является NeTAMS, или отслеживать пакеты, проходящие «мимо» или «через» сетевой интерфейс при помощи библиотеки libpcap. С другой стороны, исходная информация о прошедшем трафике может быть сгенерирована в виде потока сообщений протокола Cisco NetFlow установленным в сети маршрутизатором Cisco или одной из множества свободно доступных программ, снимающих статистику и генерирующих потоки NetFlow. Среди них fprobe (http://www.fprobe.org), ng_netflow (только FreeBSD, /usr/ports/net/ng_netflow), ipfw2netflow и flowprobe (входят в комплект поставки NeTAMS).

Ниже приведен список доступных типов data–source в зависимости от используемой операционной системы

Метода захвата пакетов Linux FreeBSD Solaris Перехват пакетов у ядра ОС IPQ IPFW divert Копирование пакетов из ядра ОС IPFW tee Копирование пакетов, проходящих через сетевой интерфейс libpcap libpcap libpcap Внешний источник NetFlow + + + Источник NetFlow на этом же компьютере flowprobe flowprobe flowprobe ulog2netflow ipfw2netflow ng_netflow Модуль NETGRAPH +

Для обеспечения сохранности информации, выполнения поиска, отображения суммарная статистика попадает сервису storage, который сохраняет ее в базе данных. На текущий момент поддерживаются четыре типа хранилищ:

unix hash (Berkley DB)

MySQL (версии 4.0.х и выше)

PostgresSQL

Oracle

Обычно unix hash уже присутствует в операционной системе (его, например, использует sendmail), что упрощает инсталляцию, однако скорость работы, надежность и функциональность оставляет желать лучшего. Рекомендуется использовать SQL–базу данных.

Один экземпляр NeTAMS может иметь несколько настроенных и одновременно работающих сервисов data–source и storage.