編者按:本文針對單位特殊控制數據在掉頭路由器組網環境下配置為協議無關組播任意源組播出現丟包問題進行了詳細分析,并測試和驗證了解決方案的有效性。
筆者單位網絡配置為協議無關任意源組播,路由RP(匯聚點)在路由器3上。與核心交換機直連的組播源作為發送端,使用任意源組播協議進行數據傳輸,抽象出網絡邏輯拓撲如圖1所示,此網絡拓撲關系即為掉頭路由器場景。
匯聚點RP是任意源組播的轉發核心,網絡中所有組播路由器都必須知道RP的地址。為了避免在多臺路由器上配置靜態指定RP(Static-RP),選擇動態競選C-RP的配置方法,配置路由器1、路由器2和路由器3的優先級一致,那么IP地址大的路由器3將選為RP,路由器3宕機時,路由器2競選為RP。配置完成后,組播源開始向接收端發送數據,由于特殊控制數據不是連續發送數據,且發送頻率較高,使得接收端接收組播源發送的偶發組播數據會出現丟包現象,且丟失的均為每段組播數據流開始的一些數據包。經過測試,發送間隔的時間在3 min以上均出現丟包現象。

圖1 網絡邏輯拓撲圖
路由器的操作系統平臺是VRP(通用路由平臺),VRP可以同時維護多種組播路由協議,通過控制平面與轉發平面之間的信息交互,實現組播路由建立和轉發組播數據。控制平面負責生成并維護組播路由表,收集路由信息,創建并維護路由表項。轉發平面繼承控制平面的路由表項,負責指導報文轉發。組播路由表由(S,G)表項組成,其 中(S,G)表示由指定源S向組播組G發送組播數據的路由信息,(*,G)表示任意源向組播組G發送組播數據的路由信息口。接收端首先啟用組播接收軟件,隨后組播源向接收端發送組播數據。
RPT(共享分發樹)建立過程為:接收端通過向路由器1發送Report消息,申請加入組播組;路由器1接收到Report消息后,創建路由表項(*,G1),并將與接收端相連的接口添加到下游列表,上游接口為與路由器2相連的接口;路由器2通過上游接口向路由器3發送Join消息,路由器3收到消息后,創建路由表項(*,G1),并將與路由器2相連的接口添加到下游列表,由于路由器3是RP,它不再向外發送Join消息。
當組播源開始向接收端發送控制數據時,組播路由的建立過程為:路由器1接收到組播源發的組播報文后,創建(S,G1)表項,之后將組播數據封裝在Register消息中單播發往路由器2;路由器2接收到組播源的注冊報文并解封裝出組播報文后,在本地創建(S,G1)表項,繼承(*,G1)表項的內容,將組播報文從下游接口發送出去;路由器3從上游接口接收到組播源的組播報文后,在本地創建(S,G1)表項,繼承(*,G1)表項的內容,將組播報文從下游接口發送出去;路由器2、路由器1從上游接口接收到組播源的組播報文后,在本地創建(S,G1)表項,繼承(*,G1)表項的內容,將組播報文從下游接口發送出去,接收端收到組播報文。
同時,RP和組成員端DR周期性檢測組播報文的轉發速率,一旦發現(S,G)報文的轉發速率超過閾值,則觸發SPT(最短路徑樹)切換。在默認情況下,RP收到第1個組播注冊報文后,啟動源端DR到RP的SPT建立過程。組成員端DR收到第1個組播報文后啟動RPT向SPT的切換過程,組播數據將直接從組播源發送到接收端。由于單位組播配置為默認設置,因此收到第1個組播報文后立刻啟動RPT向SPT的切換過程。
由上述分析可知,假設將組播源發出的目的地址為G,組播包按照發出的時間先后順序進行編號,路徑路由器1—路由器2—路由器3 (RP)—路由器2—路由器1比直接從路由器1轉發長。當路由器1建立了SPT路由狀態且路由器1開始沿SPT轉發的第1個數據包為自組播源到G的第1個數據包。路由器1將置其(S,G)的SPT-Bit為“1”,表示已完成從RPT到SPT的切換。假設到達路由器1的包順序為l—12—2—13,根據PIM-SM協議切換機制,此時包2—11將不會被接收端接收。
(1)問題原因如上分析,筆者首先想到的是針對特殊控制數據所在的組播組關閉RPT向SPT切換功能,這樣路由器1始終接收來自RP轉發的組播數據流。由于特殊控制數據組播流量有限,一般情況下不會對作為RP點的路由器3處理能力造成影響。但路由器3和路由器1距離較遠,時延較大且是跨單位使用,因此,該方案不是一個最優解決方法。
(2)配置IGMP靜態組加入,打開此功能后直接生成SPT,不會經RP點匯集后再轉發給接收者。當網段中的組播組成員關系較穩定時,適用靜態加入組播組。靜態加入某組播組后,無論網段上是否存在該組成員,路由器1將持續維護該組的(S,G)表項始終保持最短樹組播路徑。配置靜態組加入后只會決定該組播路徑選擇,不會影響其他組播組路由。
為了驗證解決方法的有效性,對路由器配置完成后進行了測試,組播源發送間隔的時間在3 min以上均無出現丟包現象。最終進行權衡,選擇用第二種方法解決組播丟包問題。
組播數據出現丟包現象比單播更難定位和分析故障成因。因此,在組播網絡設計時,要充分考慮傳輸鏈路對組播數據的影響,對組播數據產生洪泛的路由設備,要詳細分析其機理,并采取必要措施,以確保組播數據傳輸的完整性和可靠性。