... {toc} h1. Добавить общий пароль в запрос через файл hints Необходимость добавить общий пароль в запрос может возникнуть, если у Вас используется авторизация IPoE, но NAS его не передаёт. В таком случае, сделайте следующее: # За основу возьмите стандартный файл {{hints}} {code} mkdir -p /app/asr_billing/cfg/etc/raddb/ cp /app/asr_billing/etc/raddb/hints /app/asr_billing/cfg/etc/raddb/hints {code} # Добавьте в конец хинт, который добавит к запросу общий пароль: {code} # NAS ESR 1000, ID 1115 DEFAULT NAS-IP-Address == "172.0.0.1" User-Password := "IPoE-COMMON-SECRET" {code} Здесь нужно поменять следующие параметры: #* {{NAS-IP-Address}} - IP, который указан в настройках NAS; #* {{User-Password}} - общий пароль, тоже из настроек NAS. # Перезапустите контейнер биллинга {code}/app/asr_billing/service restart{code} В [учётных записях|CarbonBilling:Учетная запись. Создание и изменение.] абонентов должен быть настроен один из следующих [типов авторизации|CarbonBilling:Типы авторизации] * ID=1: по ip static * ID=6: любая через RADIUS * ID=8: по OPT82 * ID=9: по ip+radius h1. Авторизация с опцией "Проверять hwserial(ADSL)" При этом типе авторизации, абонент получает IP от DHCP-сервера по опции 82. После получения адреса, BRAS отправляет RADIUS-запрос на авторизацию, так же добавляя в запрос данные опции 82. Серийный номер оборудования должен приходить в атрибуте {{ADSL-Agent-Circuit-Id}}. В [учётной записи|CarbonBilling:Учетная запись. Создание и изменение.] абонента он задаётся в параметре "{{Серийный номер оборудования}}". Чтобы ADSL-Agent-Circuit-Id передавался в биллинг, необходимо модифицировать запросы FreeRADIUS в БД. Это нужно сделать в сервере авторизации и сервере аккаунтинга. Сделайте следующее: # Подготовьте файл {code} mkdir /app/asr_billing/cfg/etc/raddb/sql/firebird/ touch /app/asr_billing/cfg/etc/raddb/sql/firebird/dialup.conf {code} # Установите правильные права {code} chmod 640 /app/asr_billing/cfg/etc/raddb/sql/firebird/dialup.conf {code} # Скачайте из документации содержимое файла {{dialup.conf}} для сервера авторизации {code} cd /app/asr_billing/cfg/etc/raddb/sql/firebird/ curl https://docs.carbonsoft.ru/download/attachments/187433180/dialup-raddb.conf -o dialup.conf {code} # Сделайте то же самое для сервера аккаунтинга: {code} mkdir /app/asr_billing/cfg/etc/raddb_acc/sql/firebird/ touch /app/asr_billing/cfg/etc/raddb_acc/sql/firebird/dialup.conf chmod 640 /app/asr_billing/cfg/etc/raddb_acc/sql/firebird/dialup.conf cd /app/asr_billing/cfg/etc/raddb_acc/sql/firebird/ curl https://docs.carbonsoft.ru/download/attachments/187433180/dialup-raddb_acc.conf -o dialup.conf {code} {note} При этом типе авторизации у абонента обязательно должен быть указан SWITCH. При этом PORT указывать необязательно. {note} h1. Авторизация лишнего пакета через файлы users и hints Это кейс для оборудования Eltex ESR. Помимо авторизации сессии, BRAS делает дополнительный запрос на авторизацию сервиса. Он передаётся только когда сессия уже создана, и все нужные атрибуты уже переданы на оборудование. Биллинг дополнительный запрос обрабатывать не умеет, поэтому необходим тюнинг RADIUS. Пример настроек {{users}} дан в документации Eltex при [авторизации без SoftWLC|https://docs.eltex-co.ru/pages/viewpage.action?pageId=219939101#id-УправлениеBRAS(BroadbandRemoteAccessServer)-ПримернастройкибезSoftWLC]. В примере профиль {{INTERNET}} пропускает пользователя в интернет, а профиль {{BYPASS}} запрещает доступ, на Eltex это названия ACL. Нужно поправить файл {{users}} сервера авторизации и файл {{hints}} сервера аккаунтинга: # За основу возьмите стандартный файл {{users}} {code} mkdir -p /app/asr_billing/cfg/etc/raddb/
|
cp /app/asr_billing/etc/raddb/users /app/asr_billing/cfg/etc/raddb/users {code}
|
# Добавьте в конец файла {{users}} добавьте записи для профилей INTERNET и BYPASS:
|
{code} INTERNET Cleartext-Password := "IPoE-COMMON-SECRET"
|
... User-Name = "INTERNET", Cisco-AVPair = "subscriber:traffic-class=INTERNET", Cisco-AVPair += "subscriber:filter-default-action=permit" BYPASS Cleartext-Password := "IPoE-COMMON-SECRET" User-Name = "BYPASS", Cisco-AVPair = "subscriber:traffic-class=BYPASS", Cisco-AVPair += "subscriber:filter-default-action=redirect" {code} #* INTERNET и BYPASS в первой строке профиля - имя профиля (ACL на Eltex), оно будет приходить в запросах аккаунтинга в поле User-Name #* INTERNET и BYPASS в атрибуте {{User-Name}} - тоже должно соответствовать ACL #* {{subscriber:traffic-class}} - должно соответствовать имени ACL #* Cleartext-Password - общий IPoE пароль. Этот запрос не доходит до биллинга, но для удобства укажите тот же пароль, что в настройках NAS в биллинге #* {{subscriber:filter-default-action}} - оставьте без изменений # Добавьте файл {{hints}}, чтобы к запросу добавился атрибут {{Framed-IP-Address}}, иначе биллинг отбросит запрос и NAS не завершит создание сессии.
|
За основу возьмите стандартный файл {{hints}}: {code}
|
mkdir -p /app/asr_billing/cfg/etc/raddb_acc/
|
cp /app/asr_billing/etc/raddb/hints /app/asr_billing/cfg/etc/raddb/hints
|
cp /app/asr_billing/etc/raddb_acc/hints /app/asr_billing/cfg/etc/raddb_acc/hints
|
{code} # Добавьте в конец хинт, который добавит к запросу атрибут Framed-IP-Address:
|
... {code} # NAS ESR 1000, ID 1115 INTERNET User-Name == "INTERNET" Framed-IP-Address := "0.0.0.0" BYPASS User-Name == "BYPASS" Framed-IP-Address := "0.0.0.0" {code} # Последним шагом, перезапустите контейнер биллинга {code}/app/asr_billing/service restart{code} h1. Accounting-On и Accounting-Off Оборудование может отправлять пакеты Accounting-On и Accounting-Off при старте и завершении работы NAS. Это реализовано не в каждом телеком устройстве, а для работы биллинга не критично, если их не будет. Если есть возможность их отключить - отключите. Если такой возможности нет, необходимо поправить интеграцию RADIUS с БД биллинга, т.к. обработка этих пакетов не реализована в ядре. Сделайте следующее: # За основу возьмите стандартный файл из конфигурации биллинга: {code} mkdir /app/asr_billing/cfg/etc/raddb_acc/sql/firebird/ /app/asr_billing/skelet/etc/raddb_acc/sql/firebird/dialup.conf {code} # Установите правильные права {code} chmod 640 /app/asr_billing/cfg/etc/raddb_acc/sql/firebird/dialup.conf {code} # Откройте файл на редактирование, например редактором {{vim}}: {code} vim /app/asr_billing/cfg/etc/raddb_acc/sql/firebird/dialup.conf {code} # Найдите, описание переменной {{accounting_onoff_query}}, по-умолчанию такой текст: {code} accounting_onoff_query = "SELECT RESULT FROM RADIUS_ACCT_ONOFF ( \ '%S', \ '%{Acct-Terminate-Cause}', \ '%{Acct-Delay-Time}', \ '%{NAS-IP-Address}' \ )" {code} # Замените на значение переменной на пустую строку, должно получиться так: {code} accounting_onoff_query = "" {code} # Сохраните файл, закройте и перезапустите биллинг: {code} /app/asr_billing/service restart {code} После этого, в FreeRADIUS будет отправлять пустой ответ за запрос аккаунтинга этих типов. Это корректное поведение, согласно RFC.
|