專利名稱:網(wǎng)橋協(xié)議數(shù)據(jù)單元報(bào)文驗(yàn)證方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及生成樹協(xié)議技術(shù)領(lǐng)域,具體涉及一種網(wǎng)橋協(xié)議數(shù)據(jù)單元報(bào)文驗(yàn)證方法和裝置。
背景技術(shù):
隨著以太網(wǎng)技術(shù)的發(fā)展,交換機(jī)逐漸被廣泛應(yīng)用,交換機(jī)的主要功能是對(duì)以太網(wǎng)報(bào)文進(jìn)行二層轉(zhuǎn)發(fā)。但是,在網(wǎng)絡(luò)應(yīng)用中,由于冗余備份的需要,或者由于錯(cuò)誤連接,會(huì)導(dǎo)致交換機(jī)之間形成環(huán)路,如圖1所示,三臺(tái)交換機(jī)相連形成環(huán)路,如果廣播報(bào)文進(jìn)入網(wǎng)絡(luò),將會(huì)在該環(huán)路中不斷循環(huán)轉(zhuǎn)發(fā),逐漸形成廣播風(fēng)暴,廣播風(fēng)暴會(huì)大量占用網(wǎng)絡(luò)帶寬,并耗費(fèi)所有接收設(shè)備的資源,導(dǎo)致網(wǎng)絡(luò)性能急劇下降。
為了解決廣播風(fēng)暴問題,產(chǎn)生了生成樹協(xié)議(STP)技術(shù),該技術(shù)在環(huán)路中選擇一個(gè)交換機(jī)如在圖1中可將交換機(jī)1作為根橋,然后,基于該根橋建立起一棵無環(huán)路的樹,將作為樹梢的某個(gè)交換機(jī)的某個(gè)端口阻塞,這樣就避免了環(huán)路的存在,從而避免了廣播風(fēng)暴。
此后,國際電子電氣工程師(IEEE)協(xié)會(huì)又在STP的基礎(chǔ)上推出了快速STP(RSTP),多STP(MSTP)等標(biāo)準(zhǔn),以彌補(bǔ)原有STP協(xié)議的一些不足。無論是STP,RSTP還是MSTP,都是通過各交換機(jī)間相互交換網(wǎng)橋協(xié)議數(shù)據(jù)單元(BPDU)報(bào)文來維護(hù)該各交換機(jī)間的生成樹關(guān)系的,每個(gè)交換機(jī)發(fā)送的BPDU報(bào)文中攜帶該交換機(jī)的STP信息,BPDU報(bào)文格式如圖2所示,其中,BPDU數(shù)據(jù)字段的其它數(shù)據(jù)包括根橋ID、根路徑開銷、指定網(wǎng)橋ID、指定端口ID、時(shí)間參數(shù)等信息。通過在交換機(jī)之間傳遞BPDU報(bào)文,并根據(jù)STP的最優(yōu)配置消息選舉機(jī)制,來確定網(wǎng)絡(luò)中哪臺(tái)交換機(jī)為根橋、哪臺(tái)交換機(jī)為指定網(wǎng)橋、交換機(jī)上的端口狀態(tài)為轉(zhuǎn)發(fā)狀態(tài)還是阻塞狀態(tài)等。BPDU報(bào)文將處于開放的、分布式的網(wǎng)絡(luò)中的交換機(jī)聯(lián)系起來,進(jìn)行統(tǒng)一的生成樹計(jì)算。
由于目前的標(biāo)準(zhǔn)里沒有制定BPDU報(bào)文相關(guān)的驗(yàn)證機(jī)制,因此,如果有非法STP設(shè)備發(fā)來的BPDU報(bào)文進(jìn)入網(wǎng)絡(luò),會(huì)干擾正常的生成樹計(jì)算,造成生成錯(cuò)誤的生成樹,或者引起震蕩,給網(wǎng)絡(luò)帶來嚴(yán)重的影響。這種情況簡稱為BPDU欺騙。
BPDU欺騙會(huì)造成根橋的錯(cuò)誤選擇。由于根橋的選舉僅僅是根據(jù)每個(gè)交換機(jī)的BPDU報(bào)文中攜帶的橋ID來確定的,所以網(wǎng)絡(luò)中用戶側(cè)的性能較差的設(shè)備或性能較差的通路上的交換機(jī)可能由于橋ID很小而成為根橋。這樣,若根橋由于性能原因不能定時(shí)發(fā)出BPDU報(bào)文,將會(huì)導(dǎo)致根橋的重新選擇,引起網(wǎng)絡(luò)轉(zhuǎn)發(fā)狀態(tài)的震蕩;同時(shí),若非法STP設(shè)備頻繁發(fā)出拓?fù)涓淖兊腂PDU報(bào)文,會(huì)迫使生成樹中的交換機(jī)頻繁刪除MAC地址表項(xiàng)和ARP表項(xiàng),耗費(fèi)交換機(jī)的資源。
為了防止BPDU欺騙對(duì)交換機(jī)的影響,現(xiàn)有技術(shù)在STP標(biāo)準(zhǔn)之外,提供了一些保護(hù)手段,包括手動(dòng)設(shè)置根橋,根橋保護(hù),環(huán)路保護(hù),TC防攻擊保護(hù),BPDU過濾等,以下分別進(jìn)行說明一、手動(dòng)配置根橋交換機(jī)的橋ID由4bit的前序(Priority)位、12bit的系統(tǒng)(System)位和48bit的媒體接入控制(MAC)48位組成。在選擇根橋時(shí),分別比較各交換機(jī)的橋ID的前32位和后32位,將橋ID最小的交換機(jī)選定為根橋。手動(dòng)配置根橋就是強(qiáng)制將性能較好的交換機(jī)的橋ID的前序位設(shè)為0,以使得該交換機(jī)能夠被選定為根橋。
二、根橋保護(hù)根橋收到比自身橋ID更小的交換機(jī)發(fā)來的BPDU報(bào)文后,將不再作為根橋,這樣會(huì)使得網(wǎng)絡(luò)拓?fù)渥兓?,?dǎo)致數(shù)據(jù)轉(zhuǎn)發(fā)中斷。根橋保護(hù)功能,就是在根橋收到比自身橋ID更小的交換機(jī)發(fā)來的BPDU報(bào)文后,將自身端口變?yōu)閮A聽(listenning)狀態(tài),不再轉(zhuǎn)發(fā)報(bào)文,30秒后自動(dòng)轉(zhuǎn)到正常狀態(tài),以避免根橋的頻繁切換。
三、拓?fù)涓淖?TC)防攻擊保護(hù)交換機(jī)在收到TC-BPDU報(bào)文后的一段時(shí)間內(nèi)(一般為10秒),只進(jìn)行一次刪除MAC地址表項(xiàng)和ARP表項(xiàng)的操作,同時(shí)監(jiān)控該時(shí)間段內(nèi)是否還收到TC-BPDU報(bào)文,若是,則交換機(jī)在該時(shí)間段后再進(jìn)行一次刪除MAC地址表項(xiàng)和ARP表項(xiàng)的操作。以避免頻繁刪除MAC地址表項(xiàng)和ARP表項(xiàng)。
四、BPDU保護(hù)由于接入層設(shè)備的邊緣端口在正常情況下不會(huì)收到BPDU報(bào)文,因此若邊緣端口接收到BPDU報(bào)文,系統(tǒng)會(huì)自動(dòng)將邊緣端口設(shè)置為非邊緣端口,重新計(jì)算生成樹,引起網(wǎng)絡(luò)拓?fù)涞恼鹗帯STP提供的BPDU保護(hù)功能指的是,如果邊緣端口收到了BPDU報(bào)文,系統(tǒng)就將該邊緣端口關(guān)閉,同時(shí)通知網(wǎng)管,且被關(guān)閉的邊緣端口只能由網(wǎng)管恢復(fù)五、BPDU過濾即提供一種類似接入控制列表(ACL)的過濾功能,在不參與STP計(jì)算的端口,通過此功能對(duì)收到的BPDU報(bào)文通過硬件過濾丟棄。
或者,也可將與用戶設(shè)備直接相連的交換機(jī)的端口的STP功能關(guān)閉,以對(duì)用戶設(shè)備發(fā)來的BPDU報(bào)文進(jìn)行過濾丟棄。
可以看出,上述每個(gè)方案都是針對(duì)某個(gè)特殊需求的,不具有完整的安全性。同時(shí),每個(gè)方案都有各自的缺點(diǎn),其中手動(dòng)配置根橋無法避免橋ID較小的非法STP設(shè)備的攻擊,例如當(dāng)橋ID比當(dāng)前根橋的橋ID小的非法STP設(shè)備發(fā)出的BPDU報(bào)文到達(dá)根橋后,仍然會(huì)引起根橋的重選擇,造成網(wǎng)絡(luò)震蕩;根橋保護(hù)中,將根橋的端口改變?yōu)椴晦D(zhuǎn)發(fā)數(shù)據(jù)狀態(tài),會(huì)造成正常業(yè)務(wù)的中斷;TC防攻擊保護(hù)雖然可以避免一段時(shí)間內(nèi)頻繁地刪除MAC地址表項(xiàng)和ARP表項(xiàng),但無法從根本上避免惡意TC-BPDU報(bào)文的攻擊;
BPDU保護(hù)主要針對(duì)邊緣端口,而某些惡意的BPDU報(bào)文并不是從邊緣端口進(jìn)入的,同時(shí)直接關(guān)閉端口,也會(huì)造成這些端口上的流量中斷;BPDU過濾一般需要結(jié)合ACL,且在具體的端口上應(yīng)用,對(duì)于芯片實(shí)現(xiàn)要求較高,不是所有的設(shè)備都能很好地實(shí)現(xiàn);當(dāng)與用戶設(shè)備直接相連的交換機(jī)不支持STP功能時(shí),無法通過關(guān)閉該交換機(jī)的STP功能對(duì)用戶設(shè)備發(fā)來的BPDU報(bào)文進(jìn)行過濾。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種BPDU報(bào)文驗(yàn)證方法和系統(tǒng),以有效避免非法STP設(shè)備對(duì)合法STP設(shè)備的攻擊。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種BPDU報(bào)文驗(yàn)證方法,預(yù)先在合法STP設(shè)備上配置驗(yàn)證信息,該方法包括合法STP設(shè)備收到BPDU報(bào)文,判斷該報(bào)文是否攜帶認(rèn)證信息,若否,丟棄該報(bào)文;若是,根據(jù)配置在自身的驗(yàn)證信息對(duì)該認(rèn)證信息進(jìn)行驗(yàn)證,若驗(yàn)證通過,接受該報(bào)文,若驗(yàn)證失敗,丟棄該報(bào)文。
所述BPDU報(bào)文為發(fā)送方合法STP設(shè)備發(fā)來的報(bào)文;該方法進(jìn)一步包括預(yù)先在發(fā)送方合法STP設(shè)備上配置認(rèn)證信息;所述合法STP設(shè)備收到BPDU報(bào)文之前進(jìn)一步包括發(fā)送方合法STP設(shè)備將配置在自身的認(rèn)證信息放入BPDU報(bào)文中。
該方法進(jìn)一步包括預(yù)先在BPDU報(bào)文中增加認(rèn)證字段;所述發(fā)送方合法STP設(shè)備將配置在自身的認(rèn)證信息放入BPDU報(bào)文中為將所述認(rèn)證信息放入BPDU報(bào)文的認(rèn)證字段中。
所述認(rèn)證字段位于BPDU報(bào)文的協(xié)議標(biāo)識(shí)字段和協(xié)議版本標(biāo)識(shí)字段之間。
該方法進(jìn)一步包括預(yù)先為所述協(xié)議標(biāo)識(shí)設(shè)定一個(gè)與現(xiàn)有的協(xié)議標(biāo)識(shí)取值不同的值;所述合法STP設(shè)備判斷BPDU報(bào)文是否攜帶認(rèn)證信息包括合法STP設(shè)備判斷該報(bào)文攜帶的協(xié)議標(biāo)識(shí)的值是否為所述預(yù)先設(shè)定的值,若是,判定該BPDU報(bào)文攜帶認(rèn)證信息;否則,判定該BPDU報(bào)文不攜帶認(rèn)證信息。
所述認(rèn)證信息和驗(yàn)證信息為對(duì)預(yù)先設(shè)定的參數(shù)進(jìn)行加密運(yùn)算得到的加密信息。
所述對(duì)預(yù)先設(shè)定的參數(shù)進(jìn)行加密運(yùn)算為根據(jù)信息摘要MD5算法對(duì)預(yù)先設(shè)定的參數(shù)進(jìn)行加密運(yùn)算。
一種BPDU報(bào)文驗(yàn)證裝置,該裝置包括BPDU報(bào)文接收處理模塊和驗(yàn)證模塊,其中BPDU報(bào)文接收處理模塊,用于在收到外部發(fā)來的BPDU報(bào)文后,若檢測(cè)到該報(bào)文未攜帶認(rèn)證信息,則丟棄該報(bào)文;否則,將該報(bào)文攜帶的認(rèn)證信息發(fā)送到驗(yàn)證模塊,且若收到驗(yàn)證模塊返回的驗(yàn)證通過指示,則接受該BPDU報(bào)文,若收到驗(yàn)證模塊返回的驗(yàn)證失敗指示,則丟棄該BPDU報(bào)文;驗(yàn)證模塊,用于保存BPDU報(bào)文的驗(yàn)證信息,根據(jù)該驗(yàn)證信息對(duì)BPDU報(bào)文接收處理模塊發(fā)來的認(rèn)證信息進(jìn)行驗(yàn)證,若驗(yàn)證通過,向BPDU報(bào)文接收處理模塊返回驗(yàn)證通過指示;若驗(yàn)證失敗,則向BPDU報(bào)文接收處理模塊返回驗(yàn)證失敗指示。
該裝置進(jìn)一步包括認(rèn)證信息存儲(chǔ)模塊和BPDU報(bào)文發(fā)送模塊,其中認(rèn)證信息存儲(chǔ)模塊,用于保存BPDU報(bào)文的認(rèn)證信息,根據(jù)BPDU報(bào)文發(fā)送模塊的請(qǐng)求,將所述認(rèn)證信息發(fā)送到BPDU報(bào)文發(fā)送模塊;BPDU報(bào)文發(fā)送模塊,用于在確定要發(fā)送BPDU報(bào)文時(shí),向認(rèn)證信息存儲(chǔ)模塊請(qǐng)求認(rèn)證信息,并將認(rèn)證信息存儲(chǔ)模塊返回的認(rèn)證信息添加到BPDU報(bào)文中發(fā)送到BPDU報(bào)文接收處理模塊。
與現(xiàn)有技術(shù)相比,本發(fā)明通過預(yù)先在合法STP設(shè)備上配置驗(yàn)證信息,且合法STP設(shè)備收到BPDU報(bào)文后,若檢測(cè)到該報(bào)文未攜帶認(rèn)證信息,則丟棄該報(bào)文;否則,根據(jù)配置在自身的驗(yàn)證信息對(duì)該認(rèn)證信息進(jìn)行驗(yàn)證,若驗(yàn)證通過,接受該報(bào)文,若驗(yàn)證失敗,丟棄該報(bào)文。其中,認(rèn)證信息攜帶在BPDU報(bào)文增加的認(rèn)證字段中。由于非法的STP設(shè)備上未配置認(rèn)證信息,所以,非法STP設(shè)備發(fā)出的BPDU報(bào)文不會(huì)被合法的STP設(shè)備所接受,從而避免了非法的STP設(shè)備由于橋ID較小被選擇為根橋的情況;并避免了由于根橋收到橋ID比自身小的非法STP設(shè)備發(fā)來的BPDU報(bào)文,而將自身端口轉(zhuǎn)變?yōu)閮A聽的情況,避免了數(shù)據(jù)轉(zhuǎn)發(fā)的中斷;也避免了由于非法的STP設(shè)備頻繁發(fā)送TC-BPDU報(bào)文導(dǎo)致的頻繁刪除MAC地址表項(xiàng)和ARP表項(xiàng)的情形,避免了數(shù)據(jù)轉(zhuǎn)發(fā)的短暫中斷,降低了STP設(shè)備的軟硬件實(shí)現(xiàn)的復(fù)雜度;同時(shí),接入層的合法STP設(shè)備的邊緣端口在收到BPDU報(bào)文后,只需判斷該BPDU報(bào)文是否驗(yàn)證通過,而無需直接關(guān)閉該端口,避免了邊緣端口上流量的中斷;同時(shí),也無需不支持STP的設(shè)備進(jìn)行類似ACL的BPDU過濾,降低了設(shè)備復(fù)雜度和芯片成本;另外,由于合法STP設(shè)備可對(duì)用戶側(cè)設(shè)備發(fā)送的BPDU報(bào)文進(jìn)行驗(yàn)證,因此,即使與用戶側(cè)STP設(shè)備直接相連的交換機(jī)不支持STP,或者支持STP但未關(guān)閉STP功能,用戶側(cè)設(shè)備發(fā)送的BPDU報(bào)文也無法對(duì)網(wǎng)絡(luò)造成影響。
總之,本發(fā)明可以從根本上解決BPDU欺騙問題,使得依靠BPDU報(bào)文來計(jì)算生成樹的網(wǎng)絡(luò)得到可靠的安全性保護(hù),且本發(fā)明實(shí)現(xiàn)簡單,具有通用性,為以太網(wǎng)技術(shù)向城域網(wǎng)發(fā)展提供了安全保障。
圖1為交換機(jī)連接形成環(huán)路的示意圖;圖2為現(xiàn)有的BPDU報(bào)文的格式示意圖;圖3為本發(fā)明實(shí)施例提供的BPDU報(bào)文驗(yàn)證的流程圖;圖4為本發(fā)明實(shí)施例提供的BPDU報(bào)文的格式示意圖;圖5為本發(fā)明實(shí)施例提供的BPDU報(bào)文驗(yàn)證的裝置框圖。
具體實(shí)施例方式
本發(fā)明的核心思想是在所有合法的STP設(shè)備上配置BPDU報(bào)文的認(rèn)證信息和驗(yàn)證信息,合法的STP設(shè)備在發(fā)送BPDU報(bào)文前,將認(rèn)證信息放入BPDU報(bào)文中;同時(shí),當(dāng)合法STP設(shè)備收到BPDU報(bào)文后,若檢測(cè)到該報(bào)文不攜帶認(rèn)證信息,則將該報(bào)文丟棄;否則,根據(jù)配置在自身的驗(yàn)證信息對(duì)該報(bào)文中的認(rèn)證信息進(jìn)行驗(yàn)證,若驗(yàn)證通過,則接受該BPDU報(bào)文并進(jìn)行相應(yīng)處理,若驗(yàn)證失敗,則丟棄該報(bào)文。具體地,認(rèn)證信息攜帶在BPDU報(bào)文新增加的認(rèn)證字段中。
本發(fā)明中的合法STP設(shè)備指的是在網(wǎng)絡(luò)規(guī)劃時(shí),規(guī)劃入網(wǎng)絡(luò)的、并經(jīng)由網(wǎng)絡(luò)規(guī)劃者如運(yùn)營商等確認(rèn)的支持STP的設(shè)備。由于用戶側(cè)的設(shè)備等也可能支持STP,因此,在網(wǎng)絡(luò)規(guī)劃時(shí),必須對(duì)網(wǎng)絡(luò)中支持STP的設(shè)備進(jìn)行一一確認(rèn),以免將用戶側(cè)的設(shè)備等作為合法STP設(shè)備。
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說明。
圖3是本發(fā)明實(shí)施例提供的BPDU報(bào)文驗(yàn)證方法的流程圖,如圖3所示,其具體步驟如下步驟301預(yù)先在合法的STP設(shè)備上配置認(rèn)證信息和驗(yàn)證信息。
步驟302發(fā)送方STP設(shè)備確定要發(fā)送BPDU報(bào)文,判斷自身是否配置有認(rèn)證信息,若是,執(zhí)行步驟303;否則,執(zhí)行步驟304。
步驟303發(fā)送方STP設(shè)備將配置在自身的認(rèn)證信息放入BPDU報(bào)文。
本發(fā)明需在BPDU報(bào)文中增加用于存放認(rèn)證信息的認(rèn)證字段。認(rèn)證字段可位于BPDU報(bào)文的任何位置。考慮到BPDU報(bào)文的讀取效率等因素,如圖4所示,可將認(rèn)證字段放在BPDU報(bào)文的協(xié)議標(biāo)識(shí)字段和協(xié)議版本標(biāo)識(shí)字段之間。
同時(shí),本發(fā)明也需在BPDU報(bào)文中設(shè)置認(rèn)證字段位置標(biāo)識(shí),以表明認(rèn)證字段在BPDU報(bào)文中的位置。例如若將認(rèn)證字段放在BPDU報(bào)文的協(xié)議標(biāo)識(shí)字段和協(xié)議版本標(biāo)識(shí)字段之間,則可以將協(xié)議標(biāo)識(shí)的取值設(shè)定為與現(xiàn)有的協(xié)議標(biāo)識(shí)的取值不同,以表示協(xié)議標(biāo)識(shí)字段后為認(rèn)證字段,以避免合法STP設(shè)備在收到非法STP設(shè)備發(fā)來的不攜帶認(rèn)證信息的BPDU報(bào)文后,將版本標(biāo)識(shí)字段當(dāng)作認(rèn)證字段的情況。
步驟304發(fā)送方STP設(shè)備將BPDU報(bào)文發(fā)送給接收方STP設(shè)備。
步驟305接收方STP設(shè)備收到BPDU報(bào)文后,判斷自身是否配置有驗(yàn)證信息,若是,執(zhí)行步驟306;否則,執(zhí)行步驟309。
步驟306接收方STP設(shè)備判斷該BPDU報(bào)文是否攜帶認(rèn)證信息,若是,執(zhí)行步驟307;否則,執(zhí)行步驟310。
具體地,接收方STP設(shè)備可根據(jù)BPDU報(bào)文中的認(rèn)證字段位置標(biāo)識(shí)如協(xié)議標(biāo)識(shí)的取值,來判斷BPDU報(bào)文是否攜帶認(rèn)證信息,如若協(xié)議標(biāo)識(shí)的取值與現(xiàn)有技術(shù)相同,則判定BPDU報(bào)文不攜帶認(rèn)證信息;若協(xié)議標(biāo)識(shí)的取值與本發(fā)明中設(shè)定的取值相同,則判定BPDU報(bào)文攜帶認(rèn)證信息。
步驟307接收方STP設(shè)備根據(jù)配置在自身的驗(yàn)證信息對(duì)該BPDU報(bào)文中的認(rèn)證信息進(jìn)行驗(yàn)證。
步驟308接收方STP設(shè)備判斷該BPDU報(bào)文是否通過驗(yàn)證,若是,執(zhí)行步驟309;否則,執(zhí)行步驟310。
步驟309接收方STP設(shè)備接受該BPDU報(bào)文,根據(jù)該BPDU報(bào)文進(jìn)行相應(yīng)處理,本流程結(jié)束。
步驟310接收方STP設(shè)備丟棄該BPDU報(bào)文。
需要指出的是,本發(fā)明中,也可以不在BPDU報(bào)文中設(shè)置認(rèn)證字段位置標(biāo)識(shí),合法STP設(shè)備即配置有驗(yàn)證信息的STP設(shè)備默認(rèn)收到的所有BPDU報(bào)文都攜帶認(rèn)證信息,在收到BPDU報(bào)文后,在預(yù)先指定的認(rèn)證字段位置如協(xié)議標(biāo)識(shí)字段的下一個(gè)字段中直接讀取認(rèn)證信息,然后根據(jù)配置在自身的驗(yàn)證信息對(duì)該認(rèn)證信息進(jìn)行驗(yàn)證。
通過圖3所示流程可以看出由于非法的STP設(shè)備上未配置認(rèn)證信息,所以,非法STP設(shè)備發(fā)出的BPDU報(bào)文不會(huì)被合法的STP設(shè)備所接受,因此一、即使橋ID很小的非法STP設(shè)備發(fā)出了BPDU報(bào)文,該BPDU報(bào)文會(huì)被根橋丟棄,從而不會(huì)引起根橋的重新選舉,避免了根橋的頻繁改變;同時(shí)也無需通過在根橋上配置根橋保護(hù)功能以將端口狀態(tài)轉(zhuǎn)變?yōu)閮A聽狀態(tài),避免了數(shù)據(jù)轉(zhuǎn)發(fā)的中斷;
二、即使非法STP設(shè)備發(fā)出了TC-BPDU報(bào)文,由于該報(bào)文未攜帶認(rèn)證信息,合法的STP設(shè)備會(huì)丟棄該報(bào)文,從而不會(huì)執(zhí)行刪除MAC地址表項(xiàng)和ARP表項(xiàng),避免了數(shù)據(jù)轉(zhuǎn)發(fā)的短暫中斷,節(jié)省了中央處理單元(CPU)資源;三、接入層的合法STP設(shè)備的邊緣端口在收到非法STP設(shè)備發(fā)來的BPDU報(bào)文后,無需直接關(guān)閉該端口,只需通過判斷該BPDU報(bào)文是否攜帶認(rèn)證信息并驗(yàn)證通過來決定是否轉(zhuǎn)發(fā)該報(bào)文,從而避免了邊緣端口上流量的中斷;四、由于合法STP設(shè)備可通過對(duì)BPDU報(bào)文是否通過驗(yàn)證,來確定接受還是丟棄BPDU報(bào)文,因此,無需合法STP設(shè)備對(duì)自身的不參與STP計(jì)算的端口單獨(dú)進(jìn)行BPDU過濾功能設(shè)置,降低了軟硬件實(shí)現(xiàn)的復(fù)雜度;同時(shí),由于合法STP設(shè)備可對(duì)用戶側(cè)設(shè)備發(fā)送的BPDU報(bào)文進(jìn)行驗(yàn)證,因此,即使與用戶側(cè)設(shè)備直接相連的交換機(jī)不支持STP,或者支持STP但未關(guān)閉STP功能,用戶側(cè)設(shè)備發(fā)送的BPDU報(bào)文也無法對(duì)網(wǎng)絡(luò)造成影響。
圖5是本發(fā)明提供的BPDU報(bào)文驗(yàn)證的裝置框圖,如圖5所示,其主要包括認(rèn)證信息存儲(chǔ)模塊51、BPDU報(bào)文發(fā)送模塊52、BPDU報(bào)文接收處理模塊53和驗(yàn)證模塊54,其中認(rèn)證信息存儲(chǔ)模塊51用于保存BPDU報(bào)文的認(rèn)證信息,在收到BPDU報(bào)文發(fā)送模塊52發(fā)來的認(rèn)證信息獲取請(qǐng)求后,將認(rèn)證信息發(fā)送到BPDU報(bào)文發(fā)送模塊52。
BPDU報(bào)文發(fā)送模塊52用于在確定要發(fā)送BPDU報(bào)文時(shí),向認(rèn)證信息存儲(chǔ)模塊51發(fā)送認(rèn)證信息獲取請(qǐng)求,并將認(rèn)證信息存儲(chǔ)模塊51返回的認(rèn)證信息添加到BPDU報(bào)文的認(rèn)證字段中發(fā)送到BPDU報(bào)文接收處理模塊53。
BPDU報(bào)文接收處理模塊53用于在收到BPDU報(bào)文發(fā)送模塊52發(fā)來的BPDU報(bào)文后,若檢測(cè)到該報(bào)文未攜帶認(rèn)證信息,則丟棄該報(bào)文;若檢測(cè)到該報(bào)文攜帶認(rèn)證信息,則將該認(rèn)證信息發(fā)送到驗(yàn)證模塊54,此后若收到驗(yàn)證模塊54返回的驗(yàn)證通過指示,則接受該BPDU報(bào)文并進(jìn)行相應(yīng)處理,若收到驗(yàn)證模塊54返回的驗(yàn)證失敗指示,則丟棄該BPDU報(bào)文。
驗(yàn)證模塊54用于保存BPDU報(bào)文的驗(yàn)證信息,并在收到BPDU報(bào)文接收處理模塊53發(fā)來的認(rèn)證信息后,根據(jù)自身保存的驗(yàn)證信息對(duì)所述認(rèn)證信息進(jìn)行驗(yàn)證,若驗(yàn)證通過,則向BPDU報(bào)文接收處理模塊53返回驗(yàn)證通過指示;若驗(yàn)證失敗,則向BPDU報(bào)文接收處理模塊53返回驗(yàn)證失敗指示。
本發(fā)明中提到的認(rèn)證-驗(yàn)證機(jī)制可以借用現(xiàn)有技術(shù)中的成熟的認(rèn)證-驗(yàn)證機(jī)制,例如本發(fā)明中的認(rèn)證信息和驗(yàn)證信息可為預(yù)先設(shè)定的密鑰,STP設(shè)備只需驗(yàn)證配置在自身的驗(yàn)證信息與BPDU報(bào)文中的認(rèn)證信息是否相同,即可得知該BPDU報(bào)文是否應(yīng)接受;或者,本發(fā)明中的認(rèn)證信息和驗(yàn)證信息可以通過對(duì)預(yù)先設(shè)定的參數(shù)運(yùn)行現(xiàn)有技術(shù)中的加密算法如信息摘要(MD)5算法得到,STP設(shè)備只需比較配置在自身的驗(yàn)證信息與BPDU報(bào)文的認(rèn)證信息是否匹配,即可得知該BPDU報(bào)文是否應(yīng)接受。
以上所述僅為本發(fā)明的過程及方法實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種網(wǎng)橋協(xié)議數(shù)據(jù)單元BPDU報(bào)文驗(yàn)證方法,其特征在于,預(yù)先在合法生成樹協(xié)議STP設(shè)備上配置驗(yàn)證信息,該方法包括合法STP設(shè)備收到BPDU報(bào)文,判斷該報(bào)文是否攜帶認(rèn)證信息,若否,丟棄該報(bào)文;若是,根據(jù)配置在自身的驗(yàn)證信息對(duì)該認(rèn)證信息進(jìn)行驗(yàn)證,若驗(yàn)證通過,接受該報(bào)文,若驗(yàn)證失敗,丟棄該報(bào)文。
2.如權(quán)利要求1所述的方法,其特征在于,所述BPDU報(bào)文為發(fā)送方合法STP設(shè)備發(fā)來的報(bào)文;該方法進(jìn)一步包括預(yù)先在發(fā)送方合法STP設(shè)備上配置認(rèn)證信息;所述合法STP設(shè)備收到BPDU報(bào)文之前進(jìn)一步包括發(fā)送方合法STP設(shè)備將配置在自身的認(rèn)證信息放入BPDU報(bào)文中。
3.如權(quán)利要求2所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先在BPDU報(bào)文中增加認(rèn)證字段;所述發(fā)送方合法STP設(shè)備將配置在自身的認(rèn)證信息放入BPDU報(bào)文中為將所述認(rèn)證信息放入BPDU報(bào)文的認(rèn)證字段中。
4.如權(quán)利要求3所述的方法,其特征在于,所述認(rèn)證字段位于BPDU報(bào)文的協(xié)議標(biāo)識(shí)字段和協(xié)議版本標(biāo)識(shí)字段之間。
5.如權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先為所述協(xié)議標(biāo)識(shí)設(shè)定一個(gè)與現(xiàn)有的協(xié)議標(biāo)識(shí)取值不同的值;所述合法STP設(shè)備判斷BPDU報(bào)文是否攜帶認(rèn)證信息包括合法STP設(shè)備判斷該報(bào)文攜帶的協(xié)議標(biāo)識(shí)的值是否為所述預(yù)先設(shè)定的值,若是,判定該BPDU報(bào)文攜帶認(rèn)證信息;否則,判定該BPDU報(bào)文不攜帶認(rèn)證信息。
6.如權(quán)利要求2、3、4、5中任一項(xiàng)所述的方法,其特征在于,所述認(rèn)證信息和驗(yàn)證信息為對(duì)預(yù)先設(shè)定的參數(shù)進(jìn)行加密運(yùn)算得到的加密信息。
7.如權(quán)利要求6所述的方法,其特征在于,所述對(duì)預(yù)先設(shè)定的參數(shù)進(jìn)行加密運(yùn)算為根據(jù)信息摘要MD5算法對(duì)預(yù)先設(shè)定的參數(shù)進(jìn)行加密運(yùn)算。
8.一種BPDU報(bào)文驗(yàn)證裝置,其特征在于,該裝置包括BPDU報(bào)文接收處理模塊和驗(yàn)證模塊,其中BPDU報(bào)文接收處理模塊,用于在收到外部發(fā)來的BPDU報(bào)文后,若檢測(cè)到該報(bào)文未攜帶認(rèn)證信息,則丟棄該報(bào)文;否則,將該報(bào)文攜帶的認(rèn)證信息發(fā)送到驗(yàn)證模塊,且若收到驗(yàn)證模塊返回的驗(yàn)證通過指示,則接受該BPDU報(bào)文,若收到驗(yàn)證模塊返回的驗(yàn)證失敗指示,則丟棄該BPDU報(bào)文;驗(yàn)證模塊,用于保存BPDU報(bào)文的驗(yàn)證信息,根據(jù)該驗(yàn)證信息對(duì)BPDU報(bào)文接收處理模塊發(fā)來的認(rèn)證信息進(jìn)行驗(yàn)證,若驗(yàn)證通過,向BPDU報(bào)文接收處理模塊返回驗(yàn)證通過指示;若驗(yàn)證失敗,則向BPDU報(bào)文接收處理模塊返回驗(yàn)證失敗指示。
9.如權(quán)利要求8所述的裝置,其特征在于,該裝置進(jìn)一步包括認(rèn)證信息存儲(chǔ)模塊和BPDU報(bào)文發(fā)送模塊,其中認(rèn)證信息存儲(chǔ)模塊,用于保存BPDU報(bào)文的認(rèn)證信息,根據(jù)BPDU報(bào)文發(fā)送模塊的請(qǐng)求,將所述認(rèn)證信息發(fā)送到BPDU報(bào)文發(fā)送模塊;BPDU報(bào)文發(fā)送模塊,用于在確定要發(fā)送BPDU報(bào)文時(shí),向認(rèn)證信息存儲(chǔ)模塊請(qǐng)求認(rèn)證信息,并將認(rèn)證信息存儲(chǔ)模塊返回的認(rèn)證信息添加到BPDU報(bào)文中發(fā)送到BPDU報(bào)文接收處理模塊。
全文摘要
本發(fā)明公開了一種BPDU報(bào)文驗(yàn)證方法,包括預(yù)先在合法STP設(shè)備上配置驗(yàn)證信息,當(dāng)合法STP設(shè)備收到BPDU報(bào)文時(shí),若檢測(cè)到該報(bào)文未攜帶認(rèn)證信息,丟棄該報(bào)文;否則,根據(jù)配置在自身的驗(yàn)證信息對(duì)該認(rèn)證信息進(jìn)行驗(yàn)證,若驗(yàn)證通過,接受該報(bào)文,若驗(yàn)證失敗,丟棄該報(bào)文。本發(fā)明同時(shí)公開了一種BPDU報(bào)文驗(yàn)證裝置,包括BPDU報(bào)文接收處理模塊和驗(yàn)證模塊。本發(fā)明能避免根橋的頻繁改變導(dǎo)致的網(wǎng)絡(luò)震蕩,也可避免正常數(shù)據(jù)轉(zhuǎn)發(fā)的中斷,也可避免交換機(jī)頻繁地刪除MAC地址表項(xiàng)和ARP表項(xiàng),同時(shí)可降低設(shè)備復(fù)雜度。本發(fā)明從根本上解決了BPDU欺騙問題,使得依靠BPDU報(bào)文計(jì)算生成樹的網(wǎng)絡(luò)得到可靠的安全性保護(hù),且本發(fā)明實(shí)現(xiàn)簡單,具有通用性,為以太網(wǎng)技術(shù)向城域網(wǎng)發(fā)展提供了安全保障。
文檔編號(hào)H04L29/06GK1878061SQ20061009026
公開日2006年12月13日 申請(qǐng)日期2006年7月11日 優(yōu)先權(quán)日2006年7月11日
發(fā)明者汪政 申請(qǐng)人:杭州華為三康技術(shù)有限公司