Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Блок кода
languageyaml
themeRDark
# 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:

...

Блок кода
languageyaml
themeRDark
# Настройка проксирования 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:

Блок кода
languagebash
themeRDark
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".

Блок кода
themeRDark
titlesoftwlc-ansible-1.37/roles/configure_radius_proxy/templates/policy.d.j2
{# шаблон файла 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
        }
    }
}