Skip to end of metadata
Go to start of metadata
  1. Проверяем тарифные планы , в каждом тарифном плане должны присутствовать настроенные "Интервалы"  и "Тариф трафика" с указанной скоростью для ТП.




  2. Конфигурируем ssh passwordless access на Микротик , для пользователя abills_admin
    Сертификаты пользователя находятся  в  /usr/abills/Certs

  3. В настройках "Настройка" - "Сервер доступа" - "IP Pools"  - прописываем пул адресов для клиентов
  4. В настройках "Настройка" - "Сервер доступа" - вашНАС   прописываем

    ПеременнаяЗначение
    Типmirkotik_dhcp  или  mikrotik
    SSHпорт SSH (22 по умолчанию)
    Пользовательabills_admin
  5. Назначаем IP Pool  для НАС сервера
  6. На сервере биллинга  выполняем :

    # Инициализация и контроль правил шейпера, на НАСе айди 10
    /usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 NAS_IDS=10
    # Инициализация и контроль правил шейпера + маскарадинг
    /usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 NAT=1 NAS_IDS=10
  7. Проверяем в консоли Микротика  :

    /ip firewall mangle print
    /queue tree print

    Должно вывести список правил наподобие следующего :

    /ip firewall mangle print 
     0   chain=forward action=mark-packet new-packet-mark=ALLOW_TRAFFIC_CLASS_2_out passthrough=yes
       dst-address=0.0.0.0/0 src-address-list=CLIENTS_2
    1   chain=forward action=mark-packet new-packet-mark=ALLOW_TRAFFIC_CLASS_2_in passthrough=yes
       src-address=0.0.0.0/0 dst-address-list=CLIENTS_2
    
    /queue tree print 
    0   name="TP_2_in_global" parent=global-out packet-mark=ALLOW_TRAFFIC_CLASS_2_in limit-at=0
       queue=TP_2_in_global_speed priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s
    1   name="TP_2_out_global" parent=global-out packet-mark=ALLOW_TRAFFIC_CLASS_2_out limit-at=0
       queue=TP_2_out_global_speed priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 
  8.  В  /usr/abills/libexec/config.pl прописываем команды для управления сессиями :

    Важно :

    Проверяем где у нас находится sudo и меняем если нужно :
    SUDO=/usr/local/bin/sudo
    $conf{INTERNET_IPOE_START}='SUDO=/usr/local/bin/sudo;
    CMD="${SUDO} /usr/abills/libexec/linkupdown ipn up getif %LOGIN %IP %DEBUG > /dev/null 2>&1";
    if [ "${NAS_TYPE}" = "mikrotik_dhcp" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik up - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT}
    NAS_MNG_USER=${NAS_MNG_USER}";
    elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER}
    ${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi;
    eval "${CMD}"';
     
    $conf{INTERNET_IPOE_STOP}='SUDO=/usr/local/bin/sudo;
    CMD="${SUDO} /usr/abills/libexec/linkupdown ipn down getif %LOGIN %IP %DEBUG > /dev/null 2>&1";
    if [ "${NAS_TYPE}" = "mikrotik_dhcp" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik down - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT}
    NAS_MNG_USER=${NAS_MNG_USER}";
    elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER}
    ${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi;
    eval "${CMD}"';
  9.  При добавлении нового пользователя на "Шаг 3" - "Internet+" , в   IPoE / DHCP Option 82 → Активация IPN   ставим галку и продолжаем регистрацию дальше как обычно.



  10. Проверяем как отработала активация  на Микротике (активация отрабатывает по крону, см пункт 11) :

    ssh -q -o UserKnownHostsFile=/usr/abills//Certs/known_hosts -o CheckHostIP=no -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.abills_admin abills_admin@айпи_микротика '/ip firewall address-list print'
  11. Проверяем присутствуют ли периодик задачи в кроне , они отвественны за тарификацию и управление состоянием абонентов и их сервисов :

    root@abills:/usr/abills# cat /etc/crontab | egrep "libexec/billd|libexec/periodic"
    */5     *       *       *       *       root    /usr/abills/libexec/billd
    1       0       *       *       *       root    /usr/abills/libexec/periodic daily
    1       1       *       *       *       root    /usr/abills/libexec/periodic monthly
    */5     *       *       *       *       root    /usr/abills/libexec/periodic monthly MODULES=Internet LOGON_ACTIVE_USERS NAS_IDS=10
    
  12. Чтоб включить всех поточных активных пользователей , выполняем команду (для нескольких НАС, перечисляем их через запятую, напр. NAS_IDS=1,2,3,10 ) :

    /usr/abills/libexec/periodic monthly MODULES=Internet LOGON_ACTIVE_USERS NAS_IDS=10

    Также, ее необходимо добавить в крон (см. пункт 10).

    В кроне комманды:

    */5 * * * * root /usr/abills/libexec/billd

    каждых 5 мин производит тарификацию, отключает сервисы пользователей, удаляет соотвественные правила на Микротике и т.д.

    /usr/abills/libexec/periodic monthly MODULES=Internet LOGON_ACTIVE_USERS NAS_IDS=10

    каждых 5 мин проверяет и включает/активирует сервисы пользователей, добавляет правила на Микротике



    Ссылки на сопутствующую документацию   :    
    " Mikrotik IPoE "  ,  " Авторизация Internet IPoE "  ,  " IPN (wiki) "  , 
    " Управление шейпером Микротик (wiki) "  ,  " Console Mikrotik (wiki) "

  • No labels