張瀟男 石湘
摘要:在任意源組播(ASM)網(wǎng)絡(luò)環(huán)境的基礎(chǔ)上,對因PIM-SM協(xié)議構(gòu)建組播路由過程中自動(dòng)對組播共享樹向最短路徑樹(SPT)切換時(shí)所導(dǎo)致的組播數(shù)據(jù)丟失問題進(jìn)行了分析。針對目前主流網(wǎng)絡(luò)設(shè)備避免SPT切換的幾種方法的優(yōu)缺點(diǎn)進(jìn)行了介紹,并指出在專網(wǎng)應(yīng)用時(shí)的不合理性。通過原理分析和模擬環(huán)境試驗(yàn),提出了一種通過添加靜態(tài)組播組構(gòu)建穩(wěn)定組播路由,避免SPT切換的新方法。
關(guān)鍵詞:任意源組播;最短路徑樹;丟包
中圖分類號(hào):TP393文獻(xiàn)標(biāo)志碼:A文章編號(hào):1008-1739(2020)09-57-3
0引言
組播較單播傳輸更節(jié)省網(wǎng)絡(luò)帶寬,而且廣播傳輸安全性高,因此組播已逐漸在網(wǎng)絡(luò)中得到較大規(guī)模應(yīng)用。組播根據(jù)源和目的的不同,可分為ASM、源過濾組播(SFM)和指定源組播(SSM)三種模型。目前組播技術(shù)應(yīng)用較為廣泛的是ASM模型,此模型假設(shè)不知道發(fā)送者和接收者的位置,因此需要在網(wǎng)絡(luò)中選取一個(gè)設(shè)備來當(dāng)作橋梁去收集組播源和接收者的信息,這個(gè)設(shè)備就是匯聚點(diǎn)(RP),它為二者建立共享路徑樹(RPT)。因此RP即使不在最優(yōu)路徑上,數(shù)據(jù)也要經(jīng)過RP進(jìn)行轉(zhuǎn)發(fā)。為了減少RP的負(fù)荷,接收者收到組播數(shù)據(jù)后會(huì)根據(jù)數(shù)據(jù)包的源地址重新建立接收者到發(fā)送者的最短路徑并進(jìn)行切換,這就會(huì)導(dǎo)致數(shù)據(jù)在切換過程中瞬間丟失。本文對ASM的轉(zhuǎn)發(fā)機(jī)制進(jìn)行了分析,依據(jù)分析結(jié)果提出了解決問題的措施。
1任意源組播路由的建立機(jī)制
ASM的實(shí)現(xiàn)方法是:①在網(wǎng)絡(luò)中維護(hù)一臺(tái)重要的PIM路由器,也稱組播RP,網(wǎng)絡(luò)中所有的PIM路由器都知道RP的位置;②當(dāng)網(wǎng)絡(luò)中出現(xiàn)組成員時(shí),最后一跳路由器向RP發(fā)送Join報(bào)文,逐跳創(chuàng)建(*,G)表項(xiàng),生成一棵以RP為根的RPT;③當(dāng)網(wǎng)絡(luò)中出現(xiàn)活躍的組播源時(shí),第一跳路由器將組播數(shù)據(jù)封裝在Register報(bào)文中單播發(fā)往RP,在RP上創(chuàng)建(S,G)表項(xiàng),注冊源信息,從而生成基于RP的SPT表項(xiàng)。
1.1 PIM-SM RPT構(gòu)建
PIM-SM(ASM模型)RPT是一棵以RP為根,以PIM路由器為葉子的組播分發(fā)樹。
當(dāng)網(wǎng)絡(luò)中出現(xiàn)組成員時(shí),組成員端DR向RP發(fā)送Join報(bào)文,在通向RP的路徑上逐跳創(chuàng)建(*,G)表項(xiàng),生成一棵以RP為根的RPT。加入報(bào)文從組成員端DR開始逐跳發(fā)送,直到RP,RPT構(gòu)建如圖1所示。
1.2 PIM-SM組播源注冊
組播源注冊如圖2所示,在PIM-SM網(wǎng)絡(luò)中,任何一個(gè)新出現(xiàn)的組播源都必須首先在RP處注冊,繼而才能將組播報(bào)文傳輸?shù)浇M成員。
具體過程如下:①組播源將組播報(bào)文發(fā)給源端DR;②源端DR接收到組播報(bào)文后,將其封裝在Register報(bào)文中,發(fā)送給RP;③RP接收到Register報(bào)文,將其解封裝,建立(S,G)表項(xiàng),并將組播數(shù)據(jù)沿RPT發(fā)送到組成員。
1.3 PIM-SM SPT切換
在PIM-SM網(wǎng)絡(luò)中,一個(gè)組播組只對應(yīng)一個(gè)RP,只構(gòu)建一棵RPT。
在未進(jìn)行SPT切換的情況下,所有發(fā)往該組的組播報(bào)文都必須先封裝在注冊報(bào)文中發(fā)往RP,RP解封裝后,再沿RPT分發(fā)。RP是所有組播報(bào)文必經(jīng)的中轉(zhuǎn)站,當(dāng)組播報(bào)文速率逐漸變大時(shí),對RP形成巨大的負(fù)擔(dān)。
為了解決此問題,PIM-SM允許RP或組成員端DR通過觸發(fā)SPT切換來減輕RP的負(fù)擔(dān)。
(1)RP觸發(fā)SPT切換
RP收到源端DR的注冊報(bào)文后,將封裝在Register報(bào)文中的組播報(bào)文沿RPT轉(zhuǎn)發(fā)給組成員,同時(shí)RP會(huì)向源端DR逐跳發(fā)送Join報(bào)文。發(fā)送過程中在PIM路由器創(chuàng)建(S,G)表項(xiàng),從而建立了RP到組播發(fā)送者的源路徑樹。
(2)組成員端DR觸發(fā)SPT切換
組成員端DR觸發(fā)SPT切換如圖3所示,組成員端DR周期性檢測組播報(bào)文的轉(zhuǎn)發(fā)速率,一旦發(fā)現(xiàn)(S,G)報(bào)文的轉(zhuǎn)發(fā)速率超過閾值,則觸發(fā)SPT切換。
組成員端DR向源端DR逐跳發(fā)送Join報(bào)文并創(chuàng)建(S,G)表項(xiàng),建立源端DR到組成員DR的SPT。SPT建立后,組成員端DR會(huì)沿著RPT逐跳向RP發(fā)送剪枝報(bào)文,刪除(*,G)表項(xiàng)中相應(yīng)的下游接口。剪枝結(jié)束后,RP不再沿RPT轉(zhuǎn)發(fā)組播報(bào)文到組成員端。
如果SPT不經(jīng)過RP,RP會(huì)繼續(xù)向源端DR逐跳發(fā)送剪枝報(bào)文,刪除(S,G)表項(xiàng)中相應(yīng)的下游接口。剪枝結(jié)束后,源端DR不再沿“源端DR-RP”的SPT轉(zhuǎn)發(fā)組播報(bào)文到RP。RP或者組成員端DR在接收到第一份組播報(bào)文時(shí)都會(huì)觸發(fā)各自的SPT切換。
2丟包分析與避免措施
2.1 SPT切換過程中造成丟包的分析
組成員端DR收到來自源端的第一份組播報(bào)文后便已得知發(fā)送端的源IP地址,接收端DR通過單播路由表向源端逐跳建立組播路由,組播路由完成后SPT建立。此時(shí)DR會(huì)對舊的轉(zhuǎn)發(fā)路徑進(jìn)行清理,這就是組播的剪枝。剪枝完成后組播數(shù)據(jù)沿著SPT重新轉(zhuǎn)發(fā)切換才算全部完成。
可是這一切復(fù)雜過程發(fā)送者全然不知,組播數(shù)據(jù)傳輸不會(huì)中斷,剪枝完成前為了避免組播數(shù)據(jù)通過SPT和RPT同時(shí)轉(zhuǎn)發(fā)而造成數(shù)據(jù)重報(bào),在剪枝過程中必然會(huì)出現(xiàn)轉(zhuǎn)發(fā)的瞬間中斷,當(dāng)完成剪枝后組播數(shù)據(jù)才將會(huì)沿著最新的SPT繼續(xù)轉(zhuǎn)發(fā),所以SPT切換過程中的丟包將不可避免。
2.2尋找避免路徑切換機(jī)制
通過上述分析得知,SPT切換是造成數(shù)據(jù)丟包的主要原因,避免丟包的思路應(yīng)該是圍繞建立一個(gè)穩(wěn)定的組播路由展開。目前避免路徑切換的主要方式是配置組成員DR的SPT不進(jìn)行切換,通過強(qiáng)制改變設(shè)備默認(rèn)配置從而保持組播的路由穩(wěn)定。但在這種情況下,組播數(shù)據(jù)都會(huì)通過RP進(jìn)行傳播,即使RP不是最優(yōu)路徑。這種方法下組播路由雖得到穩(wěn)定,但無法減輕RP設(shè)備的負(fù)擔(dān)。選擇一種通過接收端DR直接向組播源端建立一個(gè)穩(wěn)定的SPT才是解決問題的最好方法。
在工程應(yīng)用中有一種手動(dòng)牽引組播數(shù)據(jù)流量的技術(shù),即在接收端DR相應(yīng)接口上配置靜態(tài)組播組。可在靜態(tài)組播組加入中通過配置組播源地址的方式強(qiáng)行構(gòu)建接收者到組播數(shù)據(jù)發(fā)送者的SPT,從而避免路徑切換。這種方式不僅可以實(shí)現(xiàn)路由的穩(wěn)定,還可以減輕RP的負(fù)擔(dān)。
2.3確定組播源地址
要完成上述設(shè)置首先應(yīng)確定組播發(fā)送者的地址(源地址)。獲取源地址是進(jìn)行配置前的必要步驟,可通過Wireshark抓包軟件在接收端抓組播報(bào)文,并對組播數(shù)據(jù)報(bào)文流進(jìn)行分析。
(1)配置端口鏡像
①配置抓包口:observe-port N interfacegigabitethernet;
②進(jìn)入被觀察端口:Quidway-GigabitEthernetx/x/x;
③將此端口收到的數(shù)據(jù)復(fù)制到抓包口:port-mirroring to observe-port 1 inbound。端口配置完成后將裝有Wireshark軟件的計(jì)算機(jī)通過網(wǎng)口連接至配置好的抓包口,打開Wireshark準(zhǔn)備進(jìn)行抓包。
(2)確定特定組
首先確定任意源組播地址,任意源組播地址段一般為:224.0.1.0~231.255.255.255;233.0.0.0~238.255.255.255
抓包完成后在Wireshark中點(diǎn)擊需要設(shè)置的組播數(shù)據(jù)報(bào)文,在數(shù)據(jù)包IP層中找到IP的源地址即組播發(fā)送者的IP地址并進(jìn)行記錄。
2.4配置組播組加入
靜態(tài)組播組加入應(yīng)在組播接收端的DR路由器上進(jìn)行使用,從而使接收端DR通過此命令建立長久穩(wěn)定的SPT路徑。
①首先在交換機(jī)中打開組播路由功能:multicast routing-enable;
②找到接收者所在VLAN(N),然后進(jìn)入3層vlanif(N)中:interface vlanif N;
③完成靜態(tài)組播組加入配置:igmp tatic-group;[group-address][source-address]。
2.5建立穩(wěn)定SPT路徑
靜態(tài)組播組加入相當(dāng)于在網(wǎng)絡(luò)中手動(dòng)添加了穩(wěn)定的組播組成員,可以實(shí)現(xiàn)組播數(shù)據(jù)的快速、穩(wěn)定轉(zhuǎn)發(fā),在用戶側(cè)接口配置靜態(tài)組播組并指定源地址后,接收端DR將按照組播源地址查找自身單播路由表并逐跳建立SPT。SPT隨著命令的存在而長期存在,組播路徑中的每跳路由器都會(huì)針對此組數(shù)據(jù)生成(S.G)表項(xiàng),并明確上下行轉(zhuǎn)發(fā)端口,如圖4所示。
3應(yīng)用效果
上述措施完成之后,在路由器A,D上進(jìn)行組播路由查詢可以發(fā)現(xiàn),從接收者R2到組播源S的每跳路由器都產(chǎn)生了(S.G)組播路由表項(xiàng),如表1所示。
實(shí)際應(yīng)用中,接收者R完整地接收了組播數(shù)據(jù)并未產(chǎn)生丟包。此時(shí)無論源端是否發(fā)送組播,接收者R2到組播源S的SPT仍然穩(wěn)定建立,組播數(shù)據(jù)傳輸時(shí),省去了組播路由建立的過程,靜態(tài)組播組加入后穩(wěn)定了組播路徑,提高了轉(zhuǎn)發(fā)效率,避免了ASM模型中的SPT切換,從而避免了丟包的產(chǎn)生。
4結(jié)束語
上述分析以及提供的丟包避免措施可解決對于丟包率要求較高且使用組播ASM模型構(gòu)建的專網(wǎng)之中,從原理出發(fā)找到問題根源,應(yīng)用一些看似不相關(guān)的技術(shù)去彌補(bǔ)不好解決的機(jī)理問題。
參考文獻(xiàn)
[1]朱仕耿.HCNP路由交換學(xué)習(xí)指南[M].北京:人民郵電出版社,2017.
[2]武忠,于紅增.同源同宿SSM組播路由控制技術(shù)研究[J].計(jì)算機(jī)與網(wǎng)絡(luò),2014,40(7):64-66.
[3]徐俊,陳雪軍,趙乾宏,等.航天測控通信IP網(wǎng)中可控組播的實(shí)現(xiàn)[J].遙測遙控,2012,33(4):61-63,68.
[4]李乃振.專網(wǎng)組播應(yīng)用設(shè)計(jì)與安全策略[J].四川兵工學(xué)報(bào), 2015,36(7):113-116,124.
[5]狄彩云,張英,狄衛(wèi)國,等.航天測控通信中指定源組播的技術(shù)研究[J].無線電工程,2014,44(9):5-7.
[6]方山,李華.指定源組播原理分析與應(yīng)用研究[J].中國新通信,2016,18(23):90.