Дерево страниц

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

Ключ

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

...

  • установка и настройка keepalived (выполняется по схеме master-slave)
  • настройка rsync
  • настройка репликации MySQL (осуществляется путём встречной репликации по принципу master-master)
  • настройка replicaSet MongoDB (репликация осуществляется объединением 3 узлов в Replica Set)
  • настройка работы Eltex-PCRF в режиме кластера
  • изменение конфигурации модулей системы для работы с виртуальным IP

Image RemovedImage Added


В примерах конфигурации в данном разделе для простоты ip-адреса будут указываться как <ip_server1>, <ip_server2> и <virtual_ip>, где:

...

Для корректной работы требуется обеспечить L2 связность между двумя удаленными серверами.

Синхронизация токенов сервиса eltex-doors

Описание 

После развертывания серверов SoftWLC, на них необходимо синхронизировать токены сервиса eltex-doors. Токены с сервера Primary копируются на потенциальный Secondary с заменой, затем перезапускаются зависящие от них сервисы и повторно генерируются записи в БД.

Порядок действий

Удалите содержимое папки "/etc/eltex-doors/keys/" на сервере Slave (файлы private.pem и public.pem).

Скопируйте содержимое папки "/etc/eltex-doors/keys/" с сервера Master на сервер Slave (файлы private.pem и public.pem).

Перезапустите на сервере Slave следующие сервисы:  

Блок кода
themeMidnight
sudo service eltex-disconnect-service restart
sudo service eltex-doors restart
sudo service eltex-johnny restart
sudo service eltex-portal restart
sudo service eltex-portal-constructor restart


На обоих серверах удалите из целевой БД в MySQL записи о токенах сервиса eltex-doors командой:

Блок кода
themeMidnight
mysql -ujavauser -pjavapassword -e "delete from eltex_doors.auth_token;"

Перейдите к веб-интерфейсу личного кабинета на каждом сервере, адрес "http://<ip-адрес сервера>:8008/wifi-cab", внутри личного кабинета перейдите во вкладку "Сервисы и тарифы". Редактировать ничего не требуется, при переходе в указанный раздел ЛК -  записи об удаленных на шаге "3" токенах сгенерируются в БД повторно.

Установка и настройка keepalived

...

Блок кода
languagetext
themeMidnight
admin@swlc01-server:/# echo "rspasswd" > /etc/rsync_client.secrets && chmod 600 /etc/rsync_client.secrets


Предупреждение

Начиная с версии rsync 3.2.0 добавлена по умолчанию защита каталога /usr, /boot, /home (защиту home в дальнейшем убрали) Решением является переопределение защищающей опции rsync.
Для этого необходимо на обоих хостах:
прописать команду
systemctl edit rsync
в открывшемся файле в начале прописать:
[Service]
ProtectSystem=off
перезапустить службу
service rsync restart


Способ запуска/остановки

Для запуска сервиса используется команда:

...

Блок кода
languagetext
themeMidnight
binlog-do-db = eltex_alert
binlog-do-db = eltex_ems
binlog-do-db = wireless
binlog-do-db = radius
binlog-do-db = eltex_auth_service
binlog-do-db = ELTEX_PORTAL
binlog-do-db = eltex_doors
binlog-do-db = eltex_ngw
binlog-do-db = eltex_bruce

yказать базы, для которых не будут вестись логи:

...

Блок кода
languagesql
themeMidnight
GRANT ALL PRIVILEGES ON *.* TO 'javauser'@'%' IDENTIFIED BY 'javapassword';
GRANT ALL PRIVILEGES ON eltex_auth_service.* TO 'javauser'@'%'; 
GRANT ALL PRIVILEGES ON `radius`.* TO 'javauser'@'%';             
GRANT ALL PRIVILEGES ON `wireless`.* TO 'javauser'@'%';           
GRANT ALL PRIVILEGES ON `Syslog`.* TO 'javauser'@'%';             
GRANT ALL PRIVILEGES ON `eltex_doors`.* TO 'javauser'@'%';        
GRANT ALL PRIVILEGES ON `eltex_ngw`.* TO 'javauser'@'%';          
GRANT ALL PRIVILEGES ON `ELTEX_PORTAL`.* TO 'javauser'@'%';       
GRANT ALL PRIVILEGES ON `eltex_ems`.* TO 'javauser'@'%';          
GRANT ALL PRIVILEGES ON `eltex_alert`.* TO 'javauser'@'%';        
GRANT ALL PRIVILEGES ON `eltex_auth_service`.* TO 'javauser'@'%';
GRANT ALL PRIVILEGES ON `eltex_bruce`.* TO 'javauser'@'%';
FLUSH PRIVILEGES;

Включение репликации

...

Для установки нужной версии mongodb, выполните следующие действия:

Создайте файл  Проверьте наличие репо Eltex в файле  /etc/apt/sources.list.d/mongodb-org-4.0.list и пропишите в него репо mongoeltex.list :

Блок кода
themeMidnight
deb [ arch=amd64 ] http://mirrorarchive.yandexeltex-co.ru/mirrors/repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse

...

wireless softwlc-1.27-xenial main # это общий репозиторий, в котором выложены пакеты не зависящие от версии ОС.
deb [arch=amd64] http://archive.eltex-co.ru/wireless radius-1.27-jammy main # данный репозиторий нужно выбирать в зависимости от версии ОС.

Выполните на сервере команды

Блок кода
themeMidnight
sudowget apt-keyO adv --keyserver hkphttp://keyserverarchive.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

...

eltex-co.ru/wireless/repo.gpg.key | apt-key add -
sudo apt-get update

Скачайте и установить libssl1.1:

Блок кода
themeMidnight
sudo apt-get update
sudo apt install mongodb-org

...

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb

Скачайте mongo на сервер

Блок кода
themeMidnight
mongosudo --versionapt илиinstall dpkg -l | grep mongomongodb-org

Выполните следующие команды:

...

Примечание

После внесения изменений в конфигурационные файлы необходимо перезапустить соответствующий сервис:

root@swlc01-server:/# service eltex-<service_name> restart

Примечание

В случае использования однохостовой системы на каждом из серверов SoftWLC, в конфигурационных файлах сервисов, обращающихся к БД MySQL заменять localhost или 127.0.0.1 на <virtual_ip>   не требуется.


Блок кода
themeMidnight
titleФайл /etc/eltex-apb/application.conf
linenumberstrue
collapsetrue
# maximum number of outgoing messages in queue for each session
sessionMessageQueueSize = 100

# cache config file path
cacheConfigFile = /etc/eltex-apb/ehcache.xml

# path to the file with permitted hosts
hostsFile = /etc/eltex-apb/hosts.json

pingJob {
  # ping job interval
  interval = 60s

  # timeout waiting for subscribe-request after connecting the access point to the server
  subscribeIdleTimeout = 60s
  # timeout during that the session will stay opened without receiving any message
  messageIdleTimeout = 90s
  # interval of ping to be sent to the websocket session
  pingIdleTimeout = 30s
}

# eltex-mercury connection properties
mercury {
  host = localhost
  port = 6565
  poolSize = 50
}
nbi.client.login=admin
nbi.client.password=password

...

Блок кода
themeMidnight
titleФайл /etc/eltex-radius/local.conf
linenumberstrue
collapsetrue
# Ports on which the server will listen
auth_port=1812
#acct_port=1813
inner_tunnel_port=18121

# MySQL database
db_host="localhost"
db_port=3306
db_login="radius"
db_password="radpass"
db_name="radius"

# MySQL 'wireless' database
wireless_db_host="localhost"
wireless_db_port=3306
wireless_db_login="javauser"
wireless_db_password="javapassword"
wireless_db_name="wireless"

# PCRF
# If you setting pcrf_enabled=0, then you also should enable accounting port listening in "default" server
pcrf_host="127.0.0.1"
pcrf_port=7080
pcrf_enabled=1

# EAP
ca_cert_name="local.pem"
tls_key_password="1234"

# Proxying
proxy_auth=0
proxy_domain_regex="^(.+\.)?enterprise\.root$"
proxy_host="127.0.0.1"
proxy_port=18121
proxy_secret="eltex"

# Ubiquity vendor detection
ubi_vendor_regex="Apple|Ubiquiti"
vendor_group_enabled=1

# Settings of runtime NAS discovery
dynamic_clients=false
dynamic_client_subnet=192.168.0.0/16
dynamic_client_lifetime=3600
dynamic_client_rate_limit=false

# Proxy SSID (for example to eltex-eap-tls) #139679
proxy_ssid_enabled=0
proxy_ssid_value="EAP_TLS"
proxy_ssid_host="127.0.0.1"
proxy_ssid_port=18122
proxy_ssid_secret="eltex"

# Status-Server settings
status_host="1127.0.0.1"
status_port=18123
status_client_host="127.0.0.1"
status_client_secret="eltex"
  • Изменить localhost на <virtualip> во всех строках.
  • Изменить 127.0.0.1 на <virtualip> во всех строках, кроме блока "# Status-Server settings".
Блок кода
languagexml
themeMidnight
titleФайл /etc/eltex-wifi-cab/system.xml
linenumberstrue
collapsetrue
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <entry key="mongoaddress">mongodb://localhost:27017/wifi-customer-cab?replicaSet=<YourClusterName></entry>
    <entry key="nbiaddress">http://localhost:8080/axis2/services/RadiusNbiService?wsdl</entry>
    <entry key="nbi.serviceLogin.user">softwlc_service</entry>
    <entry key="nbi.serviceLogin.password">password</entry>
    <entry key="nbi.serviceLogin.requestTimeout.sec">120</entry>

    <!--Bonnie or NBI-->
    <entry key="data.service.type">NBI</entry>
    <entry key="bonnie.service.host">localhost</entry>
    <entry key="bonnie.service.port">9070</entry>

    <!--Bruce-->
    <entry key="bruce.service.host">localhost</entry>
    <entry key="bruce.service.port">8008</entry>

    <!-- Support link  -->
    <entry key="support.page.enabled">false</entry>
    <entry key="support.page.url">http://eltex-co.ru</entry>

    <!-- DPI link  -->
    <entry key="dpi.page.enabled">false</entry>
    <entry key="dpi.page.url">https://filter.wifi.example.org/</entry>

    <!-- SSO Settings -->
    <entry key="sso.enabled">false</entry>
    <entry key="sso.redirectUri">http://localhost:8080/wifi-cab/sso</entry>
    <entry key="sso.clientSecret"></entry>
    <entry key="sso.clientId"></entry>

    <!-- SSO Auth -->
    <entry key="sso.auth.server.protocol">http</entry>
    <entry key="sso.auth.server.address"></entry>
    <entry key="sso.auth.server.port">80</entry>

    <entry key="sso.auth.auth.path">/auth/realms/b2b/protocol/openid-connect/auth</entry>
    <entry key="sso.auth.logout.path">/auth/realms/b2b/protocol/openid-connect/logout</entry>

    <!-- SSO REST -->
    <entry key="sso.rest.server.protocol">http</entry>
    <entry key="sso.rest.server.address"></entry>
    <entry key="sso.rest.server.port">80</entry>
    <entry key="sso.rest.server.timeout.sec">10</entry>
    <entry key="sso.rest.protocol.version">2.0</entry>
    <entry key="sso.rest.username"></entry>
    <entry key="sso.rest.password"></entry>

    <entry key="sso.rest.getToken.path">/apiman-gateway/b2b_test/getToken</entry>
    <entry key="sso.rest.getUserInfo.path">/apiman-gateway/b2b_test/getUserInfo</entry>
    <entry key="sso.rest.addUser.path">/apiman-gateway/b2b_test/addUser</entry>
    <entry key="sso.rest.updateUser.path">/apiman-gateway/b2b_test/updateUser</entry>
    <entry key="sso.rest.delUser.path">/apiman-gateway/b2b_test/delUser</entry>
    <entry key="sso.rest.addUserParam.path">/apiman-gateway/b2b_test/addUserParam</entry>
    <entry key="sso.rest.delUserParam.path">/apiman-gateway/b2b_test/delUserParam</entry>
    <entry key="sso.rest.getUserByName.path">/apiman-gateway/b2b_test/getUserByName</entry>
    <entry key="sso.rest.resetPassword.path">/apiman-gateway/b2b_test/resetPassword</entry>
    <entry key="sso.rest.getUserByParam.path">/apiman-gateway/b2b_test/getUserByParam</entry>
    <entry key="sso.rest.getUserByEmail.path">/apiman-gateway/b2b_test/getUserByEmail</entry

</properties>

...

Примечание
Ключ RADIUS -eltex


Смена настроек в GUI

Также нужно настроить модули SoftWLC при помощи графического интерфейса.

...