Mikrotik Схема 3 (альтернативный IPoE)

по сравнению с
Текущая Кучаев Денис
на июл 29, 2014 22:16.

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (28)

просмотр истории страницы
{code}

h4. 1.2 Редирект неавторизованных заблокированных и несуществующих абонентов на специальную страницу.

Это крайне важно для современного провайдера, в целях повышения лояльности абонентов и снижения нагрузки на техническую поддержку.
Если абонента нет в списке auth редиректим его на noauth страницу личного кабинета для прохождения автоматической или ручной авторизации.
Если абонента нет в списке accept_list редиректим его на blocked страницу личного кабинета(где можно сделать кнопку "Диагностика соединения").

{code}
/ip firewall nat
# Всех кого нет в адрес листе(только 80 порт) auth редирестим accept_list редиректим на страницу биллинга noauth blocked после которой на маршрутизатор будут
# отправлены события и абонент будет добавлен соответствующие листы(если он есть в базе).
# В кабинете пользователя noauth blocked страница расположена на порту 440 по адресу http://10.0.0.1:440
add action=dst-nat chain=dstnat comment="noauth_redirect" comment="blocked_redirect" protocol=tcp src-address-list=!auth src-address-list=!accept_list dst-port=80 to-addresses=10.0.0.1 to-ports=440
{code}

h4. 1.3 Редирект абонентов с отрицательным балансом на специальную страницу.

Если абонент в списке negbal_list - то редиректим его на negbal страницу личного кабинета

{code}
/ip firewall nat
# Для всех заблокированных пользователей разрешаем dns запросы(нужно для редиректа при отрицательном балансе)
add action=accept chain=dstnat comment=dnat_negbal_dns_accept port=53 protocol=udp src-address-list=negbal_list

# Редиректим весь трафик(кроме банков и т.п.) на 80 порт на страницу биллинга, где находится сообщение об отрицательном балансе
# В кабинете пользователя negbal страница расположена на порту 442 по адресу http://10.0.0.1:442
add action=dst-nat chain=dstnat comment=dnat_negbal_redirect protocol=tcp src-address-list=negbal_list dst-address-list=!trusted_list src-port=80 to-addresses=10.0.0.1 to-ports=442
{code}

h4. 1.4 Блокировка абонентов с отрицательным балансом и неавторизованных абонентов
h4. 1.4 Блокировка абонентов с отрицательным балансом, заблокированных и несуществующих абонентов
{code}
/ip firewall filter
add chain=forward comment=fw_redirect_http_accept protocol=tcp port=80 action=accept dst-address=10.0.0.1
# Разрешаем доступ до банков и платежных систем и доверенным сетям
add chain=forward comment=fw_trusted_accept src-address-list=auth src-address-list=accept_list action=accept
add chain=forward comment=fw_negbal_drop action=drop src-address-list=negbal_list
add chain=forward comment=fw_noauth_drop action=drop src-address-list=!auth
add chain=forward comment=fw_blocked_drop action=drop src-address-list=!accept_list
{code}

Вы можете использова и стандартные команды через ssh и telnet.

При IP авторизации IPoE схеме будут использованны следуещие события для управления абонентами на оборудовании:
* user_accept - Отправить команду на авторизацию пользователя - добавить абонента в адрес-лист auth.
* user_drop - Отправить команду на удаление пользователя из списка авторизованных(auth).
* user_accept - Отправить команду на разрешение пользователю выхода в интернет - добавить абонента в адрес-лист accept_list.
* user_drop - Отправить команду на запрещение пользователю выхода в интернет - удаление пользователя из списка разрешенных accept_list(ВНИМАНИЕ\! Пользователю с отрицательным балансом не запрещаем интернет, а запрещаем только пользователям с полностью заблокированными учетными записями).
* user_redirect - Отправить команду на включение переадресации для абонента с отрицательным балансом - добавить абонента в адрес-лист negbal_list.
* user_redirect_cancel - Отправить команду на отмену переадресации при пополнении баланса - удалить из адрес-листа negbal_list.
* user_rate_set - Отправить команду на установку скорости - добавить абонента в адрес-лист service_$ceil_in.
* user_add - Отправляем команду создания виртуальной сессии для некоторых типов оборудования(обычно не используется)
* user_del - Отправить команду на полное удаление абонента с оборудования - удалить из всех адрес-листов(обычно не используется).

Мы должны подготовить и проверить соответствующие команды в терминале биллинга.

user_accept(){
send_mikrotik_cmd $nas_ip admin $coa_psw /ip firewall address-list add list=auth list=accept_list address=$ip comment=${ip}_auth comment=${ip}_accept
}
user_drop(){
send_mikrotik_cmd $nas_ip admin $coa_psw /ip firewall address-list remove numbers=${ip}_auth numbers=${ip}_accept
}
user_redirect(){
send_mikrotik_cmd $nas_ip admin $coa_psw /ip firewall address-list add list=negbal_list address=$ip comment=${ip}_negbal
}
user_redirect_cancel(){
user_del(){
send_mikrotik_cmd $nas_ip admin $coa_psw /ip firewall address-list remove numbers=${ip}_negbal
send_mikrotik_cmd $nas_ip admin $coa_psw /ip firewall address-list remove numbers=${ip}_auth numbers=${ip}_accept
send_mikrotik_cmd $nas_ip admin $coa_psw /queue simple remove numbers=${ip}
}
{code}

\++++++++++++++++++++++\+

h2. Внимание\!
case "$EVENT" in
login | balance_negative | balance_positive | user_data_changed | user_data_changed_before )
ssh username@$nas_ip "/ip firewall address-list remove [find address=$ip]"
if [ "$over_limit" = "0" ]; then
ssh username@$nas_ip "/ip firewall address-list add address=$ip list=balance_positive"