蔡智慧+彭皓+夏東朝
摘要摘要:互聯(lián)網(wǎng)時(shí)代,組播應(yīng)用越來越廣泛。介紹組播(PIM)相關(guān)技術(shù),闡述組播運(yùn)行機(jī)制,分析環(huán)路在組播環(huán)境中出現(xiàn)定位故障的原因。從組播路由協(xié)議中分析組播中斷的原因,提出了規(guī)避該類問題應(yīng)采取的措施。
關(guān)鍵詞關(guān)鍵詞:組播;環(huán)路;組播中斷;路由協(xié)議
DOIDOI:10.11907/rjdk.162286
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2017)001014702
引言
組播是一種針對(duì)點(diǎn)到多點(diǎn)的UDP格式報(bào)文傳輸協(xié)議。相比于單播,它可以極大節(jié)約網(wǎng)絡(luò)寬帶和流量。相比于廣播,它可以跨三層網(wǎng)路傳遞,并能針對(duì)專門的網(wǎng)絡(luò)客戶接收群體。因?yàn)樘囟ǖ哪繕?biāo)群體,其數(shù)據(jù)流承載具有優(yōu)于單播和廣播的機(jī)制。所以,對(duì)于組播協(xié)議需要相比前兩種傳遞方式更為復(fù)雜的協(xié)議來處理。
在互聯(lián)網(wǎng)+時(shí)代,組播應(yīng)用越來越廣泛,例如大型企業(yè)視頻系統(tǒng)、運(yùn)營(yíng)商OTT等。在這些重要領(lǐng)域,網(wǎng)絡(luò)系統(tǒng)平均無故障時(shí)間指標(biāo)越來越重要。在IP數(shù)據(jù)網(wǎng)絡(luò)中,組播故障包括端到端的組播源服務(wù)、三層組播PIM路由轉(zhuǎn)發(fā)和二層組播IGMP組成員管理故障,本文主要針對(duì)三層和二層環(huán)路下導(dǎo)致組播中斷的原因進(jìn)行分析研究。1故障場(chǎng)景與定位
組播網(wǎng)絡(luò)中斷故障出現(xiàn)后,登錄三層交換機(jī)設(shè)備查找故障原因,發(fā)現(xiàn)設(shè)備的公網(wǎng)管理IP無法啟用,只能通過應(yīng)急console管理通道登陸設(shè)備。由于網(wǎng)絡(luò)管理規(guī)范中,業(yè)務(wù)和管理地址都通過BGP協(xié)議承載,使用show ip route bgp查看三層交換機(jī)路由表,已無動(dòng)態(tài)路由,初步定位為組播源服務(wù)地址不能向上層設(shè)備RP注冊(cè)。用show ip bgp summary檢查三層交換機(jī)的路由協(xié)議BGP,發(fā)現(xiàn)BGP鄰居已中斷。協(xié)議狀態(tài)如圖1所示。
通過在交換機(jī)設(shè)備本端和上行設(shè)備上配置靜態(tài)路由,確保BGP鄰居路由可達(dá)。此時(shí)設(shè)備可通過公網(wǎng)進(jìn)行帶內(nèi)遠(yuǎn)程管理,但組播中斷故障尚未恢復(fù)。協(xié)議狀態(tài)如圖2所示。
根據(jù)設(shè)備組網(wǎng)規(guī)范,通過IGP OSPF實(shí)現(xiàn)BGP建立鄰居路由的互聯(lián)互通。使用show ip ospf interface brief和show ip ospf neighbor查看OSPF,發(fā)現(xiàn)鄰居關(guān)系異常。通過show ip pim interface和show ip pim neighbor查看組播無關(guān)路由協(xié)議PIM,發(fā)現(xiàn)鄰居異常。通過在交換機(jī)上執(zhí)行show interface geiX/X查看三層交換機(jī)物理端口流量狀態(tài),發(fā)現(xiàn)某一個(gè)接口的流量出現(xiàn)異常,且端口狀態(tài)中對(duì)廣播報(bào)文的統(tǒng)計(jì)數(shù)量在1分鐘之內(nèi)出現(xiàn)陡增。分析此類原因?qū)儆诙丝诋惓顟B(tài),對(duì)該端口進(jìn)行shutdown操作后,OSPF和PIM鄰居恢復(fù)正常,組播業(yè)務(wù)恢復(fù)。協(xié)議狀態(tài)如圖3所示。
2原理分析
網(wǎng)絡(luò)中運(yùn)行了3種協(xié)議,分別是BGP、OSPF和PIM-SM協(xié)議。BGP主要承載組播源服務(wù)器IPv4地址與RP和其它業(yè)務(wù)地址進(jìn)行通信。OSPF主要承擔(dān)與上行設(shè)備建立BGP鄰居關(guān)系時(shí)的loop接口IP之間的通信。PIM-SM主要用于網(wǎng)絡(luò)中產(chǎn)生相應(yīng)的*G和SG表項(xiàng),以此承擔(dān)組播數(shù)據(jù)的三層轉(zhuǎn)發(fā)。2.1BGP
BGP用于在不同自治系統(tǒng)(AS)之間交換路由信息。當(dāng)兩個(gè)AS需要交換路由信息時(shí),每個(gè)AS都必須指定一個(gè)BGP運(yùn)行節(jié)點(diǎn),代表AS與其它AS交換路由信息。這個(gè)節(jié)點(diǎn)可以是一個(gè)主機(jī),但通常是路由器來執(zhí)行BGP。兩個(gè)AS中利用BGP交換路由信息的設(shè)備稱為自治系統(tǒng)邊界網(wǎng)關(guān)(Border Gateway)。BGP屬于外部網(wǎng)關(guān)路由協(xié)議,可以實(shí)現(xiàn)自治系統(tǒng)間無環(huán)路的域間路由。BGP是溝通Internet廣域網(wǎng)的主用路由協(xié)議,不同省份、不同國(guó)家之間的路由大多依靠BGP協(xié)議。BGP分為IBGP(Internal BGP)和EBGP(External BGP)。BGP的鄰居關(guān)系通過路由設(shè)備上的手動(dòng)配置實(shí)現(xiàn),鄰居實(shí)體之間通過傳輸層TCP(端口179)進(jìn)行數(shù)據(jù)通信。運(yùn)行BGP的兩臺(tái)設(shè)備之間會(huì)周期地發(fā)送19個(gè)字節(jié)的keep-alive消息,以此來維護(hù)鄰居間的狀態(tài)關(guān)系(默認(rèn)周期為30秒)。在路由協(xié)議中,只有BGP使用TCP保障傳輸數(shù)據(jù)的可靠性。2.2OSPF
OSPF(Open Shortest Path First)是IETF組織開發(fā)的一個(gè)基于鏈路狀態(tài)的內(nèi)部網(wǎng)關(guān)協(xié)議(Interior Gateway Protocol)。目前針對(duì)IPv4協(xié)議使用的是OSPF Version 2,針對(duì)IPv6協(xié)議使用OSPF Version 3,采用最短路徑SPF(Shortest Path First)算法。通過鏈路狀態(tài)通告LSA(Link State Advertisement)描述網(wǎng)絡(luò)拓?fù)?,依?jù)網(wǎng)絡(luò)拓?fù)渖梢豢米疃搪窂綐銼PT(Shortest Path Tree),計(jì)算出到網(wǎng)絡(luò)中所有目的地的最短路徑,進(jìn)行路由信息交換。
在應(yīng)用視頻業(yè)務(wù)的組播環(huán)境網(wǎng)絡(luò)中通常以組播形式(224.0.0.5)發(fā)送Hello報(bào)文和LSAck報(bào)文。對(duì)于LSU報(bào)文,通常以組播形式首次發(fā)送,以單播形式重傳。其中,224.0.0.5的組播地址為OSPF設(shè)備預(yù)留的IP組播地址,224.0.0.6的組播地址為OSPF DR預(yù)留的IP組播地址。2.3PIM-SM
PIM-SM(Protocol Independent Multicast-Sparse Mode,協(xié)議無關(guān)組播-稀疏模式)可以有效解決大型網(wǎng)絡(luò)以及用戶分散的場(chǎng)景中 “點(diǎn)到多點(diǎn)”的數(shù)據(jù)傳輸問題,使用戶能夠按需接收數(shù)據(jù)。
PIM-SM適用于網(wǎng)絡(luò)組成員相對(duì)比較稀疏、分布廣泛的大型網(wǎng)絡(luò)。PIM-SM假設(shè)網(wǎng)絡(luò)中所有主機(jī)均不需要接收組播數(shù)據(jù),只有在主機(jī)明確提出需要接收組播數(shù)據(jù)時(shí)才會(huì)構(gòu)建組播分發(fā)樹,向提出需求的主機(jī)轉(zhuǎn)發(fā)組播數(shù)據(jù)。相對(duì)于PIM-DM 模式,可以減小網(wǎng)絡(luò)中無效數(shù)據(jù)的轉(zhuǎn)發(fā)。
根據(jù)實(shí)現(xiàn)機(jī)制的不同,PIM分為以下兩種模式:①PIM-DM(Protocol Independent Multicast-Dense Mode,協(xié)議無關(guān)組播—密集模式);②PIM-SM(Protocol Independent Multicast-Sparse Mode,協(xié)議無關(guān)組播—稀疏模式)。
在PIM域中,路由器周期性地向所有PIM路由器(224.0.0.13)以組播方式發(fā)送PIM Hello報(bào)文(以下簡(jiǎn)稱Hello報(bào)文),以發(fā)現(xiàn)PIM鄰居,維護(hù)各路由器之間的PIM鄰居關(guān)系,從而構(gòu)建和維護(hù)SPT。
通過對(duì)以上3種協(xié)議分析,發(fā)現(xiàn)BGP鄰居關(guān)系的建立和維護(hù)報(bào)文通信都采用TCP協(xié)議承載,OSPF和PIM-SM鄰居關(guān)系的建立和維護(hù)都采用UDP協(xié)議報(bào)文承載。在ISO七層模型中,UDP和TCP都屬于傳輸層協(xié)議,唯一不同之處是UDP為不面向連接的一種不可靠傳輸協(xié)議,TCP屬于面向連接的可造傳輸協(xié)議。
如果網(wǎng)絡(luò)中運(yùn)行設(shè)備存在二層環(huán)路,雖然環(huán)路的出現(xiàn)與PIM或OSPF建立鄰居的SVI接口不在同一VLAN,但網(wǎng)絡(luò)設(shè)備的路由控制層面信息都由設(shè)備的CPU進(jìn)行處理。設(shè)備需要處理大量的廣播報(bào)文,導(dǎo)致整體性能下降。UDP本身沒有可靠的傳輸機(jī)制,所以會(huì)發(fā)生大量UDP報(bào)文丟棄情況,OSPF和PIM鄰居無法建立。TCP本身有重傳機(jī)制彌補(bǔ),BGP只要在鄰居路由可達(dá)的情況下就能正常傳遞路由表。3解決方案