Учет трафика проходящего через бридж при помощи ipcad

OSzone.net » Видео » Unix » Интернет » Разное » Учет трафика проходящего через бридж при помощи ipcad
Иcточник: http://www.opennet.ru
Опубликована: 05.03.2005
IPCad - http://ipcad.sourceforge.net/

Поставить ipcad 3.x последний. Подредактировать его конфигурацию под свои нужды.
Hапример, у меня нужно траффик считать на мостике из трёх карточек (fxp0, fxp1,
ste1), не аггрегируя его ни по портам, ни по адресам, причём только входящие пакеты,
получился вот такой конфиг для ipcad:

=== Cut /usr/local/etc/ipcad.conf ===
capture-ports enable;

interface fxp0 promisc input-only netflow-disable;
interface fxp1 promisc input-only netflow-disable;
interface ste1 promisc input-only netflow-disable;

rsh enable at 127.0.0.1;
rsh root@127.0.0.1 admin;       /* Can shutdown ipcad */
rsh ttl = 3;
rsh timeout = 30;

netflow export version 5; # NetFlow export format version {1|5}
netflow timeout active 30; # Timeout when flow is active, in minutes
netflow timeout inactive 15; # Flow inactivity timeout, in seconds

chroot = /var/log/ipcad3;
pidfile = ipcad.pid;
dumpfile = ipcad.dump;

memory_limit = 4m;
=== Cut ===

А чтобы ipcad запускался при запуске машины можно либо в /etc/rc.local воткнуть
строчку "ipcad -rds", либо создать такой файлик:

=== Cut /usr/local/etc/rc.d/ipcad.sh ===
#!/bin/sh

case "$1" in
 start)
  ipcad -rds
  ;;
 *)
  echo ""
  echo "Usage: `basename $0` { start }"
  echo ""
  exit 1
  ;;
esac
=== Cut ===

VK>> статистику из ipcad в файлы переливает и в архивы кладёт. Всё
VK>> работает, уже не первый месяц.

Вот такой файл у меня по CRON-у запускается раз в 15 минут (можно и раз в 5 минут, и
раз в 1 минуту, это позволило бы держать меньший буфер памяти под ipcad-ом, сейчас у
меня 4 мега, за 15 минут заполняется едва на четверть).

=== Cut /var/log/ipcad3/get/get-ipcad3-stat.sh ===
#!/bin/sh
#set -x
DIR=/var/log/ipcad3

# Move IP accounting to checkpoint
rsh localhost clear ip accounting >> /dev/null
# Show saved IP accounting
rsh localhost show ip accounting checkpoint > $DIR/last
# Clear checkpoint
rsh localhost clear ip accounting checkpoint >> /dev/null

set `date +"%Y %m %d %H %M"`
OUT=$DIR/stat/$1/$2
DAYZIP=$3.zip
DAYZIPNAME=$3
FILENAME="$4-$5"
if [ ! -d $OUT ]
then
  mkdir -p $OUT
fi

grep fxp0 < $DIR/last > $OUT/$FILENAME.fxp0
grep fxp1 < $DIR/last > $OUT/$FILENAME.fxp1
grep ste1 < $DIR/last > $OUT/$FILENAME.ste1
egrep -v `fxp0|fxp1|ste1` < $DIR/last > $OUT/$FILENAME.othr

/usr/local/bin/zip -qjm $OUT/$DAYZIPNAME-fxp0.zip $OUT/$FILENAME.fxp0
/usr/local/bin/zip -qjm $OUT/$DAYZIPNAME-fxp1.zip $OUT/$FILENAME.fxp1
/usr/local/bin/zip -qjm $OUT/$DAYZIPNAME-ste1.zip $OUT/$FILENAME.ste1
/usr/local/bin/zip -qjm $OUT/$DAYZIPNAME-othr.zip $OUT/$FILENAME.othr

exit
=== Cut ===

В результате в каталоге /var/log/ipcad3/stat/2004 у меня образуются подкаталоги с 01
по 12, а уже в них лежат файлы архивов с датой и именем интерфейса. В архиве лежат
файлы с названиями вида 00-00.fxp0 и информацией о прошедших пакетах внутри.

Ссылка: http://www.oszone.net/2848/

Рейтинг@Mail.ru liveinternet.ru: статистика