Интернет-магазин
- Программное обеспечение
- Дистрибутивы
- Офисное ПО
- СПО для Windows
- Сертифицированно ФСТЭК
- ССПТ-2
- SUSE
- Altel
- Аппаратное обеспечение
- Открытое аппаратное обеспечение
- 3D Печать
- РОББО
- Литература и обучение
- Журналы, подписка
- Книги
- Учебные курсы
- Услуги
- Лицензии и купоны на тех.поддержку
- Консалтинг, сервис, техническая поддержка
- Реклама
- Атрибутика
Продукты Oracle
Где купить ?
Помощь



Расчет трафика через Iptables
[Константин Будько (budkokv@online.ru)]
В свое время у меня возникла задача измерения трафика пользователей и трафика от провайдера. При использовании iptables решение достаточно легкое, нетрудоемкое, хотя и имеет свои ограничения. О них позже.
Конфигурация сети:
От провайдера HDCL в CISCO 1601
Далее в роутер (ASPLinux 8.2) с двумя интерфейсами
Далее в локальную сеть.
На роутере только SSH и DNS (пока).
И два скрипта: правил фильтрации и счетчиков
########################################################################## # ! /bin/bash # iptables.load - установка правил # Входящие политики по умолчанию ...* # Дополнительные цепочки ...* # Цепочки для расчета трафика приходящего на внешний интефейс # Таким образом мы имеем весь трафик который к нам # пришел от провайдера. /sbin/iptables -N in_traf /sbin/iptables -N fwd_in_traf # Цепочки для расчета трафика по пользователям i=1 while [ $i -le 254 ] do /sbin/iptables -N chain_$i i=`expr $i + 1` done # Работа цепочек ...* # Работа цепочек по расчету трафика /sbin/iptables -A in_traf -j RETURN /sbin/iptables -A fwd_in_traf -j RETURN i=1 while [ $i -le 254 ] do /sbin/iptables -A chain_$i -j RETURN i=`expr $i + 1` done # Работа входящей цепочки # Эти цепочки должны стоять обязательно первыми. /sbin/iptables -A INPUT -i eth1 -j in_traf ...* # Работа цепочки роутинга # Эти цепочки должны стоять обязательно первыми. i=1 while [ $i -le 254 ] do /sbin/iptables -A FORWARD -o eth0 -d 192.168.1.$i -j chain_$i i=`expr $i + 1` done /sbin/iptables -A FORWARD -i eth1 -j fwd_in_traf ...* # Работа исходящей цепочки ...* # Работа цепочки маскарадинга ...* # End #########################################################################*... - здесь должны быть ваши правила.
Этот файл нужно поставить в автозагрузку.
Следующий файл должен выполняться в 23:50 для того, чтобы в файле была правильная дата. Его также нужно выполнять при перезагрузках компьютера, чтобы сохранялись значения счетчиков.
############################################################################# # ! /bin/bash # traf.logging - Сбор трафика в файлы *.xls # Смена директории по умолчанию # Эти файлы находятся в директории /root # поэтому мне было проще писать их в поддиректорию # откуда ини забираются по ssh и спокойно открываются в Excel'e # В результате получаются файлы с именами "номер месяца".xls и # users_"номер месяца".xls # Внутри него создается таблица вида: # Дата - последний байт ip адреса - трафик в байтах cd /root/trafic # Присваивание параметров для мониторинга MNTH=`date +%m` DAT=`date +%d` # Расчет величины трафика входящего на интерфeйс # eth1 ( Внешний интерфейс) # Максимальный расчетный трафик за день - 953МВ IN=`/sbin/iptables -L INPUT -v -x | grep traf | head -c 18 | tail -c 9` FW=`/sbin/iptables -L FORWARD -v -x | grep traf | head -c 18 | tail -c 9` RX=`expr $IN + $FW` # Вывод расчетной величины трафика в файл echo "$DAT $RX" >> ${MNTH}.xls # Расчет индивидуальных пользователей i=1 while [ $i -le 254 ] do RX=`/sbin/iptables -L FORWARD -v -x | grep chain_$i | head -c 18 | tail -c 9` if [ $RX -ne 0 ] then echo "$DAT $i $RX" >> users_${MNTH}.xls fi i=`expr $i + 1` done # Очистка счетчиков трафика для следующего дня /sbin/iptables -Z # Done ###############################################################################
Я думаю, что многим станет понятно ограничение в 953МВ в день на каждого из пользователей и на общий трафик. Просто знаков в получаемом числе только 9. Заметьте, что в командах echo используются не пробелы, а символы табуляции. Excel так проще.
И еще одно ограничение: поскольку мы не учитываем трафик, который идет от приложений роутера к пользователям, то возможна очень маленькая погрешность.
И последнее. Если вдруг можно было сделать иначе или у меня есть ошибки, то просто напишите мне об этом. В Linux я недавно.
[ опубликовано 17/04/2003 ]
[Источник:
Библиотека Линуксцентра. Список разделов
- Презентации
- Книги и руководства
- Статьи
- Дистрибутивы
- Linux наступает!
- Безопасность
- Сети
- Аппаратное обеспечение
- Идеологические вопросы
- Windows, подвинься!
- Библиотека LinuxFormat
- Программирование
- Программное обеспечение
- Система, ядро, утилиты
- Mobile Internet Device, Mobile Internet Navigation Device на платформе Moblin от Intel
- Пресс-релизы ЛинуксЦентра
- История Linux
- Linux'оиды шутят
© 2000-2019 ГНУ/Линуксцентр © Группа компаний
info@linuxcenter.ru - По вопросам заказов, оплаты, доставки, общим вопросам
zabota@linuxcenter.ru - По проблемам работы интернет-магазина, функционирования сайта
partner@linuxcenter.ru - По вопросам сотрудничества, партнерства, оптовых закупок
linuxcenter.ru/shop - устаревшая версия Интернет-магазина ЛинуксЦентра
Перепечатка, цитирование и переработка материалов Linuxcenter.Ru разрешается в любой форме, при этом обязательна ссылка на www.linuxcenter.ru
Свидетельство о регистрации СМИ ЭЛ № ФС 77 - 37801 выдано Федеральной службой по надзору в сфере связи,
информационных технологий и массовых коммуникаций
15.10.2009
12+
Страница загружена за 0.10 сек.