Инструменты пользователя

Инструменты сайта


mgmikrotikdhcp

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
mgmikrotikdhcp [2019/11/26 18:31]
bobr [Получение графиков по статистике трафика абонента с Mikrotik]
mgmikrotikdhcp [2020/05/14 16:32] (текущий)
bobr [Авторизация абонентов DHCP на MikroTik методом IP + MAC при помощи КучаГен]
Строка 7: Строка 7:
 В то же время нельзя не отметить и положительных моментов(такой себе островок надежды посреди тьмы и грусти):​ В то же время нельзя не отметить и положительных моментов(такой себе островок надежды посреди тьмы и грусти):​
   * Простота реализации. Применение <​del>​мозга</​del>​ глубоких мыслительных процессов практически не требуется.   * Простота реализации. Применение <​del>​мозга</​del>​ глубоких мыслительных процессов практически не требуется.
-  * Очень большая(практически идентичная) схожесть в работе ​Убиллинг ​с Mikrotik по API и авторизацией IP + MAC. Только IPшки и address lists теперь выдает радиус,​ а не Ubilling.+  * Очень большая(практически идентичная) схожесть в работе ​Ubilling ​с Mikrotik по API и авторизацией IP + MAC. Только IPшки и address lists теперь выдает радиус,​ а не Ubilling.
  
 ====== Конфигурация Ubilling ====== ====== Конфигурация Ubilling ======
Строка 21: Строка 21:
 Настраиваем биллинг стандартно как и для любых других устройств Настраиваем биллинг стандартно как и для любых других устройств
  
-в справочнике (сети и услуги) добавляем сети, создаем услуги(тип сети можете указать как "DHCP static"​ или "Other type"+в справочнике (сети и услуги) добавляем сети, создаем услуги(тип сети можете указать как "DHCP static"​ или "Other type")
  
 {{:​ub_add_network.png?&​300|}} {{:​ub_add_service.png?&​300|}} {{:​ub_add_network.png?&​300|}} {{:​ub_add_service.png?&​300|}}
Строка 50: Строка 50:
  
  
-Базовая минимальная настройки завершена. Теперь абоненты будут получать IP из биллинга. Абоненты с положительным состоянием счета будут добавлены в IP -> Firewall -> Address-List,​ в список **ALLOW**, а с отрицательным,​ соответственно,​ в **NOT_ALLOW**. Список **ALLOW** логично выпустить в инет в ферволле,​ в то время как для **NOT_ALLOW** - заблокировать доступ в инет там же. Сделать это можно как-то так:\\+Базовая минимальная настройка завершена. Теперь абоненты будут получать IP из биллинга. Абоненты с положительным состоянием счета будут добавлены в IP -> Firewall -> Address-List,​ в список **ALLOW**, а с отрицательным,​ соответственно,​ в **NOT_ALLOW**. Список **ALLOW** логично выпустить в инет в фаерволле,​ в то время как для **NOT_ALLOW** - заблокировать доступ в инет там же. Сделать это можно как-то так:\\
 {{:​ros_firewall_allow_not_allow.png?&​300|}} {{:​ros_firewall_allow_not_allow.png?&​300|}}
  
Строка 61: Строка 61:
 </​code>​ </​code>​
  
-Далеев Mikrotik NAS __добавляем__ +Далее:\\ 
-  * в System -> Scripts ​ скрипт примерно такого содержания(назовем его, скажем,​ //​SimpleQueueRebuild//​)+===== Когда DHCP-сервером у нас сам Mikrotik NAS ===== 
 + в Mikrotik NAS __добавляем__ 
 +  * в **System -> Scripts**  ​скрипт примерно такого содержания(назовем его, скажем,​ //​SimpleQueueRebuild//​)
 <​code>​ <​code>​
 :global leaseBound; :global leaseBound;
Строка 86: Строка 88:
 } }
 </​code>​ </​code>​
-  * в IP -> DHCP Server -> DHCP  в конфиг DHCP сервера в секцию Lease script(вкладка Script в боле поздних версиях ROS) название только что созданного скрипта //​SimpleQueueRebuild//​+  * в **IP -> DHCP Server -> DHCP**  в конфиг DHCP сервера в секцию Lease script(вкладка Script в боле поздних версиях ROS) название только что созданного скрипта //​SimpleQueueRebuild//​ 
 +Логика работы данного скрипта следующая:​ в момент выдачи //​DHCP-lease//​ абоненту мы ищем в //simple queues// запись с таким же IP, который мы вот сейчас выдаем,​ и правим эту запись под свои нужды: точнее - удаляем и добавляем такую же, но с нужными нам параметрами. И да, **очень важно отметить**,​ что наличие префикса **mlg_** в наименовании //simple queue-записи//​ - **строго ОБЯЗАТЕЛЬНО**.\\
 Естественно,​ это только пример и в своем конкретном случае вы можете модифицировать его под ваши задачи и реалии(например,​ устанавливать burst'​ы и прочее).\\ Естественно,​ это только пример и в своем конкретном случае вы можете модифицировать его под ваши задачи и реалии(например,​ устанавливать burst'​ы и прочее).\\
 +
 \\ \\
  
-Отдельная благодарность за помощь в создании данного мануала - [[https://​local.com.ua/​forum/​profile/​40843-mohax_kh_ua/​|mohax_kh_ua]]+===== Когда DHCP-сервер у нас где-то там, а сам Mikrotik NAS - всего лишь relay ===== 
 +Этот способ,​ кстати,​ может подойти и для [[http://​wiki.ubilling.net.ua/​doku.php?​id=mgmikrotik|MikroTik IPoE (Hotspot)]]\\ 
 +\\ 
 +Как и в предыдущем случае в Mikrotik NAS __добавляем__ 
 +  * в **System -> Scripts** ​ скрипт примерно такого содержания(назовем его, скажем,​ //​SimpleQueueRebuild//​) 
 +<​code>​ 
 +:local qSpeed "";​ 
 +:local qTarget "";​ 
 +:local qIP "";​ 
 + 
 +/queue simple 
 +:local tQueueList [find where (name~"​^mlg_"​ = false)]; 
 + 
 +:log warning ("Not mlg_ queues found: " . [:len $tQueueList]);​ 
 + 
 +:if ([:len $tQueueList] > 0) do={ 
 +    :foreach tQueue in=$tQueueList do={ 
 +        :set qSpeed [get $tQueue max-limit];​ 
 +        :set qTarget [get $tQueue target]; 
 +        :set qIP [:pick [:tostr $qTarget] 0 [:find [:tostr $qTarget] "/"​]];​ 
 + 
 +        remove $tQueue; 
 + 
 +        :if ([:len [find where (name="​mlg_$qIP"​)]] <= 0) do={             
 +            add name="​mlg_$qIP"​ max-limit=$qSpeed target=$qTarget;​ 
 +        }         
 +    } 
 +
 +</​code>​ 
 +  * дальше идем в **System -> Scheduler** и создаем там задачу,​ которая будет запускать наш //​SimpleQueueRebuild//,​ скажем,​ раз в 30 сек. Можно и чаще. Можно и реже - всецело на ваш вкус.\\  
 +По сути, эта штука следует тому же принципу,​ что и предыдущая,​ только вот в силу того, что DHCP lease выдается не нашим НАСом и "​поймать",​ собственно,​ этот момент мы не можем - мы производим периодическую проверку на наличие "​неправильных"​ наименований шейперов и делаем из них "​правильные"​.\\ 
 +И конечно же, **нужно не забыть об очень важном моменте**,​ а именно о том, что наличие префикса **mlg_** в наименовании //simple queue-записи//​ - **строго ОБЯЗАТЕЛЬНО**.\\ 
 +\\ 
 +Стоит ли говорить,​ что если у вас на каком-то конкретном микротикоНАСе в simple queue есть какие-то свои, нужные вам записи - то приведенный выше скрипт не остановится ни перед чем, лишь бы переделать их полностью. Так что - осторожнее в продакшене,​ а фильтрование в него внедряйте уже самостоятельно...  
 + 
 +\\ 
 + 
 +===== Включаем сами графики на Mikrotik NAS ===== 
 +Ну и, как показывает практика,​ нужно не забыть включить эти самые графики на каждом отдельном Mikrotik NAS. Сделать это можно следующим образом:​ 
 + 
 +**Tools -> Graphing** 
 + 
 +Нажимаем "​__Graphing Settings__"​\\ 
 +{{:​ros_graphs1.png?&​300|}}\\ 
 +и устанавливаем желаемую частоту сбора и записи статистических данных. Обычно это - 5 минут. Многим,​ наверное,​ хотелось бы чаще, но Микротик пока чаще не умеет.\\ 
 + 
 +Далее обращаем внимание на вкладки "__... Rules__"​\\  
 +{{:​ros_graphs2.png?&​300|}}\\ 
 +здесь мы можем указать детали сбора статистики(для сущностей типа интерфейсы,​ правила шейперов и системные ресурсы) и доступа к этой статистике. Поскольку нас интересуют графики трафика наших юзеров - нам нужна вкладка "​__Queue Rules__"​. Тыкаем по ней, потом по кнопке с синим плюсом "​Добавить":​\\ 
 +{{:​ros_graphs3.png?&​300|}}\\ 
 +и добавляем правило для наших будущих графчиков:​\\ 
 +  * **Simple Queue** - шейперы,​ для которых будет собираться статистика. Здесь логично оставить **all**. ​  
 +  * **Allow Address** - адрес/​подсеть с которых будет разрешен доступ к этим графикам. Логично указать здесь адрес нашего Убиллинг сервера. Значение **0.0.0.0/​0**,​ естественно,​ разрешит доступ всем. ​  
 +  * **Store On Disk** - хранить ли данные статистики на диске. Лучше включить - мы ведь не хотим, чтобы при каждом перезапуске НАСа у нас обнулялась стата?​ 
 +  * **Allow Target** - очень интересная опция, определяющая разрешено ли юзеру, чья стата собирается этим правилом,​ смотреть свою же статистику. Если вашим пользователям разрешен доступ к **http://​ROS_NAS_IP/​graphs/​** ​ и эта опция включена - они смогут видеть каждый свой график. ИРЛ такое, как правило,​ не практикуется. 
 +Теперь,​ когда "​графичковая тулза"​ у нас настроена и правило сбора статы добавлено - можем перейти на **http://​ROS_NAS_IP/​graphs/​** и лицезреть там наши графички.\\ 
 +А если не лицезреем - значит что-то не так и [[http://​instantsite.ru/​gallery/​image.php?​album_id=5&​image_id=729|идем переделываем]],​ ибо в таком случае в Убиллинге мы их, скорее всего, тоже не увидим. Ну или мы забыли добавить в **Allow Address** адрес своего хоста, с которого пытаемся эти графички увидеть. 
 +\\ 
 +\\ 
 +\\ 
 +Отдельная благодарность за помощь в создании данного мануала - [[https://​local.com.ua/​forum/​profile/​40843-mohax_kh_ua/​|mohax_kh_ua]]\\ 
 +Главный микротико-скрипто-тестер - [[https://​local.com.ua/​forum/​profile/​16438-reductor/​|reductor]]
    
mgmikrotikdhcp.txt · Последние изменения: 2020/05/14 16:32 — bobr