CoA/PoD на примере MPD
Материал из BiTel WiKi
Amir (Обсуждение | вклад) (Новая страница: « == CoA ==») |
Amir (Обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | == CoA == | ||
- | == CoA == | + | |
+ | На самом верхнем уровне добавляется устройство с типом ProcessGroup со следующей конфигурацией: | ||
+ | <source lang='bash'> | ||
+ | #типы устройств - Nas-ов | ||
+ | radius.deviceTypeIds=1 | ||
+ | |||
+ | #таймаут перевода соединения в статус suspended при остутствии радиус пакетов | ||
+ | connection.suspend.timeout=900 | ||
+ | #таймаут закрытия соединения при остутствии радиус пакетов (не складывается с connection.suspend.timeout) | ||
+ | connection.close.timeout=900 | ||
+ | |||
+ | #количество потоков на worker'а | ||
+ | accounting.worker.1.thread.count=1 | ||
+ | #тарификатор: | ||
+ | #минимальная сумма трафика, при которой тарифицировать соединение | ||
+ | accounting.worker.1.tariffication.1.minDeltaAmount=0 | ||
+ | #пауза между заданиями тарификации | ||
+ | accounting.worker.1.tariffication.1.delay=10 | ||
+ | #максимальное количество тарифицируемых соединений за задание | ||
+ | accounting.worker.1.tariffication.1.batchSize=100 | ||
+ | #трекер (обработка сессий без наработки): | ||
+ | #пауза между заданиями трекинга | ||
+ | accounting.worker.1.tracking.1.delay=20 | ||
+ | #максимальное количество проверенных соединений за задание | ||
+ | accounting.worker.1.tracking.1.batchSize=100 | ||
+ | |||
+ | #количество потоков на worker'а | ||
+ | accounting.worker.2.thread.count=1 | ||
+ | #сброс в базу трафиков и наработки | ||
+ | #минимальная наработка, при которой сбрасывать соединения в базу | ||
+ | accounting.worker.2.flushing.1.minDeltaAccount=0 | ||
+ | #пауза между заданиями сброса в базу | ||
+ | accounting.worker.2.flushing.1.delay=20 | ||
+ | #максимальное количество сброшенных соединений в базу за задание | ||
+ | accounting.worker.2.flushing.1.batchSize=500 | ||
+ | |||
+ | #количество потоков на worker'а | ||
+ | accounting.worker.3.thread.count=1 | ||
+ | #завершатель соединений | ||
+ | #пауза между заданиями | ||
+ | accounting.worker.3.finishing.1.delay=20 | ||
+ | #максимальное количество сброшенных соединений в базу за задание | ||
+ | accounting.worker.3.finishing.1.batchSize=500 | ||
+ | </source> | ||
+ | |||
+ | Уровнем ниже добавляем устройство типа MPD, то есть наш NAS. Указываем IP-адрес (соответствует атрибуту Nas-Ip-Address), идентификатор (соответствует атрибуту NAS-Identifier) и секрет радиуса. Конфигурация устройства: | ||
+ | <source lang='bash'> | ||
+ | #хост для отправки PoD и CoA запросов (по умолчанию - хост, заданный в параметрах устройства Хост/порт) | ||
+ | #radius.host=<хост устройства> | ||
+ | #порт для отправки PoD и CoA запросов (по умолчанию - порт, заданный в параметрах устройства Хост/порт) | ||
+ | #radius.port=<порт устройства> | ||
+ | #идентификатор - Nas-Identifier (по умолчанию - значение из поля Идентификатор параметров устройства) | ||
+ | #radius.identifier=<идентификатор устройства> | ||
+ | #используемый secret для общения по radius-протоколу (по умолчанию - значение из поля Community/secret параметров устройства) | ||
+ | #radius.secret=<community/sercret устройства> | ||
+ | |||
+ | #атрибуты, выдаваемые при авторизации по реалму default (default - реалм по умолчанию) | ||
+ | radius.realm.default.attributes= | ||
+ | #категории ip адресов из ресурсов, из которых будут выдаваться адреса ("пул", указывается во вкладке "IP ресурсы") | ||
+ | radius.realm.default.ipCategories=4 | ||
+ | |||
+ | #коды ошибок, при которых вместо reject выдавать accept с заданными атрибутами | ||
+ | #(пользователю выдается серый адрес и устанавливается HTTP-редирект) | ||
+ | radius.disable.accessCodes=1,2,3,4,10,11,12 | ||
+ | #атрибуты, выдаваемые при rejectToAccept | ||
+ | radius.disable.attributes=mpd-limit=out#1=all shape 32000 pass;mpd-limit=in#1=all rate-limit 32000 pass | ||
+ | #категории ip адресов из ресурсов, из которых будут выдаваться адреса для отключенных ("пул", указывается во вкладке "IP ресурсы") | ||
+ | radius.disable.ipCategories=3 | ||
+ | #атрибуты, при наличии которых соединение должно считаться в состоянии DISABLE (т.е. с ограниченным доступом) | ||
+ | #radius.disable.pattern.attributes= | ||
+ | |||
+ | #привязка кодов опций модуля к атрибутам | ||
+ | #данные атрибуты будут выдаваться в AccessAccept при удачной авторизации и при наличии активных опций в тарифе или сервисе | ||
+ | nas.radius.inetOption.1.attributes=mpd-limit=out#1=all shape 128000 pass;mpd-limit=in#1=all rate-limit 10000000 pass | ||
+ | nas.radius.inetOption.2.attributes=mpd-limit=out#1=all shape 128000 pass;mpd-limit=in#1=all rate-limit 10000000 pass | ||
+ | nas.radius.inetOption.3.attributes=mpd-limit=out#1=all shape 512000 pass;mpd-limit=in#1=all rate-limit 10000000 pass | ||
+ | |||
+ | #---------------------------- | ||
+ | #параметры активации сервисов | ||
+ | #---------------------------- | ||
+ | #длина паузы, если возникла ошибка | ||
+ | #sa.error.pause=60 | ||
+ | #количество заданий за раз | ||
+ | #sa.batch.size=20 | ||
+ | #время (сек) ожидания завершения всех заданий (при асинхронной работе) | ||
+ | #sa.batch.wait=5 | ||
+ | #пауза (сек) после обработки заданий | ||
+ | #sa.batch.pause=0 | ||
+ | #время (сек) ожидания новой задачи перед вызовом disconnect. | ||
+ | #sa.batch.waitNext=5 | ||
+ | |||
+ | #---------------------------------------- | ||
+ | #параметры обработчика активации сервисов | ||
+ | #---------------------------------------- | ||
+ | #откуда при отправке CoA брать атрибуты опций (по умолчанию - те же атрибуты, что выдаются при удачной авторизации) | ||
+ | #sa.radius.option.attributesPrefix=nas.radius.inetOption. | ||
+ | #sa.radius.connection.attributes=NAS-Port, Acct-Session-Id, User-Name, Framed-IP-Address, NAS-IP-Address, NAS-Identifier | ||
+ | #атрибуты CoA запроса для прекращения доступа (используется при sa.radius.connection.withoutBreak=1) | ||
+ | sa.radius.disable.attributes={@radius.disable.attributes} | ||
+ | #фиксированные атрибуты, добавляемые в запрос перед отправкой CoA | ||
+ | #sa.radius.coa.attributes= | ||
+ | #добавлять ли при отправке CoA атрибуты реалма (для default - из radius.realm.default.attributes) | ||
+ | #sa.radius.realm.addAttributes=0 | ||
+ | #фиксированные атрибуты, добавляемые в запрос перед отправкой PoD | ||
+ | #sa.radius.pod.attributes= | ||
+ | </source> | ||
+ | |||
+ | На уровень ниже RedBack добавляем устройство с типом DES-3526. Единственное, что нужно там указать - это идентификатор, который соответствует MAC-адресу коммутатора без разделителей. | ||
+ | {| | ||
+ | |- valign=top | ||
+ | | [[Изображение:Rb_clips_inet_3.png|thumb|600px|Иерархия устройств]] | ||
+ | |} | ||
+ | |||
+ | |||
+ | Далее необходимо создать тип сервиса во вкладке "Типы сервисов". Сервис - это услуга, которая привязывается к договору. В настройках типа сервиса указывается, какие поля будут доступны при добавлении/редактировании сервиса на договоре. В нашем случае это устройство (коммутатор) и интерфейс (порт коммутатора). | ||
+ | {| | ||
+ | |- valign=top | ||
+ | | [[Изображение:Rb_clips_inet_5.png|thumb|600px|Тип сервиса]] | ||
+ | |} |
Версия 12:03, 7 декабря 2011
CoA
На самом верхнем уровне добавляется устройство с типом ProcessGroup со следующей конфигурацией:
#типы устройств - Nas-ов radius.deviceTypeIds=1 #таймаут перевода соединения в статус suspended при остутствии радиус пакетов connection.suspend.timeout=900 #таймаут закрытия соединения при остутствии радиус пакетов (не складывается с connection.suspend.timeout) connection.close.timeout=900 #количество потоков на worker'а accounting.worker.1.thread.count=1 #тарификатор: #минимальная сумма трафика, при которой тарифицировать соединение accounting.worker.1.tariffication.1.minDeltaAmount=0 #пауза между заданиями тарификации accounting.worker.1.tariffication.1.delay=10 #максимальное количество тарифицируемых соединений за задание accounting.worker.1.tariffication.1.batchSize=100 #трекер (обработка сессий без наработки): #пауза между заданиями трекинга accounting.worker.1.tracking.1.delay=20 #максимальное количество проверенных соединений за задание accounting.worker.1.tracking.1.batchSize=100 #количество потоков на worker'а accounting.worker.2.thread.count=1 #сброс в базу трафиков и наработки #минимальная наработка, при которой сбрасывать соединения в базу accounting.worker.2.flushing.1.minDeltaAccount=0 #пауза между заданиями сброса в базу accounting.worker.2.flushing.1.delay=20 #максимальное количество сброшенных соединений в базу за задание accounting.worker.2.flushing.1.batchSize=500 #количество потоков на worker'а accounting.worker.3.thread.count=1 #завершатель соединений #пауза между заданиями accounting.worker.3.finishing.1.delay=20 #максимальное количество сброшенных соединений в базу за задание accounting.worker.3.finishing.1.batchSize=500
Уровнем ниже добавляем устройство типа MPD, то есть наш NAS. Указываем IP-адрес (соответствует атрибуту Nas-Ip-Address), идентификатор (соответствует атрибуту NAS-Identifier) и секрет радиуса. Конфигурация устройства:
#хост для отправки PoD и CoA запросов (по умолчанию - хост, заданный в параметрах устройства Хост/порт) #radius.host=<хост устройства> #порт для отправки PoD и CoA запросов (по умолчанию - порт, заданный в параметрах устройства Хост/порт) #radius.port=<порт устройства> #идентификатор - Nas-Identifier (по умолчанию - значение из поля Идентификатор параметров устройства) #radius.identifier=<идентификатор устройства> #используемый secret для общения по radius-протоколу (по умолчанию - значение из поля Community/secret параметров устройства) #radius.secret=<community/sercret устройства> #атрибуты, выдаваемые при авторизации по реалму default (default - реалм по умолчанию) radius.realm.default.attributes= #категории ip адресов из ресурсов, из которых будут выдаваться адреса ("пул", указывается во вкладке "IP ресурсы") radius.realm.default.ipCategories=4 #коды ошибок, при которых вместо reject выдавать accept с заданными атрибутами #(пользователю выдается серый адрес и устанавливается HTTP-редирект) radius.disable.accessCodes=1,2,3,4,10,11,12 #атрибуты, выдаваемые при rejectToAccept radius.disable.attributes=mpd-limit=out#1=all shape 32000 pass;mpd-limit=in#1=all rate-limit 32000 pass #категории ip адресов из ресурсов, из которых будут выдаваться адреса для отключенных ("пул", указывается во вкладке "IP ресурсы") radius.disable.ipCategories=3 #атрибуты, при наличии которых соединение должно считаться в состоянии DISABLE (т.е. с ограниченным доступом) #radius.disable.pattern.attributes= #привязка кодов опций модуля к атрибутам #данные атрибуты будут выдаваться в AccessAccept при удачной авторизации и при наличии активных опций в тарифе или сервисе nas.radius.inetOption.1.attributes=mpd-limit=out#1=all shape 128000 pass;mpd-limit=in#1=all rate-limit 10000000 pass nas.radius.inetOption.2.attributes=mpd-limit=out#1=all shape 128000 pass;mpd-limit=in#1=all rate-limit 10000000 pass nas.radius.inetOption.3.attributes=mpd-limit=out#1=all shape 512000 pass;mpd-limit=in#1=all rate-limit 10000000 pass #---------------------------- #параметры активации сервисов #---------------------------- #длина паузы, если возникла ошибка #sa.error.pause=60 #количество заданий за раз #sa.batch.size=20 #время (сек) ожидания завершения всех заданий (при асинхронной работе) #sa.batch.wait=5 #пауза (сек) после обработки заданий #sa.batch.pause=0 #время (сек) ожидания новой задачи перед вызовом disconnect. #sa.batch.waitNext=5 #---------------------------------------- #параметры обработчика активации сервисов #---------------------------------------- #откуда при отправке CoA брать атрибуты опций (по умолчанию - те же атрибуты, что выдаются при удачной авторизации) #sa.radius.option.attributesPrefix=nas.radius.inetOption. #sa.radius.connection.attributes=NAS-Port, Acct-Session-Id, User-Name, Framed-IP-Address, NAS-IP-Address, NAS-Identifier #атрибуты CoA запроса для прекращения доступа (используется при sa.radius.connection.withoutBreak=1) sa.radius.disable.attributes={@radius.disable.attributes} #фиксированные атрибуты, добавляемые в запрос перед отправкой CoA #sa.radius.coa.attributes= #добавлять ли при отправке CoA атрибуты реалма (для default - из radius.realm.default.attributes) #sa.radius.realm.addAttributes=0 #фиксированные атрибуты, добавляемые в запрос перед отправкой PoD #sa.radius.pod.attributes=
На уровень ниже RedBack добавляем устройство с типом DES-3526. Единственное, что нужно там указать - это идентификатор, который соответствует MAC-адресу коммутатора без разделителей.
Далее необходимо создать тип сервиса во вкладке "Типы сервисов". Сервис - это услуга, которая привязывается к договору. В настройках типа сервиса указывается, какие поля будут доступны при добавлении/редактировании сервиса на договоре. В нашем случае это устройство (коммутатор) и интерфейс (порт коммутатора).