Peer is not supposed to register

Столкнулся с непонятной мне ошибкой asterisk, которая возникла ни с того ни с сего без каких-либо видимых изменений в настройках. Двухсторонняя связь серверов asterisk в определенный момент перестала работать.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Есть два удаленных сервера astersik, связанных между собой vpn каналом на базе openvpn. Длительное время все нормально работало, настройки никто не менял, кроме добавления пользователей, как минимум пару лет. Работает и работает, необходимости в изменениях не было.

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

[Oct 10 03:55:53] NOTICE[26576] chan_sip.c: Registration from '<sip:servnew@10.1.4.13>' failed for '108.68.220.194:54233' - Peer is not supposed to register
[Oct 10 03:55:54] ERROR[26576] chan_sip.c: Peer 'servnew' is trying to register, but not configured as host=dynamic

А тот, что пытался зарегистрироваться в лог сыпал сообщениями:

[2015-10-10 03:27:21] NOTICE[29264] chan_sip.c: -- Registration for 'servnew@10.1.4.13' timed out, trying again (Attempt #10)

Часть конфигурации сервера, который пытается зарегистрироваться:

register => servnew:1455Fxcdvg@10.1.4.13:51612/servxm

А это учетка на сервере приемнике:

[servnew]
type = friend
host = 10.1.3.205
username = servnew
secret = 1444Fxczvg
insecure = invite
trunk = yes
qualify = yes
context = old_serv
peercontext = old_serv

Связь между серверами стабильная, все в порядке, они друг друга видят. Судя по настройкам, ошибка очевидна и должна быть, так как в настройках учетной записи явно указан адрес сервера 10.1.3.205, ему нет необходимости регистрироваться. Однако, все именно с такими настройками и работало длительное время. Я специально это проверил, восстановив виртуалки и сравнив конфиги. Они не изменились с тех пор, но ошибка появилась только сейчас.

Так как я не очень глубоко знаком с astersik, работал только с простыми конфигурациями, то пришлось прилично повозиться, чтобы разобраться в ситуации. К тому же эти сервера настраивал не я, а несколько разных человек в разное время. Никакой документации не осталось, а конфигурации достаточно сложные. Я никак не мог понять, почему появилась ошибка, ведь видимых изменений не было.

Первым делом я решил изменить параметр учетной записи и поменять параметр host со старого на новый:

host = dynamic

По идее с этим параметром должна проходить регистрация. Но это почему-то не помогло. Сервер, который пытался зарегистрироваться, получал такую же ошибку, что и раньше о тайм ауте, а на приемнике вообще никаких упоминаний о событии не было. Я опять потратил много времени, но не смог понять, почему. Причем, регистрация в обратную сторону работает как раз с параметром dynamic и по тому же каналу связи. То есть настройки серверов получились идентичными, но один сервер авторизуется на другом, в другой в обратную сторону нет. Как я не пытался понять, почему так происходит, не получилось разобраться.

Решил проблему простым способом. На сервере приемнике поставил как и было:

host = 10.1.3.205

А на сервере, который пытался зарегистрироваться через

register => servnew:1455Fxcdvg@10.1.4.13:51612/servxm

отключил эту регистрацию. В итоге звонки стали нормально перенаправляться и все заработало как прежде. Очень хочется понять причину возникновений ошибки, и почему один сервер на другом нормально авторизуется с параметром dynamic, а в обратную сторону регистрация не проходит.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

Один комментарий

  1. Сейчас вспомнил про эту заметку. Я разобрался, в чем была причина ошибки. На проблемном сервере было указано несколько локальных IP. Из-за этого иногда возникали ошибки разного рода.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar