以太網(wǎng)組播中二層事件處理機(jī)制的分析

由于各種原因,以太網(wǎng)經(jīng)常會(huì)產(chǎn)生各種二層事件,此時(shí),交換機(jī)就必須做相應(yīng)的處理。交換機(jī)對(duì)二層事件處理是否得當(dāng),處理響應(yīng)的速度是否及時(shí),將直接影響到網(wǎng)絡(luò)的可靠性和快速收斂性。

一、二層事件描述

二層事件通常有兩類(lèi):一類(lèi)是普通二層事件;另外一類(lèi)是環(huán)路中的鏈路改變事件。

1.普通的二層事件

普通的二層事件都是基本的事件,一般只會(huì)對(duì)網(wǎng)絡(luò)造成局部的影響。普通二層事件具體包括:端口UP/DOWN事件;端口INCLUDE/EXCLUDE事件,當(dāng)端口加入到某個(gè)VLAN中時(shí)就會(huì)產(chǎn)生INCLUDE事件,反之,EXCLUDE事件則是指端口離開(kāi)某個(gè)VLAN時(shí)產(chǎn)生;VLANDOWN/UP事件,如果將VLAN也看成一個(gè)端口,則VLANDOWN/UP事件與端口UP/DOWN事件沒(méi)有本質(zhì)區(qū)別,當(dāng)一個(gè)VLAN中所有端口都變成DOWN時(shí),該VLAN也就會(huì)變成DOWN;VLANDELETE事件,刪除VLAN時(shí)產(chǎn)生VLAN DELETE事件;端口DELETE事件,刪除端口時(shí)產(chǎn)生端口DELETE事件,當(dāng)帶電拔出單板時(shí),就會(huì)產(chǎn)生端口DELETE事件。

2.環(huán)路中的鏈路改變事件

環(huán)路可以增加網(wǎng)絡(luò)的可靠性,但同時(shí)也有可能形成網(wǎng)絡(luò)風(fēng)暴。當(dāng)網(wǎng)絡(luò)中有多條冗余路徑時(shí),數(shù)據(jù)流過(guò)環(huán)選擇路徑時(shí)必須有所取舍。當(dāng)發(fā)生了普通的二層事件時(shí),數(shù)據(jù)流往往會(huì)選擇不同的路徑過(guò)環(huán),這時(shí)就稱為發(fā)生了鏈路改變事件。

二、以太網(wǎng)組播中對(duì)普通二層事件處理的分析與設(shè)計(jì)

1.組播轉(zhuǎn)發(fā)概述

組播是一種單點(diǎn)發(fā)送多點(diǎn)接收的數(shù)據(jù)包傳輸方式,當(dāng)有多臺(tái)主機(jī)同時(shí)成為一個(gè)數(shù)據(jù)包的接收者時(shí),出于對(duì)帶寬和CPU負(fù)擔(dān)的考慮,組播成為了一種最佳選擇。組播只會(huì)將數(shù)據(jù)包轉(zhuǎn)發(fā)給對(duì)數(shù)據(jù)包感興趣的接收者,這樣能夠節(jié)約網(wǎng)絡(luò)帶寬,降低網(wǎng)絡(luò)負(fù)載。交換機(jī)轉(zhuǎn)發(fā)組播數(shù)據(jù),以組播轉(zhuǎn)發(fā)表為依據(jù),轉(zhuǎn)發(fā)表的正確與否直接關(guān)系到組播數(shù)據(jù)能否到達(dá)正確的接收者手中。組播轉(zhuǎn)發(fā)表的一般格式如圖1所示。

圖1

由圖1可知,組播轉(zhuǎn)發(fā)表中每一個(gè)轉(zhuǎn)發(fā)表項(xiàng)由三部分組成:VLANID、組地址與出端口。由于組播數(shù)據(jù)不能跨越VLAN傳輸,因此每一個(gè)表項(xiàng)第一部分是VLANID,當(dāng)交換機(jī)收到組播數(shù)據(jù)包時(shí),數(shù)據(jù)包只能在數(shù)據(jù)包入端口所在的VLAN內(nèi)轉(zhuǎn)發(fā)。然后根據(jù)數(shù)據(jù)包中的組地址檢索組播轉(zhuǎn)發(fā)表,最后將數(shù)據(jù)包轉(zhuǎn)發(fā)到檢索結(jié)果中的所有出端口上。

2.對(duì)端口UP/DOWN事件的處理

交換機(jī)是根據(jù)組播轉(zhuǎn)發(fā)表來(lái)轉(zhuǎn)發(fā)組播數(shù)據(jù)的,正是由于組播轉(zhuǎn)發(fā)表的存在,才得以實(shí)現(xiàn)對(duì)組播數(shù)據(jù)的按需轉(zhuǎn)發(fā)。圖2為組播轉(zhuǎn)發(fā)網(wǎng)絡(luò)示意圖,為了簡(jiǎn)化分析,我們假定只有一個(gè)VLAN,而且只有一個(gè)組播組(組播組對(duì)應(yīng)多個(gè)出端口)。

圖2

由圖2知,若只有與端口p1、p3相連的主機(jī)才對(duì)組播組的數(shù)據(jù)感興趣,則交換機(jī)只會(huì)將組播數(shù)據(jù)轉(zhuǎn)發(fā)到端口p1與p3上。假設(shè)交換機(jī)上所有的端口都屬于VLAN1,并且與端口p1、p3相連的主機(jī)對(duì)組地址為226.0.0.1的組播組的數(shù)據(jù)感興趣,此時(shí)組播轉(zhuǎn)發(fā)表如圖3所示。

圖3

當(dāng)端口P1的狀態(tài)變DOWN時(shí)(如果交換機(jī)不做任何處理),當(dāng)有組播數(shù)據(jù)來(lái)時(shí),交換機(jī)仍會(huì)向端口P1轉(zhuǎn)發(fā)。而由于端口P1物理層面上已經(jīng)DOWN掉,組播數(shù)據(jù)流根本無(wú)法達(dá)到與端口P1相連的主機(jī),這樣無(wú)形中給CPU增加了無(wú)謂的負(fù)擔(dān)。因此當(dāng)端口P1的狀態(tài)變成DOWN時(shí),應(yīng)該在組播轉(zhuǎn)發(fā)表中刪除掉與端口P1相關(guān)的轉(zhuǎn)發(fā)表項(xiàng),處理之后的轉(zhuǎn)發(fā)表如圖4所示。由于端口P3的狀態(tài)沒(méi)有變化,所以端口P3仍然在出端口列表中。

圖4

假定與端口P4相連的主機(jī)也對(duì)組播組的數(shù)據(jù)感興趣,但由于端口P4的狀態(tài)一直是DOWN,所以端口P4不在出端口列表中。現(xiàn)假定端口P4的狀態(tài)突然變成UP,如果交換機(jī)不響應(yīng)UP事件,那么即使與端口P4相連的主機(jī)對(duì)組播組的數(shù)據(jù)感興趣,它也收不到組播數(shù)據(jù)。此時(shí),組播轉(zhuǎn)發(fā)表就沒(méi)有能反應(yīng)出真實(shí)的轉(zhuǎn)發(fā)需求。因此當(dāng)端口P4的狀態(tài)變成UP時(shí),應(yīng)該在組播轉(zhuǎn)發(fā)表中相應(yīng)組播組的出端口列表中增加端口P4,處理之后的轉(zhuǎn)發(fā)表如圖5所示。

圖5

以上只是對(duì)最簡(jiǎn)單的情況進(jìn)行分析與設(shè)計(jì),當(dāng)遇到非常復(fù)雜的組播轉(zhuǎn)發(fā)表時(shí),處理原理也是一樣的:當(dāng)端口狀態(tài)變DOWN時(shí),應(yīng)該在組播轉(zhuǎn)發(fā)表中刪除與該端口相關(guān)的轉(zhuǎn)發(fā)表項(xiàng),以防止增加CPU的負(fù)擔(dān);反之,當(dāng)端口狀態(tài)變UP并且與該端口相連的主機(jī)對(duì)組播組數(shù)據(jù)感興趣時(shí),應(yīng)該在組播轉(zhuǎn)發(fā)表相應(yīng)表項(xiàng)的出端口列表中增加該端口。另外,如果對(duì)端口UP/DOWN事件處理不及時(shí),可能會(huì)造成丟包或者CPU超負(fù)荷的情況發(fā)生,因此,系統(tǒng)對(duì)二層事件的響應(yīng)速度將直接影響網(wǎng)絡(luò)的可靠性。

3.對(duì)其它普通二層事件的處理

對(duì)其它普通二層事件的處理與對(duì)端口UP/DOWN事件的處理原理上是一致的。

當(dāng)發(fā)生端口INCLUDE事件并且與端口相連的主機(jī)對(duì)組播組數(shù)據(jù)感興趣時(shí),則需要在端口加入的VLAN內(nèi)增加相應(yīng)的表項(xiàng);反之,當(dāng)發(fā)生端口EXCLUDE事件時(shí),則需要在端口離開(kāi)的VLAN內(nèi)刪除相應(yīng)的出端口或表項(xiàng)。

當(dāng)發(fā)生VLANDOWN時(shí),刪除VLAN內(nèi)的所有轉(zhuǎn)發(fā)表項(xiàng);反之,當(dāng)發(fā)生VLANUP時(shí),則添加VLAN內(nèi)所有端口相應(yīng)的表項(xiàng)。對(duì)于VLANDELETE、端口DELETE,處理方式分別與VLAN DOWN、端口DOWN相同,但級(jí)別應(yīng)該要更高一些,也就是應(yīng)該優(yōu)先處理VLAN DELETE和端口DELETE,因?yàn)檫@兩個(gè)事件造成的影響在一般情況下比別的事件要大。

三、以太網(wǎng)組播中對(duì)環(huán)路事件處理的分析與設(shè)計(jì)

1.網(wǎng)絡(luò)環(huán)路以及環(huán)路事件概述

網(wǎng)絡(luò)環(huán)路是為交換網(wǎng)絡(luò)提供冗余鏈路時(shí)形成的,現(xiàn)代化的網(wǎng)絡(luò)要求交換網(wǎng)絡(luò)中必須具備冗余鏈路,以避免單點(diǎn)故障引起的網(wǎng)絡(luò)中斷。由于環(huán)路的存在,導(dǎo)致了交換網(wǎng)絡(luò)中產(chǎn)生廣播風(fēng)暴的可能。為了防止產(chǎn)生廣播風(fēng)暴,必然要阻塞一些冗余鏈路上的端口,即只允許數(shù)據(jù)從其中一條鏈路上通行,當(dāng)允許通行的鏈路發(fā)生故障時(shí),為了保證數(shù)據(jù)不中斷,應(yīng)能立即恢復(fù)阻塞端口的通行能力。

在交換網(wǎng)絡(luò)的環(huán)路中,有三種環(huán)路事件:端口BLOCK事件,即阻塞數(shù)據(jù)從該端口通過(guò),以防止產(chǎn)生網(wǎng)絡(luò)風(fēng)暴;端口UNBLOCK事件,解除阻塞狀態(tài);LINKCHANGE事件,即鏈路改變事件,當(dāng)一條鏈路上發(fā)生故障時(shí),選擇另一條冗余的鏈路通行。

2.對(duì)環(huán)路事件的處理

對(duì)端口BLOCK/UNBLOCK事件的處理與對(duì)端口DOWN/UP事件的處理方式相同。當(dāng)某個(gè)端口BLOCK時(shí),除了一些特定的環(huán)路協(xié)議包之外,一般的組播包不允許通過(guò)。這時(shí)如果仍向該端口轉(zhuǎn)發(fā)組播數(shù)據(jù),只會(huì)給CPU增加無(wú)謂負(fù)擔(dān)。所以當(dāng)端口BLOCK時(shí),應(yīng)該刪除該端口對(duì)應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)或出端口,反之,當(dāng)端口UNBLOCK時(shí),則應(yīng)該增加相應(yīng)的出端口或表項(xiàng)信息。

當(dāng)一個(gè)端口BLOCK,而另一個(gè)端口UNBLOCK時(shí),自然就發(fā)生了LINKCHANGE事件。發(fā)生LINKCHANGE事件時(shí),需要根據(jù)IGMP請(qǐng)求報(bào)文重新學(xué)習(xí)轉(zhuǎn)發(fā)表項(xiàng),而且還要更新路由器端口信息。為了簡(jiǎn)化起見(jiàn),以圖6所示的簡(jiǎn)單環(huán)路情況為例進(jìn)行分析。

圖6

圖6所示的環(huán)路中,由于端口P1的狀態(tài)是BLOCK,所以組播流從端口P2轉(zhuǎn)發(fā)下來(lái),協(xié)議報(bào)文(IGMP報(bào)文)也是走右側(cè)的路徑。當(dāng)最下面的交換機(jī)接收到從上游下來(lái)的IGMP查詢報(bào)文時(shí),便認(rèn)為端口P4是路由器端口,以后有主機(jī)發(fā)出IGMP請(qǐng)求報(bào)文時(shí),交換機(jī)便會(huì)從端口P4將報(bào)文發(fā)往上游。如果發(fā)生LINKCHANGE事件,可用鏈路切換到左側(cè),但是在鏈路收斂之前,組播數(shù)據(jù)仍然會(huì)從發(fā)往端口P2通過(guò),而且主機(jī)發(fā)送的IGMP請(qǐng)求報(bào)文仍然會(huì)發(fā)往端口P4,由于右側(cè)鏈路已經(jīng)不通,所以IGMP請(qǐng)求報(bào)文無(wú)法達(dá)到最終路由器。等到上游路由器發(fā)出通用IGMP查詢報(bào)文時(shí),最下游的交換機(jī)才能學(xué)會(huì)新的路由器端口,主機(jī)發(fā)送的IGMP請(qǐng)求報(bào)文才開(kāi)始從左側(cè)上傳,繼而學(xué)會(huì)新的表項(xiàng)。

由此可見(jiàn),當(dāng)發(fā)生LINKCHANGE事件時(shí),在上游路由器發(fā)出通用IGMP查詢報(bào)文前(嚴(yán)格來(lái)說(shuō),應(yīng)該是學(xué)會(huì)新的表項(xiàng)前),組播數(shù)據(jù)無(wú)法正確到達(dá)下游主機(jī)。為了保證鏈路快速收斂,也就是為了組B播數(shù)據(jù)能迅速切換到左側(cè)鏈路,當(dāng)發(fā)生LINKCHANGE事件時(shí),最上游的交換機(jī)應(yīng)該模擬路由器發(fā)出一個(gè)通用IGMP查詢報(bào)文,使下游交換機(jī)能迅速學(xué)會(huì)新的路由器端口,從而保證主機(jī)發(fā)送的IGMP請(qǐng)求報(bào)文能順利到達(dá)上游交換機(jī)與路由器,最終快速更新組播轉(zhuǎn)發(fā)表項(xiàng)。

作者:趙海燕   來(lái)源:通信世界網(wǎng)
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書(shū)
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書(shū)-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無(wú)線接入網(wǎng)白皮書(shū)
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書(shū)》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5GNTN技術(shù)白皮書(shū)
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書(shū)
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

      最新招聘信息