Показаны сообщения с ярлыком Alcatel-Lucent. Показать все сообщения
Показаны сообщения с ярлыком Alcatel-Lucent. Показать все сообщения

понедельник, 11 ноября 2013 г.

Alcatel-Lucent OXE. Патчим CPU, роумим DECT, лезем в LDAP

Вторая, но, возможно, не последняя статья из цикла былого опыта. Пригодится.

Установка патча на CPU-плату.

Перед началом установки патча необходимо выбрать рабочую станцию или сервер, с которой телефонная станция будет забирать обновления. На выбранной машине у нас должны быть права администратора, чтобы установить OmniPCX Enterprise PC Installer и запустить tftp-сервер. Обязательно нужно проверить, видит ли АТС выбранную станцию командой ping. Можно, конечно, извернуться и поднять сервер на *nix-тачке, но мы же entry-level администраторы и не ищем сложных путей, поэтому:

1) На выбранной машине устанавливаем программу OmniPCX Enterprise PC Installer. Её дистрибутив лежит в каждом релизе патча. Вот здесь (на примере 50-го патча):
\dhs3mgr\h130150\pcmao\boot_res\pcinstall

2) Затем на данной машине нужно остановить брандмауэр, запустить службу обозревателя и запустить инсталлятор в режиме Call handling or patch. Окно будет выглядеть примерно так (ну, кроме надписей в полях ввода):


Рис. 1

Поскольку мои АТС-ки были представлены в двухпроцессорных конфигурациях, была возможность обновлять софт, не прерывая работы станции. На некоторое время отвалятся лишь IP-соединения при переходе телефонии с основной платы на резервную. Для начала нам нужно понять, которая из плат в данный момент активна, а которая находится в режиме STAND-BY. Традиционно на всех станция основной платой являлась CPU с именем xb…, которая соответствует плате, установленной в слоте номер 6 (решение, возможно, спорное и необязательное, но так уж всё было настроено на всех узлах ABC-F сети, и проще было в дальнейшем придерживаться этой идеи, чем всё переконфигурировать). Текущую роль платы можно посмотреть, выполнив команду role.
Также проверяем, синхронизированы ли платы командой twin. Если нет, то необходимо вручную выполнить перенос всех баз с основной платы на резервную. Может быть, это будет рассмотрено в другом мануале.

3) Итак, командой role мы выяснили, которая из плат находится в режиме STAND-BY. Если нам необходимо установить динамический патч (с буквой после полного номера релиза), то телефонию можно не останавливать, и вообще устанавливать патч «на горячую». Однако в случае статического патча делаем следующее (залогинившись по ssh или telnet на плату под пользователем mtcl):
- swinst (пароль SoftInst)
- 1 Easy menu
- 7 Stop the telephone

4) Ставим патч:
- swinst
- 2 Expert menu
- 2 Deliveres installation
- 1 Install delivery from server

На запрос Enter the name of the server (default xxx.xxx.xxx.xxx) ->  вводим ip-адрес компьютера, на котором запущен OmniPCX Enterprise PC Installer). Далее ввод выделен полужирным шрифтом:

The installation of the binaries will modify the current installed version
Please, confirm the installation of a new version (y/n, default y): y
Enter the full path of the delivery on the server
example for Unix server: /twdhs3/dhs3ref/dhs3ref_d2/E2.504/LIVRAISON
for Windows server: /dhs3mgr/E2504
-> /dhs3mgr/h130150a (относительный путь до патча, в данном примере приведён динамический патч)
Confirm the full path /dhs3mgr/h130150a (y/n, default y): y
The path of the delivery is /dhs3mgr/h130150a
Do you wish to secure the installation (y/n): n

Если мы ставим сначала статический, а затем динамический патч, то данный пункт можно и даже желательно сразу же повторить ещё раз, уже для динамического патча. При этом не стоит пугаться, если сразу после установки статического патча мы увидим что-то вроде:
End of post installation
In order to run the Linux packages
In order to run the emulation layer
YOU HAVE TO REBOOT THE SYSTEM
Press return
In order to install the swinst package
you are reconnected as swinst user.
End of operation!
Local and twin cpus have different software number
- on local cpu : DELIVERY h1.301.50
- on twin cpu : DELIVERY h1.301.50.a
running new swinst profile
Confirm that 'ru' will be used as EXPORT version (y/n, default y):
*** Creation of the missing main directories
*** Creation of the missing swinst directories
A periodic backup is already registered
Last installed delivery
DELIVERY h1.301.50

значит, всё нормально! Патч встал! При последовательной установке сразу нескольких патчей перезагружать плату между инсталляциями необходимости нет.

5) Включаем автостарт сервисов телефонии (если ранее она была остановлена):
- swinst
- 2 Expert menu
- 6 System management
- 2 Autostart management
- 1 Set autostart

6) После того, как все патчи установлены, если среди установленных патчей у нас имелся хоть один статический, то нужно перезапустить плату, на которой мы его устанавливали:
shutdown -r now

7) Проверяем, всё ли поднялось, командой twin. Выполнять данную команду можно на любой из процессорных плат:
(105)xa001005> twin
Tue Jan 31 16:57:19 GMT-4 2012
Usage : twin [Redundancy Cpu Enable (y/n)]
Role and CPU positions:
Role of the CPU : STAND BY
CPU position : 20
CPU address : aaa.aaa.aaa.aaa
Twin CPU position : 06
Twin CPU address : bbb.bbb.bbb.bbb
Redundancy State:
Duplicated configuration : YES
Wished sig. transfer mode : C1 signalling channel
Used sig. transfer mode : C1 signalling channel
Transmission CPU-CPU : READY
monitel redundancy : READY
memloader redundancy : KO
All applications redundancy : READY

В нашем случае memloader redundancy будет не синхронизирован из-за разной версии ПО на двух платах CPU. После того, как командой bascul (на  активной плате) мы переведём телефонию на резервную плату и повторим все пункты, начиная с №3 для той платы, которая изначально была основной, синхронизация должна будет выровняться.

Роуминг DECT


Для начала нужно выяснить, какие лицензии у нас есть, и что мы можем наконфигурировать.

Лицензии на роуминг

Чтобы узнать, какие возможности перед нами открыты, залогинимся на станцию, и выполним команду spadmin:
(105)xb001005> spadmin
ooo Reading string-file /DHS3bin/oneshot/mtcl/objects.US0 ...
ooo Reading string-file /DHS3bin/oneshot/mtcl/spadmin.dct ...
ooo Reading string-file /DHS3bin/oneshot/mtcl/err2lov.dct ...
Display current counters ........................... 1
Display active file ................................ 2
Check active file coherency ........................ 3
Install a new file ................................. 4
Read the system CPUID .............................. 5
CPU-Ids management ................................. 6
Display active and new file ........................ 7
Display OPS limits ................................. 8
Display ACK code ................................... 9
Exit ............................................... 0
choice :

Выберем 2. На экране появится список всех возможностей, доступных в текущей лицензии на станцию. Нас интересует три пункта:
82 Nb of DECT terminals
90 Roaming DECT/PWT
175 Mobile users
В п. 82 указано общее (оплаченное по лицензии) доступное количество пользователей (абонентов) DECT. Причем в это количество также входят и так называемые «виртуальные» номера, создаваемые на станции для того, чтобы было возможно осуществлять роуминг.
В п. 90 указано количество внутренних абонентов DECT на станции, которым мы имеем право присвоить права роуминга на другие станции ABCF-сети. При этом необходимо помнить, что для того, чтобы роуминг работал на второй, гостевой станции к моменту попадания трубки в зону действия DECT должен быть свободный «виртуальный» номер.
В п. 175 можно посмотреть, какое количество лицензий уже использовано, включая т.н. «виртуальные» номера. 

Чтобы посмотреть на станции, какие абоненты имеют право на роуминг, проще всего в системе OmniVista задать следующий фильтр:
Рис. 2.

Настройка роуминга

У каждой системы DECT есть определённый идентификатор – PARI-номер. Его можно посмотреть в следующем месте: Dect System – IBS System (или RBS System). См. рис. 3.

Рис. 3.

Каждой трубке присваивается PLI-номер. Я, если честно, не знаю его формального определения, но значение PLI-номера соответствует количеству байтов PARI-номера, которые должны быть одинаковыми на двух станциях, чтобы между ними был возможен роуминг DECT. Переведём PARI-номера наших станций в двоичный вид и сравним. В скобках записан шестнадцатеричный вид PARI-номера.

1 станция: 100 0001 1100 0100 0111 1001 0100 0010 0010 (4 1C47 9422)
2 станция: 100 0001 1100 0100 0111 1001 0100 0100 0000 (4 1C47 9440)
...
7 станция: 100 0001 1100 0100 0111 1001 0100 0101 1110 (4 1C47 945E)

Жёлтым цветом выделено 27 байтов. Это значение PLI, которое должны иметь трубки, у которые есть право DECT-роуминга. У остальных трубок значение PLI равняется 31.
Но это ещё не всё. Для работы роуминга требуется ещё, чтобы на той станции, куда приходит гость, был зарегистрирован так называемый Shell. При этом станция, откуда пришёл этот гость, должна знать, где обитает данный Shell. У нас это реализовано следующим образом (рассматриваем на примере двух абстрактых станций 1 и 2):
На станции 1 создано 5 пользователей (Рис. 3)

Рис. 4.

На станции 2 создано 5 соответствующих префиксов, имеющих значение Dect Mobile и ссылающихся на станцию 1 (Рис. 4)

Рис. 5.

Нужным абонентам станции 2 поставлены права Network Mobile Rights и PLI 27. Таким образом, 5 первых таких пользователей, попавших в зону действия DECT станции 1, зарегистрируются на станции и будут успешно разговаривать с абонентами станции 2.

И, в заключение, небольшая ...

Недокументированная возможность

На LDAP-сервере OmniVista есть один пользователь, существование которого не описано ни в одном официальном мануале. Это суперпользователь сервера каталогов, о существовании которого я узнал из какого-то раздела на Alcatel Unleashed :
Имя пользователя: cn=Directory Manager
Пароль: 123456789


Пользуемся

Для начала нам нужен какой-нибудь LDAP-браузер. Я использую для этих целей LdapAdmin. Использование данного софта интуитивно понятно, поэтому я просто размещу скриншоты.


1)​ Настраиваем новое соединение. Единожды настроив, потом можно будет им пользоваться:


Рис. 6

2)​ Подключаемся, жмём «Yes»:

Рис. 7

3)​ Разворачиваем дерево каталога до нужного пользователя, как показано на скриншоте, нажимаем на пользователе правую кнопку мыши, выбираем пункт Set Password:


Рис. 8

Всё! При следующей попытке входа в OmniVista пользователю будет предложено создать новый пароль. И сделали мы это, не используя учётную запись администратора.

понедельник, 21 октября 2013 г.

Alcatel-Lucent OXE. Перезагрузка платы CPU, резервное копирование, смена роли платы.

Предисловие

За четыре года администрирования телефонных станций Alcatel-Lucent у меня накопилось некоторое количество мануалов, которые я писал для себя. Прошло некоторое время с той поры, и я решил вывалить это добро в сеть.

Самая суть

OXE поддерживает возможность резервирования CPU. В конфигурации, с которой мне довелось работать, на каждой телефонной станции было установлено по две платы CPU (CPU7-2). Одна из этих плат находится в рабочем (активном) режиме, вторая – в резервном. Каждой станции соответствуют три IP-адреса:
  • Первый – IP-адрес основной платы, 
  • Второй – IP-адрес резервной платы, 
  • Третий – «виртуальный» адрес, который всегда ссылается на ту плату, которая в данный момент работает в активном режиме. 
Через систему управления OmniVista можно в режиме конфигурации зайти на любую станцию и посмотреть установленные платы, их адреса и в каком режиме они находятся (см. Рис. 1):

Рис. 1.
В полке ACT платы CPU располагаются по центру кристалла, в слотах 6 и 20. При этом, как правило, если станция функционирует в штатном режиме, роль основной платы выполняет та, которая установлена в слоте №6. При доступе на эту плату через telnet она имеет имя вида xb….
Для доступа через telnet к платам CPU лучше пользоваться программным обеспечением putty или его форком kitty. 

Проверка состояния платы

Залогинившись на плату, первым делом смотрим на строку приглашения. Она должна выглядеть следующим образом (боевой пример с 6-го узла ABC-F-сети, состоящей из семи станций):
(106)xb001006>
В скобках указывается номер узла в сети ABC-F. Если в скобках находится буква E, значит, что-то не так, и на плате не запущены сервисы телефонии.
Чтобы узнать роль платы, на которую мы залогинились, необходимо выполнить команду role:
(106)xb001006> role
MAIN
Если бы плата была резервной, мы бы получили ответ STAND-BY.
Теперь необходимо проверить состояние синхронизации с резервной платой CPU, выполнив команду twin:
(106)xb001006> twin
Tue Nov 15 08:17:07 GMT-4 2011
Usage : twin [Redundancy Cpu Enable (y/n)]
Role and CPU positions:
Role of the CPU : MAIN
CPU position : 06
CPU address : 10.162.67.70
Twin CPU position : 20
Twin CPU address : 10.162.67.69
Redundancy State:
Duplicated configuration : YES
Wished sig. transfer mode : C1 signalling channel
Used sig. transfer mode : C1 signalling channel
Transmission CPU-CPU : READY
Telephony redundancy : READY
monitel redundancy : READY
memloader redundancy : READY
All applications redundancy : READY

В выводе данной команды мы видим, в каких позициях установлены основная и резервная плата, их IP-адреса, а также состояние сервисов репликации данных между платами. Если состояние сервисов отлично от READY, значит синхронизация между платами нарушена, и менять роли плат не рекомендуется. В таком случае нужно залогиниться на резервную плату и вручную скопировать базы с основной через интерфейс команды swinst. Об этом речь пойдёт позже.
Ещё перед тем как всё ломать, рекомендуется проверить состояние остальных плат конструктива при помощи команды config. Аргумент для этой команды – номер кабинета ACT (к примеру, в станции ГУ их два: 0 и 2). Можно выполнить команду config all, и тогда мы сможем увидеть все сконфигурированные кристаллы станции, в т.ч. виртуальные:
(106)xb001006> config 0
Tue Nov 15 08:32:49 GMT-4 2011
+-------------------------------------------------------------------+
| Cr | cpl| cpl type | hw type | cpl state | coupler ID |
|----|----|------------|-----------|--------------|-----------------|
| 0 | 0 | NPRAE|---------- | IN SERVICE | 3BA23254ABJE02 |
| 0 | 2 | eUA32|---------- | IN SERVICE | 3BA23266AAJA03 |
| 0 | 4 | eUA32|---------- | IN SERVICE | 3BA23266AAJA03 |
| 0 | 6 | CPU7_STEP2|---------- | IN SERVICE | BAD PCMS CODE |
| 0 | 8 | NDDI2|---------- | IN SERVICE | 3BA23171ABBE02 |
| 0 | 9 | eUA32|---------- | IN SERVICE | 3BA23266AAJA03 |
| 0 | 11 | eUA32|---------- | IN SERVICE | 3BA23266AAJA03 |
| 0 | 12 | eZ32|---------- | IN SERVICE | 3BA23265ABLB03 |
| 0 | 14 | EMTL|---------- | IN SERVICE | 3BA53116AAAB |
| 0 | 15 | INTIPA| INT-IP | IN SERVICE | 3BA23193ACJF05 |
| 0 | 17 | BRA2|---------- | IN SERVICE | 3BA23073ABJD04 |
| 0 | 20 | CPU7_STEP2|---------- | IN SERVICE | BAD PCMS CODE |
| 0 | 22 | BRA2|---------- | IN SERVICE | 3BA23073ABJD04 |
| 0 | 24 | BRA2|---------- | IN SERVICE | 3BA23073ABJD04 |
| 0 | 25 | GPA2|---------- | IN SERVICE | 3BA23241AAJC05 |
| 0 | 26 | RMA|---------- |ONLY MAO FILE | BAD PCMS CODE |
| 0 | 27 | NDDI2|---------- | IN SERVICE | 3BA23171ABBE02 |
+-------------------------------------------------------------------+
> Reference rack not set

В идеале в столбце cpl state все состояния плат кроме RMA должны быть IN SERVICE, а в поле coupler ID напротив всех плат кроме CPU и RMA должны находиться идентификаторы плат. Если состояние какой-нибудь платы не соответствует описанному, можно попробовать сбросить её командой rstcpl x y, где x – значение первого, а y – значение второго столбца из таблицы, выдаваемой командой config. 
Это, соответственно, номер кристалла и номер платы.
Ещё будет не лишним проверить таблицу инцидентов, выполнив команду incvisu. Смотрим сообщения, анализируем, ищем информацию в сети или запрашиваем её у сервисных инженеров, если есть оплаченная техподдержка.

Смена ролей между основной и резервной платой

Если всё хорошо, то есть платы CPU синхронизированы, все платы в рабочем состоянии, можем менять роли. Для этого мы должны, будучи залогиненными на основной плате, выполнить команду bascul. При этом на некоторое время (несколько минут) пропадут IP-соединения между станцией, на которой осуществляется перенос ролей и всеми остальными станциями. Все внутренние разговоры, а также внешние голосовые соединения по аналоговым соединительным линиями и по цифровым потокам не должны прерываться.
Зачем вообще нужен перенос ролей? Он полезен в одном из следующих случаев:​ 
  • Какая-либо неисправность основной платы; 
  • Необходимость перезагрузки платы (в случае смены времени, например) ; 
  • Резервное копирование данных с жесткого диска платы; 
  • Установка обновлений; 
Смена роли в данных случаях позволяет не прерывать работу станции.

Потеря синхронизации между платами

Если в ответ на команду twin нам вываливается информация о том, что между платами нарушена синхронизация, то необходимо, залогинившись на резервной плате выполнить следующие действия:
  1. Остановить телефонию;
  2. Выполнить команду swinst (пароль по дефолту: SoftInst, но ДОЛЖЕН быть сменён);
  3. Выбрать последовательно: Expert Menu - Cloning & duplicate operations - CPU cloning;
  4. По очереди выполнить команды: Cloning Linux data, Cloning delivery и Cloning databases. Со всем соглашаться.

Резервное копирование HDD станции

Теперь, когда мы всё умеем проверять, рассказываю методику резервного копирования жёстких дисков АТС, осуществлять которую заставила меня судьба.
Для успешного осуществления резервного копирования нам понадобится следующее барахло:
  • Ноутбук или десктоп. Там должен быть COM-порт (подойдёт USB-переходник), Ethernet-порт, CD-ROM, два USB-порта. 
  • Переходник SATA-USB. 
  • Загрузочный CD-ROM Acronis True Image. 
  • Отвёртка с насадкой типа «звёздочка». 
  • Кабель для COM. 
  • Ethernet патч-корд. 
По идее здесь должна быть информация о том, как законнектиться на COM-порт или воткнуть сетевой кабель в Ethernet-разъём АТС-ки, чтобы можно было получить telnet-доступ к плате, но я пока опущу эти базовые сведения. Будем считать, что мы уже залогинились.
  1. Логинимся на основную плату CPU (20-й слот).
  2. Проверяем всё так, как описано во втором пункте данного руководства.
  3. Меняем роли плат.
  4. Выключаем плату, ставшую резервной, при помощи команды shutdown.
  5. Вынимаем плату из АТС. Откручиваем три болта крепления переходника HDD, откручиваем три болта крепления HDD к переходнику, вынимаем HDD из переходника.
  6. Подключаем HDD к переходнику SATA-USB, переходник втыкаем в рабочую станцию. Загружаемся с диска, бекапим.
  7. Втыкаем диск обратно в плату, плату в АТС. Включаем.
  8. Логинимся на вторую плату CPU (6-й слот). Проверяем, что забекапленная плата поднялась, находится в режиме STAND-BY, синхронизация ок, телефония на ней запустилась.
  9. Повторяем пункты 2-8 для второй платы.

Резервное копирование настроек станции по сети

Ежедневные архивы настроек станции лежат на самой станции, на активной процессорной плате, в каталоге /usr4/BACKUP/DAY. Всё, что нам нужно – это забрать эти настройки по FTP.
На гитхаб лежит готовый скрипт с комментариями, конфигурационный файл для скрипта, содержащий построчно имя станции, IP-адрес, имя и пароль пользователя для FTP-подключения и путь, куда сохранять скачанное.

Получение OPS-файлов по сети

OPS-файлы тоже можно забрать по FTP, они на станции в каталоге /usr4/BACKUP/OPS/. Однако, перед тем, как забрать файлы, необходимо сформировать их свежую версию, выполнив на станции следующие действия:
  1. Залогиниться на основную плату под пользователем mtcl;
  2. Запустить swinst;
  3. Выбрать п. 1 Easy menu;
  4. Выбрать п. 5 Backup OPS files on cpu disk;
  5. Подтвердить бекап файлов Confirm the backup of OPS files (y/n, default y): y
Все эти действия можно выполнить автоматически, используя программное обеспечение под названием Telnet Scripting Tool. Для этого необходимо сформировать Telnet-script в формате данной программы и скормить его ей.
На гитхабе также лежит скрипт сбора OPS-файлов, пример конфигурационного файл станций и исполняемый модуль Telnet Scripting Tool. По каждой станции также ведётся лог выполненных команд, который пишется в этот же каталог.