Вы просматриваете старую версию данной страницы. Смотрите текущую версию.
Сравнить с текущим
просмотр истории страницы
Версия 1
Текущий »
Слушатель предназначен для обработки RADIUS-пакетов. Общие
сведения о протоколе RADIUS доступны здесь.
Добавляется в контейнер следующим образом.
<context name="radius">
<!-- Cоздание процессора RADIUS-пакетов -->
<bean name="radiusProcessor" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor"/>
<!-- Служебный ScheduledExecutorService, необходимый для dataLogger -->
<scheduledExecutorService name="hrlydtlggr" corePoolSize="1" />
<!-- Cоздание dataLogger, сохраняющего RADIUS-пакеты на диск (только один экземпляр) -->
<bean name="radiusDataLogger" class="ru.bitel.bgbilling.modules.inet.radius.RadiusHourlyDataLogger">
<param name="scheduledExecutor">hrlydtlggr</param>
</bean>
<!-- Cоздание слушателя RADIUS-пакетов на порту с передачей ему процессора и dataLogger -->
<bean name="radiusListener" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusListener">
<constructor>
<!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->
<param name="host" value=""/>
<!-- Порт, на котором будет открыт сокет -->
<param name="port" value="1812"/>
<!-- Размер буфера приема слушателя -->
<param name="recvBufferSize">512 * 1024</param>
<!-- Рекомендуемый SO_RCVBUF-сокета -->
<param name="soRCVBUF"></param>
<!-- Количество потоков-обработчиков -->
<param name="threadCount">10</param>
<!-- Максимальное количество пакетов в очереди на обработку -->
<param name="maxQueueSize">200</param>
<!-- Передача процессора -->
<param name="processor">radiusProcessor</param>
<!-- Режим работы, RadiusListener.Mode.authentication -->
<param name="mode">RadiusListener.Mode.authentication</param>
<!-- Передача dataLogger -->
<param name="dataLogger">radiusDataLogger</param>
</constructor>
</bean>
</context>
Параметры:
-
radiusProcessor - класс процессора,
реализующий логику обработки пакетов;
-
radiusDataLogger - объект, осуществляющий
запись бинарных логов, по умолчанию это объект типа
ru.bitel.bgbilling.modules.inet.radius.RadiusHourlyDataLogger
(сохранение бинарных логов с разбивкой по источникам и
часам);
-
host - IP-адрес, на котором слушатель,
пустое значение - прослушивать любой IP-адрес;
-
port - прослушиваемый UDP-порт;
-
soRCVBUF - рекомендуемый SO_RCVBUF (socket
recieve buffer) для сокета. На FreeBSD большие значения могут вызвать
ошибку и сервер не запустится;
-
byteBufferCapacity - размер буфера для
приёма пакетов;
-
threadCount - число потоков-обработчиков
пакетов, рекомендуемые значения 10-30, не рекомендуется указывать
более 100;
-
maxQueueSize - максимальный размер очереди
пакетов, при превышении размера очереди пакеты начинают отбрасываться
и высылается аларм, рекомендуемые значения 200-1000. Следует
учитывать, что если по какой-то причине сервер не успевает
обрабатывать пакеты, очередь растет, то какие-то пакеты из очереди
могут быть обработаны с опозданием и NAS уже выслал повторный запрос,
который опять попадет в очередь и опять может быть обработан с
опозданием. Поэтому большое значение вместо распределения нагрузки
может вызвать ее увеличение;
-
mode - режим работы, может принимать
значения RadiusListener.Mode.authentication для
обработки Access-Request-пакетов в InetAccess и
RadiusListener.Mode.accounting для обработки
Accounting-пакетов в InetAccounting.