...
| Блок кода | ||||
|---|---|---|---|---|
| ||||
# Proxying proxy_vars: radius_proxy_auth: 1 radius_proxy_acct: 1 proxy_domain_regex: ^(.+\.)?root$ # для SSID указать radius_proxy_ssid_failover_type: fail-over radius_proxy_auth_failover_type: fail-over radius_proxy1proxy_host: 10.10.10.11 radius_proxy1proxy_port: 1812 radius_proxy1proxy_secret: eltex radius_proxy2proxy1_host: 10.10.10.12 radius_proxy2proxy1_port: 1812 radius_proxy2proxy1_secret: eltex |
После чего запустить скрипт с правами суперпользователя и тегом --configure-radius-proxy:
...
| Блок кода | ||||
|---|---|---|---|---|
| ||||
# Настройка проксирования radius proxy_vars: radius_proxy_auth: 1 # добавляем первую группу доменов radius_proxy_domain_regex: (.+\.)?(Central|North-West)\.root$ radius_proxy_host: 1.1.1.1 radius_proxy_port: 1812 radius_proxy_secret: password1 # добавляем вторую группу доменов radius_proxy_domain_regex_2: ^(.+\.)?(South|Volga)\.root$ radius_proxy_host_2: 2.2.2.2 radius_proxy_port_2: 1812 radius_proxy_secret_2: password2 |
| Информация |
|---|
В каждом из доменов проксирования возможно указывать несколько серверов аналогично примеру в формате с указанием индекса сервера в каждой группе - "radius_proxy<N>"... и указанием постфикса определяющего домен в формате "_N". Например: radius_proxy3_host_2. |
После чего запустить скрипт с правами суперпользователя и тегом --configure-radius-proxy:
| Блок кода | ||||
|---|---|---|---|---|
| ||||
sudo ./eltex-softwlc-helper-ansible-latest.sh --configure-radius-proxy |
Проверить, как отработает проксирование можно, заглянув в отладку (выполняется на хосте с SoftWLC). В приведенном примере видим, как авторизация на SSID South в домене South.root проксируется на home server 2.2.2.2.
...
Таким образом, в случае прерывания связи между серверами, после восстановления связности сервис станет доступен в течении 120 секунд.
Подмена (добавление) атрибутов RADIUS при проксировании запросов на сторонний сервер
Для того, чтобы изменять (или обогащать) RADIUS запросы дополнительным атрибутом при проксировании их через eltex-radius необходимо помимо настройки проксирования представленных выше изменить секцию # Proxy Domain в конфигурационном файле softwlc-ansible-1.37/roles/configure_radius_proxy/templates/policy.d.j2
| Примечание |
|---|
Некорректное изменение этого файла может привести к неработоспособности radius сервера. Нужные параметры необходимо добавлять в блок if (&Eltex-Domain && &Eltex-Domain =~ /$ENV{RADIUS_PROXY_DOMAIN_REGEX{{domain}}}/) { |
Рассмотрим обогащение пакетов на примере атрибута NAS_ID. ТД Eltex в этом атрибуте передают свой MAC адрес.
В примере ниже при проксировании RADIUS запросов на сторонний RADIUS сервер, значение NAS-ID будет изменено на строчку "changeme".
| Блок кода | ||||
|---|---|---|---|---|
| ||||
{# шаблон файла policy.d #}
# Proxy Domain
proxy_auth {
if ("${proxy_auth}" == 1) {
{% for domain in domain_regex_suffixes %}
if (&Eltex-Domain && &Eltex-Domain =~ /$ENV{RADIUS_PROXY_DOMAIN_REGEX{{domain}}}/) {
update request {
NAS-Identifier := "changeme"
}
update control {
Proxy-To-Realm = "auth_proxy{{domain}}"
}
# If request is going to be proxied, local processing is pointless
handled
}
{% endfor %}
}
}
# Proxy SSID
proxy_ssid {
if ("${proxy_ssid_enabled}" == 1) {
if (Called-Station-SSID == "${proxy_ssid_value}") {
update control {
Proxy-To-Realm = "auth_ssid"
}
# If request is going to be proxied, local processing is pointless
handled
}
}
} |