Добрый день всем!Есть шлюз на FreeBSD 5.5-STABLE. На внешнем интерфейсе несколько адресов. Внутренние адреса разбиты на группы. Каждая группа транслируется в свой внешнй IP-адрес. Планирую перейти с ipfw на pf. Подскажите пожалуйста какими средствами, в этом случае, можно реализовать подсчёт траффика по локальным IP.
В идеале хотелось-бы получить информацию о траффике в следующем формате:TIME SRC-IP SRC-PORT DST-IP DST-PORT BYTES ALIAS
где один из IP-адресов принадлежт локальной сети, а другой - внешней. ALIAS - адрес, в который транслируется локальный IP.
Спасибо!
Очень рекомендую использовать следующую схему.
на каждый интерфейс вешаешь по коллектору
#Example change rl0 & rl1
/usr/local/sbin/cnupm -p -a 1 -i rl0
/usr/local/sbin/cnupm -p -a 1 -i rl1
и затем по cron
запускаешь скрипт
#!/bin/shIF0='rl0'
IF1='rl1'
####### Rotate $IF0 ##########if [ -f /var/cnupm/cnupm-$IF0.pid ]; then
kill -HUP `cat /var/cnupm/cnupm-$IF0.pid`
sleep 1
if [ -f /var/cnupm/cnupm-$IF0.dump ]; then
/usr/local/sbin/cnupmstat -B $IF0 > /var/log/$IF0.log
rm /var/cnupm/cnupm-$IF0.dump
echo "`/bin/date` $IF0 collected" >> /var/log/traf.log
fi
fi####### Rotate $IF1 ##########
if [ -f /var/cnupm/cnupm-$IF1.pid ]; then
kill -HUP `cat /var/cnupm/cnupm-$IF1.pid`
sleep 1
if [ -f /var/cnupm/cnupm-$IF1.dump ]; then
/usr/local/sbin/cnupmstat -B $IF1 > /var/log/$IF1.log
rm /var/cnupm/cnupm-$IF1.dump
echo "`/bin/date` $IF1 collected" >> /var/log/traf.log
fi
fi
и после выполнения данного скрипта имеешь в файлах
/var/log/имя_интерфейса.log
следующий формат
DATE TIME RC-IP SRC-PORT DST-IP DST-PORT PROTO BYTES
>Очень рекомендую использовать следующую схему.
>на каждый интерфейс вешаешь по коллектору
>#Example change rl0 & rl1
>/usr/local/sbin/cnupm -p -a 1 -i rl0
>/usr/local/sbin/cnupm -p -a 1 -i rl1
>и затем по cron
>запускаешь скрипт
>#!/bin/sh
>
>IF0='rl0'
>IF1='rl1'
>
>
>####### Rotate $IF0 ##########
>
>if [ -f /var/cnupm/cnupm-$IF0.pid ]; then
> kill -HUP `cat /var/cnupm/cnupm-$IF0.pid`
> sleep 1
> if [ -f /var/cnupm/cnupm-$IF0.dump ]; then
> /usr/local/sbin/cnupmstat -B $IF0 > /var/log/$IF0.log
> rm /var/cnupm/cnupm-$IF0.dump
> echo "`/bin/date` $IF0 collected" >> /var/log/traf.log
> fi
>fi
>
>####### Rotate $IF1 ##########
>
>if [ -f /var/cnupm/cnupm-$IF1.pid ]; then
> kill -HUP `cat /var/cnupm/cnupm-$IF1.pid`
> sleep 1
> if [ -f /var/cnupm/cnupm-$IF1.dump ]; then
> /usr/local/sbin/cnupmstat -B $IF1 > /var/log/$IF1.log
А почему бы так ненаписать?
Тогда будет ведь дописывать данные а не перезаписывать?
/usr/local/sbin/cnupmstat -B $IF1 >> /var/log/$IF1.log
> rm /var/cnupm/cnupm-$IF1.dump
> echo "`/bin/date` $IF1 collected" >> /var/log/traf.log
> fi
>fi
>и после выполнения данного скрипта имеешь в файлах
>/var/log/имя_интерфейса.log
>следующий формат
>DATE TIME RC-IP SRC-PORT DST-IP DST-PORT PROTO BYTES