Linux NAT udp sip (теряются пакеты?)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

pelmen
Сообщения: 1268
ОС: debian

Linux NAT udp sip

Сообщение pelmen »

Приветствую, товарищи!

Проблема возникла, нагуглить сходу не получилось.
Есть маршрутизатор dlink dsr230, 10 ПК и 3 телефона gigaset c610, работающие с МАНГОофис.
Задача была поменять dlink на шлюз с linux. Всё сделал как всегда (ip_forwarding=1, iptables SNAT) - интернет заработал, телефоны тоже. НО: раз в минуту появляется задержка в телефонной связи на 3-10 секунд. Задержка односторонняя: то есть во время паузы один абонент не слышит второго, а наоборот слышно. Связь sip идёт по udp.
И ещё, когда приходит входящий звонок, телефоны начинают звонить, но снять трубку не получается. Нажимаешь зелёную - а всё равно он звонит и звонит (т.е. как буд-то сиглан о том, что ты снял трубку не доходит до МАНГО). Вот в какую сторону копать пока что-то не пойму.
Поменяли обратно на dlink - задержек нет, связь идеальная. Пока оставили так :(
Помогите, пожалуйста, кто чем может.
Спасибо!

P.S.
Может что-нибудь с MTU поковырять?
Кстати, сетевухи в шлюзе гигабитные
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21549
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Linux NAT udp sip

Сообщение Bizdelnick »

В dmesg ругани никакой нет?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Linux NAT udp sip

Сообщение pelmen »

Bizdelnick писал(а):
19.09.2015 11:51
В dmesg ругани никакой нет?
В понедельник посмотрю, не сообразил
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Linux NAT udp sip

Сообщение pelmen »

Прикладываю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21549
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Linux NAT udp sip

Сообщение Bizdelnick »

В rtf-то зачем?
Тут ничего подозрительного. Система не перезагружалась с тех пор, как наблюдались перебои?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Linux NAT udp sip

Сообщение pelmen »

Bizdelnick писал(а):
19.09.2015 15:37
В rtf-то зачем?
Тут ничего подозрительного. Система не перезагружалась с тех пор, как наблюдались перебои?
Нет.
Ещё инфо: Я следил conntrack -L, так вот соединения телефнии n+1 (n - количество активных разговоров на трубках + 1 соединение базы на порт 5060). Все udp соответственно. Так вот у всех соединений идёт счётчик 3х минутный (179, 178, 177, 176, 179, 178, 177, 179 и т.д.). У соединений, которые с паузами этот счётчик доходил до 169, 168, потом опять 179. У соединений, которые доходили до 0 - обрыв соединения. Каждое 3-е где-то доходило до 169 (пауза). Каждое 10ое - обрывалось (до 0 доходило). Примерно на глаз такая статистика
Спасибо сказали:
Serega955
Сообщения: 35

Re: Linux NAT udp sip

Сообщение Serega955 »

Здравствуйте!
Попробуйте поискать пакет sipp, в репозитории вашего дистрибутива, очень удобно для тестирования.
Для установления соединения используется 5060, попробуйте открыть TCP и UDP. Без открытого TCP мне не удавалось установить соединение.
Попробуйте отключить фильтрацию, если таковая имеется, поставьте политику по умолчанию ACCEPT, если у вас DROP.
В качестве пограничных шлюзов мне чаще приходится ковыряться с CISCO, но возможно если использовать iptables проблемы будут схожи. Тестируйте в не рабочее время, без фильрации, т.к для успешной работы SIP опирается на RTP и RTCP, и из-за особенностей работы NAT, может оказаться что первый телефон займет порты(16384(RTP) & 16385(RTCP)) из рейнджа 16384-32767, а второй при попытке установить соединение выяснит что эти порты уже заняты, и откажется работать(это и есть проблема с NAT, которая имеет место быть на CISCO), в результате если просто открыть все нужные порты, то у меня заработал только 1 телефон(тот который первый занял порты). Потому если вы тестируете в рабочее время, может оказаться что порты заняли первые не вы, пока я этого не понял, угробил кучу времени. В случаи с CISCO требуется создать портмап, указав в нем рейнджи портов(RTP), и использовать примерно вот такую конструкцию:

Код:

ip nat inside source list WIFI_FREE interface Vlan202 overload portmap patSIP

К сожалению не имею подобного опыта работы, с iptables в роли пограничного шлюза.
Прошу прощения, если был в чем-то не до конца точен, занимался решением схожей проблемы очень давно. Конкретно мне помог пакет sipp, wireshark, и доки cisco. Надеюсь что эта информация будет для вас полезна.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Linux NAT udp sip

Сообщение pelmen »

Пробую на 1 телефоне (чтоб не мешали друг другу) - такой же эффект. замирание на несколько секунд.
Модули nf_nat_sip и nf_conntrack_sip загружены

Код: Выделить всё

udp      17 3596 src=192.168.88.52 dst=y.y.y.y sport=5060 dport=5060 src=81.88.86.11 dst=x.x.x.x sport=5060 dport=5060 [ASSURED] mark=0 helper=sip use=2

192.168.88.52 - ip телефона
y.y.y.y - ip mangoOffice
x.x.x.x - ip внешнего интерфейса

На всякий случай повторюсь: телефон регистрируется, исходящий звонок идёт, слышно друг друга нормально, но раз в 30-60 секунд имеется задержка 3-10 секунд, когда не слышно того, кто говорит в эту трубку. Того, кому он позвонил слышно постоянно нормально.
Спасибо сказали:
Serega955
Сообщения: 35

Re: Linux NAT udp sip

Сообщение Serega955 »

Периоды задержки у всех говорящих клиентов одновременно?
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Linux NAT udp sip

Сообщение pelmen »

ФУуууххх..... Можно закрывать тему)) свич поменяли и стало всё ок.
Спасибо сказали: