Jump to content
  • 2

Показ трафика для каждого клиента


Victor_S

Question

На ADSL модемах Acorp был подсчет трафика от клиентов проходящего через устройство ip accaunt. Хотелось бы увидеть что то подобное Keenetic.

Считаю что даже точность большая не нужна. Очень актуально для GPRS т.к. опсосы не дают по трафику ни какой инфы.

Link to comment
Share on other sites

25 answers to this question

Recommended Posts

  • 0

Нет это целиком по интерфейсу.

Примерно так бы хотелось.

http://www.ellink.ru/co/adsl/etc/acorp/ ... manual.pdf

стр. 70

На странице IP Account отображается информация об объеме данных, переданных с

каждого IP-адреса. локальной сети.

Link to comment
Share on other sites

  • 0

На днях стал счастливым обладателем Keenetik III.

И пока для полного счастья мне не хватает:

1. Расширения функционала "Белых" и "Черных" списков. Кстати, в текущйе реализаци они какие-то невнятные... Я так и не понял они раздельные, или просто один и тот же список переносится в разные категории.

А хотелось бы функционала как в dd-wrt. Т.е. возможности создавать несколько групп устройств (причем как по MAC так и по диапазону IP) и потом, назначать этим группам расписание доступа в инет, ограничения по скорости и проч.. Было бы круто!

2. Облчное управление - это КРУТО! Это реально круто! Теперь можно управлять роутерм даже за "серым" IP! Эээх, добавить бы туда еще возможность по WOL будить компы находящиеся за роутером - цены не будет этому функционалу!

Ну и совсем уже размечтавшись:

3. Вот бы еще поддержку Skype аккаунтов... Чтобы подрубил телефон к роутеру и звонить по скайпу... :)

Link to comment
Share on other sites

  • 0
На днях стал счастливым обладателем Keenetik III.

И пока для полного счастья мне не хватает:

3. Вот бы еще поддержку Skype аккаунтов... Чтобы подрубил телефон к роутеру и звонить по скайпу... :)

Skype скорее всего не будет никогда, а об остальном можно подумать :)

Link to comment
Share on other sites

  • 0

1. Расширения функционала "Белых" и "Черных" списков. Кстати, в текущйе реализаци они какие-то невнятные... Я так и не понял они раздельные, или просто один и тот же список переносится в разные категории.

А хотелось бы функционала как в dd-wrt. Т.е. возможности создавать несколько групп устройств (причем как по MAC так и по диапазону IP) и потом, назначать этим группам расписание доступа в инет, ограничения по скорости и проч.. Было бы круто!

2. Облчное управление - это КРУТО! Это реально круто! Теперь можно управлять роутерм даже за "серым" IP! Эээх, добавить бы туда еще возможность по WOL будить компы находящиеся за роутером - цены не будет этому функционалу!

Принято. п. 1 уже в планах на этот год.

  • Thanks 1
Link to comment
Share on other sites

  • 0
Эээх, добавить бы туда еще возможность по WOL будить компы находящиеся за роутером - цены не будет этому функционалу!

А есть возможность использовать WOL c помощью пакетов OPKG (коммандной строкой)?

Когда-то на V1 пользовался etherwake, а для DSL что-то ничего похожего не нашел.

Link to comment
Share on other sites

  • 0

Доброго времени суток!

Есть ли способ в Giga 3 отключить индикаторы LAN портов (очень яркие)? Можно как-то оставить реквест на реализацию возможности их отключения функциональными кнопками / просто через веб интерфейс? Уж очень они раздражают.

Спасибо.

Link to comment
Share on other sites

  • 0

По поводу трафика давным давно в dd-wrt был написан скрипт на базе js, нескольких скриптов *.sh по обработке файла conntrack

[spoiler=]

...
# Check the number of ip_conntrack fields
CONNTRACK=$(tail -n1 /proc/net/ip_conntrack | awk 'END { print NF; }')

while :
do
 #Create the RRDIPT CHAIN (it doesn't matter if it already exists).       
 iptables -N RRDIPT 2> /dev/null                                          

 #Add the RRDIPT CHAIN to the FORWARD chain (if non existing).               
 iptables -L FORWARD --line-numbers -n | grep "RRDIPT" | grep "1" > /dev/null
...
 grep ${LAN_TYPE} /proc/net/arp | awk 'BEGIN { printf "{arp::"} { printf "'\''%s'\'','\''%s'\'',",$1,$4; } END { print "'\''-'\''}"}' >> /tmp/traffic.dat
 #awk 'BEGIN { printf "{hosts::"} { printf "'\''%s'\'','\''%s'\'',",$1,$2; } END { print "'\''<% show_wanipinfo(); %>'\''}"}' /tmp/hosts >> /tmp/traffic.dat
 if [ $CONNTRACK -eq 19 ]; then
   awk 'BEGIN { printf "{ip_conntrack::"} { gsub(/(src|dst|sport|dport|mark)=/, ""); printf "'\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'',%s,",$1,$1 == "tcp" ? $5 : $4,$1 == "tcp" ? $7 : $6,$1 == "tcp" ? $6 : $5,$1 == "tcp" ? $8 : $7,$(NF-1); } END { print "'\''-'\''}"}' /proc/net/ip_conntrack >> /tmp/traffic.dat
 else
   awk 'BEGIN { printf "{ip_conntrack::"} { gsub(/(src|dst|sport|dport|mark)=/, ""); printf "'\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'',%s,",$1,$1 == "tcp" ? $5 : $4,$1 == "tcp" ? $7 : $6,$1 == "tcp" ? $6 : $5,$1 == "tcp" ? $8 : $7,$(NF-2); } END { print "'\''-'\''}"}' /proc/net/ip_conntrack >> /tmp/traffic.dat
 fi
 iptables -L RRDIPT -vnx -t filter | grep ${LAN_TYPE} | awk 'BEGIN { printf "{bw_table::" } { if (NR % 2 == 1) printf "'\''%s'\'','\''%s'\'',",$8,$2; else printf "'\''%s'\'',",$2;}' >> /tmp/traffic.dat
 uptime | awk '{ printf "'\''-'\'','\''%s'\''}\n{uptime::%s}\n", $1, $0 } END { print "{ipinfo::<% show_wanipinfo(); %>}" }' >> /tmp/traffic.dat
...

Пробовал давным давно на DIR300NRU при скоростях 5Мбит данный скрипт работал даже на таком роутере (клиентом правда было два сетевых устройства).

qos_conntrack_013_208.png.719bd64787a650

Link to comment
Share on other sites

  • 0
По поводу трафика давным давно в dd-wrt был написан скрипт на базе js, нескольких скриптов *.sh по обработке файла conntrack

[spoiler=]

...
# Check the number of ip_conntrack fields
CONNTRACK=$(tail -n1 /proc/net/ip_conntrack | awk 'END { print NF; }')

while :
do
 #Create the RRDIPT CHAIN (it doesn't matter if it already exists).       
 iptables -N RRDIPT 2> /dev/null                                          

 #Add the RRDIPT CHAIN to the FORWARD chain (if non existing).               
 iptables -L FORWARD --line-numbers -n | grep "RRDIPT" | grep "1" > /dev/null
...
 grep ${LAN_TYPE} /proc/net/arp | awk 'BEGIN { printf "{arp::"} { printf "'\''%s'\'','\''%s'\'',",$1,$4; } END { print "'\''-'\''}"}' >> /tmp/traffic.dat
 #awk 'BEGIN { printf "{hosts::"} { printf "'\''%s'\'','\''%s'\'',",$1,$2; } END { print "'\''<% show_wanipinfo(); %>'\''}"}' /tmp/hosts >> /tmp/traffic.dat
 if [ $CONNTRACK -eq 19 ]; then
   awk 'BEGIN { printf "{ip_conntrack::"} { gsub(/(src|dst|sport|dport|mark)=/, ""); printf "'\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'',%s,",$1,$1 == "tcp" ? $5 : $4,$1 == "tcp" ? $7 : $6,$1 == "tcp" ? $6 : $5,$1 == "tcp" ? $8 : $7,$(NF-1); } END { print "'\''-'\''}"}' /proc/net/ip_conntrack >> /tmp/traffic.dat
 else
   awk 'BEGIN { printf "{ip_conntrack::"} { gsub(/(src|dst|sport|dport|mark)=/, ""); printf "'\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'',%s,",$1,$1 == "tcp" ? $5 : $4,$1 == "tcp" ? $7 : $6,$1 == "tcp" ? $6 : $5,$1 == "tcp" ? $8 : $7,$(NF-2); } END { print "'\''-'\''}"}' /proc/net/ip_conntrack >> /tmp/traffic.dat
 fi
 iptables -L RRDIPT -vnx -t filter | grep ${LAN_TYPE} | awk 'BEGIN { printf "{bw_table::" } { if (NR % 2 == 1) printf "'\''%s'\'','\''%s'\'',",$8,$2; else printf "'\''%s'\'',",$2;}' >> /tmp/traffic.dat
 uptime | awk '{ printf "'\''-'\'','\''%s'\''}\n{uptime::%s}\n", $1, $0 } END { print "{ipinfo::<% show_wanipinfo(); %>}" }' >> /tmp/traffic.dat
...

Пробовал давным давно на DIR300NRU при скоростях 5Мбит данный скрипт работал даже на таком роутере (клиентом правда было два сетевых устройства).

1. В теории ничто не мешает адаптировать его под opkg и запускать.

2. В связи с наличием ускорителей его вывод при их работе будет напоминать мало связанный с реальностью мусор.

Link to comment
Share on other sites

  • 0

А вообще журналирование можно предусмотреть...на винт например внешний?

Прохождение пакетов откуда и куда? :D

...и хорошо-бы URL фильтр ...знаю, что фигня и по https фильтроваться не будет, но для ограничения школоте пошло-бы.

Link to comment
Share on other sites

  • 0

1. В теории ничто не мешает адаптировать его под opkg и запускать.

2. В связи с наличием ускорителей его вывод при их работе будет напоминать мало связанный с реальностью мусор.

Может и мусор, но у вас счетчики ранее считали правильно в - Мониторе, сейчас да.

Но читая данный форум многие клиенты отключают ускорители, второе не кто не мешает дать выбор клиенту либо так но с выключенными ускорителями, тем более роутеры становятся мощнее, да и не у всех каналы выше 100Мбит, большинство используют 3G и контроль байтиков для них например важен, так как тарифы ограничены GB.

Link to comment
Share on other sites

  • 0
Доброго времени суток!

Есть ли способ в Giga 3 отключить индикаторы LAN портов (очень яркие)? Можно как-то оставить реквест на реализацию возможности их отключения функциональными кнопками / просто через веб интерфейс? Уж очень они раздражают.

Спасибо.

в OPKG пакетах что-то было на эту тему.

Link to comment
Share on other sites

  • 0
А вообще журналирование можно предусмотреть...на винт например внешний?

Прохождение пакетов откуда и куда? :D

...и хорошо-бы URL фильтр ...знаю, что фигня и по https фильтроваться не будет, но для ограничения школоте пошло-бы.

Для URL-фильтра есть Яндекс и Sky DNS.

Link to comment
Share on other sites

  • 0
На ADSL модемах Acorp был подсчет трафика от клиентов проходящего через устройство ip accaunt. Хотелось бы увидеть что то подобное Keenetic.

Считаю что даже точность большая не нужна. Очень актуально для GPRS т.к. опсосы не дают по трафику ни какой инфы.

С чего вы решили, что сможете подсчитать трафик GPRS/3G/4G даже приблизительно? IP account считает TCP/IP трафик, а то, чего вы хотите, считается на уровне PDP, в некоторых модемах есть специальные команды для просмотра этого трафика, вот там да, можно его назвать трафиком, который считает провайдер, но он совершенно не такой, что пытаетесь подсчитать вы. Разница может быть просто огромной...

Link to comment
Share on other sites

  • 0

С чего вы решили, что сможете подсчитать трафик GPRS/3G/4G даже приблизительно? IP account считает TCP/IP трафик, а то, чего вы хотите, считается на уровне PDP, в некоторых модемах есть специальные команды для просмотра этого трафика, вот там да, можно его назвать трафиком, который считает провайдер, но он совершенно не такой, что пытаетесь подсчитать вы. Разница может быть просто огромной...

Может как то так

из /proc/net/arp вытащить поля IP т.е. текущих клиентов потом создать CHAIN с помощью iptables 
# iptables -L RRDIPT -vnx -t filter
Chain RRDIPT (1 references)
   pkts      bytes target     prot opt in     out     source               destination         
    137    10975 RETURN     all  --  *      *       192.168.1.2        0.0.0.0/0           
    131    17076 RETURN     all  --  *      *       0.0.0.0/0            192.168.1.2       
      0        0 RETURN     all  --  *      *       192.168.1.254      0.0.0.0/0           
      0        0 RETURN     all  --  *      *       0.0.0.0/0            192.168.1.254     
#   iptables -L RRDIPT -vnx -t filter | grep 192.168 | awk 'BEGIN { printf "{table::" } { if (NR % 2 == 1) printf "'\''%s'\'','\''%s'\'',",$8,$2; else printf "'\''%s'\'',",$2;}'
{table::'192.168.1.2','10975','17076','192.168.1.254','0','0',
#

так же

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         
 138 13400 RRDIPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0  

плюс

    awk 'BEGIN { printf "{ip_conntrack::"} { gsub(/(src|dst|sport|dport|mark)=/, ""); printf "'\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'',%s,",$1,$1 == "tcp" ? $5 : $4,$1 == "tcp" ? $7 : $6,$1 == "tcp" ? $6 : $5,$1 == "tcp" ? $8 : $7,$(NF-1); } END { print "'\''-'\''}"}' /proc/net/ip_conntrack >> /tmp/files_count.dat

{ip_conntrack::'tcp','192.168.1.2','49523','192.168.1.100','23',0,'udp','223.96.14.98','23228','109.16.24.244','28975',0,....
'udp','192.168.1.2','28975','212.16.21.121','31045',0,'-'}

Может я и не прав.

Link to comment
Share on other sites

  • 0
1 час назад, GanjaKyp сказал:

а статистику трафика по ip адресам клиентов сети как то можно посмотреть?

Статистику по клиентам можно попробовать использование - клиенты в /proc/net/arp трафик ip_conntrack дерганьем его и запись данных в файл.

Встречал такой вариант сбора, цепочку например AAIN загоняете в нее в зависимости от /proc/net/arp правила

...
while :
do
 iptables -N AAIN 2> /dev/null                                          
 iptables -L FORWARD --line-numbers -n | grep "AAIN" | grep "1" > /dev/null
  if [ $? -ne 0 ]; then                                                       
    iptables -L FORWARD -n | grep "AAIN" > /dev/null                  
    if [ $? -eq 0 ]; then                                               
      iptables -D FORWARD -j AAIN                               
    fi                                                                  
  iptables -I FORWARD -j AAIN                                       
  fi                                                                          
 grep 192.168 /proc/net/arp | while read IP TYPE FLAGS MAC MASK IFACE   
  do                                                                                                       
    iptables -nL AAIN | grep "${IP}[[:space:]]" > /dev/null                     
    if [ $? -ne 0 ]; then                                               
      iptables -I AAIN -d ${IP} -j RETURN                       
      iptables -I AAIN -s ${IP} -j RETURN                       
    fi                                                                  
  done 
...

Далее сами данные

...
awk 'BEGIN { printf "{ip_conntrack::"} { gsub(/(src|dst|sport|dport|mark)=/, ""); printf "'\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'',%s,",$1,$1 == "tcp" ? $5 : $4,$1 == "tcp" ? $7 : $6,$1 == "tcp" ? $6 : $5,$1 == "tcp" ? $8 : $7,$(NF-1); } END { print "'\''-'\''}"}' /proc/net/ip_conntrack >> /opt/tmp/traffic.dat
iptables -L AAIN -vnx -t filter | grep ${LAN_TYPE} | awk 'BEGIN { printf "{bw_table::" } { if (NR % 2 == 1) printf "'\''%s'\'','\''%s'\'',",$8,$2; else printf "'\''%s'\'',",$2;}' >> /opt/tmp/traffic.dat
  uptime | awk '{ printf "'\''-'\'','\''%s'\''}\n{uptime::%s}\n", $1, $0 } END { print "{ipinfo::<% show_wanipinfo(); %>}" }' >> /opt/tmp/traffic.dat
  mv -f /opt/tmp/traffic.dat /opt/tmp/traffic.asp

примерный вывод файла asp, тут видно

{arp::'192.168.1.2','00:хх:хх:хх:хх:0E'-'}
{ip_conntrack::'tcp','192.168.1.2','56002','2хх.1хх.2хх.1хх','443',0,'tcp','192.168.1.2','55950','8х.1хх.1хх.4х','443',0,'tcp','192.168.1.2','56036','8х.1хх.1хх.5х','443',0,'udp','192.168.1.2','62311','8х.5х.1хх.2хх','53',0,'tcp','192.168.1.2','56003','2хх.1хх.2хх.1хх','443',0,'tcp','192.168.1.2','55888','8х.2хх.2хх.2х','443',0,'tcp','192.168.1.2','55817','192.168.1.100','22',0,'tcp','192.168.1.2',...'tcp','192.168.1.2','56027','8х.1хх.1хх.5х','443',0,'-'}
{bw_table::'192.168.1.254','0','0','192.168.1.2','15956','0','-','13:28:03'}
{uptime:: 13:28:03 up 2 days,  7:52,  load average: 1.94, 1.44, 1.18}

Далее файл обработать для вывода в WEB. При выводе статистики на экран готовой WEB страницы скорей всего будут нагружать проц, как и любая страница мониторинга роутера, но если раз в сутки то наверное будет нормально.

 

Edited by vasek00
Link to comment
Share on other sites

  • 0
1 час назад, GanjaKyp сказал:

А готовых решений не существует?)

Вопрос только, а зачем считать трафик локальных - типа тебе 10GB а потом то-то скорость урежем или кто больше прокачал или подключение соседей к своей точке доступа за N рубл. При нынешнем развитии в тарифных политиках их стоимости где скорости с 5Mb достигли 100Mb и выше - надо ли.

Link to comment
Share on other sites

  • 0
2 часа назад, Le ecureuil сказал:

Не забудьте только в случае использования методов подсчета через conntrack отключить ppe hardware, ppe software и fastnat. Иначе вы получите неверную картину.

Но речь то идет об локальных клиентах из сетки 192.168.1.х, а уж как они выйдут с WAN порта в pppoe или pptp/l2tp без разницы

Link to comment
Share on other sites

  • 0
3 часа назад, GanjaKyp сказал:

Тариф корпоративный, с понижением скорости до 1мбс после 200гб, вот нам с шэфом интересно кто умудряется сжирать весь трафик в середине месяца))

Самое простое - это поделить сеть на сегменты и завернуть их в vlan, т.е. имеете 4LAN будете иметь 4VLAN ну или сколько надо 3, 2, а wi-fi вытащить из bridge (Home или всех клиентов перекинуть на гостевую), тогда в SNMP можно увидеть активность на данных vlan и wi-fi какой сегмент так активно работает и далее принять решение. Раз корпоративный то всех своих клиентов лучше привязывать IP с MAC для удобства контроля/учета и управления ими.

Опять же повторюсь на безлимите - просмотр сериалов в онлайн режиме практикуется очень сильно в рабочее время, как и прослушивания онлайн музыки.

Edited by vasek00
Link to comment
Share on other sites

  • 0
28 минут назад, GanjaKyp сказал:

vlan не подходит, потому что половина клиентов сидит на неуправляемых хабах 

без разницы на чем они сидят, для них только смена IP будет = было в сегменте 192.168.1.х, а будет на роутере

LAN1(vlan3)-192.168.3.х-------------клиенты х.х.3.2-254

LAN2(vlan4)-192.168.4.х-------------клиенты х.х.4.2-254

LAN3(vlan5)-192.168.5.х-------------клиенты х.х.5.2-254

LAN4----------192.168.1.х-------------клиенты х.х.1.2-254

в SNMP виден будет каждый интерфейс тогда. Тут вы уже сможете управлять более гибко сегментами и их правами. В течении суток или двое определите пропускную каждого сегмента.

Другой вариант описан в разделе ниже

если нужно чисто на время просто выявить кто и где, то можно попробовать.

Edited by vasek00
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...