Введение
Программный комплекс 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 ulog2netflow |
flowprobe ipfw2netflow ng_netflow |
flowprobe |
Модуль NETGRAPH |
|
+ |
|
Для обеспечения сохранности информации, выполнения поиска, отображения суммарная статистика попадает сервису
storage, который сохраняет ее в базе данных. На текущий момент поддерживаются четыре типа хранилищ:
- unix hash (Berkley DB)
- MySQL (версии 4.0.х и выше)
- PostgresSQL
- Oracle
Обычно unix hash уже присутствует в операционной системе (его, например, использует sendmail), что упрощает инсталляцию, однако скорость работы, надежность и функциональность оставляет желать лучшего. Рекомендуется использовать SQL-базу данных.
Один экземпляр NeTAMS может иметь несколько настроенных и одновременно работающих сервисов
data-source и
storage.