Примеры пошаговой первоначальной настройки ECSS-10
В данном разделе приведены примеры инсталляции и настройки ECSS-10 для системы с одиночным сервером и для кластера из двух серверов.
Первоначальная установка системы без резервирования с одним сервером
Исходные данные
Исходные данные
В данном разделе использованы специфичные для данного продукта термины, ознакомиться с ними можно здесь.
Требуется интеграция программного коммутатора 5 класса ECSS-10 (SSW) на 1 физическом сервере с поддержкой SIP со следующими параметрами на нагрузку:
- Максимальное количество абонентов – 15000 (MUL — Max user limit);
- Максимальное количество одновременных соединений — 2000 (MCL — Max call limit);
- Резервирование системы не требуется;
- Количество сетевых интерфейсов ethernet — 4.
По техническому заданию требуется определить аппаратную платформу.
Актуальная информация с требованиями к серверам, которые должны использоваться для работы комплекса ECSS-10.
№ | Требования к серверам SSW | Серия Light+ | Серия Midi | Серия Heavy | Серия Супер Heavy | Серия Top (1) |
---|---|---|---|---|---|---|
1 | Характеристики системы | |||||
1.1 | Максимальное количество абонентов | 5000 | 10000 | 20000 | 40000 | - |
1.2 | Максимальная нагрузка одновременных соединений class 5 | 800 | 1500 | 3000 | 6000 | - |
1.3 | Максимальная нагрузка одновременных соединений class 4 | 2400 | 4500 | 9000 | 20000 | 80000 |
2 | Характеристики сервера | |||||
2.1 | Марка | HP (Lenovo) | HP (Lenovo) | HP (Lenovo) | HP (Lenovo) | HP /Lenovo /Depo |
2.2 | Серия | DL20 Gen10/DL 360 Gen10 (SR530) | DL360 Gen10 (SR530/SR630) | DL360 Gen10 (SR630) | DL360 Gen10 (SR630) | DL360 Gen10 /SR650 V2 /Storm 3450 |
2.3 | Процессор | Intel Xeon 4214 | Intel Xeon 5220 | Intel Xeon 6240 | Intel Xeon 8268 | Intel Xeon 8380 |
2.4 | Количество процессоров | 1 | 1 | 2 | 2 | 2 |
2.5 | Оперативная память | 16 Gb | 24 Gb | 32 Gb | 64 Gb | 1024 Gb |
2.6 | HDD | От 3X500 SATA (от 7200 rpm) | От 3x300 Gb SAS (от 10000 rpm) | От 3x600 Gb SAS (от 10000 rpm) 2x150Gb SSD | От 6x800 Gb SSD, 2x300Gb M.2 SSD | От 6x1.2 Tb SSD, 2x300Gb M.2 SSD |
2.7 | RAID | no raid board | HW Raid, от 1Gb cache+battery | HW Raid, от 1Gb cache+battery | HW Raid, от 2Gb Flash cache, поддержка RAID-5 | HW Raid, от 2Gb Flash cache, поддержка RAID-5 |
3 | Дополнительные комплектующие сервера (в базовый комплект не входят) | |||||
3.1 | Лицензия на удалённое управление | по желанию | + | + | + | + |
3.2 | Резервный источник питания | по желанию | + | + | + | + |
3.3 | Организация хранилища записей разговоров | Дополнительные HDD, объединенные в RAID-5 | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей |
Полоса пропускания СПД
Требуемая полоса пропускания СПД не менее 1000Mb/s
Минимальные требования при установке ECSS-10 на виртуальные машины*
№ | Требования к серверам SSW | Уровень Light (2)(3) | Уровень Light+ | Уровень Midi | Уровень Heavy | Уровень Супер Heavy | Уровень Top (1) |
---|---|---|---|---|---|---|---|
1 | Характеристики системы | ||||||
1.1 | Максимальное количество абонентов | 1000 | 5000 | 10000 | 20000 | 40000 | - |
1.2 | Максимальная нагрузка одновременных соединений class 5 | 250 | 800 | 1500 | 3000 | 6000 | - |
1.3 | Максимальная нагрузка одновременных соединений class 4 | 1000 | 4500 | 9000 | 20000 | 80000 | - |
2 | Характеристики сервера | ||||||
2.4 | Количество ядер/потоков (vCore) | 8С | 12С/24T | 18С/36T | 36С/72T | 48С/96T | 80С/160T и более |
2.5 | Частота процессора | от 2.4 Ghz | от 3 Ghz | от 3Ghz | от 3.6 Ghz | от 3.4 Ghz | от 3.2 Ghz |
2.6 | Оперативная память | 8 Gb | 16 Gb | 24 Gb | 32 Gb | от 64 Gb | от 512 Gb |
2.7 | HDD | От 50 GB, 75 IOPS | От 500 GB SATA (от 7200 rpm, от 75 IOPS) | От 500 Gb SAS (от 10000 rpm, 170 IOPS) | От 500 Gb SAS (от 10000 rpm, 170 IOPS) и 150Gb SSD | от 800 Gb SSD и 300Gb M.2 SSD | От 1.2 Tb SSD и 300Gb M.2 SSD |
C - core, они же ядра
T - thread = поток, vCore
(1) — серия Top на текущий момент рассчитана для реализации контроллера транковых шлюзов (работа по 4 классу).
(2) — уровень Light применяется только для расчета виртуальных машин, для физических серверов минимальная рекомендуемая конфигурация — Light+.
(3) — уровень Light является минимальным рекомендуемым. При запросе расчета ВМ для малого числа абонентов (до 1000: 100, 200...) используем его.
*Если на системе планируется использование таких сервисов как КЦ, запись разговоров, видео-вызовы, то необходимо согласовать требования с технической поддержкой
Полоса пропускания СПД
Требуемая полоса пропускания СПД не менее 1000Mb/s
Пример составления аппаратных требований:
Устройство | Требуемый ресурс | Серия аппаратного продукта | |
---|---|---|---|
MCL | MUL | ||
Сервер 1 | 2500 | 15000 | Heavy |
После определения по требованиям проекта составляем предварительную сетевую карту.
Пример разнесения составляющих по адресному пространству для одной ноды:
Имя сервера (хоста) | Роль | Интерфейс | Адрес | Адрес вашего проекта | Порт |
---|---|---|---|---|---|
Статические адреса программного коммутатора | |||||
ecss1 | Адрес сервера | net.10 (mgm) | 10.0.10.10/24 | - | |
ecss1 | Адрес протокольного адаптера | net.20 (voip) | 10.0.20.10/24 | - | |
ecss1 | Адрес шлюза | net.10 (mgm) | 10.0.10.1 | - | |
ecss1 | Адреса DNS-серверов | net.10 (mgm) | 10.0.10.1, 8.8.8.8 | - | |
Внутренние адреса программного коммутатора | |||||
ecss1 | Адрес ядра (ecss-core) | lo | 127.0.0.1/24 | 5000 | |
ecss1 | Адрес медиасервера (ecss-media-server (MSR)) | lo | 127.0.0.1/24 | 5040 | |
ecss1 | Адрес базы данных MySQL (ecss-mysql) | lo | 127.0.0.1/24 | 3306 |
Включение в сеть
Топологию включения сервера в сеть для обеспечения резервирования рекомендуется делать с использованием 2-х коммутаторов.
Рисунок 1 — Схема организации связи
Вариант 1. Схема active-backup
Коммутаторы связаны между собой в erps-кольцо.
Все 4 физических сетевых интерфейса объединяются в 1 агрегированный линк (bond). Агрегация портов сервера настраивается в режиме active-backup, т.е. в работе всегда находится только 1 сетевой интерфейс. Сетевые интерфейсы сервера попарно включены в коммутаторы, на которых агрегация портов (port-channel) также настраивается в режиме active-backup.
Например, eth1 и eth2 включаются в первый коммутатор, а eth3 и eth4 — во второй.
Вариант 2. Схема LACP
Коммутаторы связаны между собой в стек. Стек должен логически работать как один коммутатор, способный обеспечивать агрегацию портов в режиме LACP между разными физическими коммутаторами. Пример — коммутаторы MES3124 со специализированной прошивкой.
Все 4 физических сетевых интерфейса также объединяются в 1 агрегированный линк (bond). Агрегация портов сервера настраивается в режиме 802.3ad. Создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача задействует все каналы в активной агрегации согласно стандарту IEEE 802.3ad. Выбор, через какой интерфейс отправлять пакет, определяется политикой. По умолчанию это XOR-политика, можно использовать «xmit_hash» политику. Подробнее в разделе Приложение Е. Netplan.
Требования:
- Поддержка Ethtool в драйвере для получения информации о скорости и дуплексе на каждом сетевом интерфейсе;
- Поддержка на коммутаторе стандарта IEEE 802.3ad;
Сетевые интерфейсы сервера также попарно включены в коммутаторы, на которых агрегация портов (port-channel) настраивается в режиме LACP. Например, eth1 и eth2 включаются в первый коммутатор (port-channel 1), а eth3 и eth4 — во второй (port-channel 2).
Настройка сети
Согласно параметрам, заданным в техническом задании, выполним сетевые настройки. В данном примере считается, что необходимая операционная система уже установлена. О том, как это сделать, смотрите в разделе Инсталляция системы.
Рекомендуется разделять трафик, используемый в разных целях. Например, трафик управления и трафик VoIP. Для этого создаются 2 или более vlan. При небольшой нагрузке для простоты можно обойтись и одним vlan, но это будет в будущем доставлять неудобства при снятии дампов трафика и его анализе. В соответствии с техническим заданием на vlan настраиваются IP-адреса самого хоста, шлюзы, DNS и маршрутизация в другие сети.
В данном примере согласно ТЗ будем использовать адреса:
- 10.0.10.10/24 — для управления, vlan 10;
- 10.0.20.10/24 — для VoIP.
Внутри серверной платформы существует адресная структура и используются внутренние адреса для взаимодействия между подсистемами (нодами) в кластере. Например, внутренний адрес для кластера на одном сервере 127.0.0.1, при этом ядро (ecss-core) взаимодействует с сервером обработки мультимедиа-данных (ecss-media-server). Их взаимодействие происходит с использованием одного и того же адреса, но у каждой программной части свой транспортный порт: ecss-core — 5000, ecss-msr — 5040.
Для всех нод кластера определяется единый адрес для обращения к базе данных MySQL, например адрес ecss-mysql 127.0.0.1. Таким образом, выполняется условие единообразия, при котором все ноды кластера имеют полностью одинаковые данные о текущем состоянии динамических составляющих программного коммутатора (например, история вызовов).
Подготовка сетевых интерфейсов системы
Согласно ТЗ, система имеет 4 сетевых интерфейса. Информацию об их состоянии можно посмотреть с помощью команды ifconfig или ip a:
eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether 36:10:28:73:63:01 txqueuelen 1000 (Ethernet) eth1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether 36:10:28:73:63:01 txqueuelen 1000 (Ethernet) eth2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether be:77:ea:52:4d:39 txqueuelen 1000 (Ethernet) eth3: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether be:77:ea:52:4d:39 txqueuelen 1000 (Ethernet) lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 |
Сначала настраиваются сетевые интерфейсы. В Ubuntu18 для их настройки используется утилита netplan.
Данная утилита позволяет настроить сетевую конфигурацию и затем загрузить ее в систему с помощью сетевого менеджера networkd или NetworkManager.
sudo nano /etc/netplan/ecss_netplan.yaml
Все другие файлы из этого каталога обязательно нужно переместить в другое место или удалить.
В конфигурациях для каждого хоста в первую очередь мы объявляем секцию ethernets, в которой описываются существующие в системе ethernet-интерфейсы, используемые в дальнейшем. Для каждого интерфейса необходимо отключить использование динамического распределения адресов (DHCP).
Следующим разделом описываются агрегированные каналы — bonds. В зависимости от выбранного варианта включения в сеть настраивается режим режим резерва 1:1 (active - backup) или LACP (802.3ad).
Далее настраиваются vlan, на которых опционально определяются шлюзы для связи с внешним миром и адреса DNS-серверов, а также непосредственно IP-адреса для каждого интерфейса.
ВАЖНО
Обратите внимание, что во время редактирования netplan необходимо соблюдать правила разметки YAML:
- Обязательное наличие минимум двух пробелов перед каждой строкой (кроме network);
- Каждая подсекция дополнительно сдвигается на 2 пробела:
→ Секция |network
→ Подсекция |_'_'bonds:
→ Подсекция описания секции bonds |_'_'_'_'bonded_one:
→ и т.д. |_'_'_'_'...
- Перед знаком ":" нет пробела, после — один пробел;
- Перед знаком "-" количество пробелов такое, как будто начинается новый подраздел, после — один пробел.
Пример настройки файла ecss-netplan.yaml для варианта включения active-backup
# Netplan для хоста ecss1 программного коммутатора # Обратите внимание на обязательное наличие минимум двух пробелов в каждой строке и секции (кроме строки секции network) network: version: 2 # Версия netplan renderer: networkd # Исполнитель конфигураций netplan ethernets: # Раздел описания интерфейсов ethernet eth0: # Название интерфейса dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса eth1: dhcp4: no eth2: dhcp4: no eth3: dhcp4: no bonds: # Раздел описания связанных (bonding) интерфейсов. В имени не может быть более 15 символов! bond1: # Название bonding-интерфейса interfaces: # Секция определения связанного интерфейса - eth0 - eth1 - eth2 - eth3 parameters: # Раздел определения параметров связанного интерфейса primary-reselect-policy: failure # позволяет избежать лишний переключений gratuitous-arp: 5 # Способствует более быстрому переключению all-slaves-active: true # принимать входящие кадры на backup интерфейсах up-delay: 1000 # сделать задержку в одну секунду mode: active-backup # Режим резервирования, один активным, а остальные в резерве mii-monitor-interval: 100 # интервал мониторинга интерфейса(мс) primary: eth0 # Секция определения основного интерфейса optional: false # Определение, является ли интерфейс обязательным при старте vlans: net.10: # Интерфейс управления id: 10 link: bond1 addresses: [10.0.10.10/24] gateway4: 10.0.10.1 # Адрес шлюза nameservers: addresses: [10.0.10.1, 8.8.8.8] # Адреса серверов DNS net.20: # Интерфейс для VoIP id: 20 link: bond1 addresses: [10.0.20.10/24]
Следующие настройки bonds обязательны для сервера ECSS, чтобы схема работала верно:
mode: active-backup - задаёт режим работы, когда один из линков выбирается активным, а остальные остаются в резерве;
primary-reselect-policy: failure - указывает, что выбирать новый активный линк следует только тогда, когда текущий активный линк переходит в состоянии аварии. Это позволяет избежать лишний переключений;
gratuitous-arp: 5 - при смене активного линка в сторону коммутатора отправляются пять запросов gratuitous ARP, чтобы обновить на нём таблицу коммутации. Способствует более быстрому переключению;
all-slaves-active: true - заставляет принимать входящие кадры на backup интерфейсах. Таким образом балансировка трафика на MESе не мешает работе. Данные в сторону сервера идут со всех линков, а сервер отправляет данные только с active линка;
mii-monitor-interval: 100 - активирует мониторинг линков через интерфейс MII и указывает интервал опроса в 100мс;
up-delay: 1000 - указывает считать поднявшийся интерфейс доступным для работы не сразу, а сделать задержку в одну секунду после того, как интерфейс поднялся. Необходимо для того, чтобы избежать лишних переключений в случае, когда порт "прыгает" несколько раз из состояния "включено" в состояние "выключено" и обратно.
Так же рекомендуется проверить отсутствие в каталоге /etc/netplan/ еще каких либо файлов, если другие файлы присутствуют , то их нужно переместить в другой каталог или удалить, в противном случае возможна некорректная настройка сетевых интерфейсов и некорректная работа SSW.
Применим установленные параметры командой:
sudo netplan apply
На серверах системы необходимо настроить параметр "hostname".
На всех серверах системы желательно указать одинаковое имя пользователя (любое, кроме ssw). Лицензия ECSS-10 привязывается к ключу eToken/ruToken и к имени компьютера (hostname), поэтому необходимо использовать стандартные значения. Системный пользователь ssw создается при инсталляции пакета ecss-user.
Если используется один сервер, рекомендуемое значение hostname — ecss1;
Другие имена хостов возможны только при согласовании проекта, это потребуется для генерации лицензий.
Указать имя хоста: ecss1 в файле /etc/hostname:
sudo nano /etc/hostname
Указать реальный Ipadd и имя хоста (для примера 10.0.20.10 ecss1) в файле /etc/hosts:
sudo nano /etc/hosts
Обновление программного обеспечения операционной системы
Для установки системы ECSS-10 необходимо добавить репозиторий ELTEX:
sudo sh -c "echo 'deb [arch=amd64] http://archive.eltex.org/ssw/bionic/3.14 stable main extras external' > /etc/apt/sources.list.d/eltex-ecss10-stable.list"
Обратите внимание, что требуется указать верную версию операционной системы при добавлении репозитория ELTEX. Если установка происходит на Ubuntu 18.04, то необходимо указать bionic, как приведено в примере. Однако, если ECSS-10 устанавливается на Astra Linux, необходимо указать соответствующие репозитории smolensk:
sudo sh -c "echo 'deb [arch=amd64] http://archive.eltex.org/ssw/smolensk/3.14 stable main extras external' > /etc/apt/sources.list.d/eltex-ecss10-stable.list"
sudo sh -c "echo 'http://archive.eltex.org astra smolensk smolensk-extras' > /etc/apt/sources.list.d/eltex-ecss10-stable.list"
Далее необходимо выполнить импорт ключа командой:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 33CB2B750F8BB6A5
Перед началом установки необходимо обновить ОС:
sudo apt update
sudo apt upgrade
Установка и настройка программного обеспечения
установка пакетов deb
┌ версия ПО ECSS. Сейчас в заявке на сертификацию она заявлена как 3.
| Мы её менять не будем до следующей сертификации или │ выпуска принципиально новой версии системы. │ │ ┌ версия System Release. Общая версия для всех компонент входящих в конкретный релиз.
| | Меняем её централизовано, когда │ │ принимаем решение о выпуске нового релиза. Релизы между собой обычно не совместимы. ┌─┴┐ ┌──┴─┐ ECSS.SysRel.SubMaj.SubMin └──┬─┘ └──┬─┘ │ └ версия Subsystem minor. Минорную версию подсистемы устанавливает разработчик подсистемы.
| Минорную версию │ меняем при добавлении патча. Как правило, минорные версии в рамках одной мажорной версии │ совместимы между собой и отличаются в рамках конкретных патчей. │ └ версия Subsystem major. Мажорная версия устанавливается разработчиком подсистемы.
Мажорную версию подсистемы необходимо менять при внесении в подсистему существенных изменений.
Утилита установки пакетов APT анализирует версию пакета слева направо, то есть мы имеем пакет 14.14.7.7 ,
в репозитории находятся пакеты
14.14.7.8
14.14.7.9
14.14.8.1
14.14.20 -14.14.28
то при выполнении команды sudo apt install имя пакета → будет автоматически проверен и установлен пакет 14.14.28 , так как он самый последний, анализ будет выполнен по 3-й позиции (major), анализ по 4-й (minor) выполнен не будет (аналогичным образом будет выполнятся команда sudo apt upgrade).
В случае если для конкретной ситуации требуется перейти с версии 14.14.7.7 на версию 14.14.7.9 , стандартная команда → sudo apt upgrade , нам не поможет, так как будет выбран самый новый пакет, в данной ситуации нам необходимо в явном виде указать какую версию пакета мы хотим установить, в данном примере мы должны выбрать команду → sudo apt install имя пакета=14.14.7.9 . Обычно это необходимо для тестирования определенного патча, для стандартных обновлений достаточно выбора привычной команды установки /обновления пакета
ВАЖНО
Установку пакетов требуется делать НЕ из-под пользователя ssw.Устанавливаем все предложенные пакеты:
sudo apt install ntp tcpdump vlan dnsmasq aptitude atop ethtool htop iotop mc minicom mtr-tiny nmap pptpd pv screen ssh tftpd vim sngrep tshark cpanminus gnuplot libgraph-easy-perl debconf-utils
Перед началом установки пакетов ecss , нужно убедится в соответствии полосы пропускания СПД необходимым требованиям.
Для этого выполнить команду sudo ethtool <имя интерфейса> для всех физических интерфейсов.
Проверить значение следующих параметров:
Advertised auto-negotiation: Yes
Speed: 1000Mb/s (не менее)
Duplex: Full
В случае отличия, скорректировать.
Установка пакета ecss-mysql
Установка начинается с развертывания MySQL-сервера и интеграции базы данных ecss-mysql.
Для установки выполняем команду:
sudo apt install ecss-mysql
Настройка пакета ecss-dns-env
Перед установкой пакета ecss-mysql будет предложено настроить переменные окружения для сервисов в dnsmasq.
Настройщик предложит выбрать разделы для настройки, не выбираем ничего просто нажать Enter.
Настройка пакета ecss-mysql
Базы данных MySQL, используемые системой ECSS-10, после установки будут храниться в /var/lib/ecss-mysql. При установке пакета ecss-mysql apt задаст вопрос о разрешении изменения конфигурационного файла /etc/apparmor.d/local/usr.sbin.mysqld, чтобы изменить путь до баз данных MySQL по умолчанию.
Чтобы избежать ввода ответа на вопрос при установке пакета, допускается использовать дополнительные ключи при вводе команды установки:
sudo apt-get -o Dpkg::Options::="--force-confnew" install ecss-mysql
Для успешной установки ecss-mysql требуется разрешить изменения (введите "Y").
При инсталляции пакета будут запрошены следующие данные:
Вопросы ecss-mysql | Ответы |
---|---|
Адресная маска для MySQL (IP pattern for MySQL permission) | 127.0.0.% (значение по умолчанию) |
Логин пользователя (Login for MySQL root) | root (значение по умолчанию) |
Пароль пользователя MySQL (Password for MySQL root) | password (необходимо ввести) |
Базы данных mysql, используемых системой ECSS-10, после установки будут храниться по пути /var/lib/ecss-mysql. Проверяем наличие компонентов в указной папке:
ll /var/lib/ecss-mysql/
total 44
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_address_book
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_audit
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_calls_db
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_dialer_db
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_meeting_db
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_numbers_db
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_statistics
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_subscribers
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_system
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 history_db
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 web_conf
Проверяем, что сервер запущен:
systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/mysql.service.d
└─override.conf
Active: active (running) since Thu 2019-09-26 13:36:47 +07; 23h ago
Main PID: 11642 (mysqld)
CGroup: /system.slice/mysql.service
└─11642 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
Установка пакета ecss-node
Устанавливаем пакет ecss-node:
sudo apt install ecss-node
Во время установки пакета создается пользователь ssw, от имени которого запускаются все сервисы ecss*. Создаются необходимые каталоги, выполняется настройка DNS, идет настройка SSL-сертификатов.
На вопрос - Хотите ли вы выключить ежедневные обновления apt-пакетов - ответьте да.
Настройка сертификатов
При отсутствии особых требований к безопасности можно оставить значение запрашиваемых параметров по умолчанию.
Актуален, только если был сгенерирован самоподписанный сертификат, тогда в систему установится ecss10root.crt (при копировании также пытается скачать ecss10root.crt, либо если при ручной установке был помещён данный файл). Если уже имеются сертификаты, то никаких действий не будет произведено. В конце также проверяется валидность сертификата.
Чтобы сгенерировать новый сертификат, необходимо удалить ecss10.{pem,crt,key} и ecss10root.{crt,key}, после чего сделать dpkg-reconfigure ecss-user.
Если планируется установка системы в кластере, то, как правило, на первом сервере нужно сгенерировать сертификат, а при установке ecss-node на втором сервере выбрать копирование с первого сервера (подробнее см. в разделе "Настройка сертификатов ECSS-10").
При установке будут заданы вопросы по сертификатам.
Способы конфигурирования сертификатов:
Ручной (manual)
При выборе ручного способа конфигурации сертификатов откроется окно с информацией о том, что установка может быть продолжена после помещения файлов ecss10.{pem,crt,key} в /etc/ecss/ssl. Также данное окно может открыться по достижении конца установки. Поместите необходимые файлы в требуемую директорию и начните процесс установки заново (перезапустите установку). Если все действия были выполнены верно — установка завершится, и можно будет продолжить установку системы.
Сгенерировать самоподписанный сертификат (generate)
При выборе данного способа будут сгенерированы следующие вопросы:
Страна (RU)
Область (Novosibirsk)
Город (Novosibirsk)
Организация (ELTEX)
Структурный узел (IMS)
Имя сертификата (ecss10)
Почта (ssw-team@eltex.loc)
Количество дней жизни сертификата
Пароль для корневого приватного ключа
Алгоритм шифрования для ключа
Сложность ключа
Сложность для параметров Диффи-Хеллмана
Дополнительные имена, за которые отвечает сертификат (на примере офиса — это ssw1.eltex.loc, ssw2.eltex.loc, ssw.eltex.loc), перечисленные через пробел (для последнего уровня можно wildcard)
Чем выше сложность ключа, тем дольше будет установка (dhparam при сложности 8192 на машине средней производительности занимает около часа). При отсутствии особых требований к безопасности можно оставить значение по умолчанию. После чего отобразится уведомление, что необходимо убрать приватный корневой ключ в безопасное место.
Скопировать существующие сертификаты (copy) по ssh
При выборе данного способа будут сгенерированы следующие вопросы:
Логин (user)
Адрес удалённой машины (ecss1)
Порт (22)
Способ авторизации (password или identity_file)
Пароль (password)
Файл с ключом (/home/<user>/.ssh/id_rsa)
Путь до папки с сертификатом (/etc/ecss/ssl)
Скопировать по http
При выборе данного способа будут сгенерированы следующие вопросы:
url (https://system.restfs.ecss:9993/certs)
Логин (если используется авторизация basic)
Пароль
Скопировать с другого сервера ecss1
Используется API http_terminal
При выборе данного способа будут сгенерированы следующие вопросы:
url до http_terminal (https://ecss1:9999)
Логин (admin)
Пароль (password)
Нода с сертификатами (core1@ecss1)
Для генерации сертификатов выбираем ручной (manual) способ. На все вопросы можно дать ответы, предложенные по умолчанию, нажимая кнопку "Enter" на каждый вопрос.
В ходе инсталляции будут задаваться вопросы, необходимые для формирования конфигурационных файлов.
Вопросы ecss-node | Ответы |
---|---|
Хотите ли вы выключить ежедневные обновления apt-пакетов (Do you want turn off apt-daily update ?) | Yes (значение по умолчанию) |
Использовать настройки по умолчанию для БД (Set DB config to default ?) | Yes (значение по умолчанию) |
Взводить аварию ECSS-10 при заполнении раздела MySQL (Set alarm true when MYSQL DB overloads) | Yes (необходимо выбрать) |
Внешний NTP сервер (External NTP servers through a space) | ntp.ubuntu.com (значение по умолчанию) Ввести один или несколько серверов через пробел, используемых на объекте |
NTP: Вы хотите использовать настройки для кластера? (NTP: Do you want use settings for cluster ?) | No (необходимо выбрать) |
NTP: Вы хотите определить сети вручную, у которых должен быть доступ до ntp? (NTP: Do you want to define manually which networks should have access to ntp?) | Yes (необходимо выбрать) |
NTP: Сети, у которых должен быть доступ до ntp через пробел: | 10.0.10.0|255.255.255.0 (необходимо ввести) Ввести список подсетей, из которых будет доступ к данному NTP-серверу. |
Установить утилиты для работы с cdr | No (значение по умолчанию) |
DNS
В ходе установки пакета ecss-node выполняется конфигурирование внутренних DNS-адресов. При установке, в зависимости от текущей конфигурации системы, может отобразиться сообщение:
See "systemctl status dnsmasq.service" and "journalctl -xe" for details. invoke-rc.d: initscript dnsmasq, action "start" failed. ● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Такой вывод в ходе установки является нормальным и не свидетельствует о проблемах. Главное, чтобы после окончания установки ecss-node dnsmasq.service был активен.
Пример:
sasha@ecss1:~$ systemctl status dnsmasq.service ● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-09-24 20:52:03 +07; 2 weeks 3 days ago Main PID: 10914 (dnsmasq) Tasks: 1 (limit: 4915) CGroup: /system.slice/dnsmasq.service └─10914 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,19036,8,2,49aac11d7b6f6446702e54a1607371607a1a41 Sep 24 20:52:03 ecss1 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server... Sep 24 20:52:03 ecss1 dnsmasq[10890]: dnsmasq: syntax check OK. Sep 24 20:52:03 ecss1 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Установка паспорта и лицензий
Под паспортом системы ECSS-10 понимается связь определенной инсталляции (SSW_ID) с USB-ключом. Паспорт гарантирует, что заказчик не сможет запустить больше подсистем DS с заданным SSW_ID, чем количество USB-ключей. Система без паспорта не работает.
Лицензионный ключ содержит в себе информацию о лицензионных ограничениях. Информация привязана к определенному SSW_ID. Позволяет добавлять лицензионные ограничения к определенной инсталляции системы ECSS-10. Если не добавлено ни одной лицензии, то действуют ограничения по умолчанию. Например, по умолчанию разрешено не более двух одновременных вызовов. Добавляя лицензию, можно расширить это количество до произвольных значений.
<licence> — последовательность цифр, букв и других символов без кавычек, следующая за строкой Licence: в файле лицензии.
<passport> — последовательность цифр, букв и других символов без кавычек, следующая за строкой Passport: в файле лицензии.
Если данные лицензии и паспорта будут введены корректно, то система выдаст подтверждение: ОК.
ВАЖНО
Перед началом работы проверьте наличие Token в системе.
Для проверки работы токена можно использовать приложение pkcs11-tool. Возможно проверить следующее:
Вывести общую информацию для ключа:
- для eToken:
pkcs11-tool --module /usr/lib/libeToken.so -I Cryptoki version 2.1 Manufacturer SafeNet, Inc. Library eToken PKCS#11 (ver 8.1) Using slot 0 with a present token (0x0)
- для Рутокен:
pkcs11-tool --module /usr/lib/ecss/ecss-ds/lib/lpm_storage-<VERSION>/priv/x64/librtpkcs11ecp.so -I Cryptoki version 2.20 Manufacturer Aktiv Co. Library Rutoken ECP PKCS #11 library (ver 1.5) Using slot 0 with a present token (0x0)
Расположение модуля для Рутокен может отличаться в зависимости от версии подсистемы DS. В общем случае файл располагается в /usr/lib/ecss/ecss-ds/lib/lpm_storage-<ВЕРСИЯ ПОДСИСТЕМЫ>/priv/x64/librtpkcs11ecp.so
Для проверки можно использовать общую команду pkcs11-tool --module $(find /usr/lib/ecss/ecss-ds/lib/ -name librtpkcs11ecp.so | head -n1) -L
Запустите пакеты ecss-mycelium и ecss-ds на хосте:
sudo systemctl start ecss-mycelium
sudo systemctl start ecss-ds
Перейдите в CLI CoCon:
ssh admin@localhost -p 8023
password: password
Чтобы узлы системы смогли встать в работу, надо сконфигурировать систему указав имена хостов на которых развёрнуты ecss-сервисы.
Команда в коконе: system/clusters/set [<host1>, <host2>, ... <hostN>]. В случае одного хоста выполнить команду (имя хоста ecss1):
выполняется в CoCon
/system/clusters/set [ecss1]
Выйти из CoCon, перезапустить ecss сервисы командой:
на обоих хостах
sudo systemctl restart ecss-*
Перейдите в CLI CoCon:
ssh admin@localhost -p 8023
password: password
Проверьте состояние системы:
admin@mycelium1@ecss1$ system-status Checking... ┌─┬───────────────┬─────────────────────────┬───────────────┬────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime│ ├─┼───────────────┼─────────────────────────┼───────────────┼────────────┼──────┤ │ │core1@ecss3 │ecss-core-3.14.14.613 │core1@ecss3 │not running │5m 14s│ │ │ds1@ecss3 │ecss-ds-3.14.14.613 │ds1@ecss3 │ds1@ecss3 │5m 14s│ │ │md1@ecss3 │ecss-mediator-3.14.14.613│md1@ecss3 │not running │5m 13s│ │ │mycelium1@ecss3│ecss-mycelium-3.14.14.613│mycelium1@ecss3│not running │5m 14s│ │ │sip1@ecss3 │ecss-pa-sip-3.14.14.613 │sip1@ecss3 │not running │5m 13s│ └─┴───────────────┴─────────────────────────┴───────────────┴────────────┴──────┘
Далее необходимо установить паспорт и лицензии в систему:
admin@[mycelium1@ecss1]:/$ cluster/storage/ds1/licence/set-passport <passport> admin@[mycelium1@ecss1]:/$ cluster/storage/ds1/licence/add <license>
Выйдите из СoСon (exit), выполните перезагрузку подсистем ecss-mycelium и ecss-ds.
sudo systemctl restart ecss-mycelium
sudo systemctl restart ecss-ds
выполнить проверку лицензий, для этого зайти в CoCon :
на ecss1
ssh admin@localhost -p8023
проверить наличие лицензией:
выполняется в CoCon
/cluster/storage/ds1/licence/list-licence
в случае если получили такую ошибку :
проверить имя хоста, командой cat /etc/hostname
в случае имени хоста отличного от ecss1 заменить на ecss1, выполнив команду sudo nano /etc/hostname
Установка пакетов ecss-restf, ecss-web-conf
Далее устанавливаются пакеты ecss-restf затем ecss-media-server, ecss-media-resources, , ecss-web-conf и другие в любом порядке:
ecss-restfs
sudo apt install ecss-restfs
Установка ecss-restfs.
При его установке будет предложено настроить конфигурацию при помощи вопросов: , также инсталлятор предложит установить и настроить пакет Text2speech от Yandex.
Вопросы ecss-restfs | Ответы |
---|---|
Использование функции TTS (Use TTS service) | No (значение по умолчанию) |
Настройка телефонной книги (Configure phone book) | No (значение по умолчанию) |
Настроить сервис определения речи (Configure speech recognition service) | No (значение по умолчанию) |
Ничего не выбирать | Ok |
после установки пакета ecss-restfs проверьте наличие wav файлов автоинформатора в директории /var/lib/ecss/restfs/system/sounds/ командой :
ll /var/lib/ecss/restfs/system/sounds/
наличие порядка 140 wav файлов в указной выше директории говорит о корректности установки пакета ecss-restfs
осталось проверить доступность этих файлов извне, для этой проверки выполним команду:
wget http://ecss1:9990/system/sounds/ai_you.wav
abf@ecss1:~$ wget http://ecss1:9990/system/sounds/ai_you.wav
--2023-12-18 17:43:29-- http://ecss1:9990/system/sounds/ai_you.wav
Resolving ecss1 (ecss1)... 127.0.1.1, 10.0.10.11
Connecting to ecss1 (ecss1)|127.0.1.1|:9990... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11670 (11K) [audio/x-wav]
Saving to: ‘ai_you.wav’
ai_you.wav 100%[========================================================================================>] 11,40K --.-KB/s in 0s
2023-12-18 17:43:29 (301 MB/s) - ‘ai_you.wav’ saved [11670/11670]
проверочный файл можно удалить
abf@ecss1:~$ rm ai_you.wav
ecss-media-server
sudo apt install ecss-media-server
Для медиасервера (ecss-media-server/MSR) возможно начальное конфигурирование с записью параметров в файл конфигурации, требуется провести конфигурацию, не выбирая никаких пунктов:
Вопросы ecss-media-server | Ответы для ecss1 |
---|---|
Установить настройки по умолчанию: | yes (значение по умолчанию) |
Введите имя (Enter) | msr.ecss1 (значение по умолчанию) |
Введите адрес (Entrer) | 127.0.0.1 (значение по умолчанию) |
Введите порт (Entrer) | 5000 (значение по умолчанию) |
После формирования конфигураций по умолчанию переходим в директорию, в которой находятся конфигурации и производим их проверку:
cd /etc/ecss/ecss-media-server/
cat config.xml
cat conf.d/default.xml
Внутри лежит конфигурация для msr: config.xml, в директории conf.d лежит конфигурация default.xml.
По своей сути default.xml — это дополнение config.xml, которое определяет секцию аккаунтов. Это сделано для того, чтобы после обновлений пакета данная конфигурация оставалась неизменной. Вид config.xml представлен здесь: файл конфигурации.
<?xml version="1.0" encoding="utf-8"?>
<config date="17:33:44 01.12.2023">
<general log-level="3" log-rotate="yes" max-calls="8192" max-in-group="512" load-sensor="media" load-delta="10" calls-delta="100" spool-dir-size="100M" log-name="msr.log" log-path="/var/log/ecss/media-server" use-srtp="disabled" enable-ice-transport="no" ice-update="no" aggressive-ice="yes" stun-server="" suspicious-mode="no"/>
<transport bind-addr="127.0.0.1" port="5040" transport="udp+tcp"/>
<!-- By default configured public TURN-server -->
<turn-server use-turn="no" host="numb.viagenie.ca" user="webrtc@live.com" password="muazkh"/>
<media mixer-clock-rate="8000" use-vad="no" cng-level="0" jb-size="60" rtcp-timeout="0" rtp-timeout="350" udp-src-check="no" cn-multiplier="3" port-start="12000" port-range="2048" tias-in-sdp="no" thread-cnt="2" vid-enc-threads="2" vid-dec-threads="2" video-conf-layout="evenly" keyframe-interval="1000" vid-decode-delay="100" silence-threshold="-30" dtmf-flash-disable="no" video-dscp="0" other-dscp="0" dummy-video-src="/usr/share/ecss-media-server/video/dummy_video.yuv" video-enc-width="640" video-enc-height="360" finalsilence="1000" rtcp-stat-dump="yes" silent-codec-switch="yes"/>
<codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
<accounts>
<!-- <dynamic msr_name="msr.name"
realm="sip:127.0.0.1:5000"
dtmf_mode="rfc+inband+info"
auth_name="user"
auth_password="password" /> -->
</accounts>
<pbyte>
<mcc bind-addr="127.0.0.1" port="5700"/>
</pbyte>
<conf_dir path="/etc/ecss/ecss-media-server/conf.d"/>
<rtp>
<auto addr-v4=""/>
</rtp>
</config>
по умолчанию , после инсталляции ECSS-10 активизирует только кодеки - pcma, pcmu, g722, h264, h263-1998, t38. Остальные имеют статус =0 = выкл. Если хотите активизировать остальные кодеки, в редакторе nano измените приоритет с 0 на цифру приоритета (уровень приоритета не должен повторятся для сервиса audio/video/fax)
sudo nano /etc/ecss/ecss-media-server/config.xml
строчку -
<codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
привести к виду -
<codec pcma="1" pcmu="2" ilbc="6" gsm="4" g722="3" g729="5" speex="7" l16="8" g7221="9" opus="10" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
Рассмотрим секцию аккаунтов (файл default.xml):
Настройка msr для ecss1(/etc/ecss/ecss-media-server/conf.d/default.xml)
<?xml version="1.0"?>
<config>
<accounts>
<dynamic msr_name="msr.ecss1" realm="sip:127.0.0.1:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password"/>
</accounts>
</config>
В ней указаны текущие настройки, согласно которым происходит регистрация msr на core.
Основными параметрами здесь являются: msr_name и realm:
- msr_name — параметр, определяющий название msr. (рекомендуется задавать название msr. и к какому хосту он принадлежит, например msr.ecss1);
- realm — определяет адрес для регистрации на ядре. Точка входа по умолчанию: порт 5000, адрес: 127.0.0.1.
Добавление медиа-ресурсов в интерфейсе командной строки (CLI)
Перейдите в CLI CoCon:
ssh admin@localhost -p 8023
password: password
Медиаресурс — это описание параметров медиасервера, необходимых для работы с ним.
declare
Команда для объявления подключения медиасервера к ECSS-10.
Для работы в режиме предварительно настроенной системы можно заранее прописать медиаресурсы, информация о которых известна.
Для этого необходимо создать описание известных медиасерверов с указанием всех параметров, что позволить начать работу с медиасервером сразу после его регистрации.
Команда для создания конфигурации медиасервера:
Путь команды:
/system/media/resource/declare
Синтаксис:
declare <node> by_contact <contact> <zone> <site> <is active>
или
declare <node> by_iface <msr> <acc_id> <iface> <zone> <site> <is active>
Параметры:
- <node> — имя ноды core;
- <contact> — contact uri декларируемого медиаресурса;
- <zone> — логическая зона обслуживания MSR;
- <site> — идентификатор сети обслуживания MSR;
- <is active> — состояние активности медиаресурса, значения true/false;
- <msr> — имя MSR;
- <acc_id> — номер идентификатор ресурса;
- <iface> — название интерфейса.
Пример:
admin@mycelium1@ecss1:/$ system/media/resource/declare core1@ecss1 contact net.20@msr.ecss1 default local true Declared media resources ┌─────────────┬───────────────────────┬────────┬─────────┬───────┐ │ Node │ Contact │ Active │ Zone │ Site │ ├─────────────┼───────────────────────┼────────┼─────────┼───────┤ │ core1@ecss1 │ net.20@msr.ecss1 │ true │ default │ local │ └─────────────┴───────────────────────┴────────┴─────────┴───────┘
info
Команда для просмотра информации о состоянии подключения конкретного медиаресурса.
Путь команды:
/system/media/resource/info
Синтаксис:
info <node> <contact>
Параметры:
- <contact> — contact uri декларируемого медиаресурса;
- <node> — имя ноды.
Пример:
admin@mycelium1@ecss1:/$ system/media/resource/info core1@ecss1 net.20@msr.ecss1 Media resource specific for node core1@ecss1: ┌─┬─────────────────┬───────────────────────┐ │F│ Parameter │ Value │ ├─┼─────────────────┼───────────────────────┤ │r│ Contact │ net.20@msr.ecss1 │ │r│ Status │ registered │ │r│ Cc-status │ connected │ │r│ Cc-status uptime│ 2 15:22:58 │ │r│ Cc-id │ 0b131b │ │r│ Address │ │ │r│ Register time │ 2023/12/04 08:54:56 │ │r│ Expired │ 65 │ │r│ Iface │ net.20(10.0.20.10) │ │ │ Active │ true │ │ │ Zone │ default │ │ │ Site │ local │ │r│ MSR version │ 3.14.12.24 │ │r│ MSR load │ 0 │ │r│ MSR perf coef │ 1.0 │ └─┴─────────────────┴───────────────────────┘ Legend: Column F - means Flag, values r - flag for readonly parameter
list
Команда для просмотра списка медиаресурсов в системе ECSS-10.
Путь команды:
/system/media/resource/list
Синтаксис:
list [active | all | register]
Параметры:
- active — отображать только активные медиаресурсы (по умолчанию);
- register — отображать только зарегистрированные медиаресурсы;
- short — отобразить минимальную информацию;
- all — отображать все задекларированные медиаресурсы.
По умолчанию команда выдает список зарегистрированных медиасерверов.
Пример:
admin@mycelium1@ecss1:/$ system/media/resource/list all All media resource selected list specific: ┌─────────────┬───────────┬────────────┬───────────┬──────┬────────┬───────────┬───────────┬────────────────┬────────────┬───────────────┬────────┬─────────┬───────┬──────────────────────┬────────────┬─────────┐ │ Node │ MSR │ MSR │ MSR │ MSR │ Cc-id │ Cc-status │ Cc-uptime │ Cc-address │ Iface │ Iface │ Active │ Zone │ Site │ Contact │ Status │ Expired │ │ │ │ version │ perf coef │ load │ │ │ │ │ name │ addr │ │ │ │ │ │ │ ├─────────────┼───────────┼────────────┼───────────┼──────┼────────┼───────────┼───────────┼────────────────┼────────────┼───────────────┼────────┼─────────┼───────┼──────────────────────┼────────────┼─────────┤ │ core1@ecss1 │ msr.ecss1 │ 3.14.14.24 │ 1.0 │ 0 │ 0b131b │ connected │ 01:49:20 │ 127.0.0.1:5700 │ lo │ 127.0.0.1 │ false │ │ │ lo@msr.ecss1 │ registered │ 95 │ │ │ │ │ │ │ │ │ │ │ bond1 │ 192.168.56.10 │ false │ │ │ bond1@msr.ecss1 │ registered │ 95 │ │ │ │ │ │ │ │ │ │ │ enp0s3 │ 10.0.2.15 │ false │ │ │ enp0s3@msr.ecss1 │ registered │ 95 │ │ │ │ │ │ │ │ │ │ │ net.10 │ 10.0.10.10 │ false │ │ │ net.10@msr.ecss1 │ registered │ 95 │ │ │ │ │ │ │ │ │ │ │ net.20 │ 10.0.20.10 │ true │ default │ local │ net.20@msr.ecss1 │ registered │ 95 │ └─────────────┴───────────┴────────────┴───────────┴──────┴────────┴───────────┴───────────┴────────────────┴────────────┴───────────────┴────────┴─────────┴───────┴──────────────────────┴────────────┴─────────┘
Добавление управления регистратором для MSR медиа менеджера в интерфейсе командной строки (CLI) CoCon
set
Команда для изменения общих и индивидуальных параметров.
Путь команды:
/system/media/registrar/set
Синтаксис настройки общих параметров:
set common <FIELD> <VALUE>
Параметры:
<FIELD> - имя настраиваемого параметра;
<VALUE> - значение настраиваемого параметра
Где
- common - тип выставляемого параметра;
- <common parameter> - общий параметр медиарегистратора для всех нод: registration-timeout;
- private - тип выставляемого параметра;
- <node name> - имя ноды на которой находится медиарегистратор;
- <private parameter> - параметр медиарегистратора, который выставляется на <node name>: is-active, listen-interface & listen-port.
Cписок параметров доступных для настройки:
- is-active - позволяет включить или выключить регистратор (false - деактивирует регистратор, регистратор перестает принимать SIP трафик);
- listen-interface - имя интерфейса, который использует регистратор;
- listen-port - порт, на котором регистратор принимает запросы на регистрацию (по умолчанию 5000);
- registration-timeout - таймер перерегистрации, диапазон значений от 60 до 86400.
В общих параметрах доступна настройка времени регистрации, по умолчанию установлено 60 секунд.
Пример:
Установить время регистрации 60 секунд:
admin@mycelium1@ecss1:/$ system/media/registrar/set common registration-timeout 60 Common parameter registration-timeout set to 60.
Синтаксис настройки индивидуальных параметров:
system/media/registrar/set private <CORE> <FIELD> <VALUE>
Параметры:
<CORE> - нода ядра, для которой настраивается Registrar-сервер;
<FIELD> - имя настраиваемого параметра;
<VALUE> - значение настраиваемого параметра.
Настраиваемые параметры:
- is-active - активен ли Registrar-сервер, принимает значения true | false;
- listen-ip - ip-адрес, на котором Registrar-сервер будет принимать соединения (по умолчанию 0.0.0.0);
- listen-port - сетевой порт, на котором Registrar-сервер будет принимать соединения (по умолчанию 5000).
Пример:
Установить ipадрес для приема соединений от медиасервера:
abf@[mycelium1@ecss1#ECSS 010070]:/$ /system/media/registrar/set private core1@ecss1 listen-ip 10.0.20.10 Private parameter listen-ip set to 10.0.20.10 at node core1@ecss1. [exec at: 18.12.2023 17:08:12, exec time: 175ms, nodes: core1@ecss1 v.3.14.14.613]
info
Команда просмотра текущих настроек Registrar-сервера.
Путь команды:
/system/media/registrar/info
Пример:
abf@[mycelium1@ecss1#ECSS 010070]:/$ system/media/registrar/info Common parameters: ┌───────────────────────────┬───────┐ │ Parameter │ Value │ ├───────────────────────────┼───────┤ │ registration-timeout, sec │ 180 │ └───────────────────────────┴───────┘ Private parameters: ┌─────────────┬─────────┬───────────┬────────────┬─────────────┐ │ Node │ Status │ Is-active │ Listen-ip │ Listen-port │ ├─────────────┼─────────┼───────────┼────────────┼─────────────┤ │ core1@ecss1 │ active │ true │ 10.0.20.10 │ 5000 │ └─────────────┴─────────┴───────────┴────────────┴─────────────┘ [exec at: 18.12.2023 17:23:05, exec time: 23ms, nodes: core1@ecss2 v.3.14.14.613]
Также есть возможность добавить медиа-ресурсы через приложение web-конфигуратора — сетевые окончания MSR (MSR-registrars).
ecss-web-conf
sudo apt install ecss-web-conf
При его установке будет предложено настроить конфигурацию при помощи вопросов:
Вопросы ecss-web-conf | Ответы |
---|---|
IP-адрес или имя хоста сервера БД MySQL на котором будет развернута база данных web-conf (Input IP address or hostname of MySQL db for web-conf DB) | 127.0.0.1 (значение по умолчанию) |
Порт доступа к серверу БД MySQL на котором будет развернута база данных web-conf (Input port of MySQL db for web-conf DB | 3306 (значение по умолчанию) |
IP-адрес или имя хоста на котором установлен ECSS-10 для доступа к http_terminal\'у (Input IP address or hostname for ECSS-10 with http_terminal) | 127.0.0.1 (значение по умолчанию) |
Порт ECSS-10 http_terminal\'у (Input port SSW http_terminal) | 9999 (значение по умолчанию) |
Логин ECSS-10 http_terminal\'а (Input login for SSW http_terminal) | admin (значение по умолчанию) |
Пароль ECSS-10 http_terminal\'а (Input password for SSW http_terminal) | password (необходимо ввести) |
проверьте возможность подключение к web интерфейсу http://10.0.10.10, пользователь/пароль - admin/password, в настоящий момент не все функции будут доступны, но web интерфейс должен быть рабочий и логин успешный.
Настройка snpmd
Настройка SNMP описана здесь.
Настройка безопасности. SSH
Выполните настройку сервера SSH:
sudo nano /etc/ssh/sshd_config |
Укажите в конфигурационном файле порт и адрес, по которому можно обратиться к серверу:
Настройка ssh для ecss1(/etc/ssh/sshd_config) |
---|
# This is the sshd server system-wide configuration file. See # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with Port 2000 <...> |
Перезапустите ssh:
sudo systemctl restart ssh.service
Настройка начальной конфигурации
Перейдите в CLI CoCon:
ssh admin@localhost -p 8023 password: password
Создание и настройка группы SIP-IP-адресов (IP-set)
Произведите настройку адаптера SIP согласно ТЗ (команды выполняются в CoCon):
admin@[mycelium1@ecss1]:/$ /cluster/adapter/sip1/sip/network/set ip_set test_set node-ip node = sip1@ecss1 ip = 10.0.20.10 Property "ip_set" successfully changed from: to test_set: no ports set test_set: sip1@ecss1 10.0.20.10 test_set: dscp 0. admin@[mycelium1@ecss1]:/$ /cluster/adapter/sip1/sip/network/set ip_set test_set listen-ports list = [5060] Property "ip_set" successfully changed from: test_set: no ports set test_set: sip1@ecss1 10.0.20.10 test_set: dscp 0 to test_set: 5060 test_set: sip1@ecss1 10.0.20.10 test_set: dscp 0
Создание Домена и подключение IP-set
Создайте Домен (виртуальную АТС) и присвойте ему созданную выше группу (IP-set) настроек SIP-адаптера (команды выполняются в CoCon):
admin@[mycelium1@ecss1]:/$ domain/declare test_domain --add-domain-admin-privileges --add-domain-user-privileges New domain test_domain is declared admin@[mycelium1@ecss1]:/$ domain/test_domain/sip/network/set ip_set [test_set] Property "ip_set" successfully changed from: [] to ["test_set"].
Добавление услуг
Установка всех услуг указных в лицензии:
admin@[mycelium1@ecss1]:/$ cluster/storage/ds1/ss/install ds1@ecss1 ss_* Successfully installed: /var/lib/ecss/ss/ss_dnd.xml Successfully installed: /var/lib/ecss/ss/ss_clir.xml ... Successfully installed: /var/lib/ecss/ss/ss_chunt.xml
После установки в систему различных видов услуг администратор системы должен открыть доступ на управление услугами оператору Домена (виртуальной АТС). Для этого используются команду:
Разрешить оператору Домена (виртуальной АТС) "test_domain" управлять всеми услугами :
admin@[mycelium1@ecss1]:/$ cluster/storage/ds1/ss/access-list add test_domain * Supplementary services successfully added in the domain test_domain.
Для возможности применения пакета услуг у абонентов сразу после создания, необходимо настроить политику применения лицензионных пакетов услуг (детальную информацию вы можете посмотреть здесь )
Создать политику применения лицензии с именем -"new_sub"
выполняется в CoCon user/pw admin/password
/domain/test_domain/ss/licence/politics/declare new_sub "Задаются при создании абонента"
Задать имя пакета услуг дополнительных сервисов, для этого использовать следующие команды :
выполняется в CoCon user/pw admin/password
/cluster/storage/ds1/licence/show-licence 1
нас интересует следующая информация :
/cluster/storage/ds1/licence/show-licence 1 SSW ID < Имя SSW ID > Description Лицензия для тестирования 3.16 Локация 2. . . . Supplementary Services licence package(s) name 'ECSS-FULL+' limit 600000 description "Весь пакет услуг" SS list [1,2,3,4,5] . . .
имя пакета услуг в примере "ECSS-FULL+".
Добавить в созданную политику пакет лицензионных услуг с именем "ECSS-FULL+", именно так он описан в лицензии:
выполняется в CoCon user/pw admin/password
/domain/test_domain/ss/licence/politics/package-add new_sub ECSS-FULL+
Пакет добавлен, но в настоящий момент политика не активна (не может быть применена к абоненту). Для активации политики new_sub выполнить следующую команду:
выполняется в CoCon user/pw admin/password
domain/test_domain/ss/licence/politics/activate new_sub
Теперь при создании абонентов можем использовать дополнительные услуги.
После создания домена настраиваем:
Первоначальная установка системы с резервированием в кластере из двух серверов
Исходные данные
Исходные данные
В данном разделе использованы специфичные для данного продукта термины, ознакомиться с ними можно здесь.
Техническое задание:
Требуется интеграция программного коммутатора 5 класса ECSS-10 (SSW) на 2-х физических серверах с поддержкой SIP со следующими параметрами на нагрузку группы серверов:
- Максимальное количество абонентов 15000 (MUL — Max user limit);
- Максимальное количество одновременных соединений 2000 (MCL — Max call limit);
- Требуется полный резерв системы ecss (все ноды резервируется на втором сервере);
- Количество сетевых интерфейсов ethernet — 4.
По техническому заданию требуется определить аппаратную платформу.
Актуальная информация с требованиями к серверам, которые должны использоваться для работы комплекса ECSS-10.
№ | Требования к серверам SSW | Серия Light+ | Серия Midi | Серия Heavy | Серия Супер Heavy | Серия Top (1) |
---|---|---|---|---|---|---|
1 | Характеристики системы | |||||
1.1 | Максимальное количество абонентов | 5000 | 10000 | 20000 | 40000 | - |
1.2 | Максимальная нагрузка одновременных соединений class 5 | 800 | 1500 | 3000 | 6000 | - |
1.3 | Максимальная нагрузка одновременных соединений class 4 | 2400 | 4500 | 9000 | 20000 | 80000 |
2 | Характеристики сервера | |||||
2.1 | Марка | HP (Lenovo) | HP (Lenovo) | HP (Lenovo) | HP (Lenovo) | HP /Lenovo /Depo |
2.2 | Серия | DL20 Gen10/DL 360 Gen10 (SR530) | DL360 Gen10 (SR530/SR630) | DL360 Gen10 (SR630) | DL360 Gen10 (SR630) | DL360 Gen10 /SR650 V2 /Storm 3450 |
2.3 | Процессор | Intel Xeon 4214 | Intel Xeon 5220 | Intel Xeon 6240 | Intel Xeon 8268 | Intel Xeon 8380 |
2.4 | Количество процессоров | 1 | 1 | 2 | 2 | 2 |
2.5 | Оперативная память | 16 Gb | 24 Gb | 32 Gb | 64 Gb | 1024 Gb |
2.6 | HDD | От 3X500 SATA (от 7200 rpm) | От 3x300 Gb SAS (от 10000 rpm) | От 3x600 Gb SAS (от 10000 rpm) 2x150Gb SSD | От 6x800 Gb SSD, 2x300Gb M.2 SSD | От 6x1.2 Tb SSD, 2x300Gb M.2 SSD |
2.7 | RAID | no raid board | HW Raid, от 1Gb cache+battery | HW Raid, от 1Gb cache+battery | HW Raid, от 2Gb Flash cache, поддержка RAID-5 | HW Raid, от 2Gb Flash cache, поддержка RAID-5 |
3 | Дополнительные комплектующие сервера (в базовый комплект не входят) | |||||
3.1 | Лицензия на удалённое управление | по желанию | + | + | + | + |
3.2 | Резервный источник питания | по желанию | + | + | + | + |
3.3 | Организация хранилища записей разговоров | Дополнительные HDD, объединенные в RAID-5 | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей |
Полоса пропускания СПД
Требуемая полоса пропускания СПД не менее 1000Mb/s
Минимальные требования при установке ECSS-10 на виртуальные машины*
№ | Требования к серверам SSW | Уровень Light (2)(3) | Уровень Light+ | Уровень Midi | Уровень Heavy | Уровень Супер Heavy | Уровень Top (1) |
---|---|---|---|---|---|---|---|
1 | Характеристики системы | ||||||
1.1 | Максимальное количество абонентов | 1000 | 5000 | 10000 | 20000 | 40000 | - |
1.2 | Максимальная нагрузка одновременных соединений class 5 | 250 | 800 | 1500 | 3000 | 6000 | - |
1.3 | Максимальная нагрузка одновременных соединений class 4 | 1000 | 4500 | 9000 | 20000 | 80000 | - |
2 | Характеристики сервера | ||||||
2.4 | Количество ядер/потоков (vCore) | 8С | 12С/24T | 18С/36T | 36С/72T | 48С/96T | 80С/160T и более |
2.5 | Частота процессора | от 2.4 Ghz | от 3 Ghz | от 3Ghz | от 3.6 Ghz | от 3.4 Ghz | от 3.2 Ghz |
2.6 | Оперативная память | 8 Gb | 16 Gb | 24 Gb | 32 Gb | от 64 Gb | от 512 Gb |
2.7 | HDD | От 50 GB, 75 IOPS | От 500 GB SATA (от 7200 rpm, от 75 IOPS) | От 500 Gb SAS (от 10000 rpm, 170 IOPS) | От 500 Gb SAS (от 10000 rpm, 170 IOPS) и 150Gb SSD | от 800 Gb SSD и 300Gb M.2 SSD | От 1.2 Tb SSD и 300Gb M.2 SSD |
C - core, они же ядра
T - thread = поток, vCore
(1) — серия Top на текущий момент рассчитана для реализации контроллера транковых шлюзов (работа по 4 классу).
(2) — уровень Light применяется только для расчета виртуальных машин, для физических серверов минимальная рекомендуемая конфигурация — Light+.
(3) — уровень Light является минимальным рекомендуемым. При запросе расчета ВМ для малого числа абонентов (до 1000: 100, 200...) используем его.
*Если на системе планируется использование таких сервисов как КЦ, запись разговоров, видео-вызовы, то необходимо согласовать требования с технической поддержкой
Полоса пропускания СПД
Требуемая полоса пропускания СПД не менее 1000Mb/s
Пример составления аппаратных требований:
Устройство | Требуемый ресурс | Серия аппаратного продукта | |
---|---|---|---|
MCL | MUL | ||
Сервер 1 | 2000 | 15000 | Heavy |
Сервер 2 | Heavy |
После определения по требованиям проекта составляем предварительную сетевую карту.
Пример разнесения составляющих по адресному пространству для одной ноды:
Имя сервера (хоста) | Роль | Интерфейс | Адрес | Адрес вашего проекта | Порт |
---|---|---|---|---|---|
Статические адреса программного коммутатора | |||||
ecss1 | Интерфейс управления сервером (порт 2000 ssh) | net.10 | 10.0.10.11/24 | 2000 | |
ecss2 | Интерфейс управления сервером (порт 2000 ssh) | net.10 | 10.0.10.12/24 | 2000 | |
ecss1 | Адрес ядра (ecss-core) | net.20 | 10.0.20.11/24 | 5000 | |
ecss2 | Адрес ядра (ecss-core) | net.20 | 10.0.20.12/24 | 5000 | |
ecss1, ecss2 | Адрес шлюза | net.10 | 10.0.10.1 | - | |
ecss1, ecss2 | Адреса DNS-серверов | net.10 | 10.0.10.1, 8.8.8.8 | - | |
ecss1, ecss2 | Адреса NTP-серверов | net.10 | 10.136.16.211, 10.136.16.212 | 123 | |
Виртуальные адреса программного коммутатора | |||||
ecss1 | Виртуальный адрес программного адаптера хоста ecss1 | net.20:SIP1 | 10.0.20.31/24 | - | |
ecss2 | Виртуальный адрес программного адаптера хоста ecss2 | net.20:SIP2 | 10.0.20.32/24 | - | |
ecss1 | Запасной виртуальный адрес программного адаптера хоста ecss2 на хосте ecss1 | net.20:SIP2 | 10.0.20.32/24 | - | |
ecss2 | Запасной виртуальный адрес программного адаптера хоста ecss1 на хосте ecss2 | net.20:SIP1 | 10.0.20.31/24 | - | |
ecss1, ecss2 | Виртуальный адрес базы данных MySQL | net.10:MYSQL | 10.0.10.10/24 | 3306 |
Включение в сеть
Топологию включения сервера в сеть для обеспечения резервирования рекомендуется делать с использованием 2-х коммутаторов.
Рисунок 2 — Схема организации связи
Вариант 1. Схема active-backup
Коммутаторы связаны между собой в erps-кольцо.
Все 4 физических сетевых интерфейса каждого сервера объединяются в 1 агрегированный линк (bond). Агрегация портов сервера настраивается в режиме active-backup, т.е. в работе всегда находится только 1 сетевой интерфейс. Сетевые интерфейсы каждого сервера попарно включены в коммутаторы, на которых агрегация портов (port-channel) также настраивается в режиме active-backup. Например, eth0 и eth1 каждого сервера включаются в первый коммутатор (port-channel 1 и 2), а eth2 и eth3 (port-channel 3 и 4) — во второй.
Вариант 2. Схема LACP
Коммутаторы связаны между собой в стек. Стек должен логически работать как один коммутатор, способный обеспечивать агрегацию портов в режиме LACP между разными физическими коммутаторами. Пример — коммутаторы MES-3124 со специализированной прошивкой.
Все 4 физических сетевых интерфейса также объединяются в 1 агрегированный линк (bond). Агрегация портов сервера настраивается в режиме 802.3ad. Создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача задействует все каналы в активной агрегации согласно стандарту IEEE 802.3ad. Выбор того, через какой интерфейс необходимо отправлять пакет, определяется политикой. По умолчанию это XOR-политика, можно использовать «xmit_hash» политику. Подробнее — в разделе Приложение Е. Netplan.
Требования:
- Поддержка Ethtool в драйвере для получения информации о скорости и дуплексе на каждом сетевом интерфейсе;
- Поддержка на коммутаторе стандарта IEEE 802.3ad;
Сетевые интерфейсы сервера также попарно включены в коммутаторы, на которых агрегация портов (port-channel) тоже настраивается в режиме LACP. Например, eth0 и eth1 каждого сервера включаются в первый коммутатор (port-channel 1 и 2), а eth2 и eth3 (port-channel 3 и 4) — во второй.
Настройка сети
Согласно параметрам, заданным в техническом задании (далее ТЗ), выполните сетевые настройки. В данном примере считается, что уже установлена необходимая операционная система. О том, как это сделать, смотрите в разделе Инсталляция системы.
Рекомендуется разделять трафик, используемый в разных целях. Например, трафик управления и трафик VoIP. Для этого создаются 2 или более vlan. При небольшой нагрузке для простоты можно обойтись и одним vlan, но это может в будущем доставлять неудобства при снятии дампов трафика и его анализе. В соответствии с техническим заданием на vlan настраиваются IP-адреса самого хоста, шлюзы, DNS и маршрутизация в другие сети.
В данном примере согласно ТЗ будем использовать адреса (в скобках — различия для ecss2):
- 10.0.10.11(12)/24 — для управления, vlan 10;
- 10.0.20.11(12)/24 — core, vlan 20;
- 10.0.20.31(32)/24 — виртуальные (vrrp) для VoIP;
- 10.0.10.10 — виртуальный (vrrp) адрес сервера MySQL;
- 10.0.10.1 — шлюз и dns для доступа во внешнюю сеть;
- 10.0.20.1 — шлюз в подсеть 10.0.3.0/24;
- 10.136.16.211, 10.136.16.212 — адреса NTP-серверов, доступ до которых осуществляется через шлюз 10.0.10.1.
Внутри серверной платформы существует адресная структура и используются внутренние адреса для взаимодействия между подсистемами (нодами) в кластере. Например, внутренний адрес для кластера на одном сервере 10.0.20.11, при этом ядро (ecss-core) взаимодействует с сервером обработки мультимедиа-данных (ecss-media-server). Их взаимодействие происходит с использованием одного и того же адреса, но у каждой программной части свой транспортный порт: ecss-core — 5000, ecss-msr — 5040.
Для всех нод кластера определяется единый адрес для обращения к базе данных MySQL, например, адрес ecss-mysql 10.0.10.10. Таким образом, выполняется условие единообразия, при котором все ноды кластера имеют полностью одинаковые данные о текущем состоянии динамических составляющих программного коммутатора (например, история вызовов).
Сначала настраиваются сетевые интерфейсы.
В Ubuntu18 для их настройки используется утилита netplan:
sudo nano /etc/netplan/ecss_netplan.yaml |
В конфигурациях для каждого хоста в первую очередь мы объявляем секцию ethernets, в которой описываются существующие в системе ethernet-интерфейсы, используемые в дальнейшем. Для каждого интерфейса необходимо отключить использование динамического распределения адресов (DHCP).
Следующим разделом описываются агрегированные каналы — bonds. В зависимости от выбранного варианта включения в сеть настраивается режим режим резерва 1:1 (active - backup) или LACP (802.3ad).
Далее настраиваются vlan, на которых опционально определяются шлюзы для связи с внешним миром и адреса DNS-серверов, а также непосредственно IP-адреса для каждого интерфейса.
ВАЖНО
Обратите внимание, что во время редактирования netplan необходимо соблюдать правила разметки YAML:
- Обязательное наличие двух пробелов перед каждой строкой (кроме network);
- Каждая подсекция дополнительно сдвигается на 2 пробела:
→ Секция |network
→ Подсекция |_'_'bonds:
→ Подсекция описания секции bonds |_'_'_'_'bonded_one:
→ и т.д. |_'_'_'_'...
- Перед знаком ":" нет пробела, после — один пробел;
- Перед знаком "-" количество пробелов такое, как будто начинается новый подраздел, после — один пробел.
Пример netplan для режима active-backup
Netplan для интерфейсов сервера ecss1 (/etc/netplan/ecss_netplan.yaml) | Netplan для интерфейсов сервера ecss2 (/etc/netplan/ecss_netplan.yaml) |
---|---|
# Netplan для хоста ecss1 программного коммутатора # Обратите внимание на обязательное наличие минимум двух пробелов в каждой строке и секции (кроме строки секции network) network: version: 2 # Версия netplan renderer: networkd # Исполнитель конфигураций netplan ethernets: # Раздел описания интерфейсов ethernet eth0: # Название интерфейса dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса eth1: dhcp4: no eth2: dhcp4: no eth3: dhcp4: no bonds: # Раздел описания связанных (bonding) интерфейсов bond1: # Название bonding-интерфейса interfaces: # Секция определения связанного интерфейса - eth0 - eth1 - eth2 - eth3 parameters: # Раздел определения параметров связанного интерфейса primary-reselect-policy: failure # позволяет избежать лишний переключений gratuitous-arp: 5 # Способствует более быстрому переключению all-slaves-active: true # принимать входящие кадры на backup интерфейсах up-delay: 1000 # сделать задержку в одну секунду mode: active-backup # Режим резервирования, один активным, а остальные в резерве mii-monitor-interval: 100 # интервал мониторинга интерфейса(мс) primary: eth0 # Секция определения основного интерфейса optional: false # Определение, является ли интерфейс обязательным при старте vlans: net.10: # Интерфейс управления id: 10 link: bond1 addresses: [10.0.10.11/24] gateway4: 10.0.10.1 # Адрес шлюза nameservers: addresses: [10.0.10.1, 8.8.8.8] # Адреса серверов DNS routes: # Маршрутизация в подсеть к NTP - to: 10.136.16.0/24 via: 10.0.10.1 # Адрес шлюза в данную подсеть on-link: true # Определяет, что указанные маршруты непосредственно связаны с интерфейсом net.20: # Интерфейс для VoIP id: 20 link: bond1 addresses: [10.0.20.11/24] routes: - to: 10.0.3.0/24 via: 10.0.20.1 on-link: true | # Netplan для хоста ecss2 программного коммутатора # Обратите внимание на обязательное наличие минимум двух пробелов в каждой строке и секции (кроме строки секции network) network: version: 2 # Версия netplan renderer: networkd # Исполнитель конфигураций netplan ethernets: # Раздел описания интерфейсов ethernet eth0: # Название интерфейса dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса eth1: dhcp4: no eth2: dhcp4: no eth3: dhcp4: no bonds: # Раздел описания связанных (bonding) интерфейсов bond1: # Название bonding-интерфейса interfaces: # Секция определения связанного интерфейса - eth0 - eth1 - eth2 - eth3 parameters: # Раздел определения параметров связанного интерфейса primary-reselect-policy: failure # позволяет избежать лишний переключений gratuitous-arp: 5 # Способствует более быстрому переключению all-slaves-active: true # принимать входящие кадры на backup интерфейсах up-delay: 1000 # сделать задержку в одну секунду mode: active-backup # Режим резервирования, один активным, а остальные в резерве mii-monitor-interval: 100 # интервал мониторинга интерфейса(мс) primary: eth0 # Секция определения основного интерфейса optional: false # Определение, является ли интерфейс обязательным при старте vlans: net.10: # Интерфейс управления id: 10 link: bond1 addresses: [10.0.10.12/24] gateway4: 10.0.10.1 # Адрес шлюза nameservers: addresses: [10.0.10.1, 8.8.8.8] # Адреса серверов DNS routes: # Маршрутизация в подсеть к NTP - to: 10.136.16.0/24 via: 10.0.10.1 # Адрес шлюза в данную подсеть on-link: true # Определяет, что указанные маршруты непосредственно связаны с интерфейсом net.20: # Интерфейс для VoIP id: 20 link: bond1 addresses: [10.0.20.12/24] routes: - to: 10.0.3.0/24 via: 10.0.20.1 on-link: true |
Следующие настройки bonds обязательны для сервера ECSS, чтобы схема работала верно:
mode: active-backup - задаёт режим работы, когда один из линков выбирается активным, а остальные остаются в резерве;
primary-reselect-policy: failure - указывает, что выбирать новый активный линк следует только тогда, когда текущий активный линк переходит в состоянии аварии. Это позволяет избежать лишний переключений;
gratuitous-arp: 5 - при смене активного линка в сторону коммутатора отправляются пять запросов gratuitous ARP, чтобы обновить на нём таблицу коммутации. Способствует более быстрому переключению;
all-slaves-active: true - заставляет принимать входящие кадры на backup интерфейсах. Таким образом балансировка трафика на MESе не мешает работе. Данные в сторону сервера идут со всех линков, а сервер отправляет данные только с active линка;
mii-monitor-interval: 100 - активирует мониторинг линков через интерфейс MII и указывает интервал опроса в 100мс;
up-delay: 1000 - указывает считать поднявшийся интерфейс доступным для работы не сразу, а сделать задержку в одну секунду после того, как интерфейс поднялся. Необходимо для того, чтобы избежать лишних переключений в случае, когда порт "прыгает" несколько раз из состояния "включено" в состояние "выключено" и обратно.
Пример netplan для режима 802.3ad
Netplan для интерфейсов сервера ecss1 (/etc/netplan/ecss_netplan.yaml) | Netplan для интерфейсов сервера ecss2 (/etc/netplan/ecss_netplan.yaml) |
---|---|
# Netplan для хоста ecss1 программного коммутатора # Обратите внимание на обязательное наличие минимум двух пробелов в каждой строке и секции (кроме строки секции network) network: version: 2 # Версия netplan renderer: networkd # Исполнитель конфигураций netplan ethernets: # Раздел описания интерфейсов ethernet eth0: # Название интерфейса dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса eth1: dhcp4: no eth2: dhcp4: no eth3: dhcp4: no bonds: # Раздел описания связанных (bonding) интерфейсов bond1: # Название bonding-интерфейса interfaces: # Секция определения связанного интерфейса - eth0 - eth1 - eth2 - eth3 parameters: # Раздел определения параметров связанного интерфейса mode: 802.3ad # Режим LACP mii-monitor-interval: 100 # интервал мониторинга интерфейса(мс) primary: eth0 # Секция определения основного интерфейса optional: false # Определение, является ли интерфейс обязательным при старте vlans: net.10: # Интерфейс управления id: 10 link: bond1 addresses: [10.0.10.11/24] gateway4: 10.0.10.1 # Адрес шлюза nameservers: addresses: [10.0.10.1, 8.8.8.8] # Адреса серверов DNS routes: # Маршрутизация в подсеть к NTP - to: 10.136.16.0/24 via: 10.0.10.1 # Адрес шлюза в данную подсеть on-link: true # Определяет, что указанные маршруты непосредственно связаны с интерфейсом net.20: # Интерфейс для VoIP id: 20 link: bond1 addresses: [10.0.20.11/24] routes: - to: 10.0.3.0/24 via: 10.0.20.1 on-link: true | # Netplan для хоста ecss2 программного коммутатора # Обратите внимание на обязательное наличие минимум двух пробелов в каждой строке и секции (кроме строки секции network) network: version: 2 # Версия netplan renderer: networkd # Исполнитель конфигураций netplan ethernets: # Раздел описания интерфейсов ethernet eth0: # Название интерфейса dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса eth1: dhcp4: no eth2: dhcp4: no eth3: dhcp4: no bonds: # Раздел описания связанных (bonding) интерфейсов bond1: # Название bonding-интерфейса interfaces: # Секция определения связанного интерфейса - eth0 - eth1 - eth2 - eth3 parameters: # Раздел определения параметров связанного интерфейса mode: 802.3ad # Режим LACP mii-monitor-interval: 100 # интервал мониторинга интерфейса(мс) primary: eth0 # Секция определения основного интерфейса optional: false # Определение, является ли интерфейс обязательным при старте vlans: net.10: # Интерфейс управления id: 10 link: bond1 addresses: [10.0.10.12/24] gateway4: 10.0.10.1 # Адрес шлюза nameservers: addresses: [10.0.10.1, 8.8.8.8] # Адреса серверов DNS routes: # Маршрутизация в подсеть к NTP - to: 10.136.16.0/24 via: 10.0.10.1 # Адрес шлюза в данную подсеть on-link: true # Определяет, что указанные маршруты непосредственно связаны с интерфейсом net.20: # Интерфейс для VoIP id: 20 link: bond1 addresses: [10.0.20.12/24] routes: - to: 10.0.3.0/24 via: 10.0.20.1 on-link: true |
Так же рекомендуется проверить отсутствие в каталоге /etc/netplan/ еще каких либо файлов, если другие файлы присутствуют , то их нужно переместить в другой каталог или удалить, в противном случае возможна некорректная настройка сетевых интерфейсов и некорректная работа SSW.
Применим установленные параметры командой:
sudo netplan apply
Просмотреть получившиеся настройки можно при помощи команд ifconfig или ip a.
На серверах системы необходимо настроить параметр "hostname".
На всех серверах системы желательно указать одинаковое имя пользователя (любое, кроме ssw). Лицензия ECSS-10 привязывается к ключу eToken/ruToken и к имени компьютера (hostname), поэтому необходимо использовать стандартные значения. Системный пользователь ssw создается при инсталляции пакета ecss-user.
При установке системы в кластере значение для первого сервера — ecss1, для второго — ecss2.
Другие имена хостов возможны только при согласовании проекта, это потребуется для генерации лицензий.
Указать имя хоста: ecss1 / ecss2 в файле /etc/hostname:
sudo nano /etc/hostname
Настройка /etc/hosts
После настройки netplan необходимо указать, что внутренний адрес 10.0.10.Х принадлежит соответствующему серверу ecssX. Для этого настраиваем /etc/hosts:
Настройка hosts для ecss1 (/etc/hosts) | Настройка hosts для ecss2 (/etc/hosts) |
---|---|
BASH
|
BASH
|
Теперь, если вызвать утилиту ping на ecssX, можно обратиться к соседнему серверу.
Обращение к ecss2 с ecss1 | Обращение к ecss1 с ecss2 |
---|---|
BASH
|
BASH
|
Обновление программного обеспечения операционной системы
Для установки системы ECSS-10 необходимо добавить репозиторий ELTEX.
Для Ubuntu-18.04:
sudo sh -c "echo 'deb [arch=amd64] http://archive.eltex.org/ssw/bionic/3.14 stable main extras external' > /etc/apt/sources.list.d/eltex-ecss10-stable.list"
Для Astra Linux Smolensk:
sudo sh -c "echo 'deb [arch=amd64] http://archive.eltex.org/ssw/smolensk/3.14 stable main extras external' > /etc/apt/sources.list.d/eltex-ecss10-stable.list"
Далее необходимо выполнить импорт ключа командой:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 33CB2B750F8BB6A5
Для обновления ОС необходимо выполнить команды:
sudo apt update
sudo apt upgrade
Установка и настройка программного обеспечения
установка пакетов deb
┌ версия ПО ECSS. Сейчас в заявке на сертификацию она заявлена как 3.
| Мы её менять не будем до следующей сертификации или │ выпуска принципиально новой версии системы. │ │ ┌ версия System Release. Общая версия для всех компонент входящих в конкретный релиз.
| | Меняем её централизовано, когда │ │ принимаем решение о выпуске нового релиза. Релизы между собой обычно не совместимы. ┌─┴┐ ┌──┴─┐ ECSS.SysRel.SubMaj.SubMin └──┬─┘ └──┬─┘ │ └ версия Subsystem minor. Минорную версию подсистемы устанавливает разработчик подсистемы.
| Минорную версию │ меняем при добавлении патча. Как правило, минорные версии в рамках одной мажорной версии │ совместимы между собой и отличаются в рамках конкретных патчей. │ └ версия Subsystem major. Мажорная версия устанавливается разработчиком подсистемы.
Мажорную версию подсистемы необходимо менять при внесении в подсистему существенных изменений.
Утилита установки пакетов APT анализирует версию пакета слева направо, то есть мы имеем пакет 14.14.7.7 ,
в репозитории находятся пакеты
14.14.7.8
14.14.7.9
14.14.8.1
14.14.20 -14.14.28
то при выполнении команды sudo apt install имя пакета → будет автоматически проверен и установлен пакет 14.14.28 , так как он самый последний, анализ будет выполнен по 3-й позиции (major), анализ по 4-й (minor) выполнен не будет (аналогичным образом будет выполнятся команда sudo apt upgrade).
В случае если для конкретной ситуации требуется перейти с версии 14.14.7.7 на версию 14.14.7.9 , стандартная команда → sudo apt upgrade , нам не поможет, так как будет выбран самый новый пакет, в данной ситуации нам необходимо в явном виде указать какую версию пакета мы хотим установить, в данном примере мы должны выбрать команду → sudo apt install имя пакета=14.14.7.9 . Обычно это необходимо для тестирования определенного патча, для стандартных обновлений достаточно выбора привычной команды установки /обновления пакета
Установите все предложенные пакеты:
sudo apt install ntp tcpdump vlan dnsmasq aptitude atop ethtool htop iotop mc minicom mtr-tiny nmap pptpd pv screen ssh tftpd vim sngrep tshark cpanminus gnuplot libgraph-easy-perl debconf-utils
Также установите пакеты для системы с резервированием:
sudo apt install ifenslave-2.6 keepalived attr
Перед началом установки пакетов ecss , нужно убедится в соответствии полосы пропускания СПД необходимым требованиям.
Для этого выполнить команду sudo ethtool <имя интерфейса> для всех физических интерфейсов.
Проверить значение следующих параметров:
Advertised auto-negotiation: Yes
Speed: 1000Mb/s (не менее)
Duplex: Full
В случае отличия, скорректировать.
Установка пакета ecss-mysql
Для установки выполните команду:
sudo apt install ecss-mysql
Настройка пакета ecss-dns-env
Перед установкой пакета ecss-mysql вам будет предложено настроить переменные окружения для сервисов в dnsmasq. Настройщик предложит выбрать разделы для настройки по вопросам ниже. Нужно выбрать broker и mysql. (для примера 10.0.10.11 и 10.0.10.12 )
Вопрос ecss-dns-env | Ответы для ecss1 | Ответы для ecss2 |
---|---|---|
[Primary broker] Введите адрес ([Primary broker] Enter ip) | 10.0.10.11 (необходимо ввести) | 10.0.10.11 (необходимо ввести) |
[Secondary broker] Введите адрес ([Secondary broker] Enter ip) | 10.0.10.12 (необходимо ввести) | 10.0.10.12 (необходимо ввести) |
[Mysql] Введите адрес ([Mysql] Enter ip) | 10.0.10.10 (необходимо ввести) | 10.0.10.10 (необходимо ввести) |
ВАЖНО
Для изменения ip-адресов рекомендуется использовать команду:
sudo dpkg-reconfigure ecss-dns-env
Настройка пакета ecss-mysql
Базы данных MySQL, используемые системой ECSS-10, после установки будут храниться в /var/lib/ecss-mysql. При установке пакета ecss-mysql apt задаст вопрос о разрешении изменения конфигурационного файла /etc/apparmor.d/local/usr.sbin.mysqld, чтобы изменить путь до баз данных MySQL по умолчанию. Для успешной установки ecss-mysql требуется разрешить изменения (введите "Y"). Чтобы избежать ввода ответа на вопрос при установке пакета, допускается использовать дополнительные ключи при вводе команды установки:
sudo apt-get -o Dpkg::Options::="--force-confnew" install ecss-mysql
Во время установки настройщик задаст вопросы, ответы указаны в таблице ниже. Обратите внимание, что пароль является одинаковым для обоих хостов, на которых устанавливается mysql.
Вопросы ecss-mysql | Ответы для ecss1 | Ответы для ecss2 |
---|---|---|
IP маска для прав MySQL таблиц (IP pattern for MySQL permission) | 10.0.10.% (необходимо ввести) | 10.0.10.% (необходимо ввести) |
Логин для администратора MySQL (Login for MySQL root) | root (значение по умолчанию) | root (значение по умолчанию) |
Пароль для администратора MySQL (Password for MySQL root) | password(необходимо ввести) | password (необходимо ввести) |
Базы данных mysql, используемых системой ECSS-10, после установки будут храниться по пути /var/lib/ecss-mysql . Проверяем наличие файлов в папке:
ll /var/lib/ecss-mysql/
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_address_book
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_audit
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_calls_db
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_dialer_db
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_meeting_db
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_numbers_db
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_statistics
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_subscribers
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_system
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 history_db
drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 web_conf
Проверяем, что сервер запущен:
systemctl status mysql.service
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/mysql.service.d
└─override.conf
Active: active (running) since Sun 2022-02-06 15:25:15 +07; 3 days ago
Process: 3766 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, status=0/SUCCESS)
Process: 3736 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 3783 (mysqld)
Tasks: 87 (limit: 4915)
CGroup: /system.slice/mysql.service
└─3783 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
Далее следует поддержать доступ между серверами с ecss-mysql через ssh по rsa-ключам - без использования пароля.
На хосте ecss1 генерируем rsa-ключ следующий командой (выполняем команду без sudo, чтобы ключ сгенерировался для текущего пользователя), при выполнении команды будут заданы три вопроса, можно использовать значение по умолчанию, нажав три раза Enter:
на ecss1
ssh-keygen
ssh-copy-id ecss2
Таким же образом сгенерируйте rsa-ключ на хосте ecss2.
на ecss2
ssh-keygen
ssh-copy-id ecss1
проврете подключение между серверами, со стороны сервера ecss1 - ssh ecss2 соединение должно быть установлено без запроса пароля . Аналогичным образом со стороны сервера ecss2 - ssh ecss1
Запустите скрипт репликации БД mysql на ecss1:
sudo /usr/lib/ecss/ecss-scripts/mysql-replication/install_replication.sh
Перед выполнением скрипта необходимо определить некоторые параметры. Пример ответа на вопросы для разных хостов приведен ниже. Следует обратить внимание, что пароль password— это тот же пароль, который задавался выше. Виртуальный адрес mysql задаем вручную. Причина приведена в разделе "Настройка виртуального адреса для MySQL".
Вопросы install_replication. | Ответы для ecss1 |
---|---|
Логин для доступа к БД | root (значение по умолчанию) |
Пароль для доступа к БД | password (необходимо ввести) |
Логин для пользователя репликации | replica (значение по умолчанию) |
Пароль для пользователя репликации | replica (необходимо ввести) |
Адресная маска для репликации (ENTER REPLICA HOST WILDCARD) | 10.0.10.% (значение по умолчанию) |
Адрес локального хоста | 10.0.10.11 (необходимо ввести) |
Адрес удаленного хоста | 10.0.10.12 (необходимо ввести) |
Имя пользователя на удаленном хосте | support (значение по умолчанию , имя вашего пользователя) |
Mediator IP | 127.0.0.1 (значение по умолчанию) |
Порт SNMP (default: 162) | 162 (значение по умолчанию) |
DO YOU WANT TO SET MASTER (VIRTUAL) IP address? | нет (значение по умолчанию) |
Какой хост будет MASTER? (default: localhost): | localhost (значение по умолчанию) |
Выберите для подтверждения конфигурации - c - продолжить
далее вам потребуется несколько раз ввести пароль вашего пользователя для подтверждение репликации базы данных на втором сервере ecss2
После работы скрипта можно проверить, что в MySQL создан пользователь replica@10.0.10.% на обоих хостах:
sudo mysql -uroot -ppassword
sql> SELECT user,host FROM mysql.user;
Среди всех пользователей можно увидеть такую запись:
+------------------+---------------+ |
Проверьте состояние реплики на обоих хостах (пароль - password ):
sudo mysql -uroot -p -e 'show slave status \G;' | grep -E "Slave_IO_Running:|Slave_SQL_Running:"
Enter password:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Редактирование keepalived.conf
Следующий шаг — редактирование глобального конфигурационного файла keepalived.conf. На обоих хостах содержимое файла одинаковое:
sudo nano /etc/keepalived/keepalived.conf
скопируйте и вставьте следующий текст в файл /etc/keepalived/keepalived.conf
global_defs {
vrrp_version 3 # версия протокола VRRP (2 или 3)
script_user nobody # ограниченный в правах системный пользователь, от которого будут запускаться скрипты проверки доступности
enable_script_security # не запускать скрипты от root, если часть пути к ним доступна на запись для обычных пользователей
}
include /etc/keepalived/sip.conf
include /etc/keepalived/mysql.conf
Поскольку при создании репликации не была задействована автоматическая генерация конфигурации для mysql, то в конфигурационном файле необходимо сделать ссылку на mysql.conf: include /etc/keepalived/mysql.conf
Далее на обоих хостах создаются файлы /etc/keepalived/mysql.conf
sudo nano /etc/keepalived/mysql.conf
со следующим содержимым (каждый хост имеет индивидуальную информацию в этом файле)
скопируйте и вставьте следующий текст в файл /etc/keepalived/mysql.conf ( в примере использованы IP адреса 10.0.10.11 , 10.0.10.12 , 10.0.10.10)
Создание VRRP для MySQL
/etc/keepalived/mysql.conf для ecss1 | /etc/keepalived/mysql.conf для ecss2 |
---|---|
YML
|
YML
|
В данной конфигурации мы задаем ID для виртуального маршрутизатора, который будет являться балансером для своего хоста. Важно, чтобы virtual_router_id совпадали у обоих хостов.
После конфигурации необходимо перезапустить сервис keepalived на обоих хостах:
sudo systemctl restart keepalived.service
проверьте наличие интерфейса и ip-адреса после рестарта сервиса командой ifconfig, на хосте ecss1 вы должны увидеть :
abf@ecss1:~$ ifconfig
. . .
net.10:mysql: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.10.10 netmask 255.255.255.0 broadcast 0.0.0.0
ether 08:00:27:6d:4f:02 txqueuelen 1000 (Ethernet)
Установка ecss-node
Установите пакет ecss-node:
sudo apt install ecss-node
Во время установки пакета создается пользователь ssw, от имени которого запускаются все сервисы ecss*. Создаются необходимые каталоги, выполняется настройка DNS, идет настройка SSL-сертификатов.
На вопрос - Хотите ли вы выключить ежедневные обновления apt-пакетов - ответьте да.
Настройка сертификатов
При отсутствии особых требований к безопасности можно оставить значение запрашиваемых параметров по умолчанию. На первом сервере нужно сгенерировать сертификат, а при установке ecss-node на втором сервере выбрать копирование с первого сервера
Скопировать с другого сервера ecss10 (ecss1) можно при условии: пользователь (с которым вы работаете) должен быть добавлен в группу ssw. Для этого, на первом ноде (с которого будете копировать сертификат (ecss1)) выполните команду sudo usermod -a -G ssw <Имя_пользователя> (для примера sudo usermod -a -G ssw support)
Актуален, только если был сгенерирован самоподписанный сертификат, тогда в систему установится ecss10root.crt (при копировании также пытается скачать ecss10root.crt, либо если при ручной установке был помещён данный файл). Если уже имеются сертификаты, то никаких действий не будет произведено. В конце также проверяется валидность сертификата.
Чтобы сгенерировать новый сертификат, необходимо удалить ecss10.{pem,crt,key} и ecss10root.{crt,key}, после чего сделать dpkg-reconfigure ecss-user.
Если планируется установка системы в кластере, то, как правило, на первом сервере нужно сгенерировать сертификат, а при установке ecss-node на втором сервере выбрать копирование с первого сервера (подробнее см. в разделе "Настройка сертификатов ECSS-10").
При установке будут заданы вопросы по сертификатам.
Способы конфигурирования сертификатов:
Ручной (manual)
При выборе ручного способа конфигурации сертификатов откроется окно с информацией о том, что установка может быть продолжена после помещения файлов ecss10.{pem,crt,key} в /etc/ecss/ssl. Также данное окно может открыться по достижении конца установки. Поместите необходимые файлы в требуемую директорию и начните процесс установки заново (перезапустите установку). Если все действия были выполнены верно — установка завершится, и можно будет продолжить установку системы.
Сгенерировать самоподписанный сертификат (generate)
При выборе данного способа будут сгенерированы следующие вопросы:
Страна (RU)
Область (Novosibirsk)
Город (Novosibirsk)
Организация (ELTEX)
Структурный узел (IMS)
Имя сертификата (ecss10)
Почта (ssw-team@eltex.loc)
Количество дней жизни сертификата
Пароль для корневого приватного ключа
Алгоритм шифрования для ключа
Сложность ключа
Сложность для параметров Диффи-Хеллмана
Дополнительные имена, за которые отвечает сертификат (на примере офиса — это ssw1.eltex.loc, ssw2.eltex.loc, ssw.eltex.loc), перечисленные через пробел (для последнего уровня можно wildcard)
Чем выше сложность ключа, тем дольше будет установка (dhparam при сложности 8192 на машине средней производительности занимает около часа). При отсутствии особых требований к безопасности можно оставить значение по умолчанию. После чего отобразится уведомление, что необходимо убрать приватный корневой ключ в безопасное место.
Скопировать существующие сертификаты (copy) по ssh
Скопировать с другого сервера ecss10 (ecss1) (предварительное условие: пользователь должен быть добавлен в группу ssw. выполните команду sudo usermod -a -G ssw <Имя_пользователя> для примера sudo usermod -a -G ssw support)
При выборе данного способа будут сгенерированы следующие вопросы:
Логин (user)
Адрес удалённой машины (ecss1)
Порт (22)
Способ авторизации (password или identity_file)
Пароль (password)
Файл с ключом (/home/<user>/.ssh/id_rsa)
Путь до папки с сертификатом (/etc/ecss/ssl)
Скопировать по http
При выборе данного способа будут сгенерированы следующие вопросы:
url (https://system.restfs.ecss:9993/certs)
Логин (если используется авторизация basic)
Пароль
Скопировать с другого сервера ecss10 (ecss1) (предварительное условие: пользователь должен быть добавлен в группу ssw. выполните команду sudo usermod -a -G ssw <Имя_пользователя> для примера sudo usermod -a -G ssw support)
Используется API http_terminal
При выборе данного способа будут сгенерированы следующие вопросы:
url до http_terminal (https://ecss1:9999)
Логин (admin)
Пароль (password)
Нода с сертификатами (core1@ecss1)
Для генерации сертификатов выбираем ручной (manual) способ. На все вопросы можно дать ответы, предложенные по умолчанию, нажимая кнопку "Enter" на каждый вопрос.
Во время установки будет предложено настроить некоторые параметры , с помощью вопросов , примеры ответов следует ниже, необходимые для формирования конфигурационных файлов.
Подробнее о настройке NTP в разделе "Синхронизация времени на серверах".
Вопросы ecss-node | Ответы для ecss1 | Ответы для ecss2 |
---|---|---|
Выключить ежедневные обновления (Do you want turn off apt-daily update ?) | Yes (значение по умолчанию) | Yes (значение по умолчанию) |
Использовать настройки по умолчанию для БД (Set DB config to default ?) | Yes (значение по умолчанию) | Yes (значение по умолчанию) |
Взводить аварию ECSS-10 при заполнении раздела MySQL (Set alarm true when MYSQL DB overloads) | Yes (необходимо выбрать) | Yes (необходимо выбрать) |
Внешние NTP-серверы через пробел: (External NTP servers through a space) | 10.136.16.211 10.136.16.212(default: ntp.ubuntu.com) | 10.136.16.211 10.136.16.212(default: ntp.ubuntu.com) |
NTP: Вы хотите использовать настройки для кластера? (NTP: Do you want use settings for cluster ?) | Yes (необходимо выбрать) | Yes (необходимо выбрать) |
NTP: Установка Startum для кластера (NTP: Set stratum for cluster) | 7 (значение по умолчанию) | 7 (значение по умолчанию) |
NTP: укажите локальные серверы для синхронизации через пробел: (NTP: Indicate local servers for synchronization separated a space:) | 10.0.10.12 (необходимо ввести) | 10.0.10.11 (необходимо ввести) |
NTP: Вы хотите определить сети вручную, у которых должен быть доступ до ntp? (NTP: Do you want to define manually which networks should have access to ntp?) | Yes (необходимо выбрать) | Yes (необходимо выбрать) |
NTP: Сети, у которых должен быть доступ до ntp через пробел: Формат: <сетевой адрес>|маска (x.x.x.x|255.255.255.0) | 10.0.10.0|255.255.255.0 (необходимо ввести) | 10.0.10.0|255.255.255.0 (необходимо ввести) |
Установить утилиту ecss-copycdr ? | No (значение по умолчанию) | No (значение по умолчанию) |
DNS
В ходе установки пакета ecss-node выполняется конфигурирование внутренних DNS-адресов. При установке, в зависимости от текущей конфигурации системы, может отобразиться сообщение:
See "systemctl status dnsmasq.service" and "journalctl -xe" for details. invoke-rc.d: initscript dnsmasq, action "start" failed. ● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Такой вывод в ходе установки является нормальным и не свидетельствует о проблемах.
Главное, чтобы после окончания установки ecss-node dnsmasq.service был активен.
Проверить командой - systemctl status dnsmasq.service (по окончанию Ctrl+C)
Пример:
sasha@ecss1:~$ systemctl status dnsmasq.service ● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-09-24 20:52:03 +07; 2 weeks 3 days ago Main PID: 10914 (dnsmasq) Tasks: 1 (limit: 4915) CGroup: /system.slice/dnsmasq.service └─10914 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,19036,8,2,49aac11d7b6f6446702e54a1607371607a1a41 Sep 24 20:52:03 ecss1 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server... Sep 24 20:52:03 ecss1 dnsmasq[10890]: dnsmasq: syntax check OK. Sep 24 20:52:03 ecss1 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Установка паспорта и лицензий
Под паспортом системы ECSS-10 понимается связь определенной инсталляции (SSW_ID) с USB-ключом. Паспорт гарантирует, что заказчик не сможет запустить больше подсистем DS с заданным SSW_ID, чем количество USB-ключей. Система без паспорта не работает.
Лицензионный ключ содержит в себе информацию о лицензионных ограничениях. Информация привязана к определенному SSW_ID. Позволяет добавлять лицензионные ограничения к определенной инсталляции системы ECSS-10. Если не добавлено ни одной лицензии, то действуют ограничения по умолчанию. Например, по умолчанию разрешено не более двух одновременных вызовов. Добавляя лицензию, можно расширить это количество до произвольных значений.
<licence> — последовательность цифр, букв и других символов без кавычек, следующая за строкой Licence: в файле лицензии.
<passport> — последовательность цифр, букв и других символов без кавычек, следующая за строкой Passport: в файле лицензии.
Если данные лицензии и паспорта будут введены корректно, то система выдаст подтверждение: ОК.
ВАЖНО
Перед началом работы проверьте наличие Token в системе.
Для проверки работы токена можно использовать приложение pkcs11-tool. Возможно проверить следующее:
Вывести общую информацию для ключа:
- для eToken:
pkcs11-tool --module /usr/lib/libeToken.so -I Cryptoki version 2.1 Manufacturer SafeNet, Inc. Library eToken PKCS#11 (ver 8.1) Using slot 0 with a present token (0x0)
- для Рутокен:
pkcs11-tool --module /usr/lib/ecss/ecss-ds/lib/lpm_storage-<VERSION>/priv/x64/librtpkcs11ecp.so -I Cryptoki version 2.20 Manufacturer Aktiv Co. Library Rutoken ECP PKCS #11 library (ver 1.5) Using slot 0 with a present token (0x0)
Расположение модуля для Рутокен может отличаться в зависимости от версии подсистемы DS. В общем случае файл располагается в /usr/lib/ecss/ecss-ds/lib/lpm_storage-<ВЕРСИЯ ПОДСИСТЕМЫ>/priv/x64/librtpkcs11ecp.so
Для проверки можно использовать общую команду pkcs11-tool --module $(find /usr/lib/ecss/ecss-ds/lib/ -name librtpkcs11ecp.so | head -n1) -L
Запустите пакеты ecss-mycelium и ecss-ds на первом хосте и убедитесь, что они остановлены на втором. Если этого не сделать, то паспорт и лицензия могут быть не добавлены с первого раза.
ecss1:
sudo systemctl start ecss-mycelium
sudo systemctl start ecss-ds
ecss2:
sudo systemctl stop ecss-mycelium
sudo systemctl stop ecss-ds
Перейдите в CLI - CoCon:
ssh admin@localhost -p 8023
password: password
Проверьте состояние системы:
admin@ds1@ecss1:/$ system-status Checking... ┌─┬───────────────┬──────────────────────────┬───────────────┬─────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes │Uptime│ ├─┼───────────────┼──────────────────────────┼───────────────┼─────────────┼──────┤ │ │ds1@ecss1 │ecss-ds-3.14.10.222 │ds1@ecss1 │ds1@ecss1 │0h 9m │ │ │mycelium1@ecss1│ecss-mycelium-3.14.10.222 │mycelium1@ecss1│not running │0h 9m │ └─┴───────────────┴──────────────────────────┴───────────────┴─────────────┴──────┘
Чтобы узлы системы смогли встать в работу, надо сконфигурировать систему указав имена хостов на которых развёрнуты ecss-сервисы.
Команда в коконе: system/clusters/set [<host1>, <host2>, ... <hostN>]. В случае кластера из 2-х хостов выполнить команду (имя хоста ecss1 и ecss2):
выполняется в CoCon
/system/clusters/set [ecss1, ecss2]
Выйти из CoCon, перезапустить ecss сервисы командой:
на ecss1
sudo systemctl restart ecss-*
Перейдите в CLI CoCon:
ssh admin@localhost -p 8023
password: password
Далее необходимо загрузить паспорт и лицензии в систему:
cluster/storage/ds1/licence/set-passport <ssw passport> ok cluster/storage/ds1/licence/add <ssw licence> ok
Выйдите из CoCon и перезапустите сервисы ecss-ds и ecss-mycelium на первом и запустите остальные сервисы втором хосте.
ecss1:
sudo systemctl restart ecss-mycelium
sudo systemctl restart ecss-ds
sudo systemctl start ecss-core ecss-pa-sip ecss-mediator
ecss2:
sudo systemctl start ecss-mycelium ecss-ds ecss-core ecss-pa-sip ecss-mediator
выполнить проверку лицензий, для этого зайти в CoCon :
на ecss1
ssh admin@localhost -p8023
проверить наличие лицензией:
выполняется в CoCon
/cluster/storage/ds1/licence/list-licence
в случае если получили такую ошибку :
проверить имя хоста, командой сат /etc/hostname
в случае имени хоста отличного от ecss1 / ecss2 заменить на ecss1 / ecss2 , выполнив команду sudo nano /etc/hostname
Установка остальных пакетов ecss и их настройка
Для корректной работы кластерной конфигурации необходимо настроить работу RestFS на базе GlusterFS-сервера.
Установка имени кластера mycelium.config
Для работы системы нужно на обоих серверах указать одинаковое имя кластера. Для этого откройте файл mycelium1.config в текстовом редакторе:
sudo nano /etc/ecss/ecss-mycelium/mycelium1.config
Выполните настройку на обоих хостах.
Настройка имени кластера (/etc/ecss/ecss-mycelium/mycelium1.config) |
---|
%%% -*- mode:erlang -*- .... |
Далее следует проверить в файле /etc/dnsmasq.d/ecss-broker, что адреса primary и secondary broker соответствуют указанным при инсталляции пакета ecss-node.
cat /etc/dnsmasq.d/ecss-broker
Пример содержания файла на ecss1 и ecss2 (содержимое файлов должно быть одинаковым на обоих серверах):
address=/primary.broker.ecss/10.0.10.11 address=/secondary.broker.ecss/10.0.10.12
glusterfs
Выполните настройку glusterfs для ecss-restfs на первом хосте (ecss1),
для этого установите пакеты glusterfs-server и attr на обоих хостах:
sudo apt install glusterfs-server attr
Запустите glasterd на обоих хостах кластера:
sudo systemctl start glusterd
После запуска выполните создание связи с удаленным виртуальным хостом, выполните команду на ecss1:
sudo gluster peer probe 10.0.10.12
Проверьте наличие созданной связи, выполните команду на ecss2:
sudo gluster peer status
Должна появиться информация о первом хосте — ecss1:
Number of Peers: 1 Hostname: ecss1 Uuid: d7319720-ea3a-43a4-a7d5-e97bf9d205b9 State: Peer in Cluster (Connected)
Выполните аналогичную проверку на другом хосте — ecss1. Вы также должны увидеть информацию о партнере ecss2 (или его IP-адрес).
Создайте кластер для репликации, запустите репликацию и посмотрите ее статус, выполните следующие команды на ecss1:
sudo gluster volume create ecss_volume replica 2 transport tcp 10.0.10.11:/var/lib/ecss/glusterfs 10.0.10.12:/var/lib/ecss/glusterfs force
На ecss1:
sudo gluster volume start ecss_volume
На обоих хостах ecss1 и ecss2:
sudo gluster volume info
Таким образом, статус репликации будет выглядеть следующим образом, необходимо обратить внимание на поля "Status" и "Bricks" — они должны иметь следующий вид:
Volume Name: ecss_volume Type: Replicate Volume ID: 3bfc7587-0f85-48ed-9612-21f0d79c6e52 Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: 10.0.10.11:/var/lib/ecss/glusterfs Brick2: 10.0.10.12:/var/lib/ecss/glusterfs Options Reconfigured: transport.address-family: inet nfs.disable: on performance.client-io-threads: off
Чтобы смонтировать glusterfs раздел, выполните на обоих хостах ecss1 и ecss2 следующие действия:
- Создайте новый systemd unit
sudo nano /etc/systemd/system/ecss-glusterfs-mount.service
- Добавьте в него следующую конфигурацию:
[Unit]
Description=mount glusterfs
After=network.target
Requires=network.target
[Service]
RemainAfterExit=no
Type=forking
RestartSec=10s
Restart=always
ExecStart=/sbin/mount.glusterfs localhost:/ecss_volume /var/lib/ecss/restfs -o fetch-attempts=10
ExecStop=/bin/umount /var/lib/ecss/restfs
[Install]
WantedBy=multi-user.target
- Добавить unit в автозагрузку на обоих хостах.
sudo systemctl enable glusterd.service
sudo systemctl enable ecss-glusterfs-mount.service
- Создайте директорию для корректной установки RestFS на обоих хостах:
sudo mkdir /var/lib/ecss/restfs
- Перезагрузить хосты (рекомендуется):
sudo reboot
Если хосты не могут быть перезагружены, то можно выполнить следующие команды на обоих хостах:
sudo systemctl daemon-reload
sudo systemctl restart ecss-glusterfs-mount.service
Проверьте, что раздел под монтировался, для этого на обоих хостах выполните команду - df -h:
df -h
/dev/sda10 19G 6,5G 11G 38% /var/lib/mysql
/dev/sda8 4,5G 213M 4,1G 5% /var/log
/dev/sda5 37G 48M 35G 1% /var/lib/ecss/ecss-media-server/records
/dev/sda6 19G 44M 18G 1% /var/lib/ecss/cdr
/dev/sda7 19G 44M 18G 1% /var/lib/ecss/statistics
/dev/sda9 19G 7,6G 9,7G 44% /var/log/ecss
localhost:/ecss_volume 46G 59M 44G 1% /var/lib/ecss/restfs
При просмотре информации должен появиться подмонтированный раздел —
localhost:/ecss_volume 46G 59M 44G 1% /var/lib/ecss/restfs
Далее на обоих хостах выполните установку всех необходимых пакетов (подробнее по установке необходимых и дополнительных пакетов в разделе "Инсталляция пакетов ECSS"):
Установка пакета ecss-restfs и его настройка
sudo apt install ecss-restfs
Установка ecss-restfs. В ходе установки нужно будет ответить на ряд вопросов для создания необходимых конфигурационных файлов. Также инсталлятор предложит установить и настроить пакет Text2speech от Yandex.
Вопросы ecss-restfs | Ответы для ecss1 | Ответы для ecss2 |
---|---|---|
Хотите ли вы использование функции Text To Speeh (Use TTS service) | No (значение по умолчанию) | No (значение по умолчанию) |
Хотите настроить сервис телефонной книги (Configure phone book) | No (значение по умолчанию) | No (значение по умолчанию) |
Хотите настроить сервис распознования речи (Configure speech recognition service) | No (значение по умолчанию) | No (значение по умолчанию) |
Ничего не выбирать | Ok (необходимо выбрать) | Ok (необходимо выбрать) |
после установки пакета ecss-restfs проверьте наличие wav файлов авто-информатора в директории /var/lib/ecss/restfs/system/sounds/ командой:
ll /var/lib/ecss/restfs/system/sounds/
наличие wav файлов в указной выше директории говорит о корректности установки пакета ecss-restfs.
осталось проверить доступность этих файлов извне, для этой проверки выполним поочередно команду на хотсе ecss1 и ecss2:
wget http://ecss1:9990/system/sounds/ai_you.wav
wget http://ecss2:9990/system/sounds/ai_you.wav
abf@ecss1:~$ wget http://ecss1:9990/system/sounds/ai_you.wav
--2023-12-18 17:43:29-- http://ecss1:9990/system/sounds/ai_you.wav
Resolving ecss1 (ecss1)... 127.0.1.1, 10.0.10.11
Connecting to ecss1 (ecss1)|127.0.1.1|:9990... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11670 (11K) [audio/x-wav]
Saving to: ‘ai_you.wav’
ai_you.wav 100%[========================================================================================>] 11,40K --.-KB/s in 0s
2023-12-18 17:43:29 (301 MB/s) - ‘ai_you.wav’ saved [11670/11670]
проверочные файлы можно удалить
abf@ecss1:~$ rm ai_you.wav
abf@ecss1:~$ rm ai_you.wav.1
Установка media и web пакетов ecss и их настройка
sudo apt install ecss-media-server ecss-web-conf
Для медиасервера (ecss-media-server/MSR) возможно начальное конфигурирование с записью параметров в файл конфигурации,
для этого нужно провести конфигурацию transport-port, transport bind-addr,mcc bind-addres, mcc bind-port:
Вопросы ecss-media-server | Ответы для ecss1 | Ответы для ecss2 |
---|---|---|
[ Sip port ] Введите порт (Enter) | 5040 (значение по умолчанию) | 5040 (значение по умолчанию) |
[ MSR SIP ] Введите bind-ip адрес (Enter) | 10.0.20.11 (необходимо ввести) | 10.0.20.12 (необходимо ввести) |
[MSR Control-Channel] Введите bind-ip-адрес | 10.0.20.11 (необходимо ввести) | 10.0.20.12 (необходимо ввести) |
[ MSR Control-Channal ] Введите порт | 5700 (значение по умолчанию) | 5700 (значение по умолчанию) |
Установить настройки аккаунта по умолчанию: | yes (значение по умолчанию) | yes (значение по умолчанию) |
[ MSR Name ]Введите имя для аккаунта по умолчанию(Enter) | msr.ecss1 (значение по умолчанию) | msr.ecss2 (значение по умолчанию) |
[ MSR Realm Address ] Введите сетевой адрес ядра (Entrer) | 10.0.20.11 (необходимо ввести) | 10.0.20.12 (необходимо ввести) |
[ MSR Realm Port ] Введите сетевой порт ядра (Entrer) | 5000 (значение по умолчанию) | 5000 (значение по умолчанию) |
Web-конфигуратор позволяет сделать управление системой более наглядным и комфортным. Установка web-конфигуратора не является обязательной, но рекомендуется.
Также при установке пакета ecss-web-conf автоматически устанавливается пакет ecss-subsriber-portal-ui. Приложение "Портал абонента" системы ECSS-10 позволяет абонентам системы самостоятельно управлять услугами, просматривать информацию по совершенным вызовам, активным конференциям, а также настраивать собственные IVR-скрипты для входящих вызовов. Описание работы веб-конфигуратора приведено в разделе "Портал абонента".
Вопросы ecss-web-conf | Ответы для ecss1 | Ответы для ecss2 |
---|---|---|
IP-адрес или имя хоста сервера БД MySQL на котором будет развернута БД web-conf(Input IP address or hostname of MySQL db for web-conf DB) | 127.0.0.1 (значение по умолчанию) | 127.0.0.1 (значение по умолчанию) |
Порт доступа к серверу БД MySQL на котором будет развернута БД web-conf (Input port of MySQL db for web-conf DB | 3306 (значение по умолчанию) | 3306 (значение по умолчанию) |
IP-адрес или имя хоста на котором установлен ECSS-10 для доступа к http_terminal\'y(Input IP address or hostname for ECSS-10 with http_terminal) | 127.0.0.1 (значение по умолчанию) | 127.0.0.1 (значение по умолчанию) |
Порт ECSS-10 http_terminal\'a (Input port SSW http_terminal) | 9999 (значение по умолчанию) | 9999 (значение по умолчанию) |
Логин ECSS-10 http_terminal\'a (Input login for SSW http_terminal) | admin (значение по умолчанию) | admin (значение по умолчанию) |
Пароль ECSS-10 http_terminal\'a (Input password for SSW http_terminal) | password (необходимо ввести) | password (необходимо ввести) |
После формирования конфигураций по умолчанию переходим в директорию, в которой находятся файлы конфигурации и производим их проверку:
cd /etc/ecss/ecss-media-server/
cat config.xml
cat conf.d/default.xml
Внутри лежит конфигурация для msr: config.xml, в директории conf.d лежит конфигурация default.xml.
По своей сути default.xml — это дополнение config.xml, которое определяет секцию аккаунтов. Это сделано для того, чтобы после обновлений пакета данная конфигурация оставалась неизменной. Вид config.xml представлен здесь: файл конфигурации.
<?xml version="1.0" encoding="utf-8"?>
<config date="02:30:33 07.12.2023">
<general log-level="3" log-rotate="yes" max-calls="8192" max-in-group="512" load-sensor="media" load-delta="10" calls-delta="100" spool-dir-size="100M" log-name="msr.log" log-path="/var/log/ecss/media-server" use-srtp="disabled" enable-ice-transport="no" ice-update="no" aggressive-ice="yes" stun-server="" suspicious-mode="no"/>
<transport bind-addr="10.0.20.11" port="5040" transport="udp+tcp"/>
<!-- By default configured public TURN-server -->
<turn-server use-turn="no" host="numb.viagenie.ca" user="webrtc@live.com" password="muazkh"/>
<media mixer-clock-rate="8000" use-vad="no" cng-level="0" jb-size="60" rtcp-timeout="0" rtp-timeout="350" udp-src-check="no" cn-multiplier="3" port-start="12000" port-range="2048" tias-in-sdp="no" thread-cnt="2" vid-enc-threads="2" vid-dec-threads="2" video-conf-layout="evenly" keyframe-interval="1000" vid-decode-delay="100" silence-threshold="-30" dtmf-flash-disable="no" video-dscp="0" other-dscp="0" dummy-video-src="/usr/share/ecss-media-server/video/dummy_video.yuv" video-enc-width="640" video-enc-height="360" finalsilence="1000" rtcp-stat-dump="yes" silent-codec-switch="yes"/>
<codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
<accounts>
<!-- <dynamic msr_name="msr.name"
realm="sip:127.0.0.1:5000"
dtmf_mode="rfc+inband+info"
auth_name="user"
auth_password="password" /> -->
</accounts>
<pbyte>
<mcc bind-addr="10.0.20.11" port="5700"/>
</pbyte>
<conf_dir path="/etc/ecss/ecss-media-server/conf.d"/>
<rtp>
<auto addr-v4=""/>
</rtp>
</config>
По умолчанию после инсталляции ECSS-10 активизирует только кодеки — pcma, pcmu, g722, h264, h263-1998, t38. Остальные имеют статус =0 = выкл. Если хотите активизировать остальные кодеки, в редакторе nano измените приоритет с 0 на цифру приоритета (уровень приоритета не должен повторятся для сервиса audio/video/fax)
sudo nano /etc/ecss/ecss-media-server/config.xml
строчку -
<codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
привести к виду -
<codec pcma="1" pcmu="2" ilbc="6" gsm="4" g722="3" g729="5" speex="7" l16="8" g7221="9" opus="10" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
Рассмотрим секцию аккаунтов (файл default.xml):
после инсталляции пакетов в фале будет указан только свой локальный ip-add , необходимо добавить строчку с ip-add партнера и привести содержимое файла к виду указанному снизу:
sudo nano /etc/ecss/ecss-media-server/conf.d/default.xml
Настройка msr для ecss1 (/etc/ecss/ecss-media-server/conf.d/default.xml) | Настройка msr для ecss2 (/etc/ecss/ecss-media-server/conf.d/default.xml) |
---|---|
BASH
|
BASH
|
В ней указаны текущие настройки, согласно которым происходит регистрация msr на core.
Основными параметрами здесь являются: msr_name и realm:
- msr_name — параметр, определяющий название msr. (рекомендуется задавать msr. и к какому хосту он принадлежит, например msr.ecss1);
- realm — определяет адрес для регистрации на ядре. Точка входа по умолчанию — порт 5000.
Описание настройки остальных сервисов приведено в разделе "Инсталляция дополнительных необязательных пакетов".
Настройка VRRP для SIP-адаптера
Выполните настройку VRRP для SIP-адаптера, для этого на обоих хостах создайте файлы следующего содержания:
sudo nano /etc/keepalived/sip.conf
Для Astra Linux
Если ECSS-10 установлен на Astra Linux, то необходимо изменить скрипт проверки доступности контрольного SIP-порта /usr/bin/ecss_pa_sip_port:
#!/bin/bash
netstat -plane | grep $1
etc/keepalived/sip.conf для ecss1 | etc/keepalived/sip.conf для ecss2 |
---|---|
BASH
|
BASH
|
В данном случае была добавлена поддержка виртуальных интерфейсов со связью Master - Backup. Для ecss1 основным будет являться net.20:SIP1, а запасным — net.20:SIP2 соответственно. Важно учесть, что в конфигурации учтено использование адресных переменных. В секции interface требуется указать, на каком интерфейсе будут слушаться VRRP-сообщения, а в секции virtual_ipaddress требуется указать интерфейс, на котором будет восстановлен виртуальный адрес.
Выполните перезапуск keepalived:
sudo systemctl restart keepalived.service
для проверки правильности установки выполните команду ifconfig, в конце выходного сообщения вы должны видеть новый интерфейс - net.20:SIP1 с выбранным IP-адресом
abf@ecss1:~$ ifconfig
. . .
net.20:SIP1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.20.31 netmask 255.255.255.0 broadcast 0.0.0.0
ether 08:00:27:6d:4f:02 txqueuelen 1000 (Ethernet)
Дальнейшая настройка
snpmd
Настройка SNMP описана в разделе "Управление и мониторинг по протоколу SNMP".
Настройка безопасности. SSH
Выполните настройку сервера SSH:
sudo nano /etc/ssh/sshd_config
Укажите в конфигурационном файле порт и адрес, по которому можно обратиться к серверу:
Настройка ssh для ecss1 (/etc/ssh/sshd_config) | Настройка ssh для ecss2 (/etc/ssh/sshd_config) |
---|---|
# This is the sshd server system-wide configuration file. See # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with Port 2000 <...> | # This is the sshd server system-wide configuration file. See # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with Port 2000 <...> |
Перезапустите ssh:
sudo systemctl restart ssh.service
Добавление медиа-ресурсов в интерфейсе командной строки (CLI)
Зайдите в CLI - CoCon:
ssh admin@localhost -p 8023
password: password
Медиаресурс — это описание параметров медиасервера, необходимых для работы с ним.
declare
Команда для объявления подключения медиасервера к ECSS-10.
Для работы в режиме предварительно настроенной системы можно заранее прописать медиаресурсы, информация о которых известна.
Для этого необходимо создать описание известных медиасерверов с указанием всех параметров, что позволить начать работу с медиасервером сразу после его регистрации.
Команда для создания конфигурации медиасервера:
Путь команды:
/system/media/resource/declare
Синтаксис:
declare <node> by_contact <contact> <zone> <site> <is active>
или
declare <node> by_iface <msr> <acc_id> <iface> <zone> <site> <is active>
Параметры:
<node> — имя ноды core;
<contact> — contact uri декларируемого медиаресурса;
<zone> — логическая зона обслуживания MSR;
<site> — идентификатор сети обслуживания MSR;
<is active> — состояние активности медиаресурса, значения true/false;
<msr> — имя MSR;
<acc_id> — номер идентификатор ресурса;
<iface> — название интерфейса.
Пример:
После устанавливается связь MSR- и Core-подсистем. Для этого пропишите команду:
abf@[mycelium1@ecss1#ECSS 010070]:/$ /system/media/resource/declare core1@ecss1 contact net.20@msr.ecss1 default local true
abf@[mycelium1@ecss1#ECSS 010070]:/$ /system/media/resource/declare core1@ecss2 contact net.20@msr.ecss2 default local true
abf@[mycelium1@ecss1#ECSS 010070]:/$ /system/media/resource/declare core1@ecss1 contact net.20@msr.ecss2 default local true
abf@[mycelium1@ecss1#ECSS 010070]:/$ /system/media/resource/declare core1@ecss2 contact net.20@msr.ecss1 default local true
. . .
Declared media resources
┌─────────────┬──────────────────┬────────┬─────────┬───────┐
│ Node │ Contact │ Active │ Zone │ Site │
├─────────────┼──────────────────┼────────┼─────────┼───────┤
│ core1@ecss2 │ net.20@msr.ecss1 │ true │ default │ local │
└─────────────┴──────────────────┴────────┴─────────┴───────┘
info
Команда для просмотра информации о состоянии подключения конкретного медиаресурса.
Путь команды:
/system/media/resource/info
Синтаксис:
info <node> <contact>
Параметры:
<contact> — contact uri декларируемого медиаресурса;
<node> — имя ноды.
Пример:
abf@[mycelium1@ecss1#ECSS 010070]:/$ system/media/resource/info core1@ecss1 net.20@msr.ecss1
Media resource specific for node core1@ecss1:
┌─┬─────────────────┬─────────────────────┐
│F│ Parameter │ Value │
├─┼─────────────────┼─────────────────────┤
│r│ Contact │ net.20@msr.ecss1 │
│r│ Status │ registered │
│r│ Cc-status │ connected │
│r│ Cc-status uptime│ 00:40:46 │
│r│ Cc-id │ e6d07f │
│r│ Address │ 10.0.20.11:5700 │
│r│ Register time │ 2023/12/07 03:48:48 │
│r│ Expired │ 131 │
│r│ Iface │ net.20(10.0.20.11) │
│ │ Active │ true │
│ │ Zone │ default │
│ │ Site │ local │
│r│ MSR version │ 3.14.14.24 │
│r│ MSR load │ 0 │
│r│ MSR perf coef │ 1.0 │
└─┴─────────────────┴─────────────────────┘
Legend:
Column F - means Flag, values r - flag for readonly parameter
list
Команда для просмотра списка медиаресурсов в системе ECSS-10.
Путь команды:
/system/media/resource/list
Синтаксис:
list [active | all | register]
Параметры:
active — отображать только активные медиаресурсы (по умолчанию);
register — отображать только зарегистрированные медиаресурсы;
short — отобразить минимальную информацию;
all — отображать все задекларированные медиаресурсы.
По умолчанию команда выдает список зарегистрированных медиасерверов.
Пример:
abf@[mycelium1@ecss1#ECSS 010070]:/$ system/media/resource/list all
All media resource selected list specific:
┌─────────────┬───────────┬────────────┬───────────┬──────┬────────┬───────────┬───────────┬─────────────────┬──────────────┬───────────────┬────────┬─────────┬───────┬────────────────────────┬────────────┬─────────┐
│ Node │ MSR │ MSR │ MSR │ MSR │ Cc-id │ Cc-status │ Cc-uptime │ Cc-address │ Iface │ Iface │ Active │ Zone │ Site │ Contact │ Status │ Expired │
│ │ │ version │ perf coef │ load │ │ │ │ │ name │ addr │ │ │ │ │ │ │
├─────────────┼───────────┼────────────┼───────────┼──────┼────────┼───────────┼───────────┼─────────────────┼──────────────┼───────────────┼────────┼─────────┼───────┼────────────────────────┼────────────┼─────────┤
│ core1@ecss1 │ msr.ecss1 │ 3.14.14.24 │ 1.0 │ 0 │ e6d07f │ connected │ 00:43:03 │ 10.0.20.11:5700 │ net.20 │ 10.0.20.11 │ true │ default │ local │ net.20@msr.ecss1 │ registered │ 114 │
│ │ │ │ │ │ │ │ │ │ bond1 │ 192.168.56.11 │ false │ │ │ bond1@msr.ecss1 │ registered │ 114 │
│ │ │ │ │ │ │ │ │ │ enp0s3 │ 10.0.2.15 │ false │ │ │ enp0s3@msr.ecss1 │ registered │ 114 │
│ │ │ │ │ │ │ │ │ │ lo │ 127.0.0.1 │ false │ │ │ lo@msr.ecss1 │ registered │ 114 │
│ │ │ │ │ │ │ │ │ │ net.10:mysql │ 10.0.10.10 │ false │ │ │ net.10:mysql@msr.ecss1 │ registered │ 114 │
│ │ │ │ │ │ │ │ │ │ net.10 │ 10.0.10.11 │ false │ │ │ net.10@msr.ecss1 │ registered │ 114 │
│ │ │ │ │ │ │ │ │ │ net.20:SIP1 │ 10.0.20.31 │ false │ │ │ net.20:SIP1@msr.ecss1 │ registered │ 116 │
│ │ │ │ │ │ │ │ │ │ net.20:SIP2 │ 10.0.20.32 │ false │ │ │ net.20:SIP2@msr.ecss1 │ registered │ 114 │
│ │ msr.ecss2 │ 3.14.14.24 │ 1.0 │ 0 │ 3a91cf │ connected │ 00:43:00 │ 10.0.20.12:5700 │ net.20 │ 10.0.20.12 │ true │ default │ local │ net.20@msr.ecss2 │ registered │ 116 │
│ │ │ │ │ │ │ │ │ │ bond1 │ 192.168.56.12 │ false │ │ │ bond1@msr.ecss2 │ registered │ 116 │
│ │ │ │ │ │ │ │ │ │ enp0s3 │ 10.0.2.15 │ false │ │ │ enp0s3@msr.ecss2 │ registered │ 116 │
│ │ │ │ │ │ │ │ │ │ lo │ 127.0.0.1 │ false │ │ │ lo@msr.ecss2 │ registered │ 116 │
│ │ │ │ │ │ │ │ │ │ net.10 │ 10.0.10.12 │ false │ │ │ net.10@msr.ecss2 │ registered │ 116 │
│ │ │ │ │ │ │ │ │ │ net.20:SIP1 │ 10.0.20.31 │ false │ │ │ net.20:SIP1@msr.ecss2 │ registered │ 117 │
│ │ │ │ │ │ │ │ │ │ net.20:SIP2 │ 10.0.20.32 │ false │ │ │ net.20:SIP2@msr.ecss2 │ registered │ 114 │
│ core1@ecss2 │ msr.ecss1 │ 3.14.14.24 │ 1.0 │ 0 │ e6d07f │ connected │ 00:42:58 │ 10.0.20.11:5700 │ net.20 │ 10.0.20.11 │ true │ default │ local │ net.20@msr.ecss1 │ registered │ 120 │
│ │ │ │ │ │ │ │ │ │ bond1 │ 192.168.56.11 │ false │ │ │ bond1@msr.ecss1 │ registered │ 120 │
│ │ │ │ │ │ │ │ │ │ enp0s3 │ 10.0.2.15 │ false │ │ │ enp0s3@msr.ecss1 │ registered │ 120 │
│ │ │ │ │ │ │ │ │ │ lo │ 127.0.0.1 │ false │ │ │ lo@msr.ecss1 │ registered │ 120 │
│ │ │ │ │ │ │ │ │ │ net.10:mysql │ 10.0.10.10 │ false │ │ │ net.10:mysql@msr.ecss1 │ registered │ 120 │
│ │ │ │ │ │ │ │ │ │ net.10 │ 10.0.10.11 │ false │ │ │ net.10@msr.ecss1 │ registered │ 120 │
│ │ │ │ │ │ │ │ │ │ net.20:SIP1 │ 10.0.20.31 │ false │ │ │ net.20:SIP1@msr.ecss1 │ registered │ 120 │
│ │ │ │ │ │ │ │ │ │ net.20:SIP2 │ 10.0.20.32 │ false │ │ │ net.20:SIP2@msr.ecss1 │ registered │ 120 │
│ │ msr.ecss2 │ 3.14.14.24 │ 1.0 │ 0 │ 3a91cf │ connected │ 00:42:57 │ 10.0.20.12:5700 │ net.20 │ 10.0.20.12 │ true │ default │ local │ net.20@msr.ecss2 │ registered │ 121 │
│ │ │ │ │ │ │ │ │ │ bond1 │ 192.168.56.12 │ false │ │ │ bond1@msr.ecss2 │ registered │ 121 │
│ │ │ │ │ │ │ │ │ │ enp0s3 │ 10.0.2.15 │ false │ │ │ enp0s3@msr.ecss2 │ registered │ 121 │
│ │ │ │ │ │ │ │ │ │ lo │ 127.0.0.1 │ false │ │ │ lo@msr.ecss2 │ registered │ 120 │
│ │ │ │ │ │ │ │ │ │ net.10 │ 10.0.10.12 │ false │ │ │ net.10@msr.ecss2 │ registered │ 121 │
│ │ │ │ │ │ │ │ │ │ net.20:SIP1 │ 10.0.20.31 │ false │ │ │ net.20:SIP1@msr.ecss2 │ registered │ 121 │
│ │ │ │ │ │ │ │ │ │ net.20:SIP2 │ 10.0.20.32 │ false │ │ │ net.20:SIP2@msr.ecss2 │ registered │ 120 │
└─────────────┴───────────┴────────────┴───────────┴──────┴────────┴───────────┴───────────┴─────────────────┴──────────────┴───────────────┴────────┴─────────┴───────┴────────────────────────┴────────────┴─────────┘
Добавление управления регистратором для MSR медиа менеджера в интерфейсе командной строки (CLI)
/system/media/registrar/ - команды управления регистратором для MSR медиа менеджера
set
Команда для изменения общих и индивидуальных параметров.
Путь команды:
/system/media/registrar/set
Синтаксис настройки общих параметров:
set common <FIELD> <VALUE>
Параметры:
<FIELD> - имя настраиваемого параметра;
<VALUE> - значение настраиваемого параметра
Где
- common - тип выставляемого параметра;
- <common parameter> - общий параметр медиарегистратора для всех нод: registration-timeout;
- private - тип выставляемого параметра;
- <node name> - имя ноды на которой находится медиарегистратор;
- <private parameter> - параметр медиарегистратора, который выставляется на <node name>: is-active, listen-interface & listen-port.
Cписок параметров доступных для настройки:
- is-active - позволяет включить или выключить регистратор (false - деактивирует регистратор, регистратор перестает принимать SIP трафик);
- listen-interface - имя интерфейса, который использует регистратор;
- listen-port - порт, на котором регистратор принимает запросы на регистрацию (по умолчанию 5000);
- registration-timeout - таймер перерегистрации, диапазон значений от 60 до 86400.
В общих параметрах доступна настройка времени регистрации, по умолчанию установлено 60 секунд.
Пример:
Установить время регистрации 60 секунд:
admin@mycelium1@ecss1:/$ system/media/registrar/set common registration-timeout 60 Common parameter registration-timeout set to 60.
Синтаксис настройки индивидуальных параметров:
system/media/registrar/set private <CORE> <FIELD> <VALUE>
Параметры:
<CORE> - нода ядра, для которой настраивается Registrar-сервер;
<FIELD> - имя настраиваемого параметра;
<VALUE> - значение настраиваемого параметра.
Настраиваемые параметры:
- is-active - активен ли Registrar-сервер, принимает значения true | false;
- listen-ip - ip-адрес, на котором Registrar-сервер будет принимать соединения (по умолчанию 0.0.0.0);
- listen-port - сетевой порт, на котором Registrar-сервер будет принимать соединения (по умолчанию 5000).
Пример:
Установить ipадрес для приема соединений от медиасервера:
abf@[mycelium1@ecss1#ECSS 010070]:/$ /system/media/registrar/set private core1@ecss1 listen-ip 10.0.20.11 Private parameter listen-ip set to 10.0.20.11 at node core1@ecss1. [exec at: 18.12.2023 17:08:12, exec time: 175ms, nodes: core1@ecss1 v.3.14.14.613]
abf@[mycelium1@ecss1#ECSS 010070]:/$ /system/media/registrar/set private core1@ecss2 listen-ip 10.0.20.12 Private parameter listen-ip set to 10.0.20.12 at node core1@ecss2. [exec at: 18.12.2023 17:20:50, exec time: 155ms, nodes: core1@ecss1 v.3.14.14.613]
info
Команда просмотра текущих настроек Registrar-сервера.
Путь команды:
/system/media/registrar/info
Пример:
abf@[mycelium1@ecss1#ECSS 010070]:/$ system/media/registrar/info Common parameters: ┌───────────────────────────┬───────┐ │ Parameter │ Value │ ├───────────────────────────┼───────┤ │ registration-timeout, sec │ 180 │ └───────────────────────────┴───────┘ Private parameters: ┌─────────────┬─────────┬───────────┬────────────┬─────────────┐ │ Node │ Status │ Is-active │ Listen-ip │ Listen-port │ ├─────────────┼─────────┼───────────┼────────────┼─────────────┤ │ core1@ecss1 │ active │ true │ 10.0.20.11 │ 5000 │ │ core1@ecss2 │ active │ true │ 10.0.20.12 │ 5000 │ │ core1@ecss3 │ unknown │ true │ 0.0.0.0 │ 5000 │ │ core1@ecss4 │ unknown │ true │ 0.0.0.0 │ 5000 │ └─────────────┴─────────┴───────────┴────────────┴─────────────┘ [exec at: 18.12.2023 17:23:05, exec time: 23ms, nodes: core1@ecss2 v.3.14.14.613]
После того как все сервисы будут запущены, ноды какое-то время будут устанавливать связь. Как только все ноды загрузятся , при выполнении запроса system-status, последует вывод следующей информации:
abf@[mycelium1@ecss1#ECSS 010070]:/$ system-status
Checking...
┌─┬───────────────┬─────────────────────────┬───────────────────────────────┬─────────────────────┬───────┐
│ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime │
├─┼───────────────┼─────────────────────────┼───────────────────────────────┼─────────────────────┼───────┤
│ │core1@ecss1 │ecss-core-3.14.14.613 │core1@ecss1,core1@ecss2 │not running │23m 19s│
│ │core1@ecss2 │ecss-core-3.14.14.613 │core1@ecss1,core1@ecss2 │not running │23m 14s│
│ │ds1@ecss1 │ecss-ds-3.14.14.613 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │23m 19s│
│ │ds1@ecss2 │ecss-ds-3.14.14.613 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │23m 14s│
│ │md1@ecss1 │ecss-mediator-3.14.14.613│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │23m 19s│
│ │md1@ecss2 │ecss-mediator-3.14.14.613│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │23m 14s│
│ │mycelium1@ecss1│ecss-mycelium-3.14.14.613│mycelium1@ecss1,mycelium1@ecss2│not running │23m 19s│
│ │mycelium1@ecss2│ecss-mycelium-3.14.14.613│mycelium1@ecss1,mycelium1@ecss2│not running │23m 15s│
│ │sip1@ecss1 │ecss-pa-sip-3.14.14.613 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│23m 19s│
│ │sip1@ecss2 │ecss-pa-sip-3.14.14.613 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│23m 15s│
└─┴───────────────┴─────────────────────────┴───────────────────────────────┴─────────────────────┴───────┘
All services are started.
Active media resource selected list specific:
┌─────────────┬───────────┬────────────┬───────────┬───────────┐
│ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │
│ │ │ version │ │ │
├─────────────┼───────────┼────────────┼───────────┼───────────┤
│ core1@ecss1 │ msr.ecss1 │ 3.14.14.24 │ connected │ 00:20:41 │
│ │ msr.ecss2 │ 3.14.14.24 │ connected │ 00:20:39 │
│ core1@ecss2 │ msr.ecss1 │ 3.14.14.24 │ connected │ 00:20:36 │
│ │ msr.ecss2 │ 3.14.14.24 │ connected │ 00:20:36 │
└─────────────┴───────────┴────────────┴───────────┴───────────┘
В примере выше видно, что ноды вошли в кластер и MSR зарегистрировались на ноде ecss-core.
Создание и настройка группы SIP-IP-адресов (IP-set)
Произведите настройку адаптера SIP согласно ТЗ (команды выполнить в CoCon):
abf@[mycelium1@ecss1#ECSS 010070]:/$ cluster/adapter/sip1/sip/network/set ip_set test_set node-ip node = sip1@ecss1 ip = 10.0.20.31
Property "ip_set" successfully changed from:
to
test_set: no ports set
test_set: sip1@ecss1 10.0.20.31
test_set: dscp 0.
abf@[mycelium1@ecss1#ECSS 010070]:/$ cluster/adapter/sip1/sip/network/set ip_set test_set node-ip node = sip1@ecss2 ip = 10.0.20.32
Property "ip_set" successfully changed from:
test_set: no ports set
test_set: sip1@ecss1 10.0.20.31
test_set: dscp 0
to
test_set: no ports set
test_set: sip1@ecss1 10.0.20.31
test_set: sip1@ecss2 10.0.20.32
test_set: dscp 0.
abf@[mycelium1@ecss1#ECSS 010070]:/$ cluster/adapter/sip1/sip/network/set ip_set test_set listen-ports list = [5062]
Property "ip_set" successfully changed from:
test_set: no ports set
test_set: sip1@ecss1 10.0.20.31
test_set: sip1@ecss2 10.0.20.32
test_set: dscp 0
to
test_set: 5062
test_set: sip1@ecss1 10.0.20.31
test_set: sip1@ecss2 10.0.20.32
test_set: dscp 0
Создание Домена и подключение IP-set
Создайте Домен (виртуальную АТС) и присвойте ему созданную выше группу (IP-set) настроек SIP-адаптера (команды выполняются в CoCon):
abf@[mycelium1@ecss1#ECSS 010070]:/$ domain/declare test_domain --add-domain-admin-privileges --add-domain-user-privileges
New domain test_domain is declared
abf@[mycelium1@ecss1#ECSS 010070]:/$ domain/test_domain/sip/network/set ip_set [test_set]
Property "ip_set" successfully changed from:
[]
to
["test_set"].
Добавление услуг
Установка всех услуг указных в лицензии:
admin@[mycelium1@ecss1]:/$ cluster/storage/ds1/ss/install ds1@ecss1 ss_*
Successfully installed: /var/lib/ecss/ss/ss_dnd.xml
Successfully installed: /var/lib/ecss/ss/ss_clir.xml
...
Successfully installed: /var/lib/ecss/ss/ss_chunt.xml
После установки в систему всех услуг, администратор системы должен открыть доступ на управление услугами оператору Домена (виртуальной АТС). Для этого используются команду:
Разрешить оператору Домена (виртуальной АТС) "test_domain" управлять всеми услугами :
admin@[mycelium1@ecss1]:/$ cluster/storage/ds1/ss/access-list add test_domain *
Supplementary services successfully added in the domain test_domain.
Для возможности применения пакета услуг у абонентов сразу после создания, необходимо настроить политику применения лицензионных пакетов услуг (детальную информацию вы можете посмотреть здесь )
Создать политику применения лицензии с именем -"new_sub"
выполняется в CoCon user/pw admin/password
/domain/test_domain/ss/licence/politics/declare new_sub "Задаются при создании абонента"
Задать имя пакета услуг дополнительных сервисов, для этого использовать следующие команды :
выполняется в CoCon user/pw admin/password
/cluster/storage/ds1/licence/show-licence 1
нас интересует следующая информация :
/cluster/storage/ds1/licence/show-licence 1 SSW ID < Имя SSW ID > Description Лицензия для тестирования 3.16 Локация 2. . . . Supplementary Services licence package(s) name 'ECSS-FULL+' limit 600000 description "Весь пакет услуг" SS list [1,2,3,4,5] . . .
имя пакета услуг в примере "ECSS-FULL+".
Добавить в созданную политику пакет лицензионных услуг с именем "ECSS-FULL+", именно так он описан в лицензии:
выполняется в CoCon user/pw admin/password
/domain/test_domain/ss/licence/politics/package-add new_sub ECSS-FULL+
Пакет добавлен, но в настоящий момент политика не активна (не может быть применена к абоненту). Для активации политики new_sub выполнить следующую команду:
выполняется в CoCon user/pw admin/password
domain/test_domain/ss/licence/politics/activate new_sub
Теперь при создании абонентов можем использовать дополнительные услуги.
После создания домена настройте:
Пример первичной конфигурации системы с помощью web-конфигуратора
Исходные данные
- Установка системы завершена;
- Система готова к дальнейшей настройке;
- Интерфейсы запущены.
Рекомендуется использовать последние доступные версии браузеров. Рекомендуемые к использованию браузеры: Opera, Chrome.
Для начала конфигурации системы необходимо зайти в web-конфигуратор.
Для определения и регистрации в системе планируются:
- Абоненты с номерами 101, 102 , 103, 104 ,105, 106, 107, 108, 109, 110;
- Транк в сторону шлюза.
Подготовка к работе
Рисунок 3 — Вход в web-конфигуратор (окно авторизации)
В окне авторизации необходимо ввести значения, определенные при установке web-конфигуратора.
Стандартные значения для авторизации:
Логин: admin
Пароль: password
После входа в систему будет видна основная рабочая область с иконками приложений, а также строка состояния с доступными опциями, в частности:
- 1 — выход из системы;
- 2 — выбор домена;
- 3 — выбор языка.
Рисунок 4 — Вид рабочей области web-конфигуратора
Создание учетной записи оператора
После авторизации для повышения безопасности при эксплуатации программного коммутатора рекомендуется создание учетных записей для операторов, а также сменить пароль для пользователя admin.
Для создания новой учетной записи оператора используется приложение "Управление пользователями" ("User manager"):
Рисунок 5 — Вид приложения "Управление пользователями"
Нажмите кнопку "Добавить" . В открывшемся окне требуется определить новую учетную запись, для этого:
- В поле "Имя" введите логин учетной записи, например "test";
- В поле "Пароль" и "Подтверждение" введите пароль для пользователя, например "testpassword";
- Определите уровень прав доступа для пользователя через выбор текущих разрешений или с помощью ролей, например ecss-user. Описание можно посмотреть в разделе "Управление пользователями".
Рисунок 6 — Диалоговое окно создания учетной записи оператора
Рисунок 7 — Вид приложения с созданной учетной записью оператора
Для смены пароля рядом с названием пользователя нажмите на кнопку редактировать. В появившемся диалоговом окне введите:
1. Старый пароль (для пользователя "admin" по умолчанию паролем является "password");
2. Новый пароль;
3. Подтвердите новый пароль.
Рисунок 8 — Диалоговое окно редактирования учетной записи
Создание домена
Для создания домена необходимо войти в приложение "Домены" ("Domain"). В открывшемся окне требуется создать домен, для этого:
1. Нажмите кнопку "Добавить домен":
Рисунок 9 — Добавление домена в систему
2. В появившемся диалоговом окне доступны следующие настройки:
- Имя (Name) — индивидуальное имя виртуальной АТС;
- Профиль услуг (SS profile) — системный профиль дополнительных услуг. Этот профиль будет скопирован с тем же именем во вновь создаваемый домен и для всех услуг из этого профиля будет автоматически разрешён доступ через access-list;
- IVR профиль (IVR profile) — профиль IVR, заданный в приложении "Редактор IVR ограничений".
Введите название домена, например "test_domain";
3. Нажмите кнопку "Ок":
Рисунок 10 — Определение настроек нового домена
4. Нажмите кнопку "Обновить" в приложении.
Созданный домен будет отображаться в текущей конфигурации:
Рисунок 11 — Отображение созданного домена
Для редактирования текущего домена его необходимо выбрать в системе. Для перехода в домен воспользуйтесь опцией выбора домена (см. пункт 2 на рисунке "Вид рабочей области web-конфигуратора").
После выбора домена, согласно текущей конфигурации системы, станут доступны все приложения:
Рисунок 12 — Отображение приложений в текущей конфигурации системы
Создание IP-set (sip-транспорта) и присвоение его к домену
Для настройки интерфейса необходимо открыть приложение "Кластеры ("Clusters").
Рисунок 13 — Вид приложения "Кластеры"
IP-set — совокупность одного или нескольких IP-адресов из одной подсети и списка слушающих UDP/TCP-портов, которые будут открыты SIP-адаптером на данных адресах.
Для создания новой группы IP-адресов (IP-set) выделите кластер SIP-адаптера "sip1" и нажмите на кнопку "Свойства кластера" (или нажмите на иконку кластера двойным щелчком левой кнопки мыши).
В появившемся диалоговом окне перейдите на вкладку "Транспорт". Далее нажмите кнопку "Добавить". Появится новая группа, для редактирования полей двойным щелчком кнопки мыши нажмите на нужное:
1. Переименуйте группу адресов (IP-set), например "test_set";
2. Задайте порт, по которому будет происходить обращение к домену, например 5062;
3. Разверните вновь созданную группу нажатием на треугольник слева от названия группы;
4. Определите адрес для ноды SIP-адаптера, согласно примеру конфигурации. Для системы без резервирования укажите 10.0.20.10:
Рисунок 14 — Вид приложения "Кластеры/Транспорт"
Для системы с резервированием укажите 10.0.20.31 и 10.0.20.32:
Рисунок 15 — Вид приложения "Кластеры/Транспорт" для кластера
Нажмите кнопку "Сохранить" для применения настроек.
Для того чтобы привязать группу адресов к домену, необходимо вернуться в приложение "Домены" ("Domain"), выделить домен и перейти в настройки нажатием на кнопку "Свойства домена" или двойным нажатием левой кнопки мыши на домен.
В настройках списка откройте ветку "SIP", в ней "SIP транспорт", далее выберите в поле IP set созданную группу адресов. Нажмите кнопку "Сохранить" для применения настроек.
Рисунок 16 — Окно настройки для SIP транспорта
Создание абонентов
Для создания и редактирования параметров абонентов в системе используется приложение "Карточка абонента" ("Subscriber card").
Рисунок 17 — Вид приложения "Карточка абонента"
В конфигурации возможно создание SIP-абонентов и виртуальных абонентов.
Для пользователей, имеющих физическое окончание, используется функционал SIP-абонента, в то время как виртуальный абонент используется тогда, когда нужна функциональность без физических окончаний. Например, номер для обращения к ivr-скрипту.
Для создания новых абонентов нужно нажать на кнопку "Добавить".
В появившемся диалоговом окне укажите следующие параметры:
- Контекст — контекст маршрутизации, выбираем тот, который создали, например "test_name";
Имя интерфейса — номер или группа номеров, который присваивается абоненту, например {100-110};
- Алиас как пользователь — настройка, которая связывает номер сущности, алиас и пользователя одним и тем же названием, в примере настройка активирована;
- Авторизация — порядок проверки подлинности прав пользователя на доступ к данным, в примере используется always;
- Логин — использую настройку номер как логин для простоты;
- Пароль — можно задать или использовать сгенерированный системой.
Рисунок 18 — Пример определения абонентов в домене
Создание и применение контекстов маршрутизации для домена
Маршрутизация отвечает за поиск номера и последующую адресацию вызова. Для корректной работы системы должен быть настроен как минимум один контекст маршрутизации.
Настройка маршрутизации осуществляется в приложении "Менеджер маршрутизации" ("Routing manager") .
Рисунок 19 — Вид приложения "Менеджер маршрутизации"
В качестве примера создадим контекст, а затем несколько правил в нём, для этого:
1. В левой части окна в разделе "Контекст" нажмите на кнопку "Создать контекст" ;
2. В открывшемся диалоговом окне обозначьте имя контекста, а также тип контекста — пустой контекст:
3. Нажмите "Сохранить контекст" ;
Создадим 4 правила в данном контексте:
- rule1 — правило для выхода на транк TAU-72;
- rule2 — правило локальной маршрутизации для номеров 101-105;
- rule3 — правило для выхода в ivr;
- rule4 — правило-исключение.
Для создания нового правила нужно выделить созданный контекст и нажать кнопку "Создать правило". В появившемся окне нужно ввести название правила. Затем сохранить вновь созданные правила.
Рисунок 20 — Создание правила контекста маршрутизации
Рисунок 21 — Определение правил
На данный момент не определен транк, чтобы можно было сослаться на него в правиле, однако можно задать номера, по которым будет производится выборка.
Нажав на правило rule1, перейдем в нижнюю часть экрана, в которой располагаются области для редактирования контекста маршрутизации. Условно определим, что выборка для выхода на транк будет проводиться по признакам номера вызываемого абонента (CDPN), а номера в транке должны начинаться с цифры 4.
Функционально контекст маршрутизации делится на три части:
- Условия ("Condition") — раздел, определяющий выражения для выборки по предложенным признакам;
- Действия ("Action") — раздел, выполняющий преобразование признаков номеров к конкретному значению;
- Результат ("Result") — раздел, завершающий маршрутизацию и определяющий её результат.
rule1: Для выхода на транк нужно правильно отредактировать каждую часть:
- В разделе условий перейти на вкладку CDPN. Ввести номера телефонов, которые находятся за транком в поле "Номер". Например, чтобы определить номера с 106 по 107, нужно ввести условие: 10(6-7);
- В разделе действий перейти на вкладку CDPN. Ввести маску для изменения номера в поле "Номер". Например, чтобы добавить число 4 перед номером, нужно заполнить поле следующим выражением: 4{1,2,3};
- Нажать кнопки "Сохранить правило" и "Сохранить контекст" для применения изменений.
Чтобы настроить поле результата, нужно определить транк в системе, поэтому к настройке данного правила вернемся чуть позже.
Таким же образом нужно настроить оставшиеся правила.
Для rule2:
- В разделе условий, во вкладке CDPN ввести номера телефонов, которые находятся за транком в поле "Номер". Например, чтобы определить номера со 101 по 105, ввести условие 10(1-5);
- В разделе результата определить результат как локальный (т.е. локальная маршрутизация);
- Нажать кнопки "Сохранить правило" и "Сохранить контекст" для применения изменений.
Для rule 3 допустим, что абоненты с номерами 108, 109 и 110 попадают в ivr-скрипт–информатор, прежде чем звонить далее.
- В разделе условий, во вкладке CGPN ввести номера телефонов, по которым будет выборка в поле "Номер", например 1(10,08-09).
- Нажать кнопки "Сохранить правило" и "Сохранить контекст" для применения изменений.
Чтобы настроить поле результата, нужно определить в системе ivr-скрипт, поэтому к настройке данного правила вернемся чуть позже.
Для rule 4 мы определяем правило-исключение — это правило, которое работает в случае, если любые другие правила не срабатывают.
- По умолчанию данное правило создается в системе в контексте default_routing. В условиях на вызываемый номер прописывается символ %, а результатом является локальная маршрутизация, однако, если мы назначаем абоненту контекст, отличный от default_routing, в конце рекомендуется создавать это правило.
Рисунок 22 — Пример настроек контекста маршрутизации
Создание транка
Для создания и редактирования параметров транка в системе используется приложение "Менеджер транков" ("Trunk manager") .
Рисунок 23 — Вид приложения "Менеджер транков"
Для определения транка в системе нужно нажать на кнопку "Создать транк" , в появившемся диалоговом окне определить параметры:
- Имя — назначить название транка, по которому его можно идентифицировать в системе;
- Контекст — применить ранее созданный контекст маршрутизации test_name;
- Группа — выбрать группу интерфейсов, созданную при определении абонентов "test.group";
- Группа IP-адресов (IP-set) — созданная на домене группа адресов "test_set";
- Регистрация — если используется транковая, то нужно включить данный параметр, в примере она не используется;
- Хост [:порт] — IP-адрес назначения транка — 10.0.3.100;
- Порт для приёма — транспортный порт, на котором будет слушаться трафик с транка, соответствует порту, назначенному на группу IP-адресов.
Рисунок 24 — Создание транка
Создание IVR-скрипта
Для создания IVR используется приложение "IVR-редактор" ("IVR editor").
Рисунок 25 — Вид приложения "IVR-редактор"
Для создания скрипта нужно нажать на кнопку "Добавить" , выбрать тип скрипта (в данном случае будет скрипт на входящие вызовы), в диалоговом окне указать название скрипта, например "test_ivr".
После создания скрипта в основном окне редактора появится блок-схема.
В качестве примера составим скрипт, который при срабатывании проигрывает вызывающему абоненту заранее записанную фразу, а затем продолжает вызов.
Пример скрипта приведен на рисунках ниже. Здесь используются блоки Info и Dial.
- Блок Info — блок, который проигрывает сообщения до момента ответа пользователя. В качестве записанной фразы используется генератор тонов:
Рисунок 26 — Вид рабочей области IVR с настройками блока "Info"
- Блок dial — блок, который совершает вызов на заданный номер. Чтобы продолжить вызов, нужно применить предопределенную переменную CDPN:
Рисунок 27 — Вид рабочей области IVR
Завершение настройки маршрутизации
Для завершения настройки маршрутизации нужно войти в приложение "Менеджер маршрутизации" ("Routing manager") и в правилах rule1 и rule3 настроить соответствующие результаты маршрутизации, для этого:
- rule1: в разделе "Результат" выберите подпункт "внешний". В таблице "Направления" в поле "Значение" добавьте созданный ранее транк, после чего сохраните правило .
- rule3: В разделе "Результат" выберите подпункт "ivr" и в поле скрипт добавьте созданный ранее ivr-скрипт, после чего сохраните правило и контекст .
Рисунок 28 — Вид контекста маршрутизации
Настройка услуг
Для настройки услуг необходимо выполнить несколько действий:
- Установить услуги через СoСon;
- Добавить услуги для домена в список доступа (access-list) через СoСon;
- Далее любая услуга в списке доступа становится применимой на абоненте или транке.
Для входа в CLI "CoСon" можно воспользоваться терминалом или приложением "Командная консоль CoCon" ("CoCon").
После авторизации в Cocon пропишите следующие команды:
- Для установки услуг в систему:
cluster/storage/ds1/ss/install ds1@ecss1 *
- После успешной установки услуг пропишите следующую строку для добавления доступа к ним:
cluster/storage/ds1/ss/access-list add test_domain *
Символ "*" означает, что команда будет применена ко всем доступным элементам в системе. Если требуется установить конкретную услугу, вместо "*" вводится её название.
Для подключения услуг абоненту необходимо открыть карточку абонента, выбрать абонента из списка и перейти на вкладку "Дополнительные услуги".
Рисунок 29 — Пример настройки услуг
Для активации услуги абоненту необходимо подключить ее, нажав кнопку , затем активировать и настроить (прочитать подробнее можно в разделе приложения "Карточка абонента" ("Subscriber card")).
Добавление медиа-ресурсов.
Для того чтобы начать работу с медиа-сервером сразу после его регистрации, необходимо создать описание известных медиа-серверов с указанием всех параметров. Приложение web-конфигуратора "Сетевые окончания MSR" ("MSR registrars") служит для настройки медиа-ресурсов.