Настройка команд сервера доступа для привязки IP к MAC на IPN тарифе
Материал из ExpertBilling
Предварительно нужно добавить следующее правило на сервер доступа
/ip firewall chain=forward action=accept src-address=1.1.1.1 dst-address=1.1.1.1 commant=placeholder
Выше этого правила будут добавляться правила привязки IP+mac.
Эти команды нужно прописать в команды управления сервером доступа(вторая закладка в окне настроек сервера доступа)
Добавить субаккаунт:/ip firewall filter add chain=forward place-before=[find comment=placeholder] action=accept src-address=$subacc_ipn_ip_address src-mac-address=$subacc_ipn_mac_address comment=$subacc_id-out disabled=yes;/ip firewall filter add chain=forward place-before=[find comment=placeholder] action=accept dst-address=$subacc_ipn_ip_address comment=$subacc_id-in disabled=yes;Удалить субаккаунт:
/ip firewall filter remove [find comment=$subacc_id-in];/ip firewall filter remove [find comment=$subacc_id-out];/queue simple remove [find comment=$acc_account_id-$subacc_id]Включить субаккаунт:
/ip firewall filter set [find comment=$subacc_id-out] src-address=$subacc_ipn_ip_address src-mac-address=$subacc_ipn_mac_address disabled=no;/ip firewall filter set [find comment=$subacc_id-in] dst-address=$subacc_ipn_ip_address disabled=noОтключить субаккаунт:
/ip firewall filter set [find comment=$subacc_id-out] src-address=$subacc_ipn_ip_address src-mac-address=$subacc_ipn_mac_address disabled=yes;/ip firewall filter set [find comment=$subacc_id-in] dst-address=$subacc_ipn_ip_address disabled=yesУстановить скорость для VPN:
/queue simple set [find interface=<$access_type-$subacc_username>] max-limit=$max_limit_tx/$max_limit_rx burst-limit=$burst_limit_tx/$burst_limit_rx burst-threshold=$burst_treshold_tx/$burst_treshold_rx burst-time=$burst_time_tx/$burst_time_rx priority=$priority limit-at=$min_limit_tx/$min_limit_rxУстановить скорость для IPN субаккаунта:
/queue simple remove [find name=$acc_account_id-$subacc_id]; /queue simple add name=$acc_account_id-$subacc_id max-limit=$max_limit_tx/$max_limit_rx burst-limit=$burst_limit_tx/$burst_limit_rx burst-threshold=$burst_treshold_tx/$burst_treshold_rx burst-time=$burst_time_tx/$burst_time_rx priority=$priority limit-at=$min_limit_tx/$min_limit_rx target-addresses=$subacc_ipn_ip_address/32Сбросить VPN сессию:
/interface $access_type-server remove [find user=$subacc_username]
Показанный набор команд только управляет правилами форвардинга пакетов и настройками очередей. Если у вас на сервере предусмотрен NAT для клиентов, то возможно 2 варианта действий:
- Вы разрешаете NAT всей вашей IP сети(те, кого нет в правилах файервола всё равно не пройдут);
- К правилам добавления/удаления/включения/отключения субаккаунта нужно добавить команду добавления/удаления/включения/выключения IP адреса абонента в адрес-листе и создать на маршутизаторе NAT правило, разрешающее NAT указанному адрес-листу.
Второй вариант более правильный.