ipcad – подсчет трафика

Установка:

# cd /tmp
# wget http://rnd.rajven.net/centos/7/os/x86_64/ipcad-3.7.3-5cnt7.x86_64.rpm
# yum install ipcad-3.7.3-5cnt7.x86_64.rpm -y

Правим конфиг:

# vi /etc/ipcad.conf

capture-ports enable;
interface "enp3s1" promisc;
#Если нужен маркированный трафик
#interface ulog group 1;
interface tun0 promisc;
aggregate 192.168.113.0/24 strip 32;
aggregate 10.8.0.0/24 strip 32;
aggregate 0.0.0.0/0 strip 32;
rsh enable at 127.0.0.1;
rsh root@127.0.0.1 admin;
rsh user@127.0.0.1 deny;
rsh 127.0.0.1 view-only;
netflow export version 5;
netflow export destination 127.0.0.1 9998;
pidfile = /var/run/ipcad.pid;
dumpfile = /var/log/ipcad/ipcad.dump;

Создаем директорию, файл и назначаем права доступа:

# mkdir -p /var/log/ipcad && touch /var/log/ipcad/ipcad.dump && chmod 600 /var/log/ipcad/ipcad.dump

Если маркируем пакеты то дописываем правила iptables для маркировки (после NAT):

# IPCAD
iptables -A FORWARD -j ULOG --ulog-nlgroup 1
iptables -A OUTPUT -j ULOG --ulog-nlgroup 1

Запуск:

# ipcad -rds

Значение ключей таково:

  • r – при запуске импортируем данные из dumpfile;
  • d – запускаем процесс в виде демона (при первом запуске его можно не использовать);
  • s – по завершению работы сохранять статистику в dumpfile.

Просмотр статистики:

# rsh localhost show ip accounting

Полезно периодически сохранять текущую статистику в файл:

# rsh localhost dump > /var/log/ipcad/ipcad.`date`

Общий синтаксис команд для ipcad выглядит следующим образом:

rsh host comand

где host – это хост, на котором ведётся статистика, а comand – это сама команда. В рассматриваемом случае значением host является localhost.

По команде:

rsh localhost help

доступен полный список команд. А именно:

n  show ip accounting – показать статистику.
n  clear ip accounting – сбросить статистику до контрольной точки. Если контрольная точка не задана, то статистика сбрасывается в ноль.
n  show ip accounting checkpoint – показать статистику, сохранённую в контрольных точках.
n  clear ip accounting checkpoint – сбросить все контрольные точки.
n  show ip cache flow – показать кэш NetFlow.
n  show interface <iface> – показать счётчик интерфейса <iface>.
n  dump [<path>] – сохранить текущую статистику в файл <path>. Если <path> не указывать, то статистика сбросится в dumpfile, указанный в конфигурационном файле ipcad.conf.
n  restore [<path>] – восстановить статистику.
n  import [<path>] – импортировать (добавить) статистику.
n  stat – показать текущее состояние работы ipcad.
n  show version – показать версию и uptime ipcad.
n  shutdown – завершить работу ipcad.

При запуске скрипта возможен вывод варнинга:

# /home/$user/bin/ipcad.ch
connect to address ::1: Connection refused
Typing 127.0.0.1...
connect to address ::1: Connection refused
Typing 127.0.0.1...
IP accounting cleared
connect to address ::1: Connection refused
Typing 127.0.0.1...

localhost у вас резолвится в

host localhost  
localhost has address 127.0.0.1
localhost has IPv6 address ::1

сначала идет попытка коннектится к ::1:514, там никто не слушает, после rsh делает коннект к 127.0.0.1:514 а там у вас ipcad, трактуйте это не как ошибку а как warning, на работу вашего скрипта это не оказывает никакого влияния.

Если вас это ругань сильно напрягает, то можете заменить в скрипте

rsh localhost на rsh 127.0.0.1

http://www.adodo.ru/blog/linux/95.html

http://www.gentoo.ru/node/11796

http://muff.kiev.ua/content/ipcad-netflow-sobiraem-i-slivaem-statistiku-traffika

https://local.com.ua/forum/topic/81132-ipcad-%D0%BD%D0%B5-%D0%BE%D1%82%D0%B4%D0%B0%D0%B5%D1%82-%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D1%83-%D0%BF%D0%BE-%D1%81%D0%B5%D1%82%D0%B8/

https://www.nixp.ru/articles/11.html

https://forum.netgate.com/topic/72733/%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82-ipcad-%D0%BD%D0%B5-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D0%B5%D1%82%D1%81%D1%8F

IPCAD installation on CentOS 7