Облік трафіку в Linux за допомогою ipcad, Мережі, Статті, Бібліотека Лінуксцентру, – експерт з Linux та

[Олександр Кузнєцов (fly4life nixp ru)]

Багато системних адміністраторів у своїй роботі стикаються із завданням підрахунку витрачається трафіку у своїй локальній мережі. Я розповім, як упоратися зі збором статистики і покажу, що насправді це нескладне завдання.

Для початку необхідно завантажити останню версію ipcad. На момент написання такої статті була 3.6.6. У процесі установки немає нічого нетривіального:

У RPM-заснованих дистрибутивах встановлювати краще за допомогою checkinstall (щоб дотримуватися правил пакетної системи).

З численних способів ведення статистики найпростішим є облік трафіку, що пройшов через фізичні інтерфейси шлюзу (у цій статті - два ethernet-інтерфейси). Для конкретизації опису налаштувань взято локальну мережу з однією підмережею 192.168.0.0/24.

За замовчуванням єдиний файл конфігурації ipcad знаходиться в директорії /usr/local/etc. Перетворений під завдання обліку трафіку через два мережеві інтерфейси eth0 і eth1 ipcad.conf виглядає так:

На цьому процеси встановлення та налаштування завершено, і можна переходити до запуску ipcad.

Запускати ipcad має сенс таким чином, щоб при завантаженні він відновлював дані про статистику з dumpfile, йшов у фон, а при вимкненні скидав усі дані в той же dumpfile. Команда для запуску виглядає так:

де ключ 'r' імпортує дані з dumpfile, 'd' - "демонізує" ipcad, 's' - скидає статистику в dumpfile при вимкненні ipcad.

Найкраще розмістити вказану команду в один із init-скриптів для запуску ipcad разом із системою. Який саме init-скрипт я не конкретизую, т.к. це від кожного дистрибутива. Наприклад, у SuSE Linux для подібних цілейслужить скрипт /etc/init.d/boot.local, а Red Hat - /etc/rc.d/rc.local.

Для керування статистикою ipcad використовується rsh, налаштування якого [rsh] задаються в конфігураційному файлі ipcad.conf (про що йдеться в пункті "Налаштування ipcad"). Загальний синтаксис команд для ipcad виглядає так:

rsh host command

де "host" - це хост, на якому ведеться статистика, а "command" - це сама команда. У цьому випадку значенням 'host' є localhost.

За командою: rsh localhost help – доступний повний перелік команд. А саме:

show ip accounting # показати статистику clear ip accounting # скинути статистику до контрольної точки. Якщо контрольна точка не задана, статистика скидається в нуль show ip accounting checkpoint # показати статистику збережену в контрольних точках clear ip accounting checkpoint # скинути всі контрольні точки

show ip cache flow # показати кеш NetFlow

show interface # показати лічильник інтерфейсу

] # зберегти поточну статистику у файл

не вказувати, статистика збережеться в dumpfile, вказаний в конфігураційному файлі ipcad.conf restore [

] # відновити статистику import [

] # імпортувати (додати) статистику

stat # показати поточний стан роботи ipcad show version # показати версію та uptime ipcad'а

shutdown # завершити роботу ipcad

Однак таким чином на екран виведеться інформація про весь трафік, що пройшов через шлюз. Тобто. в одній таблиці буде статистика по всьому вхідному та вихідному трафіку з локальної мережі.

Використовується просто: ./traff.acc ip

Для реалізації цього механізму створено файл /etc/cron.d/ipcad із завданнями для cron'у:

------------------------Begin of /etc/cron.d/ipcad---------------- --- * * * * * root rsh localhost dump >/dev/null 59 23 * * * root date "+\%Y\%m" > /var/log/ipcad/ipcad.date 0 0 1 * * root (rsh localhost dump /var/log/ipcad/ipcad-$(cat /var/log/ipcad/ipcad.date).dump & &rrsh localhost clear ip accounting) >/dev/null 2>&1 --------------------------End of /etc/cron.d/ipcad-------------------

Використовувати наведений скрипт можна двома способами: 1) ./traff.acc.2 m де семафор 'm' означає те, що на екран необхідно вивести загальну статистику за вказаний місяць.

2) ./traff.acc.2 u де семафор 'u' означає те, що на екран необхідно вивести статистику вказаного користувача за певний місяць.

Олександр Кузнєцов (fly4life nixp ru) - Облік трафіку в Linux за допомогою ipcad Версія для друку