я чет не пойму
ИМХО
выдает кол-во ПАКЕТОВ, а не байтов
как же байты получить?
Mam(O)n , спасибо, дропались видимо запросы ARP.
я чет не пойму
ИМХО
выдает кол-во ПАКЕТОВ, а не байтов
как же байты получить?
... дропается из-за ДНС в данном случае. Ключик -n нужно использовать.
Проверим допустим на цепочке SECURITY:
результат как видишь в байтахCode:[root@router ~]$ iptables -L SECURITY -vnx && iptables -L -Z SECURITY -vnx | awk '/^ *[0-9]+ *[0-9]+.*/{print $2; exit}' Chain SECURITY (2 references) pkts bytes target prot opt in out source destination 44 2112 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x16/0x02 limit: avg 1/sec burst 5 0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5 0 0 RETURN udp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5 0 0 RETURN icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 2112 [root@router ~]$
Last edited by Mam(O)n; 05-12-2007 at 09:57.
мда, м.б. я что попутал?
все ли тут верно?
у меня это реализовано так:
при загрузке железки
далее кроном каждые 5 минут:PHP Code:
#!/bin/sh
#WS1="192.168.1.2"
#vsya setka
NET1="192.168.1.0/24"
#vse vmeste
#ALLNETS="$WS1 $NET1"
ALLNETS="$NET1"
rm -rf /opt/share/www/rrd/traf1.html
#firewall link
FRWL="/usr/sbin/iptables"
addrule(){
$FRWL -N ACCT_IN_$1
$FRWL -N ACCT_OUT_$1
$FRWL -F ACCT_IN_$1
$FRWL -F ACCT_OUT_$1
$FRWL -A INPUT -j ACCT_IN_$1
$FRWL -A FORWARD -j ACCT_IN_$1
$FRWL -A FORWARD -j ACCT_OUT_$1
$FRWL -A OUTPUT -j ACCT_OUT_$1
$FRWL -A ACCT_IN_$1 -s $2
$FRWL -A ACCT_OUT_$1 -d $2
}
for NET in $ALLNETS; do
addrule $NET $NET
done
я проверял так, скачивал файло метров на 700, а в результе не тоPHP Code:
#!/bin/sh
NET1="192.168.1.0/24"
ALLNETS="$NET1"
TEMPFILE="/opt/share/www/rrd/traf1.html"
php /opt/share/www/3.php
sleep 3
FRWL="/usr/sbin/iptables"
traffcnt(){
($FRWL -L -Z ACCT_IN_$1 -vnx | awk '/^ *[0-9]+ *[0-9]+.*/{print $2; exit}') > $TEMPFILE
($FRWL -L -Z ACCT_OUT_$1 -vnx | awk '/^ *[0-9]+ *[0-9]+.*/{print $2; exit}') >> $TEMPFILE
}
for NET in $ALLNETS; do
traffcnt $NET $NET
done
Last edited by lexass; 05-12-2007 at 14:37.
Ну во первых, для надёжности сделал бы так:
т.к. неизвестно, какие там у тебя в цепочках правила. Ну а во вторых cейчас в $TEMPFILE попадает количество байт за последние 5 минут, т.к. при снятии показаний счетчики обнуляются (-Z). Тебе этот результат нужен был?Code:$FRWL -I INPUT -j ACCT_IN_$1 $FRWL -I FORWARD -j ACCT_IN_$1 $FRWL -I FORWARD -j ACCT_OUT_$1 $FRWL -I OUTPUT -j ACCT_OUT_$1
Ну и соответственно первый код, где правила прописываются нужно в post-firewall.
->Ну а во вторых cейчас в $TEMPFILE попадает количество байт за последние 5 минут
знаю, перед обнулением в базе сохраняю
->Ну и соответственно первый код, где правила прописываются нужно в post-firewall.
скриптик у меня в init.d
только это оставить?
$FRWL -I INPUT -j ACCT_IN_$1
$FRWL -I FORWARD -j ACCT_IN_$1
$FRWL -I FORWARD -j ACCT_OUT_$1
$FRWL -I OUTPUT -j ACCT_OUT_$1
остальное удалить?
или доавить, заменить?
Last edited by lexass; 05-12-2007 at 15:54.
При любом изменении в интерфейсах(connect/dosconnect) сбрасываются в дефолт и перестраиваются маршруты + nat/фарволл. После всего этого вызывается post-firewall. Такчто вариант с init.d не прокатит, правила iptables нужно в post-firewall прописывать.
нет, остальное оставить как есть, только сделать изменения помеченные красным в этих строчках.
OK, ща поправлю...
ЗЫ
после изменений, цифры похожи на реальность, ну а post-firewall ща сделаю
ну да, все оно!
ЗЫ
а как из всего этого убрать локальный трафик,
оставив только то что идет от роутера и к нему за ним?
или его тут и нет?
Last edited by lexass; 05-12-2007 at 17:40.
Если юзается vpn, тогда чтобы считался только трафик, который проходит через туннель (изменения выделенны красным):Code:$FRWL -I INPUT -i ppp0 -j ACCT_IN_$1 $FRWL -I FORWARD -i ppp0 -j ACCT_IN_$1 $FRWL -I FORWARD -o ppp0 -j ACCT_OUT_$1 $FRWL -I OUTPUT -o ppp0 -j ACCT_OUT_$1
[QUOTE=Mam(O)n;71914]Если юзается vpn, тогда чтобы считался только трафик, который проходит через туннель (изменения выделенны красным):
от ВПНа я избавился, глючит он у нашего прова очень
т.е. без ВПН
Спасибо всем, вроде разобрался. Лампочка по видимому моргает из-за promiscuous mode коммутатора. А можно ли выключить это режим? ifconfig eth0 -promisc не помогает.
Last edited by almuerto; 08-12-2007 at 16:12.
Promiscuous mode по умолчанию на cpu порту отключен. А вот лампочка будет моргать также и при получении броадкаста или мультикаста. Ничего с этим не поделаешь, коммутатор обязан пропускать такого типа пакеты.