專利名稱:媒體接入控制層地址的動(dòng)態(tài)學(xué)習(xí)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及媒體接入控制層(MAC)地址解析技術(shù),特別涉及到一種MAC地址的動(dòng)態(tài)學(xué)習(xí)方法。
背景技術(shù):
圖1顯示了一種典型的環(huán)網(wǎng)組網(wǎng)環(huán)境。在如圖1所示的環(huán)網(wǎng)中,對(duì)于上行報(bào)文,首先由位于最下層的商用或民用用戶將自身的上行報(bào)文發(fā)送到與其直連的二層交換機(jī),由該二層交換機(jī)通過二層轉(zhuǎn)發(fā)發(fā)送到所述環(huán)網(wǎng)上的三層交換機(jī),再由所述三層交換機(jī)通過三層轉(zhuǎn)發(fā)路由到核心網(wǎng)中;而對(duì)于下行報(bào)文,首先由所述三層交換機(jī)將發(fā)送給某個(gè)用戶的報(bào)文通過二層轉(zhuǎn)發(fā)發(fā)送到環(huán)網(wǎng)上與該目的用戶直連的二層交換機(jī),再由該二層交換機(jī)通過二層轉(zhuǎn)發(fā)發(fā)送到該目的用戶。
由于由二層交換機(jī)或三層交換機(jī)完成的二層轉(zhuǎn)發(fā)是根據(jù)報(bào)文的目的MAC地址來進(jìn)行的,因此,為了實(shí)現(xiàn)所述二層轉(zhuǎn)發(fā),每個(gè)二層交換機(jī)或三層交換機(jī)的內(nèi)部都需要維護(hù)一張MAC地址表,該MAC地址表中包含若干MAC地址表項(xiàng),每個(gè)MAC地址表項(xiàng)用于記錄一個(gè)MAC地址與一個(gè)轉(zhuǎn)發(fā)端口的對(duì)應(yīng)關(guān)系。有了所述MAC地址表,環(huán)網(wǎng)上每個(gè)二層交換機(jī)或三層交換機(jī)在進(jìn)行二層轉(zhuǎn)發(fā)的時(shí)候,就可以首先根據(jù)待轉(zhuǎn)發(fā)報(bào)文的目的MAC地址查找自身維護(hù)的MAC地址表,在所述MAC地址表記錄的MAC地址表項(xiàng)中找到與該目的MAC地址對(duì)應(yīng)的轉(zhuǎn)發(fā)端口后,再通過該端口將待轉(zhuǎn)發(fā)的報(bào)文轉(zhuǎn)發(fā)出去,從而實(shí)現(xiàn)所述報(bào)文的二層轉(zhuǎn)發(fā)。如果自身維護(hù)的MAC地址表中不存在該目的MAC地址對(duì)應(yīng)的MAC地址表項(xiàng),則所述二層交換機(jī)或三層交換機(jī)需要將待轉(zhuǎn)發(fā)的報(bào)文廣播出去,以實(shí)現(xiàn)報(bào)文的轉(zhuǎn)發(fā)。
目前,二層交換機(jī)或三層交換機(jī)可以通過靜態(tài)配置或者動(dòng)態(tài)學(xué)習(xí)MAC地址的方法來建立所述MAC地址表。其中,所述動(dòng)態(tài)學(xué)習(xí)是指在二層交換機(jī)或三層交換機(jī)接收到一個(gè)報(bào)文時(shí),如果自身所維護(hù)的MAC地址表中不存在該報(bào)文源MAC地址所對(duì)應(yīng)的MAC地址表項(xiàng),則所述二層交換機(jī)或三層交換機(jī)就可以在自身維護(hù)的MAC地址表中建立一個(gè)用戶表項(xiàng),記錄所述源MAC地址與接收到該報(bào)文的端口之間的映射關(guān)系。這樣,隨后如果該二層交換機(jī)或三層交換機(jī)接收到目的MAC地址為所述源MAC地址的報(bào)文,就可以根據(jù)所建立的MAC地址用戶表項(xiàng)將所接收的報(bào)文通過與該源MAC地址對(duì)應(yīng)的端口轉(zhuǎn)發(fā)出去。
但是,由于環(huán)網(wǎng)上的二層交換機(jī)或三層交換機(jī)除了能夠?qū)W到與本交換機(jī)直連的用戶網(wǎng)絡(luò)上的MAC地址之外,還能夠通過環(huán)網(wǎng)上的端口學(xué)到其他交換機(jī)所連接用戶的MAC地址,因而通常需要學(xué)習(xí)的MAC地址總數(shù)將達(dá)到2萬多個(gè),而每個(gè)二層交換機(jī)或三層交換機(jī)的MAC地址表的容量是有限的,在MAC地址的動(dòng)態(tài)學(xué)習(xí)過程中,MAC地址表很快就會(huì)達(dá)到預(yù)先設(shè)置的容量,導(dǎo)致有很多的MAC地址不能被學(xué)到,從而造成環(huán)網(wǎng)上以及與二層交換機(jī)相連的用戶網(wǎng)絡(luò)中出現(xiàn)大量的廣播報(bào)文。理論上,這一問題可以通過增大MAC地址表的容量來緩解,但是,一方面MAC地址表的容量是由網(wǎng)絡(luò)設(shè)備的底層芯片決定的,故MAC地址表的容量不能任意增大;另一方面如果所述MAC地址表的容量過大,必然造成其中記錄的MAC地址表項(xiàng)過多,從而嚴(yán)重影響二層轉(zhuǎn)發(fā)的性能,因此,在現(xiàn)實(shí)的組網(wǎng)環(huán)境下不能通過增加MAC地址表容量的方法來解決問題。
考慮到通常動(dòng)態(tài)學(xué)習(xí)到的MAC地址可以分為兩類,一類是與本交換機(jī)直接相連的用戶MAC地址,另一類則是通過環(huán)網(wǎng)上端口學(xué)到的與其他交換機(jī)相連的用戶MAC地址,并且第二類MAC地址要遠(yuǎn)多于第一類MAC地址。因而,目前通常采用關(guān)閉環(huán)上端口的MAC地址學(xué)習(xí)功能的方法來減少交換機(jī)能夠?qū)W到的MAC地址,從而解決上述問題。
但是,這種方法也會(huì)對(duì)系統(tǒng)的性能造成嚴(yán)重的影響。具體分析如下環(huán)網(wǎng)上的業(yè)務(wù)可分為上環(huán)業(yè)務(wù)和下環(huán)業(yè)務(wù),所謂的上環(huán)業(yè)務(wù)是指用戶通過環(huán)網(wǎng)上的二層交換機(jī)發(fā)給三層交換機(jī)的報(bào)文。由于在上述方法中,環(huán)網(wǎng)上的交換機(jī)關(guān)閉了環(huán)上端口的MAC地址學(xué)習(xí)功能,因此,環(huán)網(wǎng)上的二層交換機(jī)將始終無法學(xué)習(xí)到三層交換機(jī)的MAC地址,從而導(dǎo)致環(huán)網(wǎng)上的二層交換機(jī)將對(duì)所有的上行報(bào)文進(jìn)行廣播處理,隨著廣播報(bào)文的增多,將嚴(yán)重地影響系統(tǒng)的性能。可以進(jìn)一步采取靜態(tài)配置三層交換機(jī)MAC地址的方法來解決這一問題,但是在環(huán)網(wǎng)發(fā)生切換時(shí),目前沒有相應(yīng)的機(jī)制能夠動(dòng)態(tài)改變二層交換機(jī)上行報(bào)文轉(zhuǎn)發(fā)的出端口,從而導(dǎo)致環(huán)網(wǎng)切換無法正常進(jìn)行。
發(fā)明內(nèi)容
為了解決上述技術(shù)問題,本發(fā)明提供了一種MAC地址的動(dòng)態(tài)學(xué)習(xí)方法,保證網(wǎng)絡(luò)中的交換機(jī)在關(guān)閉了網(wǎng)絡(luò)上端口的MAC地址學(xué)習(xí)功能之后,依然可以動(dòng)態(tài)地學(xué)習(xí)到環(huán)網(wǎng)上的三層交換機(jī)、路由器或與其他二層交換機(jī)相連的用戶的MAC地址,從而實(shí)現(xiàn)二層轉(zhuǎn)發(fā)。
根據(jù)本發(fā)明的一個(gè)方面,所述的MAC地址動(dòng)態(tài)學(xué)習(xí)方法,包括A、網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備定時(shí)向網(wǎng)絡(luò)中的其它網(wǎng)絡(luò)設(shè)備發(fā)送免費(fèi)地址解析協(xié)議ARP報(bào)文;B、在所述其他網(wǎng)絡(luò)設(shè)備接收到所述免費(fèi)ARP報(bào)文后,解析所述免費(fèi)ARP報(bào)文,并生成與所述免費(fèi)ARP中源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
步驟B所述解析免費(fèi)ARP報(bào)文及生成所述MAC地址表項(xiàng)的操作由上層軟件完成,主要包括B1、提取所接收?qǐng)?bào)文中的源IP地址和目的IP地址,判斷所提取的源IP地址和目的IP地址是否一致,如果一致則說明所接收到的報(bào)文為免費(fèi)ARP報(bào)文,然后執(zhí)行步驟B2;否則,結(jié)束;B2、提取所接收免費(fèi)ARP報(bào)文中的源MAC地址,根據(jù)所提取的源MAC地址以及接收所述免費(fèi)ARP報(bào)文的端口,生成MAC地址表項(xiàng),記錄所述源MAC地址以及所述端口的對(duì)應(yīng)關(guān)系。
所述網(wǎng)絡(luò)為環(huán)網(wǎng),所述網(wǎng)絡(luò)設(shè)備包括三層網(wǎng)絡(luò)設(shè)備和二層網(wǎng)絡(luò)設(shè)備。
設(shè)置環(huán)網(wǎng)上的所有網(wǎng)絡(luò)設(shè)備的環(huán)上端口屬于管理虛擬局域網(wǎng)VLAN;在所述步驟B2之前進(jìn)一步包括根據(jù)發(fā)送所述免費(fèi)ARP報(bào)文的源端口是否屬于管理VLAN來判斷該免費(fèi)ARP報(bào)文的發(fā)送端是否是網(wǎng)絡(luò)中的三層網(wǎng)絡(luò)設(shè)備,如果是,則執(zhí)行步驟B2;否則,結(jié)束。
所述方法進(jìn)一步包括靜態(tài)配置能夠下發(fā)動(dòng)態(tài)MAC地址表項(xiàng)的VLAN;步驟B所述生成與所述免費(fèi)ARP中源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)包括對(duì)應(yīng)所配置的VLAN生成與所述免費(fèi)ARP中源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
所述網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備為網(wǎng)絡(luò)中的三層交換機(jī)或路由器;所述網(wǎng)絡(luò)中的其他網(wǎng)絡(luò)設(shè)備為網(wǎng)絡(luò)中的二層交換機(jī)。
所述免費(fèi)ARP報(bào)文的源IP地址和目的IP地址為該三層交換機(jī)或路由器的虛接口IP地址,源MAC地址為該三層交換機(jī)或路由器的虛接口MAC地址,目的MAC地址為廣播地址。
所述網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備為網(wǎng)絡(luò)中的一個(gè)二層交換機(jī);所述網(wǎng)絡(luò)中的其他網(wǎng)絡(luò)設(shè)備為網(wǎng)絡(luò)中的其他二層交換機(jī)。
所述免費(fèi)ARP報(bào)文的源IP地址和目的IP地址為無效的IP地址,源MAC地址為與該二層交換機(jī)直接相連的一個(gè)用戶的MAC地址,目的MAC地址為廣播地址。
所述網(wǎng)絡(luò)設(shè)備發(fā)送免費(fèi)ARP報(bào)文的時(shí)機(jī)根據(jù)網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備的數(shù)量以及網(wǎng)絡(luò)的業(yè)務(wù)量確定。
根據(jù)本發(fā)明的另一個(gè)方面,環(huán)網(wǎng)上三層交換機(jī)的媒體接入控制層MAC地址的動(dòng)態(tài)學(xué)習(xí)方法,包括A、環(huán)網(wǎng)上的三層交換機(jī)定時(shí)向環(huán)網(wǎng)上的二層交換機(jī)發(fā)送免費(fèi)地址解析協(xié)議ARP報(bào)文,該免費(fèi)ARP報(bào)文中的源IP地址和目的IP地址為該三層交換機(jī)的虛接口IP地址,源MAC地址為該三層交換機(jī)的虛接口MAC地址,目的MAC地址為廣播地址;B、環(huán)網(wǎng)上的二層交換機(jī)接收到環(huán)網(wǎng)上的報(bào)文后,由其上層軟件提取所接收?qǐng)?bào)文中的源IP地址和目的IP地址,判斷所提取的源IP地址和目的IP地址是否一致,如果一致則說明接收到的報(bào)文為免費(fèi)ARP報(bào)文,然后執(zhí)行步驟C;否則,結(jié)束;C、提取所接收免費(fèi)ARP報(bào)文中的源MAC地址,根據(jù)所提取的源MAC地址以及接收所述免費(fèi)ARP報(bào)文的端口,生成與所述源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
所述方法進(jìn)一步包括設(shè)置環(huán)網(wǎng)中的所有交換機(jī)在網(wǎng)絡(luò)上的端口屬于管理虛擬局域網(wǎng)VLAN,并靜態(tài)配置能夠下發(fā)動(dòng)態(tài)MAC地址表項(xiàng)的VLAN;在步驟C之前進(jìn)一步包括根據(jù)發(fā)送所述免費(fèi)ARP報(bào)文的源端口是否屬于管理VLAN來判斷該免費(fèi)ARP報(bào)文的發(fā)送端是否是環(huán)網(wǎng)中的三層交換機(jī),如果是,則執(zhí)行步驟C,否則,結(jié)束;步驟C所述生成與所述源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)包括對(duì)應(yīng)所配置的所有VLAN分別生成與所述源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
根據(jù)本發(fā)明的又一個(gè)方面,環(huán)網(wǎng)上與二層交換機(jī)直接相連用戶的媒體接入控制層MAC地址的動(dòng)態(tài)學(xué)習(xí)方法,包括A、環(huán)網(wǎng)上的二層交換機(jī)定時(shí)向環(huán)網(wǎng)上的其它二層交換機(jī)發(fā)送免費(fèi)地址解析協(xié)議ARP報(bào)文,其中,源IP地址和目的IP地址為無效的IP地址,源MAC地址為與其直接相連的一個(gè)用戶的MAC地址,目的MAC地址為廣播地址;B、環(huán)網(wǎng)上的其他二層交換機(jī)接收到環(huán)網(wǎng)上的報(bào)文后,由其上層軟件提取所接收?qǐng)?bào)文中的源IP地址和目的IP地址,判斷所提取的源IP地址和目的IP地址是否一致,如果一致,則說明接收到的報(bào)文為免費(fèi)ARP報(bào)文,然后執(zhí)行步驟C;否則,結(jié)束;C、提取所接收免費(fèi)ARP報(bào)文中的源MAC地址,根據(jù)所提取的源MAC地址以及接收所述免費(fèi)ARP報(bào)文的端口,生成MAC地址表項(xiàng)。
由此可以看出,本發(fā)明所述的方法即使在網(wǎng)絡(luò)上的二層交換機(jī)關(guān)閉了網(wǎng)上端口的MAC地址學(xué)習(xí)功能之后,依然可以利用免費(fèi)ARP報(bào)文動(dòng)態(tài)地學(xué)習(xí)到網(wǎng)絡(luò)中的三層交換機(jī)、路由器或與其它二層交換機(jī)直接相連的用戶的MAC地址,從而實(shí)現(xiàn)對(duì)上行報(bào)文以及特定用戶之間報(bào)文的正常單播轉(zhuǎn)發(fā)。
另外,由于所述免費(fèi)ARP報(bào)文是定時(shí)發(fā)送的,即使在環(huán)網(wǎng)發(fā)生切換時(shí),上行報(bào)文的出端口也能得到實(shí)時(shí)更新。
圖1為現(xiàn)有技術(shù)中一種典型的環(huán)網(wǎng)組網(wǎng)環(huán)境示意圖;圖2為本發(fā)明實(shí)施例1所述的環(huán)網(wǎng)上三層交換機(jī)MAC地址的動(dòng)態(tài)學(xué)習(xí)方法流程圖;圖3為本發(fā)明實(shí)施例2所述的環(huán)網(wǎng)上與其它二層交換機(jī)直接相連的用戶的MAC地址的動(dòng)態(tài)學(xué)習(xí)方法流程圖。
具體實(shí)施例方式
為使發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。
本發(fā)明的核心思想在于,利用現(xiàn)有免費(fèi)地址解析協(xié)議(GratuitousARP)報(bào)文實(shí)現(xiàn)網(wǎng)絡(luò)上的網(wǎng)絡(luò)設(shè)備或與其他二層交換機(jī)相連的用戶MAC地址的動(dòng)態(tài)學(xué)習(xí)。本發(fā)明所述的網(wǎng)絡(luò)設(shè)備可以是三層交換機(jī)或路由器等具有路由功能的網(wǎng)絡(luò)設(shè)備。
免費(fèi)ARP報(bào)文是一種特殊ARP請(qǐng)求廣播報(bào)文,其中所包含的目的網(wǎng)際協(xié)議(IP)地址和原IP地址相同,且都為發(fā)送該免費(fèi)ARP報(bào)文的交換機(jī)的虛接口IP地址。發(fā)送免費(fèi)ARP報(bào)文的本意是用于在系統(tǒng)啟動(dòng)后檢驗(yàn)在同一局域網(wǎng)內(nèi)是否出現(xiàn)IP地址沖突,即判斷局域網(wǎng)內(nèi)是否之前已有設(shè)備被配置了相同的IP地址。而在本發(fā)明所述的方法中,使用免費(fèi)ARP報(bào)文作為載體,從而實(shí)現(xiàn)網(wǎng)絡(luò)上網(wǎng)絡(luò)設(shè)備或與其他二層交換機(jī)相連的用戶MAC地址的動(dòng)態(tài)學(xué)習(xí)。下面以環(huán)網(wǎng)為例,結(jié)合本發(fā)明的優(yōu)選實(shí)施例詳細(xì)說明本發(fā)明的方法。
實(shí)施例1本實(shí)施例利用免費(fèi)ARP報(bào)文實(shí)現(xiàn)環(huán)網(wǎng)上三層交換機(jī)MAC地址的動(dòng)態(tài)學(xué)習(xí)。本實(shí)施例所述方法如圖2所示,主要包括以下步驟A、環(huán)網(wǎng)上的三層交換機(jī)定時(shí)向環(huán)網(wǎng)上的二層交換機(jī)發(fā)送免費(fèi)ARP報(bào)文,該報(bào)文中的源IP地址和目的IP地址均為該三層交換機(jī)的虛接口IP地址,源MAC地址為該三層交換機(jī)的虛接口MAC地址,目的MAC地址為廣播地址。
在本步驟中,所述三層交換機(jī)發(fā)送免費(fèi)ARP報(bào)文的時(shí)機(jī)可以根據(jù)環(huán)網(wǎng)中交換機(jī)的數(shù)量以及環(huán)網(wǎng)的業(yè)務(wù)量等等參數(shù)確定。
B、環(huán)網(wǎng)上的二層交換機(jī)接收到所述免費(fèi)ARP報(bào)文后,解析所述免費(fèi)ARP報(bào)文,并根據(jù)解析結(jié)果生成并下發(fā)與所述三層交換機(jī)虛接口MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
在上述步驟B中,由于所述免費(fèi)ARP報(bào)文的目的MAC地址為廣播地址,環(huán)網(wǎng)上的二層交換機(jī)在接收到所述免費(fèi)ARP報(bào)文后,還會(huì)進(jìn)一步將所接收的免費(fèi)ARP報(bào)文轉(zhuǎn)發(fā)到環(huán)網(wǎng)上的下游二層交換機(jī),從而保證環(huán)網(wǎng)上的所有二層交換機(jī)均能夠接收到所述三層交換機(jī)發(fā)送的免費(fèi)ARP報(bào)文,并下發(fā)與所述三層交換機(jī)虛接口MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
在環(huán)網(wǎng)上的二層交換機(jī)下發(fā)與所述三層交換機(jī)虛接口MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)后,由于自身所維護(hù)的MAC地址表中記錄了所述三層交換機(jī)的MAC地址及其對(duì)應(yīng)的轉(zhuǎn)發(fā)端口,就可以在接收到用戶的上行報(bào)文后,通過對(duì)應(yīng)的轉(zhuǎn)發(fā)端口將所述上行報(bào)文轉(zhuǎn)發(fā)出去了,從而實(shí)現(xiàn)對(duì)用戶上行報(bào)文的二層轉(zhuǎn)發(fā)。
在上述步驟B中,由于環(huán)網(wǎng)上接收所述免費(fèi)ARP報(bào)文的二層交換機(jī)關(guān)閉了環(huán)上端口的MAC地址學(xué)習(xí)功能,該二層交換機(jī)是不能直接學(xué)到這個(gè)報(bào)文的源MAC地址的,因此,該二層交換機(jī)的底層驅(qū)動(dòng)需要將所接收到免費(fèi)ARP報(bào)文提交給自身上層軟件進(jìn)行解析處理。
所述的解析處理包括B1、提取所接收?qǐng)?bào)文中的源IP地址和目的IP地址,判斷所提取的源IP地址和目的IP地址是否一致,如果一致則說明所接收到的報(bào)文為免費(fèi)ARP報(bào)文,然后執(zhí)行步驟B2;否則,結(jié)束;B2、提取所接收免費(fèi)ARP報(bào)文中的源MAC地址,根據(jù)所提取的源MAC地址以及接收所述免費(fèi)ARP報(bào)文的端口,生成一個(gè)MAC地址表項(xiàng),記錄所述源MAC地址以及所述端口的對(duì)應(yīng)關(guān)系。
為防止與環(huán)網(wǎng)上二層交換機(jī)直連的用戶網(wǎng)絡(luò)接收到上述廣播免費(fèi)ARP報(bào)文,同時(shí)也為了防止用戶網(wǎng)絡(luò)發(fā)送的免費(fèi)ARP報(bào)文被誤認(rèn)為是三層交換機(jī)發(fā)送的報(bào)文從而被環(huán)網(wǎng)上的二層交換機(jī)進(jìn)行錯(cuò)誤解析。在上述所述上層軟件對(duì)所接收?qǐng)?bào)文進(jìn)行解析處理過程的步驟B2之前還應(yīng)當(dāng)進(jìn)一步包括B11、判斷所接收的免費(fèi)ARP報(bào)文的發(fā)送端是否是環(huán)網(wǎng)上的網(wǎng)絡(luò)設(shè)備,如果是,則實(shí)現(xiàn)步驟B2;否則,結(jié)束。
由于所述二層交換機(jī)的上層軟件無法直接獲知所接收的免費(fèi)ARP報(bào)文的發(fā)送端是否是環(huán)網(wǎng)上的網(wǎng)絡(luò)設(shè)備,而僅能夠通過劃分虛擬局域網(wǎng)(VLAN)的方式來標(biāo)識(shí)所述免費(fèi)ARP報(bào)文發(fā)送端的發(fā)送端口,因此,本實(shí)施例所述的方法需要強(qiáng)制規(guī)定所有二層交換機(jī)或三層交換機(jī)的環(huán)上端口的必須被設(shè)置屬于一個(gè)共同的VLAN,稱為管理VLAN,而與用戶網(wǎng)絡(luò)直接相連的端口則不能屬于管理VLAN。
這樣,在上述步驟B11中,所述上層軟件就可以根據(jù)所接收的免費(fèi)ARP報(bào)文所攜帶的VLAN標(biāo)識(shí)(ID)來判斷其發(fā)送端口是否屬于管理VLAN,從而判斷該免費(fèi)ARP報(bào)文的發(fā)送端是否是環(huán)網(wǎng)上的網(wǎng)絡(luò)設(shè)備。
在將所述環(huán)網(wǎng)劃分了不同的VLAN后,在步驟B中下發(fā)的MAC地址表項(xiàng)也將包括該MAC地址表項(xiàng)適用的VLAN ID。表1顯示了下發(fā)的MAC地址表項(xiàng)的一個(gè)例子。
表1在如表1所示的例子中,該MAC地址表項(xiàng)是動(dòng)態(tài)配置的,所記錄的環(huán)網(wǎng)上三層交換機(jī)虛接口的MAC地址為00e0-fc00-1123;其所屬的VLAN ID為1,為管理VLAN;與該MAC地址對(duì)應(yīng)的轉(zhuǎn)發(fā)端口的端口索引為Ethernet0/1。這樣,該二層交換機(jī)在接收到目的MAC地址為00e0-fc00-1123的上行報(bào)文后,若接收該報(bào)文的端口也屬于VLAN ID為1的VLAN,則就可以直接將所接收的報(bào)文通過端口Ethernet0/1轉(zhuǎn)發(fā)出去,而無需進(jìn)行廣播處理。
然而由于環(huán)網(wǎng)上二層交換機(jī)與用戶網(wǎng)絡(luò)直接相連的端口不能屬于管理VLAN,因此,這些端口所屬VLAN的VLAN ID不可能是管理VLAN ID,因此,在進(jìn)行二層轉(zhuǎn)發(fā)時(shí),MAC地址表中雖然存在與所述三層交換機(jī)虛接口MAC地址對(duì)應(yīng)的MAC表項(xiàng),但由于該MAC地址表項(xiàng)中記錄的VLAN ID是管理VLAN的ID,因此,由用戶發(fā)送的上行報(bào)文仍舊不能夠進(jìn)行正確轉(zhuǎn)發(fā),而只能按照未知單播報(bào)文進(jìn)行廣播處理。
然而為每個(gè)VLAN都下發(fā)一個(gè)動(dòng)態(tài)MAC地址表項(xiàng)是不可能的,因?yàn)槎咏粨Q機(jī)最多能夠被劃分為幾千個(gè)VLAN,每下發(fā)一次動(dòng)態(tài)MAC地址表項(xiàng)都會(huì)花費(fèi)相對(duì)較長的時(shí)間,同時(shí)在MAC地址表中一次增加幾千個(gè)MAC地址表項(xiàng)也是不允許的。本實(shí)施例采用靜態(tài)配置能夠下發(fā)動(dòng)態(tài)MAC地址表項(xiàng)的VLAN的方法來解決這一問題??梢韵掳l(fā)動(dòng)態(tài)MAC地址表項(xiàng)的VLAN的個(gè)數(shù)可以根據(jù)交換機(jī)的性能確定,只是個(gè)經(jīng)驗(yàn)值,例如128個(gè)。表2顯示了下發(fā)的128個(gè)MAC地址表項(xiàng)。
表2在如表2所示的例子中,若該二層交換機(jī)接收到的上行報(bào)文的目的MAC地址為00e0-fc00-1123,并且接收該報(bào)文的端口所屬VLAN的ID為1、2、3、……、128,則該二層交換機(jī)就可以直接將所接收的上行報(bào)文通過端口Ethernet0/1轉(zhuǎn)發(fā)出去,而無需進(jìn)行廣播處理。
由此看出,本實(shí)施例所述的方法在環(huán)網(wǎng)上的二層交換機(jī)關(guān)閉了環(huán)上端口的MAC地址學(xué)習(xí)功能之后,依然可以動(dòng)態(tài)地學(xué)習(xí)到環(huán)網(wǎng)上的三層交換機(jī)虛接口的MAC地址,從而實(shí)現(xiàn)對(duì)上行報(bào)文單播轉(zhuǎn)發(fā)。另外,由于所述免費(fèi)ARP報(bào)文是定時(shí)發(fā)送的,即使在環(huán)網(wǎng)發(fā)送切換時(shí),上行報(bào)文的出端口也能得到實(shí)時(shí)更新。
需要說明的是,本實(shí)施例所描述的雖然是環(huán)網(wǎng)上三層交換機(jī)MAC地址的學(xué)習(xí)方法,應(yīng)用上述方法也可以實(shí)現(xiàn)具有三層路由功能的其它網(wǎng)絡(luò)設(shè)備的MAC地址學(xué)習(xí),例如路由器等等。并且,本實(shí)施例所述的方法也不限于環(huán)狀的網(wǎng)絡(luò)結(jié)構(gòu),還可以應(yīng)用到其他網(wǎng)絡(luò)結(jié)構(gòu)中。
實(shí)施例2由于在環(huán)網(wǎng)上二層交換機(jī)禁止環(huán)網(wǎng)上端口MAC地址學(xué)習(xí)功能后,原本直接連接于不同二層交換機(jī)的用戶之間的正常的單播報(bào)文轉(zhuǎn)發(fā)也將變成未知單播報(bào)文的廣播轉(zhuǎn)發(fā)。此時(shí),如果在與某個(gè)二層交換機(jī)直接相連的用戶網(wǎng)絡(luò)中,有一個(gè)或者多個(gè)用戶與環(huán)網(wǎng)上其他二層交換機(jī)直接相連的用戶的業(yè)務(wù)交互繁忙,那么由于廣播報(bào)文的增多,將造成環(huán)網(wǎng)上流量大大增加。
本實(shí)施例就是利用免費(fèi)ARP報(bào)文動(dòng)態(tài)學(xué)習(xí)環(huán)網(wǎng)上與其它二層交換機(jī)直接相連的用戶的MAC地址的方法。本實(shí)施例所述方法如圖3所示,主要包括以下步驟a、環(huán)網(wǎng)上的二層交換機(jī)定時(shí)向環(huán)網(wǎng)上的其它二層交換機(jī)發(fā)送免費(fèi)ARP報(bào)文,該報(bào)文中的源IP地址和目的IP地址均為無效的IP地址,例如255.255.255.255,源MAC地址為與該二層交換機(jī)直接相連的用戶的MAC地址,目的MAC地址為廣播地址。
所述二層交換機(jī)發(fā)送免費(fèi)ARP報(bào)文的時(shí)機(jī)可以根據(jù)環(huán)網(wǎng)中交換機(jī)的數(shù)量以及環(huán)網(wǎng)的業(yè)務(wù)量等等參數(shù)確定。
在本步驟中,用戶的MAC地址可以通過靜態(tài)配置得到。而將報(bào)文中的源IP地址和目的IP地址均設(shè)置為無效的IP地址的原因如下如果將報(bào)文中的源IP地址和目的IP地址設(shè)為交換機(jī)的IP地址,由于報(bào)文中的源MAC地址不是交換機(jī)的MAC地址,將會(huì)造成,環(huán)網(wǎng)上三層交換機(jī)在根據(jù)所接收的免費(fèi)ARP報(bào)文建立ARP表項(xiàng)的時(shí)候出現(xiàn)錯(cuò)誤,從而導(dǎo)致所述三層交換機(jī)不能夠正確完成三層轉(zhuǎn)發(fā)。而如果采用例如255.255.255.255的無效IP地址,這樣的免費(fèi)ARP報(bào)文在被解析并生成相應(yīng)的MAC地址表項(xiàng)后就會(huì)被丟棄,而不會(huì)影響其他業(yè)務(wù)。
b、環(huán)網(wǎng)上的其它二層交換機(jī)接收到所述免費(fèi)ARP報(bào)文后,解析所述免費(fèi)ARP報(bào)文,并根據(jù)解析結(jié)果下發(fā)與該用戶MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
在上述步驟b中,環(huán)網(wǎng)上的二層交換機(jī)在接收到所述免費(fèi)ARP報(bào)文后,還會(huì)進(jìn)一步將所接收的免費(fèi)ARP報(bào)文轉(zhuǎn)發(fā)到環(huán)網(wǎng)上的下游二層交換機(jī),從而保證環(huán)網(wǎng)上的所有其它二層交換機(jī)均能夠接收到所述免費(fèi)ARP報(bào)文,并生成與該用戶MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
另外,由于環(huán)網(wǎng)上接收所述免費(fèi)ARP報(bào)文的二層交換機(jī)關(guān)閉了環(huán)上端口的MAC地址學(xué)習(xí)功能,該二層交換機(jī)是不能直接學(xué)到這個(gè)報(bào)文的源MAC地址的,因此,該二層交換機(jī)的底層驅(qū)動(dòng)也需要將所接收到免費(fèi)ARP報(bào)文提交給自身上層軟件進(jìn)行解析處理。
所述的解析處理包括b1、提取所接收?qǐng)?bào)文中的源IP地址和目的IP地址,判斷所提取的源IP地址和目的IP地址是否一致,如果一致則說明所接收到的報(bào)文為免費(fèi)ARP報(bào)文,然后執(zhí)行步驟b2;否則,結(jié)束;b2、提取所接收免費(fèi)ARP報(bào)文中的源MAC地址,根據(jù)所提取的源MAC地址以及接收所述免費(fèi)ARP報(bào)文的端口,生成一個(gè)MAC地址表項(xiàng),記錄所述源MAC地址以及所述端口的對(duì)應(yīng)關(guān)系。
這樣,在下發(fā)了與該用戶MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)后,發(fā)往這個(gè)用戶的報(bào)文將可以進(jìn)行單播的二層轉(zhuǎn)發(fā)。如果與兩個(gè)用戶直接相連的二層交換機(jī)都做了上述配置,這兩個(gè)用戶之間交互的報(bào)文均可以實(shí)現(xiàn)單播的二層轉(zhuǎn)發(fā),就相當(dāng)于在這兩個(gè)用戶間建立了一條專線。
在所述環(huán)網(wǎng)劃分為不同的VLAN時(shí),在上述步驟b2之前,上層軟件還可以進(jìn)一步判斷發(fā)送所述免費(fèi)ARP報(bào)文的端口是否屬于管理VLAN來判斷該免費(fèi)ARP報(bào)文是否是由環(huán)網(wǎng)上的網(wǎng)絡(luò)設(shè)備發(fā)送的,如果是,則繼續(xù)執(zhí)行步驟b2;否則,結(jié)束。
在這種情況下,與實(shí)施例1類似,即使二層交換機(jī)的MAC地址表中包含了與某個(gè)用戶的MAC地址對(duì)應(yīng)的MAC地址表項(xiàng),如果接收所述報(bào)文的端口所屬VLAN的ID不同于MAC地址表項(xiàng)所記錄的VLANID,則仍然無法實(shí)現(xiàn)單播的二層轉(zhuǎn)發(fā)。但是,由于業(yè)務(wù)交互比較繁忙的用戶通常均被配置屬于同一個(gè)VALN,因此,在本實(shí)施例中,這一問題并不明顯。同樣,如果出現(xiàn)上述問題,也可以通過靜態(tài)配置能夠下發(fā)動(dòng)態(tài)MAC地址表項(xiàng)的VLAN的方法來解決。
由此看出,本實(shí)施例所述的方法在環(huán)網(wǎng)上的二層交換機(jī)關(guān)閉了環(huán)上端口的MAC地址學(xué)習(xí)功能之后,依然可以動(dòng)態(tài)地學(xué)習(xí)到與環(huán)網(wǎng)上其它二層交換機(jī)直接相連的用戶的MAC地址,從而實(shí)現(xiàn)用戶之間報(bào)文的單播轉(zhuǎn)發(fā)。
同樣,本實(shí)施例所述的方法也不限于環(huán)狀的網(wǎng)絡(luò)結(jié)構(gòu),還可以應(yīng)用到其他網(wǎng)絡(luò)結(jié)構(gòu)中。
權(quán)利要求
1.一種媒體接入控制層MAC地址的動(dòng)態(tài)學(xué)習(xí)方法,其特征在于,所述方法包括A、網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備定時(shí)向網(wǎng)絡(luò)中的其它網(wǎng)絡(luò)設(shè)備發(fā)送免費(fèi)地址解析協(xié)議ARP報(bào)文;B、所述其他網(wǎng)絡(luò)設(shè)備接收到所述免費(fèi)ARP報(bào)文后,解析所述免費(fèi)ARP報(bào)文,并生成與所述免費(fèi)ARP中源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟B所述解析免費(fèi)ARP報(bào)文及生成所述MAC地址表項(xiàng)的操作由上層軟件完成,主要包括B1、提取所接收?qǐng)?bào)文中的源IP地址和目的IP地址,判斷所提取的源IP地址和目的IP地址是否一致,如果一致則說明所接收到的報(bào)文為免費(fèi)ARP報(bào)文,然后執(zhí)行步驟B2;否則,結(jié)束;B2、提取所接收免費(fèi)ARP報(bào)文中的源MAC地址,根據(jù)所提取的源MAC地址以及接收所述免費(fèi)ARP報(bào)文的端口,生成MAC地址表項(xiàng),記錄所述源MAC地址以及所述端口的對(duì)應(yīng)關(guān)系。
3.如權(quán)利要求2所述的方法,其特征在于,所述網(wǎng)絡(luò)為環(huán)網(wǎng),所述網(wǎng)絡(luò)設(shè)備包括三層網(wǎng)絡(luò)設(shè)備和二層網(wǎng)絡(luò)設(shè)備。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法進(jìn)一步包括設(shè)置環(huán)網(wǎng)上的所有網(wǎng)絡(luò)設(shè)備的環(huán)上端口屬于管理虛擬局域網(wǎng)VLAN;在所述步驟B2之前進(jìn)一步包括根據(jù)發(fā)送所述免費(fèi)ARP報(bào)文的源端口是否屬于管理VLAN來判斷該免費(fèi)ARP報(bào)文的發(fā)送端是否是網(wǎng)絡(luò)中的三層網(wǎng)絡(luò)設(shè)備,如果是,則執(zhí)行步驟B2;否則,結(jié)束。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法進(jìn)一步包括靜態(tài)配置能夠下發(fā)動(dòng)態(tài)MAC地址表項(xiàng)的VLAN;步驟B所述生成與所述免費(fèi)ARP中源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)包括對(duì)應(yīng)所配置的VLAN生成與所述免費(fèi)ARP中源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備為網(wǎng)絡(luò)中的三層交換機(jī)或路由器;所述網(wǎng)絡(luò)中的其他網(wǎng)絡(luò)設(shè)備為網(wǎng)絡(luò)中的二層交換機(jī)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述免費(fèi)ARP報(bào)文的源IP地址和目的IP地址為所述三層交換機(jī)或路由器的虛接口IP地址,源MAC地址為所述三層交換機(jī)或路由器的虛接口MAC地址,目的MAC地址為廣播地址。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備為網(wǎng)絡(luò)中的一個(gè)二層交換機(jī);所述網(wǎng)絡(luò)中的其他網(wǎng)絡(luò)設(shè)備為網(wǎng)絡(luò)中的其他二層交換機(jī)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述免費(fèi)ARP報(bào)文的源IP地址和目的IP地址為無效的IP地址,源MAC地址為與所述二層交換機(jī)直接相連的一個(gè)用戶的MAC地址,目的MAC地址為廣播地址。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟A中,所述網(wǎng)絡(luò)設(shè)備發(fā)送免費(fèi)ARP報(bào)文的時(shí)機(jī)根據(jù)網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備的數(shù)量以及網(wǎng)絡(luò)的業(yè)務(wù)量確定。
11.一種環(huán)網(wǎng)上三層交換機(jī)的媒體接入控制層MAC地址的動(dòng)態(tài)學(xué)習(xí)方法,其特征在于,所述方法包括A、環(huán)網(wǎng)上的三層交換機(jī)定時(shí)向環(huán)網(wǎng)上的二層交換機(jī)發(fā)送免費(fèi)地址解析協(xié)議ARP報(bào)文,該免費(fèi)ARP報(bào)文中的源IP地址和目的IP地址為所述三層交換機(jī)的虛接口IP地址,源MAC地址為所述三層交換機(jī)的虛接口MAC地址,目的MAC地址為廣播地址;B、環(huán)網(wǎng)上的二層交換機(jī)接收到環(huán)網(wǎng)上的報(bào)文后,由其上層軟件提取所接收?qǐng)?bào)文中的源IP地址和目的IP地址,判斷所提取的源IP地址和目的IP地址是否一致,如果一致則說明接收到的報(bào)文為免費(fèi)ARP報(bào)文,然后執(zhí)行步驟C;否則,結(jié)束;C、提取所接收免費(fèi)ARP報(bào)文中的源MAC地址,根據(jù)所提取的源MAC地址以及接收所述免費(fèi)ARP報(bào)文的端口,生成與所述源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述方法進(jìn)一步包括設(shè)置環(huán)網(wǎng)中的所有交換機(jī)在網(wǎng)絡(luò)上的端口屬于管理虛擬局域網(wǎng)VLAN,并靜態(tài)配置能夠下發(fā)動(dòng)態(tài)MAC地址表項(xiàng)的VLAN;在步驟C之前進(jìn)一步包括根據(jù)發(fā)送所述免費(fèi)ARP報(bào)文的源端口是否屬于管理VLAN來判斷該免費(fèi)ARP報(bào)文的發(fā)送端是否是環(huán)網(wǎng)中的三層交換機(jī),如果是,則執(zhí)行步驟C,否則,結(jié)束;步驟C所述生成與所述源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)包括對(duì)應(yīng)所配置的所有VLAN分別生成與所述源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。
13.一種動(dòng)態(tài)學(xué)習(xí)環(huán)網(wǎng)上與二層交換機(jī)直接相連用戶的媒體接入控制層MAC地址的方法,其特征在于,所述方法包括A、環(huán)網(wǎng)上的二層交換機(jī)定時(shí)向環(huán)網(wǎng)上的其它二層交換機(jī)發(fā)送免費(fèi)地址解析協(xié)議ARP報(bào)文,其中,源IP地址和目的IP地址為無效的IP地址,源MAC地址為與其直接相連的一個(gè)用戶的MAC地址,目的MAC地址為廣播地址;B、環(huán)網(wǎng)上的其他二層交換機(jī)接收到環(huán)網(wǎng)上的報(bào)文后,由其上層軟件提取所接收?qǐng)?bào)文中的源IP地址和目的IP地址,判斷所提取的源IP地址和目的IP地址是否一致,如果一致,則說明接收到的報(bào)文為免費(fèi)ARP報(bào)文,然后執(zhí)行步驟C;否則,結(jié)束;C、提取所接收免費(fèi)ARP報(bào)文中的源MAC地址,根據(jù)所提取的源MAC地址以及接收所述免費(fèi)ARP報(bào)文的端口,生成MAC地址表項(xiàng)。
全文摘要
本發(fā)明公開了一種MAC地址的動(dòng)態(tài)學(xué)習(xí)方法,包括網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備定時(shí)向網(wǎng)絡(luò)中的其它交換機(jī)發(fā)送免費(fèi)地址解析協(xié)議報(bào)文;網(wǎng)絡(luò)中的其他網(wǎng)絡(luò)設(shè)備接收到所述免費(fèi)地址解析協(xié)議報(bào)文后,解析所述免費(fèi)地址解析協(xié)議報(bào)文,并生成與所述免費(fèi)地址解析協(xié)議中源MAC地址對(duì)應(yīng)的MAC地址表項(xiàng)。應(yīng)用本發(fā)明所述的方法即使在網(wǎng)絡(luò)上的網(wǎng)絡(luò)設(shè)備關(guān)閉了網(wǎng)上端口的MAC地址學(xué)習(xí)功能之后,依然可以動(dòng)態(tài)地學(xué)習(xí)到網(wǎng)絡(luò)上三層交換機(jī)、路由器或與其它二層交換機(jī)直接相連的用戶的MAC地址,從而實(shí)現(xiàn)對(duì)上行報(bào)文以及特定用戶之間報(bào)文的正常單播轉(zhuǎn)發(fā)。
文檔編號(hào)H04L12/56GK1809032SQ20061000774
公開日2006年7月26日 申請(qǐng)日期2006年2月20日 優(yōu)先權(quán)日2006年2月20日
發(fā)明者鐘凱, 劉刀桂, 曹雷 申請(qǐng)人:杭州華為三康技術(shù)有限公司