為何要關閉路由器的 SIP ALG?

路由器內的SIP ALG(應用層閘道)是為了解決SIP話機穿越NAT的問題而存在,但不少IT人員的實際經驗是:關掉它之後,電話反而恢復正常。ALG會檢查並改寫SIP訊息的位址與埠號,一旦改寫與NAT的實際行為不一致,便會造成註冊失敗、來電不響或單向通話。本文解釋ALG的運作原理、常見故障、關閉的理由,以及關閉後的替代機制。

免費上門勘察 即日或翌日上門 · 09:00-23:59

SIP ALG的原始設計目的

SIP ALG(Application Layer Gateway,應用層閘道)是路由器與防火牆內的一項功能,設計目的是讓SIP通訊可以順利穿越NAT。SIP訊息的特別之處在於,它除了在封包外層帶有來源與目的地位址之外,訊息內文(Via標頭、Contact標頭與SDP描述)亦會填寫自己的位址與埠號;NAT只改寫封包外層,不改寫內文,伺服器若按內文的私有位址回應,回應便無法送達。

ALG的思路是:既然問題在於內文位址與外層位址不一致,路由器便主動檢查經過的SIP封包,把內文的私有位址與埠號改寫為公網位址與暫用埠號,同時開啟對應的轉換規則讓回應與媒體流可以回流。理想情況下,話機毋須任何設定,路由器一手包辦SIP穿越。

這個設計有它的適用前提:ALG要正確解析SIP訊息,懂得在正確的位置找出位址並改寫,還要與NAT的轉換行為保持同步。實際路由器對SIP的支援參差,改寫一旦出錯,造成的問題往往比不處理更嚴重。這正是「關閉ALG」這項建議的來源。

ALG改寫位址與埠號的典型故障

ALG故障的第一類表現是改寫不完整。路由器只改寫了Via標頭中的位址,卻遺漏了Contact標頭或SDP描述中的媒體位址;伺服器依照殘留的私有位址回送回應或發送媒體,封包無法到達話機。徵狀是話機註冊時有時無,或通話建立後只有單向話音。

第二類表現是埠號改寫錯誤。SIP信令使用5060埠,RFC 3261在傳輸部分列出該預設值;媒體流則使用SDP協商出來的埠號。ALG若只處理信令而不處理媒體,或把媒體埠改寫成與NAT轉換記錄不同的值,語音封包便會被丟棄。部分ALG更會把UDP信令強制改寫成TCP或把TLS封包當作普通SIP處理,令加密通話直接失效。

第三類表現是與其他穿越機制互相衝突。話機自己啟用了rport(RFC 3581定義的機制,讓伺服器把回應送往請求的真正來源位址與埠號)或STUN(RFC 5389定義的位址發現工具),ALG又同時改寫位址,兩者得出的位址不一致,話機無從判斷哪一個才是正確位置。結果是設定越多、問題越複雜。

需要協助?本頁介紹原理,實際部署要按公司網絡與話務量規劃。WhatsApp

為何業界普遍建議關閉SIP ALG

關閉SIP ALG的建議,來自實務觀察與標準設計兩個層面。實務上,不同品牌路由器的ALG實作差異極大,有些版本只處理部分SIP訊息,有些在韌體更新後行為改變,有些則把合法SIP封包誤判為異常而丟棄。IT人員面對「電話註冊不穩」的第一個排解步驟,往往就是登入路由器關掉ALG,而這一步常常有效——因為ALG造成的錯誤遠多於它解決的問題。

標準層面,SIP本身已經提供穿越NAT的機制。RFC 3581的rport參數讓伺服器可以按請求的實際來源位址與埠號回應;RFC 5389的STUN讓話機得知自己在公網上的位址與埠號。這些機制由話機與伺服器協作完成,路由器只需要做一般的NAT轉換,毋須理解SIP內容。與其依賴路由器猜測SIP內文,不如讓兩端依標準機制自行協商,這是較可預期的做法。

需要留意的是,「關閉ALG」並非萬能。某些環境(例如話機本身不支援rport與STUN的舊型號)確實需要路由器協助;部分路由器關閉ALG後不會自動為SIP媒體開啟轉換規則,仍需配合話機的對稱式RTP設定。正確做法是先關閉ALG,觀察問題是否解決,再決定是否補充其他設定。

關閉ALG之後的替代機制

關閉ALG後,穿越NAT的責任回到話機與伺服器身上,有幾項標準機制可以接力。第一項是rport。RFC 3581定義的rport參數要求伺服器把回應送往請求的實際來源位址與埠號,並以同一組位址埠號回送回應,這使回應可以穿過NAT回流,解決「回應送不回」的問題。多數現代SIP話機與電話伺服器預設支援rport,只需確認雙方版本相符。

第二項是STUN。RFC 5389的STUN讓話機向公網的STUN伺服器查詢「我看到你的位址與埠號」,話機以此得知NAT分配給它的公網位址,並填入SDP描述,使對端的媒體封包可以送往正確位置。STUN對映像式NAT有效;若路由器屬對稱式NAT,STUN偵測到的位址未必適用於所有目的地,此時需要更進階的方案。

第三項是媒體中繼與對稱式RTP。話機可設定以固定的來源埠發送媒體,讓NAT的轉換記錄在通話期間維持有效;電話伺服器或閘道亦可充當RTP中繼,把媒體導向公網節點再轉送。企業環境若需更徹底的穿越保障,可在網絡邊界部署工作階段邊界控制器(SBC),集中處理信令與媒體的NAT穿越。這些機制的選擇,取決於話機型號、路由器行為與電話系統架構。

如何判斷ALG是否在製造問題

判斷SIP ALG是否在製造問題,可以從徵狀入手。若話機出現以下情況,ALG屬高度可疑:註冊成功後不定時失效,重新註冊又恢復;來電不響或接通後只有單向話音;通話建立後數秒靜音;啟用TLS或SRTP加密後註冊失敗。這些徵狀同時亦可能由防火牆規則或NAT時效引起,需要逐項排除。

更直接的方法是抓包檢查。在話機與伺服器之間的網絡節點擷取SIP封包,比較封包外層的來源位址與SIP內文(Via標頭、Contact標頭、SDP)所寫的位址:若內文位址被改寫成一個與NAT轉換記錄不相符的值,ALG便是元兇。抓包需要網絡設備支援,辦公室環境可在交換機鏡像埠或防火牆記錄中查看。

最簡單的驗證方法是實測。登入路由器關閉SIP ALG,觀察一段時間(建議覆蓋辦公時間與話務高峰)內話機的註冊穩定度與通話品質。若關閉後問題消失,即確認ALG是成因;若無改善,可重新開啟或改從其他方向排查。關閉ALG屬可逆操作,測試成本低,是排解SIP問題時值得優先嘗試的一步。

香港辦公室與家居網絡的實測建議

香港辦公室與家居環境中,SIP ALG的影響範圍各有不同。辦公室使用的商用路由器與防火牆,多數設有SIP ALG或VoIP穿越選項,預設狀態因品牌而異。公司電話系統部署時,應把「核對路由器與防火牆的ALG設定」列入安裝檢查清單,並與供應商確認其建議設定,而非沿用出廠預設值。多層網絡(單位路由器再加防火牆)時,各層的ALG設定要一併檢查,避免其中一層改寫與另一層衝突。

家居辦公室的情況更常見。香港不少員工使用家居網絡接駁公司電話系統,家庭路由器品牌型號繁多,ALG實作參差,且部分型號的ALG無法完全關閉,只能選擇「SIP穿越」或「VoIP透傳」等近似選項。員工反映電話不穩時,第一步可請其檢查路由器設定頁中是否有SIP/ALG/VoIP相關選項並嘗試關閉;若路由器不提供此選項,則可考慮把話機接在可關閉ALG的網絡位置,或改用支援rport與STUN的設定。

香港電訊商提供的寬頻路由器與整合式設備(同時兼任路由器、無線接入點與防火牆),ALG行為難以預測,且部分設備不開放進階設定。使用這類設備時,宜向電訊商查詢其設備的SIP穿越支援,或把公司電話系統的流量規劃到可控制的路由器後方。總體而言,關閉ALG並讓話機與伺服器依標準機制協作,是香港辦公室與家居網絡中最可預期的SIP穿越方案。

常見問題

SIP ALG是甚麼?
SIP ALG(應用層閘道)是路由器與防火牆內的功能,設計目的是讓SIP通訊穿越NAT。它會檢查並改寫SIP訊息的位址與埠號,把內文的私有位址改為公網位址,同時開啟對應的轉換規則。實際運作中,改寫失誤常造成註冊失敗或單向通話,因此業界多建議關閉。
關閉SIP ALG後電話就正常,原因是甚麼?
ALG改寫SIP內文位址時,若與NAT的實際轉換行為不一致,伺服器按改寫後的位址回應或發送媒體,封包便無法到達話機。關閉ALG後,話機與伺服器改用標準機制(rport、STUN)自行協商位址,不再依賴路由器的改寫,問題往往因而消失。
ALG會造成哪些具體問題?
常見有四類:註冊成功後不定時失效;來電不響或接通後只有單向話音;通話建立後數秒靜音;啟用TLS或SRTP加密後註冊失敗。這些徵狀亦可能由防火牆規則或NAT時效引起,需逐項排除。
關閉ALG後,話機如何穿越NAT?
依靠三項標準機制:RFC 3581的rport讓伺服器按請求實際來源位址回應;RFC 5389的STUN讓話機得知公網位址並填入SDP;對稱式RTP讓媒體封包維持同一來源埠。企業環境亦可部署工作階段邊界控制器(SBC)集中處理穿越。
所有路由器都支援關閉SIP ALG嗎?
多數商用路由器與防火牆可以關閉,部分家居路由器只提供「SIP穿越」或「VoIP透傳」等近似選項,個別型號則完全不開放設定。若無法關閉,可把話機接在可控制的路由器後方,或改用支援rport與STUN的設定。
如何確認是ALG造成問題,而非其他原因?
最簡單的方法是關閉ALG後觀察一段時間(建議覆蓋話務高峰),問題消失即確認成因。更直接的方法是在網絡節點抓包,比較封包外層來源位址與SIP內文所寫的位址:內文被改寫成與NAT轉換記錄不符的值時,ALG便是元兇。
關閉ALG有風險嗎?
關閉屬可逆操作,風險低。需要注意的是一旦關閉,穿越NAT的責任回到話機與伺服器身上,若兩端不支援rport或STUN,仍需配合其他設定(如對稱式RTP或媒體中繼)。關閉後應確認話機的註冊與通話品質,而非只設定後便離開。
香港電訊商提供的路由器可以關閉ALG嗎?
視乎型號而定。部分電訊商路由器開放進階設定可自行關閉,部分則鎖定管理介面。建議向電訊商查詢其設備的SIP穿越支援;若無法控制,可把電話系統流量規劃到自有路由器後方,或使用支援標準NAT穿越機制的話機與伺服器設定。

需要升級電話系統?

我們可以提供免費諮詢與報價。

免費報價

權威參考來源

相關技術主題

若閣下正計劃相關工程或需要選購設備,歡迎瀏覽電話系統工程了解方案詳情,或透過網上快速報價與我們的工程師聯絡。

產品規格以原廠最新文件為準;有需要請聯絡我們工程師。