Mikrotik + Asterisk

Обсуждение оборудования и его настройки
Ответить
Miha
Сообщения: 3
Зарегистрирован: 01 апр 2017, 16:00

Доброго всем времени суток!

Имеем два микротика CRS125-24G. На каждый из них приходит по одному провайдеру (Ethernet). И между собой они соеденены каждый к каждому. Переключение основного канала на второй микротик происходит по доступности 8.8.8.8 через один маршрут с дистанцией 1, или 8.8.4.4 через второй маршрут с дистанцией 2. К каждому микротику подключены по несколько IP телефонов.
Есть сервер с Астериск где-то в интернете, он имеет публичный адрес.

И вся эта каша замечательно работала, пока провайдеры не начали плохо себя вести. То один, то другой частенько стали отпадать. И проблема активных подключений в Connections Tracking стала реально мешать.
Суть вот в чем: При пропадании интернета безотказно переключается маршрут и все довольны... За исключением телефонов. Они теряют регистрацию на Астериск (естественно, ведь их ip адрес сменился). И по новой регистрироваться в упор не хотят.
Заметил я, что в Connections Tracking остаются активными подключения от телефонов к астериску (что в общем тоже верно, так как ни локальный адрес телефона, ни публичный астериска не поменялись). Раньше, когда мне жаловались, что не работали телефоны, я заходил на микротик, видел, что отпал основной канал, а старые подключения к астериску остались висеть. Тогда я эти подключения убивал руками и регистрации тут же подымались на астериске.
Сейчас я проделываю то же самое, но нет никакой гарантии, что телефон сможет достучаться до астериска... Иногда, он сможет подключиться к астериску через две минуты, а иногда проходит минут 10...
При чем я реально вижу, что телефон инициировал новое подключение, (после того, как я удалил руками старое), я вижу, что новое подключение идет уже по новому маршруту, но оно создается с таймаутом 3 или 5 секунд, висит с флагом U, и пропадает. И таких попыток может быть пару, а может быть ооочень много.
Вот, собственно, эта неопределенность меня больше всего и напрягает. Я понимаю, что упускаю какое-то звено в свое цепочке, но какое именно - прозрение не приходит... Так что, прошу помощи! :smu:sche_nie:


DmNuts
Сообщения: 120
Зарегистрирован: 18 май 2016, 18:33
Откуда: Иркутск

Привлеките к процессу админа того астериска, пусть он свои логи посмотрит. Может, там fail2ban или что-нибудь ещё срабатывает.

Есть и более надёжные схемы:
Поставить Астериск в своей сети;
Попросить SIP провайдера протянуть отдельный канал (или организовать туннель до него через существующие линки), телефонам выделить свой VLAN.


Miha
Сообщения: 3
Зарегистрирован: 01 апр 2017, 16:00

Админ того астериска - я. Там нет ничего, что может блокировать трафик от моего офиса. Разместить астериск в офисе тоже нет возможности.
Насчет своего VLAN для телефонов я думал. Но пока не до конца понимаю, что мне это даст.


DmNuts
Сообщения: 120
Зарегистрирован: 18 май 2016, 18:33
Откуда: Иркутск

Т.е. в логах Астериска в течение "две минуты, а иногда проходит минут 10..." ничего интересного нет?
Также можно через Микротики собрать трафик сниффером и исследовать его.


Аватара пользователя
algerka
Сообщения: 407
Зарегистрирован: 14 дек 2011, 12:31

Miha писал(а):Насчет своего VLAN для телефонов я думал. Но пока не до конца понимаю, что мне это даст.

vlan без туннеля ничего не даст. в идеале поднять туннель и динамическую маршрутизацию, за одно и астериск защитите.
а так, запустите asterisk -rvvvvvv и смотрите что в консоль идет при переподключении.


Александр
Miha
Сообщения: 3
Зарегистрирован: 01 апр 2017, 16:00

В консоли астериска ничего странного... peer xxx unreachable... peer xxx registered at xxx.xxx.xxx.xxx ... peer xxx reachable... Пир становится недоступным почти сразу, как только пропадает интернет. Ну там для этих пиров я тоже экспериментировал по-разному. Пробовал выставить таймаут qualify=60000 (т.е. 1 минуту). Потому что, когда пир становится Unreachable, астериск пытается его найти еще раз, по тому же адресу каждые две секунды по умолчанию. На телефонах стоит опция NAT keep-alive=yes интервал 15 секунд. Т.е. каждые 15 секунд телефон засылает на астериск пакет. На микротике при этом создается коннекшн с обратным таймером 10 сек (Как указано в настройках Connections tracking). НО!!! Вот самая болшая загадка для меня, почему эти коннекшены держутся не 10 секунд, как в настройках, а после нуля таймер начинает тикать в плюс и коннекшн держится бесконечно! И пока он есть, новый не создается, ведь он имеет одинаковые src. и dst. адреса.
Ну а на астериске пир становится сразу reachable, как только через микротик пройдет таки коннекшн (установится флаг А).
В общем не могу найти ответ на такие вопросы: Почему коннекшн не скидывается каждые 10 минут, как указано в настройках для UDP Timeout. И почему новый коннекшн создается, но не может достучаться до астериска. Вернее может, но через неопределенное количество времени. Например, я сижу, просто наблюдаю: Отрубил инет, удалил текущий коннекшн руками, смотрю... Создался новый, уже через второй маршрут. Но флаг у него U (Unreplied). Провисел 10 секунд, пропал... На астериске в этот момент глухо. Пир Unreachable. Потом снова создался коннекшн на микротике... Провисел 10 сек с флагом U и пропал... И таких коннекшнов может быть два, три, потом подключится, может десять, двадцать, можно цедый день так сидеть, и аж потом подключится... Короче, не понятно, почему так происходит.


Vladimir22
Сообщения: 561
Зарегистрирован: 09 дек 2012, 17:12

TCP dump на астериске скажет - долетают ли пакеты до него , или нет ;-) то что они улетели - это хорошо . но долетели -ли ....


Ответить