h2. Внимание\!
Все предоставленные примеры не обязательно являются рабочими, использовать их для настройки своего оборудования без понимания принципа действия не рекомендуется.
Примеры предоставлены исключительно для понимания принципов работы Carbon Billing с сторонним оборудованием.
Также, оборудование нельзя считать запущенным в эксплуатацию, если не все пункты [плана внедрения|http://asrdoc.ideco.ru/pages/viewpage.action?pageId=29033016] завершены успешно.
h2. Настройка оборудования
В данном примере используется простейший шейпер, который не требует предварительного создания очередей на микротике.
Шейперы создаются и применяются к пользователям динамически, при наступлении события rate_set.
Таким образом на микротике необходимо лишь создать адрес-листы:
* balance_positive - лист для nat и разрешения выхода в Интернет
* balance_negative - лист для переадресации пользователей с отрицательным балансом.
Если нужны разные группы пользователей, то можно создать разные адрес листы, и использовать составные листы, например:
{code}
balance_positive${tariff_id}
balance_positive${pull_id}
{code}
Внимание\! Для применения иных шейперов требуется все шейперы предварительно настроить вручную по [инструкции микротика|http://wiki.mikrotik.com/wiki/Russian/%D0%94%D0%B5%D0%BB%D0%B8%D0%BC_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D0%B8%D0%BB%D0%B8_QoS_%D0%BD%D0%B0_Mikrotik], а также исправить блок rate_set в event_inc.sh на требуемые для микротика команды.
Рекомендуется склеивать команды микротика в одну через знак ' ; ' вместо нескольких последовательных ssh тк ssh долго подключается к микротику.
Не рекомендуется использовать более 300-500 пользователей на 1 микротик.
h2. Настройка Carbon Billing (event_inc.sh)
В этом скрипте команды на микротик пересылаются с помощью ssh, а не с помощью radius.
{code}
LOG INFO "$SENDER $EVENT $DATA"
[ "$nas_ip" = "0.0.0.0" ] && exit
{
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"
else
ssh username@$nas_ip "/ip firewall address-list add address=$ip list=balance_negative"
fi
;;
rate_set )
if [ "$ceil_out" != "-1" ]; then
ssh username@$nas_ip /queue simple remove [find name=$id]
ssh username@$nas_ip /queue simple add name=$id target-addresses=$ip max-limit=${ceil_in}k/${ceil_out}k interface=vlan$router_vlan
fi
;;
logout )
ssh username@$nas_ip "/ip firewall address-list remove [find address=$ip]"
ssh username@$nas_ip /queue simple remove [find name=$id]
;;
period_closed )
LOG INFO "event type: $EVENT $DATA"
;;
* )
LOG INFO "event type: $EVENT $DATA"
;;
esac
}
{code}
h2. Настройка тарифов
Тарифы настраиваются стандартно, т.к radius параметры при данной схеме не используются, а $ceil_in и $ceil_out передаются микротику по SSH каждый раз при возникновении события rate_set.
h2. Настройка пользователей
Так как микротик не использует Radius, то для пользователей, которые получают доступ в интернет через него необходимо вручную переопределить IP NAS сервера, автоматически этого не произойдет. !99.png|border=1!
h2. Добавление в список маршрутизаторов
h2. !Снимок-Настройка оборудования.png|border=1!
Все предоставленные примеры не обязательно являются рабочими, использовать их для настройки своего оборудования без понимания принципа действия не рекомендуется.
Примеры предоставлены исключительно для понимания принципов работы Carbon Billing с сторонним оборудованием.
Также, оборудование нельзя считать запущенным в эксплуатацию, если не все пункты [плана внедрения|http://asrdoc.ideco.ru/pages/viewpage.action?pageId=29033016] завершены успешно.
h2. Настройка оборудования
В данном примере используется простейший шейпер, который не требует предварительного создания очередей на микротике.
Шейперы создаются и применяются к пользователям динамически, при наступлении события rate_set.
Таким образом на микротике необходимо лишь создать адрес-листы:
* balance_positive - лист для nat и разрешения выхода в Интернет
* balance_negative - лист для переадресации пользователей с отрицательным балансом.
Если нужны разные группы пользователей, то можно создать разные адрес листы, и использовать составные листы, например:
{code}
balance_positive${tariff_id}
balance_positive${pull_id}
{code}
Внимание\! Для применения иных шейперов требуется все шейперы предварительно настроить вручную по [инструкции микротика|http://wiki.mikrotik.com/wiki/Russian/%D0%94%D0%B5%D0%BB%D0%B8%D0%BC_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D0%B8%D0%BB%D0%B8_QoS_%D0%BD%D0%B0_Mikrotik], а также исправить блок rate_set в event_inc.sh на требуемые для микротика команды.
Рекомендуется склеивать команды микротика в одну через знак ' ; ' вместо нескольких последовательных ssh тк ssh долго подключается к микротику.
Не рекомендуется использовать более 300-500 пользователей на 1 микротик.
h2. Настройка Carbon Billing (event_inc.sh)
В этом скрипте команды на микротик пересылаются с помощью ssh, а не с помощью radius.
{code}
LOG INFO "$SENDER $EVENT $DATA"
[ "$nas_ip" = "0.0.0.0" ] && exit
{
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"
else
ssh username@$nas_ip "/ip firewall address-list add address=$ip list=balance_negative"
fi
;;
rate_set )
if [ "$ceil_out" != "-1" ]; then
ssh username@$nas_ip /queue simple remove [find name=$id]
ssh username@$nas_ip /queue simple add name=$id target-addresses=$ip max-limit=${ceil_in}k/${ceil_out}k interface=vlan$router_vlan
fi
;;
logout )
ssh username@$nas_ip "/ip firewall address-list remove [find address=$ip]"
ssh username@$nas_ip /queue simple remove [find name=$id]
;;
period_closed )
LOG INFO "event type: $EVENT $DATA"
;;
* )
LOG INFO "event type: $EVENT $DATA"
;;
esac
}
{code}
h2. Настройка тарифов
Тарифы настраиваются стандартно, т.к radius параметры при данной схеме не используются, а $ceil_in и $ceil_out передаются микротику по SSH каждый раз при возникновении события rate_set.
h2. Настройка пользователей
Так как микротик не использует Radius, то для пользователей, которые получают доступ в интернет через него необходимо вручную переопределить IP NAS сервера, автоматически этого не произойдет. !99.png|border=1!
h2. Добавление в список маршрутизаторов
h2. !Снимок-Настройка оборудования.png|border=1!