Предыдущая версия справа и слеваПредыдущая версия | |
dpi:bras_bng:radius_integration:radius_auth_fastpcrf_setup:radius_server_reservation [2024/09/26 15:29] – внешнее изменение 127.0.0.1 | dpi:bras_bng:radius_integration:radius_auth_fastpcrf_setup:radius_server_reservation [2024/12/05 15:00] (текущий) – elena.krasnobryzh |
---|
{{indexmenu_n>5}} | {{indexmenu_n>5}} |
======Резервирование Radius-сервера====== | ======Резервирование RADIUS-сервера====== |
Каждый Radius-сервер описывается FSM (конечным автоматом). | Каждый RADIUS-сервер описывается FSM (конечным автоматом). |
| |
Radius-сервер может быть в одном из шести состояний: | RADIUS-сервер может быть в одном из шести состояний: |
* **Initial** — состояние при старте fastPCRF; | * **Initial** — состояние при старте fastPCRF; |
* **Alive** — Radius-сервер доступен, можно посылать на него запросы; | * **Alive** — RADIUS-сервер доступен, можно посылать на него запросы; |
* **Dead** — Radius-сервер недоступен, запросы не посылать; | * **Dead** — RADIUS-сервер недоступен, запросы не посылать; |
* **Alive-ping-sent** — послали ping на Radius-сервер в состоянии Alive, ждем ответа; | * **Alive-ping-sent** — послали ping на RADIUS-сервер в состоянии Alive, ждем ответа; |
* **Dead-ping-sent** — послали ping на Radius-сервер в состоянии Dead, ждем ответа; | * **Dead-ping-sent** — послали ping на RADIUS-сервер в состоянии Dead, ждем ответа; |
* **Disabled** — административно запрещенный сервер. | * **Disabled** — административно запрещенный сервер. |
| |
Основные состояния — **Alive** и **Dead**, остальные состояния переходные. | Основные состояния — **Alive** и **Dead**, остальные состояния переходные. |
Radius-сервер считается доступным, если он находится в состояниях **Alive** или **Alive-ping-sent**. В остальных состояниях Radius-сервер считается недоступным и отправка запросов на него невозможна. | RADIUS-сервер считается доступным, если он находится в состояниях **Alive** или **Alive-ping-sent**. В остальных состояниях RADIUS-сервер считается недоступным и отправка запросов на него невозможна. |
| |
Ping — это запрос Status-Server или, если Radius-сервер не поддерживает Status-Server (опция ''radius_status_server''), Access-Request с User-Name и Password равным опциям ''radius_ping_user_name'' и ''radius_ping_user_password'' соответственно. | Ping — это запрос Status-Server или, если RADIUS-сервер не поддерживает Status-Server (опция ''radius_status_server''), Access-Request с User-Name и Password равным опциям ''radius_ping_user_name'' и ''radius_ping_user_password'' соответственно. |
| |
Раз в 10 секунд запускается задача watchdog, которая проверяет, надо ли посылать пинг, получен ли ответ на пинг, и в соответствии с этим переводит сервер в то или иное состояние или оставляет состояние неизменным. | Раз в 10 секунд запускается задача watchdog, которая проверяет, надо ли посылать пинг, получен ли ответ на пинг, и в соответствии с этим переводит сервер в то или иное состояние или оставляет состояние неизменным. |
| |
При старте fastPCRF все Radius-сервера находятся в состоянии **Initial**. FastPCRF посылает к ним ping и переходит в состояние **Dead-ping-sent** ожидания ответа на пинг. | При старте fastPCRF все RADIUS-сервера находятся в состоянии **Initial**. FastPCRF посылает к ним ping и переходит в состояние **Dead-ping-sent** ожидания ответа на пинг. |
| |
В состоянии **Alive** сервер пингуется только если от него не поступало никаких ответов в течение последних ''radius_keepalive'' секунд. То есть если сервер отвечает на запросы и происходит непрерывный обмен запрос-ответ, — пинги к нему не шлются. При отправке пинга сервер переходит в состояние **Alive-ping-sent** (ожидание ответа на пинг). | В состоянии **Alive** сервер пингуется только если от него не поступало никаких ответов в течение последних ''radius_keepalive'' секунд. То есть если сервер отвечает на запросы и происходит непрерывный обмен запрос-ответ, — пинги к нему не шлются. При отправке пинга сервер переходит в состояние **Alive-ping-sent** (ожидание ответа на пинг). |
| |
В состоянии **Dead** сервер пингуется раз в ''radius_dead_timeout'' секунд: посылается пинг и сервер переходит в состояние **Dead-ping-sent**. То есть если ''radius_dead_timeout=3600'' (1 час), то Radius-сервер может перейти в состояние **Alive** не раньше чем через час после перехода в состояние **Dead**. | В состоянии **Dead** сервер пингуется раз в ''radius_dead_timeout'' секунд: посылается пинг и сервер переходит в состояние **Dead-ping-sent**. То есть если ''radius_dead_timeout=3600'' (1 час), то RADIUS-сервер может перейти в состояние **Alive** не раньше чем через час после перехода в состояние **Dead**. |
| |
В состояниях **Dead**/**Alive-ping-sent** ответа на пинг ожидание максимум ''radius_response_timeout'' секунд. Важен не сам факт ответа на пинг, а факт прихода чего-либо (любого Radius-сообщения) от сервера. Если ответ есть — сервер переходит в состояние **Alive**. Если нет ответа — в состояние **Dead**. | В состояниях **Dead**/**Alive-ping-sent** ответа на пинг ожидание максимум ''radius_response_timeout'' секунд. Важен не сам факт ответа на пинг, а факт прихода чего-либо (любого RADIUS-сообщения) от сервера. Если ответ есть — сервер переходит в состояние **Alive**. Если нет ответа — в состояние **Dead**. |
| |
В состояние **Disabled** сервер можно перевести только CLI-командой ''pcrf radius disable''. Это состояние аналогично состоянию **Dead** (сервер недоступен), только никакие пинги не посылаются. Вывод из состояния **Disabled** — также только CLI-командой ''pcrf radius enable''. Сервер переходит в **Dead** и немедленно шлется пинг (то есть состояние становится **Dead-ping-sent**). | В состояние **Disabled** сервер можно перевести только CLI-командой ''pcrf radius disable''. Это состояние аналогично состоянию **Dead** (сервер недоступен), только никакие пинги не посылаются. Вывод из состояния **Disabled** — также только CLI-командой ''pcrf radius enable''. Сервер переходит в **Dead** и немедленно шлется пинг (то есть состояние становится **Dead-ping-sent**). |
| |
При переходе Radius-сервера в состояния **Dead**/**Disabled** или **Alive** watchdog оповещает fastPCRF, что такой-то сервер стал недоступен или доступен соответственно.\\ **Важно!** Резервирование Radius-серверов реализовано по схеме Master-Slaves: только один Radius-сервер считается рабочим (master), остальные — резервные (в каком бы состоянии они не находились). Radius-сервера задаются списком (каждый Radius-сервер — в отдельной опции ''radius_server''), самым предпочтительным считается сервер, заданный в первой (по порядку в ''fastpcrf.conf'') опции ''radius_server'', затем менее предпочтительный, затем еще менее и т.д. Если сервер с номером N > 1 является master’ом, — это значит, что все сервера перед ним (1..N-1) недоступны (**Dead**). Если какой-либо серверов 1..N-1 становится живым (**Alive**) — он немедленно становится master’ом и все запросы идут на него. Ответы от прежнего master’а принимаются. | При переходе RADIUS-сервера в состояния **Dead**/**Disabled** или **Alive** watchdog оповещает fastPCRF, что такой-то сервер стал недоступен или доступен соответственно.\\ **Важно!** Резервирование RADIUS-серверов реализовано по схеме Master-Slaves: только один RADIUS-сервер считается рабочим (master), остальные — резервные (в каком бы состоянии они не находились). RADIUS-сервера задаются списком (каждый RADIUS-сервер — в отдельной опции ''radius_server''), самым предпочтительным считается сервер, заданный в первой (по порядку в ''fastpcrf.conf'') опции ''radius_server'', затем менее предпочтительный, затем еще менее и т.д. Если сервер с номером N > 1 является master’ом, — это значит, что все сервера перед ним (1..N-1) недоступны (**Dead**). Если какой-либо серверов 1..N-1 становится живым (**Alive**) — он немедленно становится master’ом и все запросы идут на него. Ответы от прежнего master’а принимаются. |
| |
Если становится недоступным текущий master, — ищется самый первый сервер в состоянии **Alive** и он становится master’ом. | Если становится недоступным текущий master, — ищется самый первый сервер в состоянии **Alive** и он становится master’ом. |
| |
Radius-серверам авторизации не шлется никаких сообщений, когда они получают или теряют статус мастера. А accounting серверам — шлется: если accounting-сервер теряет статус мастера, ему посылается Accounting-Off; если accounting-сервер обретает статус мастера, ему посылается Accounting-On. В Accounting-On/Off посылаются следующие атрибуты: | RADIUS-серверам авторизации не шлется никаких сообщений, когда они получают или теряют статус мастера. А accounting серверам — шлется: если accounting-сервер теряет статус мастера, ему посылается Accounting-Off; если accounting-сервер обретает статус мастера, ему посылается Accounting-On. В Accounting-On/Off посылаются следующие атрибуты: |
* NAS-атрибуты: NAS-IP-Address, NAS-IPv6-Address, NAS-Identifier. Посылается либо только один из этих атрибутов (приоритет именно такой, как эти атрибуты здесь перечислены — самый приоритетный NAS-IP-Address), либо, если опция ''radius_add_all_nas_ids=1'', все известные; | * NAS-атрибуты: NAS-IP-Address, NAS-IPv6-Address, NAS-Identifier. Посылается либо только один из этих атрибутов (приоритет именно такой, как эти атрибуты здесь перечислены — самый приоритетный NAS-IP-Address), либо, если опция ''radius_add_all_nas_ids=1'', все известные; |
* Acct-Status-Type = Accounting-On или Accounting-Off; | * Acct-Status-Type = Accounting-On или Accounting-Off; |
* Acct-Session-Id = 0 — это значение acct-session-id не может встретиться ни у какой acct-сессии. | * Acct-Session-Id = 0 — это значение acct-session-id не может встретиться ни у какой acct-сессии. |
| |