URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 46435
[ Назад ]

Исходное сообщение
"считаем трафик через iptables"

Отправлено klez , 23-Июл-04 18:10 
создал свои цепочки для подсчета трафика локальной сети через iptables 192.168.0. 1 по 254 ip адреса и пока происходит запись в MySQL
проходит ~ 3 минут  после чего цепочки обнуляються, как можно это исправить???
А, при выделенном канале, за это време не знай сколько можно накачать :)

Содержание

Сообщения в этом обсуждении
"считаем трафик через iptables"
Отправлено skyer , 23-Июл-04 21:05 
>создал свои цепочки для подсчета трафика локальной сети через iptables 192.168.0. 1
>по 254 ip адреса и пока происходит запись в MySQL
>проходит ~ 3 минут  после чего цепочки обнуляються, как можно это
>исправить???
>А, при выделенном канале, за это време не знай сколько можно накачать
>:)

А ты выключи сервис iptables он теперь тебе совсем не нужен!
напиши свой скрипт со всеми правилами файрвола. А почему так долго пишется в базу? И если не секрет как написал считалку трафика и в каком режиме она работает? Сам занимаюсь подоюной вещью только безбазы


"считаем трафик через iptables"
Отправлено klez , 24-Июл-04 09:57 
создаем правила:
for a in `seq 1   254`;
do
iptables -N 192.168.1.$a
iptables -A FORWARD -s "192.168.1.$a" -j 192.168.1.$a
iptables -A FORWARD -d "192.168.1.$a" -j 192.168.1.$a
done

собираем в MySQL:
#!/bin/bash
for a in `seq 1  254`;
do
out=`iptables -L -v -x|grep OUT-IP$a[^0-9]|awk '{print $2}'|grep ^[^OUT-IP]`
in=`iptables -L -v -x|grep IN-IP$a[^0-9]|awk '{print $2}'|grep ^[^IN-IP]`

mysql  billing -e " insert into uchet values ('192.168.1.$a', '$out', '$in', '$(date +%Y-%m-%d)');"
done
iptables -Z
предварительно должен создать таблицу:
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| ip_adress  | varchar(20) | YES  |     | NULL    |       |
| in_my_net  | int(11)     |      |     | 0       |       |
| out_my_net | int(11)     |      |     | 0       |       |
| time       | date        | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+



"считаем трафик через iptables"
Отправлено klez , 24-Июл-04 09:58 
а зачем отключать сервис iptables???

"считаем трафик через iptables"
Отправлено skyer , 24-Июл-04 17:07 
>а зачем отключать сервис iptables???

файрвол есть всегда, а вот сервис iptables занимается сохранением правил при выклчюении системы и востановлением правил при включении! так же вроде он умеет обнулять счетчики по расписанию. так что смотри в конфигах сервиса. у меня не обнулялась статистика у меня появляись левые правила при запуски системы (я тестировал какие правила надо создавать, а он их куда-то сохранял и потом они повлялись снова, так как перелазил с фряхи на Linux). Ты так и не ответил в каком режиме у тебя работает статистика в реальном временили или раз в промежуток времени! и ещё если не секрет где собираешся использовать сие творение? просто я встретился с одной проблемкой при использовании такого аналога статистики в домашней сети из 20 машин не хватает скорости для игры нескольким человекам на выделеном серваке в инете и пров вапит на мою статистику


"считаем трафик через iptables"
Отправлено skyer , 24-Июл-04 17:09 

>iptables -N 192.168.1.$a
>iptables -A FORWARD -s "192.168.1.$a" -j 192.168.1.$a
>iptables -A FORWARD -d "192.168.1.$a" -j 192.168.1.$a
ты с маскарадингом работаешь или через iproute2?



"считаем трафик через iptables"
Отправлено klez , 26-Июл-04 11:26 
Использую трансляцию адресов-NAT.



"считаем трафик через iptables"
Отправлено klez , 26-Июл-04 11:34 
По-моему счетчик работает в реальном времнеи тк я создаю пользовательские цепочки, а весь трафик локальной сети проходит через шлюз на котором как раз и работают правила.
А, обнуление:
iptables -L -v -x > file.tmp
потом обрабатываем grep и awk, закидываем в MySQL.
Хочу использовать для подсчета трафикка локальной сети :)

"считаем трафик через iptables"
Отправлено skyer , 26-Июл-04 21:08 
>По-моему счетчик работает в реальном времнеи тк я создаю пользовательские цепочки, а
>весь трафик локальной сети проходит через шлюз на котором как раз
>и работают правила.
>А, обнуление:
>iptables -L -v -x > file.tmp
>потом обрабатываем grep и awk, закидываем в MySQL.
>Хочу использовать для подсчета трафикка локальной сети :)


Это конечно хорошо но в реальном времени работать не будте! поскольку зависит от крона или как ты его запускаешь, то есть пользователь без проблем сам того не подозревая нажжет немеряно трафика на нормалльном канале (к меня в среднем за 1 минуту по крону проверка идет пользователь может потратить примерно 8-10 мегов на канале в 20 мегабит если льет из-за бугра, а если это где-то близко то цыфра сильно вырастает).

я меня скрипт на перле
и я избавился от этого
>iptables -L -v -x > file.tmp  поскольку надо писать на винт, что не есть хорошо.
я пишу в переменную а птом её разбираю ка мне надо. а тебе наверное проше эту строку обединить в один конвеер с grep и awk.
я на твоем месте бы озаботился сколько потратит пользователь сверх того что оплатил. У нас пров предоставляет метр по 3 рубля в среднем пользоватеть локалки домашней берет мегов 100 и может потратить ещё 10 сверху при 20 пользователях это 600 рублей мимо для нас это было проблеммой в начале развития поскольку ни кто не хотел создавать резерв на такие случаи.
если хочешь могу отправить свой скрипт. но я не пользуюсь базой у меня все в файлах


"считаем трафик через iptables"
Отправлено shaman , 27-Июл-04 09:33 
Чтобы таких проблем не возникало, надо использовать специализированные средства подсчета трафика
www.netams.com