Непонятные прерывания голоса
Добавлено: 25 май 2021, 14:38
Здравствуйте.
Прошу навести на мысль в какую сторону смотреть, своих идей не осталось.
Сервер Asterisk 13 (на момент начала проблемы), собран на Gentoo, в районе 1000 абонентов, в среднем 30-50 активных звонков. Порядка 700 абонентов подключены по SIP. Из них половина в локальной сети, практически все в выделенном влане, остальные через VPN. NAT не используется, фаервола нет. Влан с SIP, аналоги (TDMoE), остальные SIP абоненты коммутируются с сервером через раздельные сетевые интерфейсы (для SIP-ов одна 2-х портовая карта).
Появившаяся проблема проявляется в кратковременном (как правило 1-5 сек) пропадания голоса в одну сторону в процессе разговора. В логах, с момента появления проблемы, массовые переподключения телефонов. Краткий пример ниже (бывает что переподключаются десятками):
Проблема только с телефонами находящимися во внутренней сети в отдельном влане. На интерфейсе счетчики дропов, ошибок, переполнения буфера и т.п. нулевые и околонулевые, нагрузка на сервер незначительная, прерывания по процессорам распределяются равномерно, широковещательного трафика во влане практически нет. Анализ трафика показывает нормальное прохождение звонка. Самое интересное что при прослушивании разговора (wireshark) в котором была проблема, собранного с сетевого интерфейса (tcpdump), потерь голоса нет, слышно обе стороны, при этом на параллельной записи со станции тишина.
Дополнительно - пинг UDP пакетами произвольного аппарата в влане, в момент массового отвала телефонов и возникновении тишины, прерывается на несколько пакетов (итоговый процент потерь незначительный), параллельно ICMP с этого же сервера нормально, параллельно UDP на тот-же адрес с другого сервера нормально.
Смена интерфейса, коммутатора и даже перенос сервиса на другой сервер результата не дали. Проблема повторяется там, куда приводим телефоны из влана (на интерфейсе, сервере и т.п. откуда влан увели, проблема пропадает). Так-же не помогло обновление asterisk до 18 версии, переход на другое ядро, увеличение буфера сетевой.
Прошу навести на мысль в какую сторону смотреть, своих идей не осталось.
Сервер Asterisk 13 (на момент начала проблемы), собран на Gentoo, в районе 1000 абонентов, в среднем 30-50 активных звонков. Порядка 700 абонентов подключены по SIP. Из них половина в локальной сети, практически все в выделенном влане, остальные через VPN. NAT не используется, фаервола нет. Влан с SIP, аналоги (TDMoE), остальные SIP абоненты коммутируются с сервером через раздельные сетевые интерфейсы (для SIP-ов одна 2-х портовая карта).
Появившаяся проблема проявляется в кратковременном (как правило 1-5 сек) пропадания голоса в одну сторону в процессе разговора. В логах, с момента появления проблемы, массовые переподключения телефонов. Краткий пример ниже (бывает что переподключаются десятками):
если такой момент попал во время активного звонка, то часто:[May 25 17:21:56] NOTICE[7107] chan_sip.c: Peer '1152' is now UNREACHABLE! Last qualify: 3
[May 25 17:21:56] NOTICE[7107] chan_sip.c: Peer '1070' is now UNREACHABLE! Last qualify: 4
[May 25 17:21:56] NOTICE[7107] chan_sip.c: Peer '1974' is now UNREACHABLE! Last qualify: 5
[May 25 17:21:56] NOTICE[7107] chan_sip.c: Peer '1167' is now UNREACHABLE! Last qualify: 4
[May 25 17:21:57] NOTICE[7107] chan_sip.c: Peer '1978' is now Lagged. (2005ms / 2000ms)
[May 25 17:22:06] NOTICE[7107] chan_sip.c: Peer '1152' is now Reachable. (4ms / 2000ms)
[May 25 17:22:06] NOTICE[7107] chan_sip.c: Peer '1070' is now Reachable. (4ms / 2000ms)
[May 25 17:22:06] NOTICE[7107] chan_sip.c: Peer '1974' is now Reachable. (4ms / 2000ms)
[May 25 17:22:06] NOTICE[7107] chan_sip.c: Peer '1167' is now Reachable. (5ms / 2000ms)
[May 25 17:22:07] NOTICE[7107] chan_sip.c: Peer '1978' is now Reachable. (4ms / 2000ms)
[May 25 17:26:21] WARNING[7107] chan_sip.c: Hanging up call 156244593a4767f00b9281136647d8d7@192.168.10.6:5060 - no reply
to our critical packet (see https://wiki.asterisk.org/wiki/display/ ... nsmissions)
Проблема только с телефонами находящимися во внутренней сети в отдельном влане. На интерфейсе счетчики дропов, ошибок, переполнения буфера и т.п. нулевые и околонулевые, нагрузка на сервер незначительная, прерывания по процессорам распределяются равномерно, широковещательного трафика во влане практически нет. Анализ трафика показывает нормальное прохождение звонка. Самое интересное что при прослушивании разговора (wireshark) в котором была проблема, собранного с сетевого интерфейса (tcpdump), потерь голоса нет, слышно обе стороны, при этом на параллельной записи со станции тишина.
Дополнительно - пинг UDP пакетами произвольного аппарата в влане, в момент массового отвала телефонов и возникновении тишины, прерывается на несколько пакетов (итоговый процент потерь незначительный), параллельно ICMP с этого же сервера нормально, параллельно UDP на тот-же адрес с другого сервера нормально.
Смена интерфейса, коммутатора и даже перенос сервиса на другой сервер результата не дали. Проблема повторяется там, куда приводим телефоны из влана (на интерфейсе, сервере и т.п. откуда влан увели, проблема пропадает). Так-же не помогло обновление asterisk до 18 версии, переход на другое ядро, увеличение буфера сетевой.