Проблема брандмауэра с несколькими серверами SIP PROXY / REGISTRAR

У нас есть пара серверов SIP PROXY/REGISTRAR с выходом в Интернет (для обеспечения устойчивости и распределения нагрузки). Когда SIP-телефон регистрируется, он будет обрабатываться одним из серверов REGISTRAR (циклический DNS) - и поскольку эта регистрация возобновлена, трансляция порта / адреса межсетевого экрана сохраняется. Поэтому, когда вызов должен быть отправлен обратно на телефон, сообщение INVITE успешно проходит через брандмауэр.

Однако вполне вероятно, что телефон может зарегистрироваться на одном из двух серверов, но сообщение INVITE может поступить с другого. В этой ситуации вызов не выполняется, поскольку на брандмауэре нет перевода.

Есть ли в протоколе SIP функция, облегчающая это? Есть другие идеи? По мере роста нашего трафика мы, без сомнения, получим более двух серверов, поэтому проблема будет обостряться.

Спасибо,

Майк

2 ответа

У нас была такая же проблема на Juniper SRX на junos 12.1R2.9.

У провайдера SIP есть 4 IP-адреса, которые изменяются в результате циклического перебора DNS, и, очевидно, сотни (не более 512 IP-адресов), которые отправляют пакеты RTP.

Предыдущий брандмауэр был Snapgear, старый, но с простотой использования. Можжевельник имеет симметричный NAT и выглядит более строгим.

Нам удалось получить звук изнутри наружу, используя постоянный источник nat.

Для аудио снаружи внутрь нам пришлось добавить правило nat:

  1. Отключите SIP ALG при использовании.
  2. Убедитесь, что вы всегда подключаетесь к одному и тому же IP-адресу провайдера SIP (например, 131.131.160.2).
  3. Если трафик поступает из диапазона IP-адресов провайдера SIP, сопоставьте исходный адрес с тем же IP-адресом 131.131.160.2.

Постоянный NAT гарантирует, что трафик разрешен. Очевидно, это работает. Возможно, шаг 2 можно пропустить, но учитывая количество времени простоя, пока я его оставил.

nat {source {pool sip-zipt-nl-no-round-robin {address {131.131.160.2/32; }} адрес-постоянный; интерфейс {перегрузка порта отключена; } набор правил доверия к недоверию {из зоны доверия; зонировать недоверие; rule source-nat-rule { match { source-address 0.0.0.0/0; } затем {source-nat {interface {persistent-nat {allow any-remote-host; } } } } } }

набор правил sip -coming {из зоны недоверия; зонировать доверие; rule sip-zipt-nl-no-round-robin { match { source-address 131.131.160.0/23; адрес назначения 0.0.0.0/0; } затем { source-nat { pool { sip-zipt-nl-no-round-robin; } } } } } }

Фактическая проблема заключается в том, что ваши прокси / регистраторы не делят базу данных регистрации.

Другие вопросы по тегам