SIP ALG на роутерах Huawei — это встроенный модуль прошивки, который перехватывает и модифицирует SIP-пакеты для прохождения NAT, но в 90% случаев ломает регистрацию IP-телефонии и вызывает одностороннюю слышимость. Функция активирована по умолчанию на большинстве шлюзов операторов связи (HG8245, HG8145, EchoLife серии), и пользователь часто даже не подозревает о её наличии до момента жалоб на качество звонков. Понимание принципа работы этого компонента критично для стабильной работы корпоративных АТС и домашних SIP-клиентов.
Протокол SIP использует в теле пакетов IP-адреса и порты для установки медиа-сессий (RTP), а ALG (Application Layer Gateway) пытается подменить их на внешние значения шлюза. На практике алгоритм Huawei часто ошибается в определении направления вызова, портит SDP-описание или блокирует входящие INVITE-запросы из-за некорректной таблицы трансляции. Результат — телефон звонит, но трубку снять нельзя, или собеседник вас не слышит, хотя вы его слышите идеально.
Что такое SIP ALG и зачем он нужен в оборудовании Huawei
SIP ALG (Application Layer Gateway) — это механизм инспекции трафика на уровне приложения (L7), предназначенный для решения проблемы NAT Traversal для протокола SIP. Роутер анализирует сигнальный трафик (порт 5060 UDP/TCP) и динамически открывает порты для медиа-потока RTP, подставляя в пакеты свой внешний IP-адрес вместо внутреннего адреса телефона. В теории это позволяет избежать ручного проброса портов (Port Forwarding) и использования STUN/TURN серверов.
В прошивках Huawei (V3R019, V5R023 и новее) модуль реализован как часть межсетевого экрана и часто не имеет гибких настроек — только включение/выключение. Разработчики исходили из сценария «один SIP-телефон за NAT», но современные сети используют несколько устройств, VPN, VLAN и шифрование (SIPS/TLS), что делает работу ALG деструктивной. Если сигнализация идет по TLS (порт 5061), роутер не может расшифровать пакеты для инспекции, но всё равно может блокировать их по эвристическим правилам.
Технические детали реализации ALG в прошивках Huawei
В прошивках на базе VRP (Versatile Routing Platform) SIP ALG реализован как часть модуля NAT ALG. Он парсит заголовки Contact, Via, SDP (c=, m= строки). При обнаружении приватного IP (RFC1918) в полях Contact или SDP c=, роутер создает временную запись в таблице NAT и подменяет адрес на WAN-IP. Таймаут этой записи часто жестко задан (180-300 сек) и не настраивается через GUI. Это приводит к разрыву диалога при долгих удержаниях вызова или переводах.
- 🔧 Инспекция пакетов на порту 5060 (UDP/TCP) без возможности смены порта в GUI.
- 🔄 Модификация SDP — замена приватных IP на публичный WAN-адрес в строке
c=IN IP4. - 🚪 Динамическое открытие портов RTP (диапазон 10000-20000 обычно) для медиа-трафика.
- 🛡 Взаимодействие с Firewall — ALG добавляет временные правила разрешения входящего RTP.
Симптомы работы SIP ALG: как понять, что он мешает
Главный маркер проблемы — асимметрия звука или полное отсутствие прохождения вызовов при корректной регистрации на SIP-сервере. Телефон показывает статус «Registered», исходящие уходят, но при входящем звонке сбрасывается сразу после ответа, либо слышимость есть только в одну сторону. Часто виноват именно ALG, который подменил IP в SDP на неверный (например, адрес другого интерфейса роутера или старый WAN-IP после переподключения).
Другой сценарий — работа через VPN или IPv6. ALG не понимает туннелированный трафик и пытается применить NAT-к логике к пакетам, которые уже маршрутизируются корректно. Это вызывает дублирование заголовков Via, порчу контрольных сумм и дроп пакетов файрволом. На моделях Huawei HG8245H и Huawei MA5671 это проявляется особенно ярко при включенном IPv6 Dual Stack.
⚠️ Внимание: Если вы используете шифрованный SIP (SIPS/TLS) на порту 5061, ALG не может проинспектировать полезную нагрузку, но может блокировать пакеты по сигнатурам или мешать прохождению RTP, так как не видит согласованных в SDP портов. Отключение ALG обязательно при использовании TLS.
- 📞 Входящие звонки сбрасываются сразу после снятия трубки (ACK не доходит или RTP блокируется).
- 🔇 Односторонняя слышимость — вы слышите, вас нет (или наоборот), классика ошибки NAT/ALG.
- 📴 Потеря регистрации через случайные интервалы (ALG портит заголовок Contact при ререгистрации).
- 📶 Проблемы только за роутером — при подключении телефона напрямую к провайдеру (без NAT) всё работает.
Пошаговое отключение SIP ALG через веб-интерфейс
На большинстве домашних шлюзов Huawei (HG8245, HG8145, HS8145, HN8145) настройка спрятана в меню безопасности или приложений. Вход в веб-интерфейс обычно доступен по адресу 192.168.1.1 или 192.168.100.1. Логин/пароль: root/admin, telecomadmin/admintelecom или наклейка на корпусе (user/user для пользовательского аккаунта, но он часто не видит эту настройку).
☑️ Чек-лист отключения SIP ALG в GUI
После отключения галочки обязательно выполните перезагрузку устройства (System Tools → Reboot). Простое применение настроек не сбрасывает уже установленные NAT-сессии и кэш ALG, поэтому «призраки» старых соединений могут мешать еще 5-10 минут. Если веб-интерфейс на русском, ищите «Приложение» → «ALG» → «SIP ALG». На английском: Application → ALG → SIP ALG.
На некоторых прошивках (например, от МГТС, Ростелеком, Билайн) пункт меню скрыт или заблокирован оператором. В этом случае поможет доступ через Telnet/SSH или файл конфигурации backup.cfg. Скачайте бэкап (Maintenance → Device → Configuration File), откройте в Notepad++, найдите строку SIP_ALG_Enable=1 или , замените на 0, загрузите обратно и перезагрузитесь.
Отключение через CLI (Telnet/SSH) для продвинутых моделей
На бизнес-классе (AR серии, MA5600, NE роутеры) и некоторых GPON-терминалах настройка доступна только в командной строке. Подключитесь по Telnet (порт 23) или SSH (порт 22) под супер-админом. Команды зависят от платформы: на VRP (NE/AR) это system-view → nat alg sip disable, на платформе GPON (MA5671/MA5672) — voip alg sip disable. После ввода команд сохраните конфигурацию: save или commit.
# Пример для Huawei AR/NE (VRP)
[Huawei] nat alg sip disable
[Huawei] quit
The current configuration will be saved. Continue? [Y/N]: y
Для GPON OLT/ONU (MA5600/MA5800) контекст другой — настройка может быть в профиле линии или сервисе. Часто ALG глобально не отключается, а настраивается ALG Transparent режим для конкретного VLAN/GEMPORT. Требуется знание профиля ont-lineprofile или ont-srvprofile. Обратитесь к документации конкретной версии V800R.
Если у вас роутер от провайдера и нет доступа telecomadmin — попробуйте логин admin с паролем admin или Huawei@Home. Часто операторы оставляют этот аккаунт для техподдержки, и он имеет доступ к меню ALG. Пароль иногда равен последним 8 символам MAC-адреса WAN-порта (на наклейке).
Таблица: где искать SIP ALG на популярных моделях Huawei
| Модель / Серия | Путь в Web GUI (Англ. / Рус.) | Доступ в CLI | Примечание |
|---|---|---|---|
| HG8245H / HG8145V5 | Application → ALG → SIP ALG | Telnet: alg sip disable |
Часто скрыт у провайдеров |
| HS8145V / HN8145X6 | Application → ALG Configuration | SSH: voip alg sip disable |
Требует логин root |
| AR6000 / AR1000 (Enterprise) | Security → ALG → SIP | VRP: nat alg sip disable |
Полная поддержка CLI |
| MA5671 / MA5672 (ONU) | Отсутствует в GUI | OLT CLI: ont-srvprofile → voip alg disable |
Настраивается на OLT |
| EchoLife EG8145V5 | Maintenance → ALG → SIP ALG | Telnet: alg sip enable 0 |
Меню в Maintenance |
Что делать, если настройка не сохраняется или отсутствует
Ситуация, когда галочка сбрасывается после ребута или пункта нет в меню, типична для кастомизированных прошивок провайдеров (Ростелеком, МГТС, ТТК, Билайн). Они загружают свою конфигурацию по TR-069/OMCI при каждой перезагрузке, перезаписывая пользовательские правки. В этом случае единственный надежный путь — перевод устройства в режим моста (Bridge Mode) на WAN-порте и установка за ним собственного роутера (Keenetic, MikroTik, ASUS, OpenWrt), где вы полностью контролируете ALG и NAT.
⚠️ Внимание: Перевод GPON-терминала в Bridge Mode часто требует звонка в техподдержку провайдера для авторизации MAC-адреса вашего роутера на стороне OLT. Не пытайтесь прошить «чистую» прошивку (Stock/International) на заблокированном оператором ONU — это приведет к брику и потере гарантии/поддержки. Серийный номер и LOID привязаны к оборудованию провайдера.
Альтернатива без смены роутера — использование VPN на телефоне/софтфоне (WireGuard, OpenVPN) до сервера, где нет ALG. SIP-трафик уйдет в зашифрованном туннеле, и роутер Huawei не сможет его проинспектировать и испортить. Это рабочий воркэраунд для домашних пользователей, которые не могут поменять оборудование. Настройте на SIP-клиенте (Linphone, Zoiper, Bria) использование TLS/SRTP и нестандартный порт сигнализации (не 5060) — это также снижает вероятность срабатывания эвристик ALG.
Влияние SIP ALG на безопасность и другие протоколы
Помимо поломки телефонии, активный ALG создает поверхность атаки. Модуль парсит сложные текстовые заголовки SIP в памяти ядра/пользовательского пространства без должной валидации длины полей. Исторически в реализациях ALG разных вендоров (включая ранние VRP) находились уязвимости типа Buffer Overflow через специально сформированный пакет INVITE с длинным заголовком Via или Contact. Отключение ALG закрывает этот вектор атаки на уровне шлюза.
Также ALG может конфликтовать с H.323 (старый стандарт видеоконференций), RTSP (IP-камеры, стриминг) и FTP, если на роутере включены соответствующие ALG-модули. Они используют общий движок инспекции и таблицу ожидающих соединений (expect table). Перегруз этой таблицы множеством SIP-диалогов может привести к тому, что пассивный FTP или RTSP перестанут работать. Лучшая практика — отключить все ALG-модули, которые вы не используете явно.
Главный вывод: SIP ALG на Huawei — это легаси-костыль для NAT, который в современных сетях (множество устройств, VPN, TLS, IPv6) наносит больше вреда, чем пользы. Отключайте его первой настройкой при внедрении IP-телефонии. Если провайдер запрещает — ставьте свой роутер в Bridge или используйте VPN/TLS на клиенте.
Часто задаваемые вопросы (FAQ)
Почему после отключения SIP ALG звонки пропали совсем?
Скорее всего, ваш SIP-провайдер или АТС ожидает, что NAT будет пробит ALG, и не используют STUN/ICE/rport. Включите на SIP-клиенте/АТС: STUN-сервер (stun.l.google.com:19302), параметр rport (RFC 3581), «Force RFC 3581» / «Symmetric RTP». Также проверьте, что на роутере проброшены порты RTP (обычно 10000-20000 UDP) на IP телефона, если у вас строгий Cone NAT.
Можно ли оставить SIP ALG включенным, если всё работает?
Можно, но это риск. Работает «пока не сломается» — смена внешнего IP провайдером, обновление прошивки роутера, добавление второго телефона или перевод вызова внезапно раскроют баги. Проактивное отключение экономит часы отладки в будущем. Исключение — очень старые SIP-устройства (до 2010 г.) без поддержки STUN/ICE, за которыми стоит один роутер и нет других вариантов.
Влияет ли SIP ALG на видеозвонки (WhatsApp, Telegram, Zoom)?
Нет. Эти сервисы используют проприетарные протоколы поверх UDP/QUIC (WebRTC), а не стандартный SIP. ALG SIP не трогает их трафик. Проблемы с видеочатами обычно связаны с блокировкой UDP, отсутствием UPnP/PCP или ограничением полосы пропускания на канале провайдера.
Как проверить, что SIP ALG действительно отключился?
Сделайте захват трафика (Wireshark/tcpdump) на стороне SIP-сервера или на телефоне (если поддерживает pcap). Зарегистрируйтесь и посмотрите пакет REGISTER/200 OK и INVITE/SDP. В строке c=IN IP4 должен быть внешний IP вашего роутера (если клиент за NAT и использует STUN) или внутренний IP телефона (если клиент не делает STUN). Если там фигурирует чужой IP или порт не совпадает с открытым — ALG еще жив. Также в логах роутера (System Log) должны исчезть записи SIP ALG: modify packet.
Есть ли смысл обновлять прошивку Huawei для исправления багов SIP ALG?
Обновления прошивок (ISP Release) редко фиксят логику ALG — операторам выгоднее, чтобы вы пользовались их VoIP-услугами (которые идут в обход ALG через отдельный VLAN/TR069). Если вы на «чистой» международной прошивке — обновления могут улучшить парсинг, но архитектурную проблему модификации пакетов они не решают. Отключение остается единственным надежным решением.