• Как мне создать базу и таблицы SQL?
• Специально создавать базу данных не нужно (MySQL). NeTAMS сам создаст ее при первом старте; таблицы с данными (raw и summary) будут создаваться, когда пойдет реальный трафик и начнется учет. Для Postgres вы можете создать таблицы вручную (они лежат в каталоге addon/), для Oracle вы ДОЛЖНЫ создать схему вручную (addon/oracle/).
• При компиляции не нашелся SQL. Как быть?
• Обычно, при сборке, скрипт configure.sh сканирует набор системных каталогов в поиске клиентских библиотек и заголовочных файлов. При этом на консоль выводится что–то вроде:
freebsd–vm:~/netams#make
/bin/sh configure.sh
##########################################################
## Configuring NeTAMS for build targets… ##
FreeBSD operating system…
With FreeBSD 5.XX, will have netgraph module…
Will have MYSQL support
[ /usr/local/lib/mysql /usr/local/include/mysql ]
Will have POSTGRESQL support
[ /usr/local/lib /usr/local/include ]
Will have BILLING service
Will have DEBUG flag set
Will have RADIUS support
Will have private portion of Makefile
## Configuration file was built. ##
##########################################################
К сожалению, стандартного места для таких библиотек нет, ваш конкретный дистрибутив может ставить программы куда угодно (особенно славится этим Linux), в связи с чем configure.sh может не найти библиотеки и при старте программа само–выключится с сообщением:
parse: registering storage: 1
parse: using storage:2 as source for READ and STAT requests
parse: creating service storage:1
parse: storage type is unknown
В таком случае вам необходимо вручную добавить соответствующие пути в верхние строки (начало) файла configure.sh, и пересобрать программу через:
make distclean && make
• Как мне блокировать трафик, если я использую libpcap?
• В общем случае — никак. Библиотека libpcap позволяет только слушать проходящий мимо интерфейса трафик. Все возможность блокировки через fw–policy или sys–policy работают ТОЛЬКО при наличии «перехватывающего» сервиса data–source, например IPFW или iptables/IPQ. Вы также можете написать свой скрипт (де)блокировки, который будет вызываться сервисом processor каждый раз, когда изменяется состояние системной политики юнита (см. документацию и пример).
• Почему бы не хранить конфигурацию в SQL?
• По историческим причинам NeTAMS держит ВСЮ свою конфигурацию в текстовом файле. Один и тот же код отвечает за разбор конфигурационного файла при старте, и настройку работающей программы через интерфейс командной строки. Хранение (части) конфига в SQL–базе, вообще–то очень полезная фича, потребует дублирования кода разбора конфига, дублирование кода записи конфига, и нетривиальных механизмов синхронизации SQL и внутренних структур данных работающей программы. К тому же, для управления SQL–конфигом придется писать отдельный веб–интерфейс. Эта задача (пробовали, не получилось) слишком трудоемка, чтобы браться ее реализовать в рамках бесплатного проекта и за разумное время.