IAX

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


1. Історія

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


2. Технічні особливості

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

3. Недоліки

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

4. Програми

Телефонні станції:

Примітки

  1. http://www.securitylab.ru/poc/extra/381425.php - www.securitylab.ru/poc/extra/381425.php - екслоіт для IAX
  2. http://downloads.asterisk.org/pub/security/AST-2009-006.html - downloads.asterisk.org/pub/security/AST-2009-006.html Звіт з безпеки