Трансляция сетевых адресов (NAT) является обычной практикой в сети и нередко мешает прохождению голосовых пакетов и инициализации соединений. Решение этой проблемы требует понимания принципов работы NAT и VoIP. В этой статье рассматривается протокол SIP и Asterisk, но проблемы и решения применимы и к большинству других приложений и протоколов.
NAT используется, чтобы скрыть многочисленные локальные адреса, за каким-то внешним узлом, обеспечивая безопасность и структуризацию сети.
Когда пакет проходит шлюз (gateway), IP-адрес локального источника заменяется на внешний IP-адрес. При ответе шлюз направляет пакет на исходный локальный адрес. Также шлюз блокирует внешние запросы не имеющие явных внутренних источников, но возможно пробросить пакеты пришедшие на определенные порты, на заранее заданные IP адреса внутри сети.
NAT используется, чтобы скрыть многочисленные локальные адреса, за каким-то внешним узлом, обеспечивая безопасность и структуризацию сети.
Когда пакет проходит шлюз (gateway), IP-адрес локального источника заменяется на внешний IP-адрес. При ответе шлюз направляет пакет на исходный локальный адрес. Также шлюз блокирует внешние запросы не имеющие явных внутренних источников, но возможно пробросить пакеты пришедшие на определенные порты, на заранее заданные IP адреса внутри сети.
Reinvite
Первый абонент запрашивает соединение у второго , сообщая свой IP адрес. Второй отвечает, сообщая свой IP. Голосовые пакеты направляются напрямую абонентам, минуя SIP сервер. Передача голосовых пакетов напрямую абонентам, минуя Asterisk, называется RE-INVITE или Native Bridge. NAT может вызвать проблемы в нескольких местах.
- Если одна из АТС находится за NAT, другая АТС не сможет связаться с ней, без проброса портов.
- Если телефон находится за NAT, голосовые пакеты могут быть направлены на немаршрутизируемый адрес в сети, что приведет к потере звука.
Клиент за NAT
В простейшей ситуации SIP клиент находясь за NAT, обращается к внешнему интерфейсу Asterisk. SIP клиент при регистрации на сервере создает запись в таблице трансляций, которая сохраняется, пока проходит хотя бы один пакет в минуту. В файле sip.conf требуется определить параметры сети и свойства удаленного пира. [general] localnet=192.168.0.0/255.255.255.0 ; локальная сеть externip=x.x.x.x ; внешний ip адрес [sip_phone] nat=yes qualify=300 ; проверять соединение каждые 300 мс.При такой конфигурации Asterisk использует внешний IP адрес externip для вызовов клиентов с параметром nat=yes . Дополнительно параметр qualify=yes поддерживает соединение, не позволяя удалять запись из таблицы трансляций.
SIP клиенты и Asterisk за NAT
Все усложняется если и Asterisk, и клиенты, находятся за NAT. Клиенты с внешней стороны не смогут получать SIP сообщения и принимать звонки. Или в SIP сообщении будет указан локальный IP адрес телефона, что приведет к потере звука. Чтобы избежать потери звука запретите re-invite в файле sip.conf
[general] canreinvite => noНо клиенты находящиеся за NAT, все равно не смогут инициировать соединение с Asterisk и направить голосовые пакеты RTP на требуемый екстеншен. Для того чтобы это работало, надо пробросить требуемые порты через брандмауер на Asterisk. Диапазон RTP портов используемых Asterisk, назначается в файле rtp.conf.
[general] rtpstart=10000 rtpend=10100По умолчанию задан диапазон от 10000 до 20000. Измените диапазон в соответсвии с вашими потребностями (по два порта на каждый конкурирующий вызов).
Для нормальной работы за NAT, потребуется пробросить диапазон RTP портов в соответсвии с настройками в файле rtp.conf и порт SIP(обычно 5060). В iptables это будет выглядеть так:
iptables -t nat -A PREROUTING -i eth0 -p udp \ -m udp --dport 10000:10100 -j DNAT \ --to-destination 192.168.1.10 iptables -t nat -A PREROUTING -i eth0 -p udp \ -m udp --dport 5060 -j DNAT \ --to-destination 192.168.1.10Где eth0 - внешний интерфейс, а 192.168.1.10 - IP адрес Asterisk.
Основные параметры конфигурации NAT для Asterisk
sip.conf
port= Порт используемый SIP протоколом для сигнализации (default=5060)
bindaddr= IP адрес Asterisk, если указано 0.0.0.0, то любой адрес.
externip= Этот параметр задается в секции [general] файла sip.conf и указывает внешний IP адрес, или имя хоста на вашем устройстве NAT.
localnet= Этот параметр задается в секции [general] файла sip.conf и указывает на локальную сеть и используется для обращения к устройствам с параметром nat=no.
Возможные значения:
NAT= yes, no, never, route
Это будет работать только, если телефоны за NAT будут использовать для одинаковый порт для голосовых пакетов RTP и одинаковый (но отличный от голосового) для сигнализации RTCP.
qualify= Эта опция имеет два назначения.Первое - поддерживать запись в таблице трансляций NAT и контролировать регистрацию телефона.
Возможные значения:
bindaddr= IP адрес Asterisk, если указано 0.0.0.0, то любой адрес.
externip= Этот параметр задается в секции [general] файла sip.conf и указывает внешний IP адрес, или имя хоста на вашем устройстве NAT.
externip=123.123.123.123Этот адрес будет использован для общения с устройствами с установленным параметром nat=yes.
localnet= Этот параметр задается в секции [general] файла sip.conf и указывает на локальную сеть и используется для обращения к устройствам с параметром nat=no.
localnet=192.168.0.0/255.255.255.0nat= Этот параметр определяет тип настройки для пользователей, пытающихся подключиться к серверу Asterisk.
Возможные значения:
NAT= yes, no, never, route
NAT=routeAsterisk будет отправлять голосовые пакеты на порт и IP адрес с которого их получает а не указанные в SIP и SDP сообщениях.
Это будет работать только, если телефоны за NAT будут использовать для одинаковый порт для голосовых пакетов RTP и одинаковый (но отличный от голосового) для сигнализации RTCP.
qualify= Эта опция имеет два назначения.Первое - поддерживать запись в таблице трансляций NAT и контролировать регистрацию телефона.
Возможные значения:
qualify=yesЭтот параметр задает проверку по умолчанию каждые 2 секунды.
qualify=noЭто выключает проверку.
qualify=300Включает проверку через заданное время в 300 ms.
rtp.conf
rtpstart=10000Задает первый порт диапазона для приема и оправки голосовых пакетов RTP.
rtpend=10100Задает последний порт диапазона для приема и оправки голосовых пакетов RTP.
FreePBX за NAT
Подписаться на:
Комментарии к сообщению (Atom)
Популярные сообщения БЛОГА
-
Попробуем настроить Cisco 851 (871) из консоли. А вот сам испытуемый... Вот последовательность действий: 1. Нужно подключить Cisco...
-
Image via Wikipedia По материалам сайта http://www.voiceip.com.ua 1. Установка Trixbox В этом руководстве я расскажу вам о замечательном пр...
-
Image via Wikipedia Часто нужно по-быстрому выйти в интернет через мобильный телефон, коммуникатор, GPRS-модем или что-то похожее, но настр...
-
Image via Wikipedia В предыдущей статье была рассмотрена настройка сервера IP-телефонии. При минимальных настройках можно совершать IP-зв...
-
Источник Каждый из тех кто работает в мире IT знает, что иногда программное обеспечение или оборудование работает не так как от него этог...
-
Вообще говоря, подобная связка - задача не сильно сложная, и многими системными администраторами уже не раз решенная. Однако, когда мне са...
-
Image via Wikipedia В последнее время на форуме часто встречаются вопросы, связанные с неправильной настройкой DNS (почта по IP -адресу ...
-
Cервер терминалов для Windows XP Как известно, WindowsXP позволяет подключится одному удалённому пользователю для управления рабочим столом...
-
Image via Wikipedia Голосовой модуль по умолчанию активирован только в модемах МТС. Рекомендованное ядро Linux 2.6.33+ Asterisk 1.6.+ ...
-
Image by Getty Images via Daylife еще до этого срока операционная система напомнит о своей "нелицензионности" пользователю - с 1 марта 2010...
Архив блога
-
►
2011
(25)
-
►
Август
(13)
- KVM & OpenVZ виртуализация и облачные вычисления с...
- Настройка iptables для начинающих
- Защищаем сервер Asterisk с помощью fail2ban
- Asterisk+fail2ban под FreeBSD
- Защита asterisk от взлома
- Как изменить пароль для администратора FreePBX Ast...
- Стандартные пароли для Elastix
- Смена стандартного пароля MySQL trixbox
- Шлюзы GSM. Работа со всеми IP PBX, в т.ч. Asterisk...
- Как изменить номер порта SSH.
- Установка Webmin + LAMP (Linux + Apache + MySQL + ...
- Установка Webmin на CentOS 5
- Установка Midnight Commander
-
►
Июнь
(9)
- Установка Debian Lenny на RAID (fake RAID)
- Перевод дисков после инсталляции Proxmox VE в RAID...
- Proxmox VE 1.5 настройка Cluster
- Создание шаблона виртуальной машины для OpenVZ/Pro...
- Создание шаблона TrixBox для OpenVZ
- Elastix 2.0 and OpenVZ / Proxmox template
- Виртуализация или KVM bare-metal решения Proxmox V...
- Asterisk & Skype
- Настройка IP-телефонии на смартфонах Nokia с испол...
-
►
Август
(13)
-
▼
2010
(143)
-
►
Октябрь
(7)
- Flash Operator Panel 2 - for ASTERISK
- FXO больше не нужны !!! Переадресация на замену FX...
- Восстановление файла .ost или .pst в программе Mic...
- Бубен первого поколения
- You can use this script to install Elastix on VPS ...
- D-link DVG - 7111S 1 FXO + 1 FXS порт
- Организация совместной работы при помощи SharePoin...
-
▼
Сентябрь
(19)
- Настройка связки DVG-7111S <=> Asterisk
- Настройка voip-роутера D-link DVG 7111S + asterisk...
- SPA400 и FreePBX
- Using the Linksys SPA400 with Asterisk
- FreePBX за NAT
- Настройка FreePBX
- Asterisk Phonebook - телефонная книга
- VoIP-GSM шлюз для Asterisk на USB модеме HUAWEI E1...
- NAT, SIP и Asterisk
- Открытый SIP Skype шлюз от SIPNET.
- Skype SIP транк
- Установка сервера IP-телефонии Asterisk + FreePBX ...
- Asterisk + FreePBX + sipnet. Настройка Asterisk дл...
- Папки, используемые Asterisk
- Бесплатная парковка домена от «1domain.ru»
- Бесплатная парковка домена от zoneedit_com
- Руководство по решению проблем: настройка моста/ п...
- Установка Webmin
- Обзор панелей контроля показателей сайтов
-
►
Октябрь
(7)
Достойны внимания:
-
Плагины для Adobe Photoshop. AV Bros. Puzzle/Curl + Corel Drawings Embroidery Effect - AV Bros. Puzzle Pro – плагин представляющий собой очень мощный и качественный фильтр для Adobe Photoshop и совместимых хостов. Имеются версии данного фильт...Кол-во лет назад: 2
-
Photo Spot v1.0.1 - [image: Photo Spot v1.0.1] Великолепный новый компонент галереи для CMS Joomla! от BonusThemes* *Кол-во лет назад: 2
-
-
Урок 32. Использование реальных дисков в VMware Workstation - В данном видеоуроке рассмотрена настройка виртуального компьютера с целью использования реально существующих жестких дисков на виртуальном компьютере. *C...Кол-во лет назад: 4




0 коммент.:
Отправить комментарий