Mikrotik PPPOE server и PPPOE клинты (скрипт сохраняющий статистику трафика))

Обсуждение ПО и его настройки
Ответить
superprime
Сообщения: 20
Зарегистрирован: 11 окт 2014, 18:19

Здравствуйте!

Есть несколько серверов доступа в интернет на базе RouterOS (x86). На серверах работает PPPOE сервис и соответственно клиенты подключаются к серверу по связке логин+пароль и получают свой интернет (там PCQ очереди). UserManager не используется, биллинг поставить пока денег нет.

Возникла необходимость ограничивать ежемесячный трафик пользователям (скажем до 100GB). Так как после перезагрузки сервера счётчики обнуляются, то есть мысль сохранить значения Rx-Bytes/Tx-Bytes каждый час в комментариях к логину пользователя в /ppp secrets при помощи скрипта.

Вот тут то я испытываю сложности: данные по трафику пользователя можно получить в

Код: Выделить всё

[DennisK@server] > interface pr where name~"pppoe"               
Flags: D - dynamic, X - disabled, R - running, S - slave
 #     NAME                                TYPE       ACTUAL-MTU L2MTU  MAX-L2MTU MAC-ADDRESS     
 0 DR  <pppoe-0200001>                     pppoe-in         1480
 1 DR  <pppoe-0200002>                     pppoe-in         1480
 2 DR  <pppoe-0200003>                     pppoe-in         1480
 3 DR  <pppoe-0200004>                     pppoe-in         1480
 4 DR  <pppoe-0200005>                     pppoe-in         1480
 5 DR  <pppoe-0200006>                     pppoe-in         1480
 6 DR  <pppoe-0200007>                     pppoe-in         1480
 7 DR  <pppoe-0200008>                     pppoe-in         1480
 8 DR  <pppoe-0200011>                     pppoe-in         1480
 9 DR  <pppoe-0200013>                     pppoe-in         1480
10 DR  <pppoe-0200020>                     pppoe-in         1480
11 DR  <pppoe-0200021>                     pppoe-in         1480
12 DR  <pppoe-0200022>                     pppoe-in         1480
13 DR  <pppoe-0200023>                     pppoe-in         1480
14 DR  <pppoe-0200024>                     pppoe-in         1480
15 DR  <pppoe-0200026>                     pppoe-in         1480
16 DR  <pppoe-0200029>                     pppoe-in         1480
17 DR  <pppoe-0200030>                     pppoe-in         1480
18 DR  <pppoe-0200031>                     pppoe-in         1480
19 DR  <pppoe-0200033>                     pppoe-in         1480
20 DR  <pppoe-0200035>                     pppoe-in         1480


А комментарии нужно писать в

Код: Выделить всё

[DennisK@server] > ppp secret pr
Flags: X - disabled
 #   NAME                           SERVICE CALLER-ID                        PASSWORD                        PROFILE                       
 0   ubnt                           pppoe                                    ubnt                            lug-profile                   
 1   test01                         pppoe                                    test01                          lug-profile                   
 2   test02                         pppoe                                    test02                          lug-profile                   
 3   test03                         pppoe                                    test03                          lug-profile                   
 4   0200001                        pppoe                                    2926774353                      lug-profile                   
 5   0200002                        pppoe                                    1061712204                      lug-profile                   
 6   0200003                        pppoe                                    4073988094                      lug-profile                   
 7   0200004                        pppoe                                    1555651042                      lug-profile                   
 8   0200005                        pppoe                                    0253341129                      lug-profile                   
 9   0200006                        pppoe                                    7275390550                      lug-profile                   
10   0200007                        pppoe                                    5268082611                      lug-profile                   
11   0200008                        pppoe                                    2567390763                      lug-profile                   
12   0200009                        pppoe                                    1076658388                      lug_blocked                   
13   0200010                        pppoe                                    5361872110                      lug-profile                   
14   0200011                        pppoe                                    2678094558                      lug-profile                   
15   0200012                        pppoe                                    4495959306                      lug-profile                   
16   0200013                        pppoe                                    1255970948                      lug-profile                   
17   0200014                        pppoe                                    5799920830                      lug_blocked                   
18   0200015                        pppoe                                    4314648284                      lug-profile                   
19   0200016                        pppoe                                    6955909006                      lug-profile                   
20   0200017                        pppoe                                    2494596146                      lug_blocked                   
21   0200018                        pppoe                                    5143370600                      lug-profile                   
22   0200019                        pppoe                                    1468470644                      lug-profile                   
23   0200020                        pppoe                                    7648168411                      lug-profile                   
24   0200021                        pppoe                                    9608795107                      lug-profile 


Как видно имена интерфейсов не совпадают, в первом случае они имеют префикс pppoe.

Вопрос: возможно ли в ROUTEROS как bash использовать программы фильтры (cat, cut, head и т.п)? Или если можно пример скрипта который сможет параметр, например Rx-Bytes записать в комментарии в /ppp secrets

Спасибо!


Всё то что неизвестно, ужасно интересно..
Vladimir22
Сообщения: 561
Зарегистрирован: 09 дек 2012, 17:12

а что мешает прикрутить Radius авторизацию ? и простым скриптом просто блокировать пользователя по достижению лимита ?


superprime
Сообщения: 20
Зарегистрирован: 11 окт 2014, 18:19

Если говорить о внешнем Radius сервере, то пока нет денег поставить дополнительную материнку+сетевуху+проц+и т.д. Если говорить о UserManager, то тоже нет денег, так как лицензия 4 уровня предполагает одновременная авторизация не более 20 абонентов (а их больше).
Практически все заработанные деньги уходят на подключение новых абонентов (ком заработанных денег пока не позволяет шиковать).

Биллинг будем внедрять пока только на одном сервере (для обкатки) и то осенью.

По поводу моей задачи - это просто интересно как минимум.


Всё то что неизвестно, ужасно интересно..
superprime
Сообщения: 20
Зарегистрирован: 11 окт 2014, 18:19

Кстати, насчёт моего вопроса - я тут подумал может в профиле пользователей, указать скрипт, который при подключении создавал бы Simple Quiue с именем абонента, а уже с этой очереди собирать статистику?

Как бы мог выглядеть подобный скрипт, где в качестве переменной имени очереди, был бы параметр User в свойствах активного PPPOE клиента?


Всё то что неизвестно, ужасно интересно..
superprime
Сообщения: 20
Зарегистрирован: 11 окт 2014, 18:19

Подскажите, пожалуйста, почему в результате работы конструкции вида:

:for p from=0 to=2 do={:set $PUSR [/ppp active get value-name=name number=$p]};


в переменную $PUSR, попадает только последняя запись? Что поменять, чтобы все записи попадали?

Спасибо.


Всё то что неизвестно, ужасно интересно..
Ответить