Рис. 1.
Установите SoftWLC и сервис-активатор:
Сервис-Активатор – это сервер на базе архитектуры x86, операционной системы Ubuntu 16.04 или 18.04 с установленным специализированным ПО. Его задачей является принятие POST HTTPs запросов от точек доступа, их обработка и обмен информацией с SoftWLC. С программной точки зрения Сервис-Активатор – это WEB-сервер. Для получения запросов от точек доступа Сервис-Активатор должен иметь открытый порт 8043 и белый IP-адрес. Так как точки доступа будут обращаться на Сервис-Активатор по URL, необходимо организовать привязку белого IP-адреса Сервис-Активатора к доменному имени на DNS-серверах. Другим сетевым интерфейсом Сервис-Активатор должен быть связан с модулем EMS, то есть он должен быть помещен в единое адресное пространство модулей SoftWLC. Для обеспечения безопасности трафик между Сервис-Активатором и EMS должен передаваться через сетевой экран (firewall). Для взаимодействия Сервис-Активатора и SoftWLC на firewall должны быть открыт порт 8080 (HTTP), по которому Сервис-Активатор обращается к EMS.
Сервис-Активатор относительно сети Интернет может быть размещен за Прокси-cервером и иметь серый IP-адрес для взаимодействия с точками доступа. Соответственно, Прокси-cервер должен пробрасывать POST-запросы на сервис-активатор с подменой или без подмены TCP-порта. В конфигурационных файлах сервис-активатора возможно настроить номер TCP-порта, который сервер будет прослушивать.
После того, как точка доступа отправляет HTTPs-запрос сервис-активатору со своими данными, сервис-активатор производит проверку сертификата точки доступа. Для этого на сервис-активаторе должен храниться корневой сертификат и подписанный им сертификат сервис-активатора, содержащий Provider-ID. Provider-ID – идентификатор провайдера услуги. Он необходим для того, чтобы только точки доступа, принадлежащие определенному провайдеру, могли подключиться к сервис-активатору только этого провайдера. Опционально сервис-активатор может проверить соответствие MAC-адреса точки доступа, содержащегося в сертификате точки доступа и MAC-адреса самой точки доступа. Это защищает провайдера от кражи сертификата с одной точки доступа и заливке его на другую точку. Если процедура проверки сертификатов, handshake и т.д. прошли успешно, то сервис-активатор приступает к проверке актуальности ПО точки доступа. Сопоставление актуальных версий ПО моделям точек доступа хранится в файле конфигурации /etc/eltex-wifi-sa/factory-fw.conf. Если версия ПО пришедшей на сервис-активатор точки доступа отличается от версии, указанной в этом файле, то сервис-активатор дает точке доступа команду на обновление ПО. То есть на сервис-активаторе заранее должны быть размещены файлы ПО для используемых моделей точек доступа.
Если файл ПО не размещен на сервис-активаторе или версия ПО точки соответствует актуальной версии, указанной на сервис-активаторе, то он переходит к поиску привязки правила инициализации для этой точки в базе данных. В случае, если привязки нет, сервис-активатор помещает точку доступа в "песочницу" до момента появления привязки.
Можно отключить возможность понижения версии (даунгрейда) ПО точек доступа. Тогда обновлению будут подлежать только точки доступа, версия которых ниже версии, указанной на сервис-активаторе. |
Прежде чем осуществить привязку точки доступа необходимо предварительно создать 2 объекта в системе:
Профиль OTT. В данном профиле содержится полный набор настроек IPsec, в соответствии с которыми точка доступа и ESR будут создавать IPsec-туннели. Возможные настройки в профиле ОТТ приведены в
Приложении 1. В NBI за создание данного профиля отвечает команда CreateOttProfile.
Привязка профиля OTT к ESR. Производится привязка белых IP-адресов ESR к профилю ОТТ, созданному ранее. В результате параметры IPsec из профиля OTT сопоставляются с определенным ESR. Далее, когда сервис-активатор, выберет для точки доступа ESR, он отправит ей вместе с его белым IP-адресом параметры IPsec, привязанные к этому ESR. В результате появляется гарантия, что при поднятии туннеля и со стороны точки доступа и со стороны ESR будут использоваться одинаковые параметры IPsec. Дополнительно в конфигурации ESR можно корректировать параметры IPsec, установленные на нем привязкой профиля. За создание привязки профиля OTT к ESR в NBI отвечает команда CreateOttStation.
Для осуществления привязки профиля OTT к ESR и дальнейшего выбора сервис-активатором ESR для точки доступа необходимо, чтобы ESR заранее были заведены в дерево устройств EMS. На них должны быть активированы флаги ОТТ (в режиме Service Provider), которые указывают системе на готовность ESR работать с точками доступа по модели ОТТ. Кроме того, на них должны быть настроены белые IP-адреса. ESR должны быть помещены в те же домены, в которые будут инициализироваться согласно привязкам к правилам инициализации точки доступа OTT. Также точки могут быть проинициализированы в поддомены того домена, в котором будут находиться ESR.
После того, как все объекты созданы, необходимо произвести привязку точки доступа к правилу инициализации по ее MAC. В привязке нужно выставить флаг OTT в режим Connected. В качестве домена узла выбирается домен, в котором находятся ESR OTT или его поддомен более низкого уровня.
После создания привязки к правилу инициализации сервис-активатор производит выбор ESR, на который точка доступа должна будет построить IPsec туннель по следующему алгоритму: сервис-активатор начинает поиск ESR с установленным флагом OTT в домене, где находится точка доступа согласно привязке правила инициализации. Если в текущем домене таких ESR нет, то алгоритм поднимается в дереве доменов на один выше и продолжает подниматься до тех пор, пока не найдет OTT ESR. Если OTT ESR не будет найден, то сервис-активатор вернет точке ошибку с кодом 4022. Среди найденных в домене ОТТ ESR сервис-активатор выбирает тот, на который нагрузка на текущий момент ниже и к которому подключено наименьшее количество точек доступа. После этого сервис-активатор генерирует уникальную пару логина и пароля для X-Auth авторизации и отправляет точке доступа итоговое сообщение, включающее белый IP ESR, параметры IPsec, содержащиеся в конфигурации ESR, пару логин/пароль для X-Auth.
Для того, чтобы между точками доступа работал бесшовный роуминг, точки доступа должны быть подключены к одному ESR. В алгоритме выбора ESR, если точка доступа помещается в домен, в котором уже находятся другие точки, то приоритет отдается тому же ESR, к которому подключены и остальные точки в домене. |
На сервис-активаторе существует возможность автоматического добавления точки доступа в дефолтный домен. Это необходимо если требуется активировать на точке доступа дефолтную услугу Wi-Fi сразу после ее установки без участия оператора и без привязки точки к правилу инициализации. Для этого в системе создайте домен "ott.root" и привязку к правилу инициализации ключа "ott_default" в домене узла "ott.root". Привяжите SSID к домену. К SSID привяжите портал, который будут видеть все пользователи, подключившиеся к точке доступа, попавшей в дефолтный домен. В домене должны быть установлены ESR с активированными флагами OTT и привязанными профилями OTT.
После проведения этой серии операций алгоритм подключения точки будет следующим:
В результате на точке доступа автоматически без ручной работы оператора будет активна дефолтная услуга.
При использовании дефолтного домена все точки доступа всех клиентов, для которых отсутствуют привязки к правилам инициализации по MAС, будут попадать в дефолтный домен. При этом, с точки зрения системы, не будет какого-либо идентификатора, указывающего на принадлежность точки доступа определенному клиенту. В результате вся статистика и другая информация о точке и подключившихся пользователях не будет идентифицироваться принадлежностью к какому-либо клиенту и не будет фильтроваться по признаку клиента. Для привязки точки доступа к определенному клиенту необходимо создать привязки правила инициализации точки по MAC в домен клиента, удалить точку из дефолтного домена с последующей переинициализацией. При включении дефолтного домена оператор берет на себя ответственность за контроль точек доступа и услуг в рамках дефолтного домена. |
Рис. 2.
Конфигурационные файлы сервис-активатора располагаются в директории "/etc/eltex-wifi-sa/". Для применения изменений в конфигурационных файлах требуется перезапуск Сервис-Активатора командой: "service eltex-wifi-sa restart".
Описание параметров, содержащихся в конфигурационных файлах:
Конфигурационный файл "application.conf".
В данном файле содержится основная конфигурация Сервис-Активатора.
service { # One of: debug, info, warn, error logLevel = info gelfHost = "udp:localhost" gelfPort = 12201 gelfLevel = OFF docker = false } server { # Max request processing time (0 for infinite) # If it is exceed, the server considered overloaded requestTimeout = 45 http { enabled = no port = 8042 } https { enabled = yes port = 8043 # SA server certificate created via ott/ca/generateServer restful api keyStore { path = "/etc/eltex-wifi-sa/public-server.p12" password = "" } # CA public root certificate, part of private ca.p12 container. clients { certificate = "/etc/eltex-wifi-sa/eltex-ca.crt" # Check that MAC in request is same as CN of certificate checkMAC = yes # Check server certificate at client side while upgrading firmware # Set 'yes' for production installations fwCheckCrt = yes } } } ems { host = "localhost" port = 8080 ### Settings for circuitBreaker # The time that the CircuitBreaker should wait before transitioning from open to half-open.[ms] waitDurationInOpenState = 100000 # Configures the number of permitted calls when the CircuitBreaker is half open. permittedNumberOfCallsInHalfOpenState = 5 # Configures the minimum number of calls which are required before the CircuitBreaker # can calculate the error rate or slow call rate. minimumNumberOfCalls = 3 } paul { host = "localhost" port = 8098 } # SA client parameters for WEP ipsec-activator { # 30-7200 s - timeout for ipsec connection before next SA request wait-timer = 180 # 120-7200 s - timeout for update firmware before next SA request update-time = 300 } |
Имя параметра | Значения | Рекомендуемое значение для эксплуатации | Описание |
---|---|---|---|
logLevel | debug, info, warn, error | info | Уровень логирования. Логи записываются в файл /var/log/eltex-wifi-sa/main.log. |
gelfHost | localhost или IP адрес | "udp:localhost" | Адрес удаленного сервера сбора логов |
gelfPort | integer (0-65535) | 12201 | Порт удаленного сервера сбора логов |
gelfLevel | OFF,debug, info, warn, error | Уровень логирования при перенаправлении логов на удаленный сервер сбора логов. OFF - не отправлять | |
docker | yes, no | false | Признак запуска в контейнере |
requestTimeout | integer | 45 | Mаксимальное время обработки запроса (0 для бесконечного). Если значение параметра превышено, сервер считается перегруженным. |
http { enabled | yes, no | false | Включение приема запросов от точек доступа по протоколу HTTP. |
http { port | integer (0-65535) | 8042 | Номер порта TCP, на котором сервис-активатор будет прослушивать запросы от точек по HTTP. |
https { enabled | yes, no | true | Включение приема запросов от точек доступа по протоколу HTTP. |
https { port | integer (0-65535) | 8043 | Номер порта TCP, на который сервис-активатор будет прослушивать запросы от точек по HTTPs. |
https { keyStore { path | string | /etc/eltex-wifi-sa/server.p12 | Путь до сертификата сервис-активатора. Начиная с версии SoftWLC 1.20 требуется всегда указывать полный путь. |
https { keyStore { password | string | "" | Пароль для сертификата сервис-активатора. В большинстве случаев – пустая строка. |
https { clients { certificate | string | /etc/eltex-wifi-sa/client.crt | Путь до корневого сертификата. Начиная с версии SoftWLC 1.20 требуется всегда указывать полный путь. |
https { clients { checkMAC | yes, no | yes | Включение проверки MAC-адреса в сертификате, передаваемом точкой доступа. |
https { clients { fwCheckCrt | yes, no | yes | Включение проверки ProviderID в сертификате, передаваемом точкой доступа. |
ems { host | localhost или IP адрес | Адрес EMS-сервера, с которым взаимодействует сервис-активатор. | |
ems { port | integer (0-65535) | 8080 | Номер порта, по которому сервис-активатор обращается к EMS. |
ems { waitDurationInOpenState | Int32 (0-2147483647) | 2000 | Время, через которое CircuitBreaker перейдет из открытого состояния в полуоткрытое. |
ems { permittedNumberOfCallsInHalfOpenState | integer (0-65535) | 5 | Максимальное кол-во запросов, которое CircuitBreaker выполняет в полуоткрытом состоянии к Eltex-EMS. |
ems { minimumNumberOfCalls | integer (0-65535) | 3 | Количество ошибочных запросов подряд к Eltex-EMS, после чего CircuitBreaker перейдет в открытое состояние. |
paul { host | localhost или IP адрес | Адрес сервера с Eltex-OTT-paul | |
paul { port | integer (0-65535) | 8098 | Порт сервера с Eltex-OTT-paul |
ipsec-activator { wait-timer | integer | 180 | Время таймаута, в течение которого точка пытается установить IPsec-соединение. По истечению таймаута выполняется перезагрузка точки доступа. |
ipsec-activator { update-time | integer | 600 | Время таймаута, в течение которого точка пытается обновить ПО с сервис-активатора. По истечению таймаута выполняется перезагрузка точки доступа. |
Конфигурационный файл "factory-fw.conf"
В данном файле содержатся настройки по автоматическому обновлению точек доступа на актуальные версии ПО.
# Map factory types to firmware filename # # Example: # "WEP-12ac" { - full factory device type, don't change it! # min = 1.12.0.0 - miminal firmware version to work with OTT # file = WEP-12ac-1.12.0.0.tar.gz - valid filename at /var/lib/eltex-wifi-sa/firmware # } # Allow downgrade fw version from higher versions downgrade = true "WEP-12ac" { min = 1.21.0.41 file = WEP-12ac-1.21.0.41.tar.gz1 } "WEP-12ac:rev.B" { min = 1.12.0.0 file = WEP-12ac-revB-1.12.0.0.tar.gz } "WEP-12ac:rev.C" { min = 1.21.0.41 file = WEP-12ac-revC-1.21.0.41.tar.gz1 } "WEP-2ac" { min = 1.22.4.3 file = WEP-2ac-1.22.4.3.tar.gz } "WEP-2ac Smart" { min = 1.12.0.0 file = WEP-2ac-1.12.0.0.tar.gz } "WEP-2ac-Z" { min = 1.19.3.1 file = WEP-2ac-1.19.3.1.tar.gz } "WEP-2L" { min = 1.2.0 build 966 file = WEP-2L-1.2.0_build_966.tar.gz23 } "WEP-1L" { min = 1.2.0 build 966 file = WEP-1L-1.2.0_build_966.tar.gz1 } "WOP-12ac AC" { min = 1.12.0.0 file = WOP-12ac-1.12.0.0.tar.gz } "WOP-12ac DC" { min = 1.12.0.0 file = WOP-12ac-1.12.0.0.tar.gz } "WOP-12ac ER" { min = 1.12.0.0 file = WOP-12ac-ER-1.12.0.0.tar.gz } "WOP-12ac ER SFP" { min = 1.12.0.0 file = WOP-12ac-ER-1.12.0.0.tar.gz } "WOP-12ac ER GPON" { min = 1.12.0.0 file = WOP-12ac-ER-1.12.0.0.tar.gz } "WOP-12ac-LR AC" { min = 1.12.0.0 file = WOP-12ac-LR-1.12.0.0.tar.gz } "WOP-12ac-LR DC" { min = 1.12.0.0 file = WOP-12ac-LR-1.12.0.0.tar.gz } "WOP-12ac-LR:rev.B DC" { min = 1.12.0.20 file = WOP-12ac-LR-revB-1.12.0.0.tar.gz } "WOP-12ac-LR:rev.C DC" { min = 1.12.0.0 file = WOP-12ac-LR-revC-1.12.0.0.tar.gz } "WOP-12ac-LR:rev.D" { min = 1.12.0.0 file = WOP-12ac-LR-revD-1.12.0.0.tar.gz } "WOP-12ac:rev.B DC" { min = 1.12.0.0 file = WOP-12ac-revB-1.12.0.0.tar.gz } "WOP-12ac:rev.C" { min = 1.12.0.0 file = WOP-12ac-revC-1.12.0.0.tar.gz } "WOP-12ac-LR:rev.D SFP" { min = 1.12.0.0 file = WOP-12ac-LR-revD-1.12.0.0.tar.gz } "WOP-12ac-LR:rev.D GPON" { min = 1.12.0.0 file = WOP-12ac-LR-revD-1.12.0.0.tar.gz } "WOP-2ac" { min = 1.12.0.0 file = WOP-2ac-1.12.0.0.tar.gz } "WOP-2ac SFP" { min = 1.12.0.0 file = WOP-2ac-1.12.0.0.tar.gz } "WOP-2ac GPON" { min = 1.12.0.0 file = WOP-2ac-1.12.0.0.tar.gz } "WOP-2ac:rev.B" { min = 1.12.0.0 file = WOP-2ac-revB-1.12.0.0.tar.gz } "WOP-2ac:rev.B SFP" { min = 1.12.0.0 file = WOP-2ac-revB-1.12.0.0.tar.gz } "WOP-2ac:rev.B GPON" { min = 1.12.0.0 file = WOP-2ac-revB-1.12.0.0.tar.gz } "WOP-2L" { min = 1.2.0.966 file = WOP-2L-1.2.0_build_966.tar.gzasd } "WB-15-W" { min = 1.0.0.0 file = WB-15-W-1.0.0.0.tar.gz } "ESR-10" { min = 1.11.6 build 1 file = esr1x-1.11.6-build1.firmware } "ESR-12V" { min = 1.6.0.0 file = esr1x-1.6.0-build0.firmware } "ESR100" { min = 1.6.0.0 file = esr100-1.6.0-build0.firmware } "ESR200" { min = 1.6.0.0 file = esr200-1.6.0-build0.firmware } "ESR1000" { min = 1.6.0.0 file = esr1000-1.6.0-build0.firmware } "ESR1200" { min = 1.6.0.0 file = esr1200-1.6.0-build0.firmware } "ESR-1700" { min = 1.6.0.0 file = esr1700-1.6.0-build0.firmware } |
Имя параметра | Значения | Рекомендуемое значение для эксплуатации | Описание |
---|---|---|---|
downgrade | true, false | false | Разрешает\запрещает даунгрейд ПО ТД в случае, если версия ПО не совпадает с версией указанной в конфигурации |
min | string | Версия ПО, актуальная для точки доступа | |
file | string | Имя файла ПО, размещенного в /var/lib/eltex-wifi-sa/firmware/ |
Конфигурационный файл /usr/lib/eltex-radius-nbi/conf/ott/ott.xml
В данном файле содержится информация о максимальном количестве точек доступа ОТТ, которые могут быть подключены к данному типу ESR. Когда на Сервис-Активатор приходит очередная точка доступа, то Сервис-Активатор находит в домене ESR OTT и проверяет, какое количество точек доступа к нему привязано. Если это количество равно или превышает количество точек доступа, указанное в данном файле для этого типа ESR, то Сервис-Активатор считает этот ESR загруженным максимально и начинает искать в этом домене или в доменах выше другой, более свободный ESR.
Имя параметра | Значения | Рекомендуемое значение для эксплуатации | Описание | |
---|---|---|---|---|
1 | subtype | 100, 200, 1000, 1200, 1500, 1700 | Тип ESR (ESR-100, ESR-200, ESR-1000, ESR-1200, ESR-1500, ESR-1700) | |
2 | max | Максимальное количество точек ОТТ для данного ESR | ||
3 | param name, default, regex, description | Название, дефолтное значение, регулярное выражение и описание параметров, содержащихся в профиле ОТТ. |
root@vagrant-ubuntu-trusty-64:/home/vagrant# echo "deb [arch=amd64] http://archive.eltex-co.ru/wireless softwlc-1.18-xenial main" >> /etc/apt/sources.list.d/eltex.list
root@vagrant-ubuntu-trusty-64:/home/vagrant# wget -O - http://archive.eltex-co.ru/wireless/repo.gpg.key | sudo apt-key add -
root@vagrant-ubuntu-trusty-64:/home/vagrant# apt-get update
root@vagrant-ubuntu-trusty-64:/home/vagrant# apt-get install openjdk-8-jdk
root@vagrant-ubuntu-trusty-64:/home/vagrant# update-java-alternatives -s java-1.8.0-openjdk-amd64
root@vagrant-ubuntu-trusty-64:/home/vagrant# apt-get install eltex-wifi-sa
В случае, если Сервис-Активатор устанавливается на отдельном сервере, в файле /etc/eltex-wifi-sa/application.conf необходимо прописать параметры доступа к серверу EMS и перезапустить Сервис-Активатор:
ems {
host = "localhost"
port = 8080
В рамках услуги ОТТ ESR должен иметь 2 шлюза по умолчанию для передачи трафика в сеть Интернет. Через один шлюз, который прописывается в таблице маршрутизации как классический Default Gateway, ESR осуществляет передачу пакетов IPsec. В этой подсети ESR должен иметь интерфейс с белым IP-адресом. На этот IP-адрес точки доступа будут строить туннели IPsec, порты 500 и 4500 должны быть открыты. Через второй шлюз ESR передает в сеть Интернет абонентский трафик, распакованный из туннелей. Для того, чтобы исключить проблему 2 дефолтных шлюзов в одном пространстве маршрутизации, необходимо настроить опцию Next-Hop на Bridge, который является шлюзом для абонентского трафика и через который этот трафик далее маршрутизируется. Опция позволяет маршрутизировать весь абонентский трафик, пришедший на этот Bridge, через шлюз, указанный в опции Next-Hop в обход Default Gateway.
В рамках поднятия сессий IPsec выполняется этап X-Auth авторизации. При этом ESR получает от точки уникальные логин и пароль (которые ранее были сгенерированы сервис-активатором) и производит авторизацию путем отправки RADIUS-запросов на PCRF SoftWLC. PCRF при взаимодействии с базой Mongo DB возвращает ESR информацию о совпадении присланных точкой логина и пароля с логином и паролем в базе.
Резервирование ESR может производится по схеме N+1. В этом случае при аварии на одном из ESR в домене и разрыве IPsec-сессии точки доступа отправляют информацию на сервис-активатор о необходимости получения данных для подключения к новому ESR. Сервис-активатор выдает информацию о других ESR с учетом аварии и загруженности устройств. В результате происходит перебалансировка точек доступа с аварийного ESR на другие. Данная схема резервирования позволяет сократить число ESR в сети.
Когда один из ESR становится аварийным и точки доступа с него приходят на Сервис-Активатор, то Cервис-Активатор начинает поиск нового ESR для этих точек в том же домене, в котором они находятся. Если в этом домене нет ESR или нет свободных ESR, то Сервис-Активатор в дереве доменов поднимается на уровень выше и продолжает поиск там. Если там нет свободных ESR, то поднимается еще на уровень и т.д. Поэтому имеет смысл сделать несколько групп ESR и разместить их по региональному признаку в различных региональных доменах. Точки доступа этих регионов будут подключаться к своим региональным ESR. Таким образом, путь прохождения данных от точки до ESR будет ограничен конкретным регионом. При этом в корень ветки OTT можно разместить еще одну группу резервных ESR. В случае если ВСЕ ESR в регионе по каким-либо причинам выйдут из строя или станут недоступными, то у точек будет возможность переключиться на корневые ESR. Это увеличит путь прохождения пакетов, если корневые ESR стоят в другом регионе относительно точек доступа, однако позволит сохранить услугу. При этом региональные и корневые ESR могут быть привязаны к различным профилям OTT с различными параметрами IPsec, и переключение точек доступа между ними будет происходить корректно, т.к. точка доступа всегда получает с сервис-активатора именно те параметры IPsec, которые настроены на целевом ESR, к которому она подключена.
Рис. 3.
Рассмотрим работу резервирования на примере , изображенном на рис. 3:
Отказом ESR является его переход в "красный" статус. ESR в "зеленом" и "желтом" статусе считается доступным.
Рис. 4.
Рис. 5.
Схема резервирования, когда ESR размещаются на разных уровнях дерева доменов рассмотрена на рис. 3.
Пример конфигурации ESR можно посмотреть в Приложении 3.
В рамках работы по модели ОТТ точке доступа необходимо подключиться к сервис-активатору, получить параметры IPsec и авторизационные данные перед поднятием IPsec-туннелей. Способ подключения должен быть безопасным, поэтому следует использовать HTTPs, который в свою очередь требует наличия сертификатов, размещенных как на точке доступа, так и на сервис-активаторе. Для этого на точке доступа должен быть прописан URL сервис-активатора, на который она обратится. Это может быть сделано двумя способами:
1) Если провайдер услуги заключил Договор с Элтексом, то на этапе производства точек Элтекс может прошивать в них заранее подготовленный сертификат, который содержит уникальный для данного провайдера параметр "Provider-ID", а также уникальный URL сервис-активатора, на который должна будет обращаться точка доступа. Соответственно, данный URL должен быть заранее согласован между вендором и провайдером. В результате провайдеру отгружаются точки доступа, которые при установке на сети будут автоматически подключаться к сервис-активатору по URL из своего сертификата. Провайдеру услуги будет предоставлен сертификат для сервис-активатора и корневой сертификат. Сертификат сервис-активатора также содержит "Provider-ID", по которому сервис-активатор может проверить, принадлежит ли подключающаяся точка доступа данному провайдеру, и если нет – проигнорировать ее обращение. В данном варианте монтажнику, устанавливающему точку доступа, не требуется ничего настраивать, чтобы услуга заработала.
2) Если точки доступа используют провайдеры, не заключившие договор с Элтекс на производство точек доступа с уникальным Provider-ID, выпускаются точки доступа с дефолтным Provider-ID = "eltex" и незаполненным URL сервис-активатора. Пока URL сервис-активатора не заполнен, точка доступа работает как обычная точка доступа – режим OTT выключен. Для запуска режима ОТТ необходимо прописать URL сервис-активатора через CLI или WEB-интерфейс точки доступа. Точка начнет попытки подключения к сервис-активатору. Провайдеру передаются корневой сертификат и Сертификат сервис-активатора с Provider-ID = "eltex". Все точки с данным Provider-ID смогут подключиться к сервис-активатору, если в них прописать его URL. Однако, если не будет создана привязка к правилу инициализации для точки, то точка доступа просто попадет в "песочницу" и далее в систему не попадет. Благодаря этому ограничению "чужие" точки доступа не смогут получить услугу провайдера.
Все сертификаты точек доступа содержат MAC-адреса этих точек. При обращении точки доступа сервис-активатор опционально может проверить MAC, заложенный в сертификате и реальный MAC точки доступа. Если они будут отличаться, то сервис-активатор выдаст ошибку и не пропустит точку к следующим этапам активации. Эта процедура защищает провайдера от кражи сертификата с одной из точек доступа и установке его на другую точку с другим MAC.
Для работы точек доступа по модели ОТТ требуется наличие на точках загрузчика, адаптированного под данный режим работы. Загрузчик может быть прошит на точку доступа только в рамках производственного процесса Элтекс. Таким образом, модель ОТТ поддерживают только новые точки доступа Элтекс, прошедшие соответствующий этап производства. Провайдер может получить точки доступа, поддерживающие модель ОТТ, по специальному заказу через коммерческий отдел Элтекс. |
Если точка доступа работает по модели ОТТ (URL сервис-активатора прописан на точке), но вместе с получением первичного IP-адреса по DHCP точка доступа получает опцию 43 DHCP, то работа ОТТ на точке отключается. Точка начинает работать по классической схеме. |
При возникновении аварии на ESR точка доступа уйдет в перезагрузку и обратится на сервис-активатор через время:
(GRE_ping_counter x 10) + waite_timer,
где GRE_ping_counter – параметр в профиле ОТТ, waite_timer – параметр в конфигурации сервис-активатора.
По умолчанию это время составляет 3х10 + 180 = 210 секунд.
1) Монтажник устанавливает у клиента точку доступа Eltex с ПО, кастомизированным под провайдера услуги. Данное ПО содержит URL сервис-активатора провайдера по умолчанию. сервис-активатор устанавливается в центре обработки данных провайдера на отдельных серверах и является частью комплекса SoftWLC. Он имеет белый IP-адрес для подключения точек доступа и имеет доменное имя, прописанное на DNS провайдера.
2) Точка доступа получает из локальной сети IP-адрес по DHCP, другие сетевые реквизиты и доступ в Интернет. Если точка доступа получила в DHCP опцию 43, это значит, что точка доступа находится в сети провайдера и построение IPsec не требуется. Точка будет руководствоваться подопциями 43 опции и не запустит механизм ОТТ. Если точка доступа не получила опцию 43, она запускает механизм ОТТ.
3) Точка доступа по HTTPs связывается с сервис-активатором и передает ему:
4) Сервис-активатор, получив запрос от точки, в случае совпадения Provider-ID и MAC точки из сертификата и успешного handshake, связывается по NBI с EMS, передает ему полученные от точки данные и делает запрос на наличие привязок правил инициализации к этой точке.
5) Далее может быть несколько вариантов:
6) Чтобы точка доступа построила IPsec-туннель, необходимо в EMS сделать привязку правила инициализации к ее MAC-адресу. При этом оператору необходимо поставить флаг подключения по ОТТ для точки доступа до ее реальной установки в сеть.
Помимо флага OTT еще одним, определяющим параметром, будет домен точки доступа. EMS отправляет сервис-активатору домен точки и флаг OTT в ответ на очередной запрос. Если в системе включен дефолтный домен ОТТ, то выполнение этого пункта не обязательно.
7) EMS, получив от оператора данные о точке доступа, производит следующие действия:
8) Получив необходимые данные, точка доступа начинает строить IPsec-туннель до ESR-1000. В рамках установки IPsec-соединения ESR-1000 получает от точки уникальные логин и пароль и производит их проверку на PCRF сервере SoftWLC. PCRF обращается к базе данных ott и проверяет, существует ли в таблице логин и пароль, полученные от точки. Если такие логин и пароль существует, то RADIUS шлет access-accept.
При установке IPsec точка получает второй IP-адрес в рамках установления IPsec-сессии и другие параметры. Этот IP-адрес точка использует для поднятие EoGRE туннелей (Management и Data) до ESR-1000 внутри IPsec туннеля.
Посмотреть таблицу, к которой обращается RADIUS можно следующим образом: root@vagrant-ubuntu-trusty-64:/home/vagrant# mongo > show tables system.indexes xauth > db.xauth.find() { "_id" : ObjectId("5a6816b4e14c08c4d9c0854d"), "ipsec_login" : "login1", "ipsec_pass" : "password1" } { "_id" : ObjectId("5a6816b4e14c08c4d9c0854e"), "ipsec_login" : "login2", "ipsec_pass" : "password2" } { "_id" : ObjectId("5a6816b4e14c08c4d9c0854f"), "ipsec_login" : "login3", "ipsec_pass" : "password3" } |
9) Точка доступа связывается с SoftWLC по SNMP внутри Management GRE и проходит инициализацию так же, как и в существующей схеме.
10) Абонентский трафик проходит внутри Data GRE на ESR-1000 и маршрутизируется в сторону NAT.
Рис. 6.
Для инициализации точек доступа, включенных по схеме OTT, создайте домен ott.root в дереве EMS.
В правилах инициализации создайте правило ott (Вкладка Wireless/Менеджер правил инициализации ТД/Правила). Правило инициализации ott должно быть создано для каждого типа вручную. В качестве транспорта для SNMP обязательно укажите TCP.
Рис. 7.
Создайте привязку инициализации с ключом ott_default, правилом инициализации ott и доменом ott.root.
Рис. 8.
Имя ключа ott_default можно посмотреть в подсказке, нажав кнопку и прокрутив её вниз до конца:
Рис.9.
Список используемых ключей привязок инициализации настраивается в EMS "Администрирование" → "Настройка сервера" → "Системные модули" → "wirelessCommon" в пункте "Ключи привязок инициализации". По умолчанию использование ключа "OTT Default" включено. |
После того, как привязка была создана, ее можно увидеть на вкладке ОТТ Привязки в Wireless/Менеджер правил инициализации ТД.
Рис. 10.
Создайте SSID с привязкой к домену ott.root (Wireless/Менеджер SSID). В поле Bridge, Location укажите location, соответствующий настройкам bridge на ESR.
Рис. 11.
Рис. 12.
Активация параметра ОТТ: во вкладке Доступ установите значение параметра ServiceProvider для ESR, на которые будут подключаться ТД по схеме ОТТ.
Рис. 13.
Задайте параметры IPsec на ESR. Для этого создайте профиль ОТТ и сделайте привязку к ESR.
Для того, чтобы создать профиль ОТТ во вкладке Wireless/Менеджер правил инициализации ТД откройте вкладку OTT profiles. Создайте профиль с необходимыми параметрами, нажав кнопку .
Рис. 14.
После того, как профиль был создан, его можно привязать к ESR. Для этого в дереве EMS выберите ESR и во вкладке Конфигурация перейдите на вкладку ОТТ.
Рис. 15.
Откройте окно редактирования ОТТ, нажав кнопку Редактировать. Выберите профиль ОТТ, созданный ранее и укажите белый IP-адрес ESR. В качестве параметра IPsec remote gateway укажите адрес шлюза, к которому будет обращаться точка доступа. Параметры ОТТ профиля и ОТТ на ESR должны совпадать.
Рис. 16.
Параметр "IPsec remote gateway" должен быть уникален для каждого ESR, используемого для терминации IPsec подключений ТД. При попытке задать совпадающий адрес будет выдано сообщение об ошибке вида: "Адрес IPsec remote gateway '<IP-адрес>' уже используется в настройках '<Имя ESR в EMS>". |
Зайдите в WEB-интерфейс точки, в меню Manage/OTT Settings
Рис. 17.
В кратком меню достаточно будет указать адрес удаленного роутера с IPsec, XAUTH логин и пароль (при условии, что пароль для XAUTH совпадает с паролем IPsec).
Если в расширенном меню активирован флаг Use XAUTH Password, то XAUTH совпадает с паролем IPsec. В противном случае IPsec Password необходимо задать. |
Открыв Advanced Settings, можно задать расширенные параметры IPsec
Рис. 18.
Если значение параметра Use ISAKMP Mode Config установлено как On, то параметры GRE Over IPsec Mgmt и GRE Over IPsec Data не учитываются. Если значение параметра Use ISAKMP Mode Config установлено как Off, то необходимо задать параметры IKE Gateway и параметры GRE Over IPsec Mgmt и GRE Over IPsec Data.
Рис. 19.
Подробнее о назначение параметров:
IPsec Operational Status – включение IPsec.
GRE Ping Counter – количество пингов к gre-managment-ip, по неответу которых IPsec-соединение будет перезапущено. Пинг посылается каждые 10 сек. Параметр принимает значение от 3 до 60. По умолчанию 3.
Значение параметра IPsec child SA lifetime должно быть меньше значения параметра IKE lifetime. Кроме того они должны быть кратны. По умолчанию значение IKE lifetime установлено 86400 (сутки), а значение IPsec child SA lifetime 3600 (час). Получается за сутки ключ IPsec поменяется 24 раза, в то время как ключ IKE поменяется один раз. |
Управление черным списком точек доступа может осуществляться с помощью GUI EMS.
Откройте Wireless/Менеджер правил инициализации/Черный список ТД
Рис. 20.
Нажмите кнопку "Добавить" - откроется окно для ввода МАС-адреса. Введите MAC-адрес точки доступа для занесения ее в черный список.
Рис. 21.
Ввести можно любое количество байт МАС-адреса. Заблокированы будут все MAC-адреса, которые начинаются с указанной строки.
Например, если в черный список добавлена строка aa:bb:01, то при вводе строки aa:bb:01:02:03:04 будет получен отказ "В черный список уже добавлена блокировка aa:bb:01". Если точка доступа внесена в черный список, то она не попадет в "песочницу".
Условия, при которых происходит удаление OTT link:
Проверить удаление OTT станции:
$ mongo > use ott; > db.station.find({esr_ip: '<ip адрес esr>'}).pretty(); |
Проверить удаление OTT привязок:
$ mongo > use ott; > db.xauth.find({esr_ip: '<ip адрес esr>'}).pretty(); > db.xauth.find({mac: '<mac адрес ТД>'}).pretty(); |
Функционал поддержан с версии SoftWLC 1.25. Данный функционал позволяет изменить ESR OTT на который будет отправлена определенная ТД. Так же возможно указать признак "Strict", который определяет будет ли для ТД при обращении на сервис-активатор выполняться выбор лучшего ESR или нет.
Для настройки необходимо открыть "Wireless" → "Менеджер правил инициализации ТД" → "OTT привязки":
Рис. 22.
Нажать кнопку "Добавить" и в открывшемся меню указать:
Рис. 23.
Нажать кнопку "Принять".
При необходимости можно отредактировать существующую OTT привязку ТД. Для этого надо:
Рис. 24.
Рис. 25.
Для оценки загруженности ESR OTT-привязками необходимо открыть "Wireless" → "Менеджер правил инициализации ТД" → "OTT статистика":
Рис. 26.
В данной таблице отображается информация:
В колонке "Количество привязок" отображается кол-во OTT-привязок к данному ESR и не показывает кол-во реально подключенных ТД. |
Для работы с OTT был создан ряд команд в NBI.
Актуальная документация по командам содержится в пакете eltex-radius-nbi. К ней можно получить доступ после установки пакета по ссылке http://<IP-адрес сервера NBI>:8080/eltex-radius-nbi/asciidoc/ и перейдя в содержании к пункту "Подключение ТД через сети сторонних операторов OTT)".
WSDL-файл можно получить по ссылке http://localhost:8080/axis2/services/RadiusNbiService?wsdl
(вместо localhost нужно указать IP-адрес сервера с eltex-radius-nbi)
Рис. 27.
|
Message | |
---|---|
Connection refused | Сервис-активатор не установлен или порт 8042 блокируется |
"code":4022, "msg":"No init link found" | Отсутствует привязка правила инициализации к точке доступа |
"code":1,"msg":"In request by key 'domain' value is empty or null" | В домене, указанном в привязке правила инициализации, нет ни одного ESR с активированной услугой OTT (флаг OTT во вкладке "Доступ") |
"code":4024, "msg":"No OTT station configured" | Не создано ни одного профиля ESR, в котором профиль OTT привязан к белому IP-адресу ESR с активированной услугой OTT, или недоступен ни один из ESR, имеющий такие настройки. |
"code":4023 | Ошибка взаимодействия с NB |
"code": 4025, "msg": "/ott/upgrade/WOP-12ac-LR-RevB.tar.gz" | Версия ПО точки доступа не актуальна. Требуется обновление |
"code": 4026, "msg": "OTT AP locked by black list (<mac-адрес ТД>)" | Мак-адрес ТД внесен в черный список |
Пример конфигураций ESR на тестовом стенде.
Пример 1
Пример приведен для версии 1.6.2, с использованием BGP, для моделей ESR, не имеющих аппартной поддержки EoGRE туннелей. В приведенном примере используется следующая адресация:
1) gi1/0/1.4092: 10.12.20.4/28 - адрес, смотрящий в сеть Интернет, для терминации IPsec;
2) gi1/0/1.212: 100.64.0.66/30 - стыковый адрес, смотрящий в VRF backbone для связи с SoftWLC, DHCP и DNS серверами;
3) gi1/0/1.213: 100.64.0.70/30 - стыковый адрес, смотрящий в VRF nat для выпуска клиентов в сеть Интернет;
4) bridge 1: 192.168.200.49/28 и 192.168.200.50/28 - адреса терминации EoGRE от ТД, для туннелей управления и клиентского трафика соответсвенно;
5) bridge 3: 192.168.128.0/22 - подсеть адресов управления ТД. Адрес 192.168.128.1 используется в качестве адреса управления ESR со стороны SoftWLC;
6) bridge 10: 198.18.160.0/22 - подсеть клиентов ТД. Шлюз по умолчанию для клиентов - 198.18.160.1, DNS 100.123.0.2;
7) 172.31.252.0/22 - подсеть адресов, выдаваемых ТД по mode config, используются для поднятия EoGRE со стороны ТД;
8) 100.123.0.0/24 - подсеть управления. 100.123.0.2 - адрес SoftWLC, DHCP, DNS.
Т. к. шлюз по умолчанию смотрит в сторону подключения сети Интернет через gi1/0/1.4092, то для направления трафика клиентов через интерфейс gi1/0/1.213 используется правило PBR, названное в конфигурации ESR "users_map".
|
Пример 2
Пример приведен для версии 1.4.0, со статичной маршрутизацией, для моделей ESR, не имеющих аппартной поддержки EoGRE туннелей. В приведенном примере используется следующая адресация:
1) bridge 1: 192.168.171/24 - адрес, смотрящий в сеть Интернет, для терминации IPsec;
2) bridge 2: 192.168.110.0.37/24 - административная подсеть, адрес используется для доступа администратором;
2) bridge 3: 101.0.0.171/24 - стыковый адрес для связи с SoftWLC, DHCP и DNS серверами. Используется в качестве адреса управления со стороны SoftWLC. Адрес SoftWLC 101.0.0.24;
3) bridge 5: 192.168.7.1/30 и 192.168.7.2.30 - адреса терминации EoGRE от ТД, для туннелей управления и клиентского трафика соответсвенно;
4) bridge 6: 172.31.239.1/26 - подсеть адресов управления ТД;
5) bridge 7: 172.31.239.65/26 - подсеть клиентов ТД;
6) bridge 94: 10.12.12.1/30 - стыковый адрес для выпуска клиентов в сеть Интернет;
7) 172.31.250.0/24 - подсеть адресов, выдаваемых ТД по mode config, используются для поднятия EoGRE со стороны ТД.
Т. к. шлюз по умолчанию смотрит в сторону подключения сети Интернет через bridge 1, то для направления трафика клиентов через интерфейс bridge 94 используется правило PBR, названное в конфигурации ESR "clients_br7".
|
Если используются модели ESR 1200/1500/1700 с версией ПО 1.4.1 и выше - то потребуется настроить схему с петлёй через физические интерфейсы, для корректной работы аппаратных EoGRE. Подробное описание доступно по адресу: Настройка ESR OTT в схеме с петлёй через физические порты.
Если при подключении к ТД OTT с помощью ssh/telnet через GUI EMS возникает ошибка - необходимо выполнить синхронизацию ТД путем нажатия на кнопку "Синхронизация". |
Все логи работы Сервис-Активатора хранятся в файле /var/log/eltex-wifi-sa/wifi-sa-server.log. Для просмотра расширенных логов в конфигурационном файле application.conf нужно выставить значение параметра LogLevel = debug
В CLI точки доступа выполнить команды:
Просмотр параметров клиентской части Сервис-Активатора на точке доступа:
WEP-12ac_rev_C# get ipsec-activator
Просмотр параметров IPsec, полученных точкой от Сервис-Активатора:
WEP-12ac_rev_C# get ipsec-dynamic
Просмотр URL Сервис-Активатора, зашитого в точку доступа:
WEP-12ac_rev_C# sh
/mnt/root # cd /etc/cert/
/etc/cert # cat sa-host.txt
https://126.0.10.4:8043
Просмотр provider-id и MAC точки в сертификате:
WEP-12ac_rev_C# sh
/etc/cert # openssl x509 -in /etc/cert/cert.pem -text -noout
WARNING: can't open config file: /etc/pki/tls/openssl.cnf
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
e0:d9:e3:70:1d:00:bc:2a:aa:28:54:ee:9f:27:5a:77
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=OTT Certification Root (Test), O=Eltex Enterprise Ltd., OU=Wi-Fi, C=RU, L=Novosibirsk
Validity
Not Before: Jan 1 00:00:00 1999 GMT
Not After : Jan 1 00:00:00 2100 GMT
Subject: CN=E0:D9:E3:70:1D:00, O=provider_eltex
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
........
где e0:d9:e3:70:1d:00 - MAC точки,
provider_eltex - Provider-ID
service-activator https://<URL Сервис-Активатора>:8043 --msg-type register --timeout 300 -C /etc/cert/cert.pem -K /etc/cert/key.pem -A /etc/cert/ca.pem -d 15
Используется для отладки взаимодействия точки с Сервис-Активатором со стороны Точки Доступа.