IAX

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

IAX2 — Inter-Asterisk eXchange protocol — протокол обмена VoIP данными между IP-АТС Asterisk и другим аналогичным софтсвичом или VoIP-телефоном. Наиболее приспособлен к трансляции сетевых адресов NAT, в отличие от SIP и H.323 использует только один порт 4569 протокола UDP для сигнализации и медиапотока, тогда как последние используют для этих целей разные порты. Данный протокол позволяет существенно экономить сетевой трафик по сравнению с протоколом SIP, что объясняется передачей сигнальной информации в битовых полях, а не текстом. Так же протокол позволяет совмещать множество голосовых потоков и передавать их внутри единого транка, уменьшая накладные расходы, связанные с передачей заголовков IP-пакетов.

История

IAX2 — (Inter-Asterisk eXchange protocol — вторая версия) протокол разработанный компанией Digium, специально для Asterisk, как альтернативный протокол. Группа разработчиков в составе: Марк Спенсер, Фрэнк Миллер, Кенни Шумард, Эд Гай и Брайан Капоч подала заявку в IETF и 20-го февраля 2009 года протокол был утверждён под RFC 5456. Предпосылкой было желание обеспечить передачу голоса высокого качества в «слабых» сетях. Так как при использовании протоколов SIP и H.323 двух портов для передачи голоса и сигнализации, иногда возникали проблемы, когда во время длительного разговора одного абонента и молчания другого, Firewall, в целях безопасности, закрывал порт сигнализации, так как по нему не шли пакеты. В результате этого после того, как молчавший абонент начинал говорить, сигнализация об этом не проходила через порт, и респондент его не слышал. Для того чтобы исключить данную проблему, IAX2 разработан так, чтобы использовать один порт для передачи голоса и сигнализации. Передача сигнальной информации в битовых полях (а не текстом), совмещение множества голосовых потоков и передача их внутри единого транка, позволяет существенно снизить сетевой трафик.

Технические особенности

  • полностью бинарный протокол (в отличие от SIP), что дает экономию трафика;
  • используется один единственный UDP-порт 4569, что упрощает конфигурацию Firewall и улучшает работу через NAT;
  • поддерживается транкинг, при этом в каждом пакете передаются данные сразу нескольких параллельных каналов — экономия трафика
  • экономнее чем SIP в требованиях к полосе пропускания;
  • проще конфигурация NAT и Firewall;
  • меньше неочевидных проблем (при наличии Firewall невозможна ситуация, когда соединение устанавливается, а голосовые данные пройти не могут, в отличие от SIP);
  • IAX2 эффективнее RTP (SIP) для любого количества одновременных соединений, и при использовании любого кодека. Экономия начиная от 2.4k для единственного вызова, до приблизительно утроения количества одновременных соединений через мегабитовый поток для G.729 при использовании trunk mode.

Недостатки

  • Трудность расширения протокола: каждая новая возможность должна быть добавлена в спецификации протокола, что делает его менее гибким, чем H.323, SIP или MGCP;
  • Уязвимость: старые реализации IAX2 уязвимы для DoS-атак[1], и эта проблема до сих пор не исправлена. Наилучшим решением является ограничения доступа к UDP-порту только с определённых IP-адресов, которым можно доверять. В новых версиях Asterisk этой проблемы больше нет[2].

Программы

Телефонные станции:

Примечания

  1. http://www.securitylab.ru/poc/extra/381425.php Архивная копия от 1 августа 2013 на Wayback Machine — эксплоит для IAX
  2. http://downloads.asterisk.org/pub/security/AST-2009-006.html Архивная копия от 27 июня 2012 на Wayback Machine Отчёт по безопасности

Ссылки