專利名稱:三層轉(zhuǎn)發(fā)方法、裝置及地址解析協(xié)議信息表更新方法
技術(shù)領(lǐng)域:
本發(fā)明涉及三層轉(zhuǎn)發(fā)技術(shù)領(lǐng)域,具體涉及一種采用兩張表存儲三層轉(zhuǎn)發(fā)信息的交換芯片進行三層轉(zhuǎn)發(fā)的方法和采用兩張表存儲三層轉(zhuǎn)發(fā)信息的三層轉(zhuǎn)發(fā)裝置,以及一種采用兩張表存儲三層轉(zhuǎn)發(fā)信息的交換芯片更新地址解析協(xié)議(ARP)信息表的方法。
背景技術(shù):
目前在數(shù)據(jù)通訊領(lǐng)域,交換機設(shè)備大量應(yīng)用于二層、三層數(shù)據(jù)交換網(wǎng)絡(luò)的接入層、匯聚層中。
二層交換的基本原理是交換機首先對以太網(wǎng)報文的轉(zhuǎn)發(fā)過程進行二層學(xué)習(xí),記錄以太網(wǎng)報文的入端口、入虛擬局域網(wǎng)(VLAN)、源媒體接入控制(MAC)地址等的對應(yīng)關(guān)系,并將該對應(yīng)關(guān)系保存在MAC地址表中;此后,當(dāng)交換機收到以太網(wǎng)報文時,在自身保存的MAC地址表中查找與該報文的目的MAC地址對應(yīng)的源MAC地址,若查找到,則按照該源MAC地址對應(yīng)的入端口、入VLAN等信息將該報文直接轉(zhuǎn)發(fā)出去;若未查找到,則在報文所在VLAN內(nèi)廣播。
三層交換的基本原理是交換機首先對以太網(wǎng)報文的轉(zhuǎn)發(fā)過程進行三層學(xué)習(xí),并保存以太網(wǎng)報文的目的IP地址對應(yīng)的網(wǎng)段地址前綴(Prefix)、下一跳主機地址(NextHop)、地址解析協(xié)議(ARP)信息的對應(yīng)關(guān)系;此后,當(dāng)交換機收到以太網(wǎng)報文時,首先按照最長匹配原則在自身查找到與報文的目的IP地址最為匹配的網(wǎng)段地址前綴,再通過該網(wǎng)段地址前綴查找到下一跳主機地址,再通過該下一跳主機地址查找到對應(yīng)的ARP信息,然后以ARP信息中的MAC地址替換報文的目的MAC地址,以交換機的出接口MAC地址替換報文的源MAC地址,然后將該報文從與該報文的目的MAC地址對應(yīng)的端口、VLAN發(fā)送出去。
交換機通常采用兩種方式存儲三層轉(zhuǎn)發(fā)信息第一種是采用三張表來存儲三層轉(zhuǎn)發(fā)信息,這三張表分別是網(wǎng)段地址前綴表、ARP信息表、MAC地址表。在這種方式下,當(dāng)交換機以ARP信息表中的MAC地址替換報文的目的MAC地址,以自身的出接口MAC地址替換報文的源MAC地址后,交換機在MAC地址表中查找替換后的目的MAC地址對應(yīng)的端口、VLAN,然后將報文從所述端口、VLAN轉(zhuǎn)發(fā)出去,即此時報文進行的是三層封裝,而遵循的是二層轉(zhuǎn)發(fā)流程。
第二種是采用兩張表來存儲三層轉(zhuǎn)發(fā)信息,這兩張表分別是網(wǎng)段地址前綴表和ARP信息表,且ARP信息表保存有MAC地址、端口和VLAN信息。在這種方式下,當(dāng)交換機以ARP信息中的MAC地址替換報文的目的MAC地址,并以自身的出接口MAC地址替換報文的源MAC地址以后,交換機直接根據(jù)ARP信息表中存儲的與替換后的目的MAC地址對應(yīng)的端口、VLAN信息將報文轉(zhuǎn)發(fā)出去??梢钥闯龃藭r報文進行的也是三層封裝,但不遵循二層轉(zhuǎn)發(fā)流程。
由于MAC地址經(jīng)常發(fā)生被刪除的現(xiàn)象、MAC地址對應(yīng)的端口也經(jīng)常發(fā)生遷移的現(xiàn)象,當(dāng)上述現(xiàn)象發(fā)生時MAC地址表可以及時得到更新,因此二層轉(zhuǎn)發(fā)不會中斷,從而,對于采用三張表存儲三層轉(zhuǎn)發(fā)信息的交換芯片,由于此時交換芯片遵循二層轉(zhuǎn)發(fā)流程,因此也不會導(dǎo)致三層報文轉(zhuǎn)發(fā)中斷;但是,對于采用兩張表存儲三層轉(zhuǎn)發(fā)信息的交換芯片,當(dāng)MAC地址被刪除或?qū)?yīng)端口發(fā)生遷移時,由于ARP信息表中的MAC地址或端口可能沒有及時更新,因此會導(dǎo)致報文因無法找到端口、VLAN或找到錯誤的端口、VLAN,而使得網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)流量中斷。
針對采用兩張表存儲三層轉(zhuǎn)發(fā)信息的交換機,通常采用兩種方法使得在MAC地址被刪除和對應(yīng)端口發(fā)生遷移時,ARP信息表中的對應(yīng)信息能夠及時得到更新
方法一刪除ARP信息。當(dāng)MAC地址被刪除或者端口發(fā)生遷移時,刪除交換機已學(xué)習(xí)到的對應(yīng)ARP信息,并將網(wǎng)段地址前綴和下一跳地址的路由屬性設(shè)置成轉(zhuǎn)至中央處理單元(toCPU),以通過軟件來觸發(fā)ARP信息重新學(xué)習(xí)。
這種方法的缺陷是刪除ARP信息,并將網(wǎng)段地址前綴和下一跳地址的路由屬性設(shè)置成toCPU,會導(dǎo)致大量報文都發(fā)送至CPU,導(dǎo)致CPU的占用率過高,嚴(yán)重時會導(dǎo)致上層協(xié)議任務(wù)無法得到及時調(diào)度,從而使得ARP信息無法及時被重新學(xué)習(xí),導(dǎo)致三層報文轉(zhuǎn)發(fā)流量中斷。
方法二發(fā)送ARP請求。當(dāng)MAC地址被刪除或者端口發(fā)生遷移后,不直接刪除ARP信息表中的主機路由信息,而是通過廣播針對該MAC地址的ARP請求,以促使ARP信息重新學(xué)習(xí)。這種方法的缺點是由于交換機的MAC地址經(jīng)常被刪除、對應(yīng)端口也經(jīng)常發(fā)生遷移,因此會有大量的ARP請求和響應(yīng)報文發(fā)送到CPU,同樣將導(dǎo)致CPU占用率高,同時大量的ARP報文將阻塞交換機的CPU發(fā)送隊列,導(dǎo)致ARP請求和響應(yīng)報文的丟失,從而使得ARP信息無法及時更新,最終導(dǎo)致三層報文流量中斷。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種三層轉(zhuǎn)發(fā)方法和裝置,以在采用兩張表存儲三層轉(zhuǎn)發(fā)信息時,避免三層轉(zhuǎn)發(fā)流量中斷;另外,本發(fā)明提供一種ARP信息表更新方法,以在MAC地址信息發(fā)生變化時及時更新ARP信息表,從而避免三層轉(zhuǎn)發(fā)流量中斷。
為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種三層轉(zhuǎn)發(fā)方法,該方法采用網(wǎng)段地址前綴表和ARP信息表存儲三層轉(zhuǎn)發(fā)信息的交換芯片在自身保存的MAC地址表中增加與MAC地址對應(yīng)的IP地址信息,包括A、交換芯片檢測到MAC地址信息發(fā)生了改變,根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,并根據(jù)改變的MAC地址信息,更新對應(yīng)的ARP信息;B、交換芯片收到以太網(wǎng)報文,根據(jù)更新后的ARP信息進行三層轉(zhuǎn)發(fā)。
步驟A所述交換芯片檢測到MAC地址信息發(fā)生了改變?yōu)榻粨Q芯片檢測到MAC地址被刪除,步驟A所述交換芯片更新對應(yīng)的ARP信息包括交換芯片將ARP信息中的端口屬性更新為廣播。
所述步驟B包括交換芯片收到以太網(wǎng)報文,按照最長匹配原則在自身查找到該報文的目的IP地址對應(yīng)的網(wǎng)段地址前綴,然后查找到該網(wǎng)段地址前綴對應(yīng)的ARP信息,并檢測到該ARP信息中的端口屬性為在虛擬局域網(wǎng)VLAN內(nèi)廣播,則交換芯片在ARP信息中指定的VLAN內(nèi)廣播該報文。
交換芯片檢測到MAC地址被刪除的同時進一步包括交換芯片啟動一個定時器,在定時器超時后,若還未檢測到該MAC地址被重學(xué)習(xí),則根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,并觸發(fā)該ARP信息重學(xué)習(xí)。
所述步驟A之后進一步包括交換芯片檢測到該MAC地址被重學(xué)習(xí),則根據(jù)該MAC地址對應(yīng)的IP地址,查找到對應(yīng)的ARP信息,將ARP信息中的端口更新為學(xué)習(xí)到的端口,并將端口屬性更新為單播。
步驟A所述交換芯片檢測到MAC地址信息發(fā)生了改變?yōu)榻粨Q芯片檢測到MAC地址對應(yīng)端口發(fā)生了遷移,步驟A所述交換芯片更新對應(yīng)的ARP信息包括交換芯片根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,將該ARP信息中的端口更新為遷移后的端口。
一種三層轉(zhuǎn)發(fā)裝置,該裝置包括MAC地址信息更新檢測模塊,檢測到MAC地址信息發(fā)生改變,將攜帶MAC地址的更新指示發(fā)送出去;MAC地址信息存儲更新模塊,根據(jù)MAC地址信息更新檢測模塊發(fā)來的攜帶MAC地址的更新指示,在自身查找該MAC地址對應(yīng)的IP地址,將攜帶該IP地址的更新指示發(fā)送出去;ARP信息存儲更新模塊,根據(jù)MAC地址信息存儲更新模塊發(fā)來的攜帶IP地址的更新指示更新自身與該IP地址對應(yīng)的ARP信息;接收攜帶IP地址的ARP信息請求,將自身與該IP地址對應(yīng)的ARP信息返回;轉(zhuǎn)發(fā)控制模塊,接收以太網(wǎng)報文,將該報文的目的IP地址攜帶在ARP信息請求中發(fā)送給ARP信息存儲更新模塊,根據(jù)ARP信息存儲更新模塊返回的ARP信息轉(zhuǎn)發(fā)該報文。
所述MAC地址信息更新檢測模塊包括MAC地址刪除檢測模塊,在檢測到MAC地址被刪除時,向MAC地址信息存儲更新模塊發(fā)送攜帶MAC地址的刪除指示;端口遷移檢測模塊,在檢測到MAC地址對應(yīng)的端口發(fā)生遷移時,向MAC地址信息存儲更新模塊發(fā)送攜帶MAC地址和端口信息的端口遷移指示。
所述MAC地址信息存儲更新模塊包括MAC地址刪除指示接收模塊,接收MAC地址刪除檢測模塊發(fā)來的攜帶MAC地址的刪除指示,將該刪除指示轉(zhuǎn)發(fā)出去,并根據(jù)獲取到的所述MAC地址對應(yīng)的IP地址,將攜帶該IP地址的端口屬性更新指示發(fā)送出去;端口遷移指示接收模塊,接收端口遷移檢測模塊發(fā)來的攜帶MAC地址和端口信息的端口遷移指示,將該端口遷移指示轉(zhuǎn)發(fā)出去,并根據(jù)獲取到的所述MAC地址對應(yīng)的IP地址,將攜帶該IP地址和所述端口信息的端口更新指示發(fā)送出去;MAC地址信息更新模塊,接收MAC地址刪除指示接收模塊發(fā)來的攜帶MAC地址的刪除指示,在自身保存的該MAC地址上設(shè)置被刪除標(biāo)記;接收端口遷移指示接收模塊發(fā)來的攜帶MAC地址和端口信息的端口遷移指示,將自身保存的與該MAC地址對應(yīng)的端口更新為該端口遷移指示攜帶的端口,且若檢測到該MAC地址上設(shè)置有被刪除標(biāo)記,則清除該標(biāo)記;根據(jù)MAC地址刪除指示接收模塊和端口遷移指示接收模塊發(fā)來的攜帶MAC地址的獲取IP地址請求,將對應(yīng)的IP地址返回給MAC地址刪除指示接收模塊和端口遷移指示接收模塊。
所述ARP信息存儲更新模塊包括端口屬性更新指示接收模塊,將接收到的MAC地址刪除指示接收模塊發(fā)來的攜帶IP地址的端口屬性更新指示轉(zhuǎn)發(fā)出去;端口更新指示接收模塊,將接收到的端口遷移指示接收模塊發(fā)來的攜帶IP地址和端口信息的端口更新指示轉(zhuǎn)發(fā)出去;ARP信息更新模塊,根據(jù)端口屬性更新指示接收模塊發(fā)來的攜帶IP地址的端口屬性更新指示,將自身與該IP地址對應(yīng)的ARP信息中的端口屬性更新為廣播;根據(jù)端口更新指示接收模塊發(fā)來的攜帶IP地址和端口信息的端口更新指示,將自身與該IP地址對應(yīng)的ARP信息中的端口更新為所述端口;接收轉(zhuǎn)發(fā)控制模塊發(fā)來的攜帶目的IP地址的ARP信息請求,將自身與該目的IP地址對應(yīng)的ARP信息發(fā)送給轉(zhuǎn)發(fā)控制模塊。
一種ARP信息表更新方法,該方法采用網(wǎng)段地址前綴表和ARP信息表存儲三層轉(zhuǎn)發(fā)信息的交換芯片在自身保存的MAC地址表中增加與MAC地址對應(yīng)的IP地址信息,包括交換芯片檢測到MAC地址信息發(fā)生了改變,根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,并根據(jù)改變的MAC地址信息,更新對應(yīng)的ARP信息。
所述交換芯片檢測到MAC地址信息發(fā)生了改變?yōu)榻粨Q芯片檢測到MAC地址被刪除,步驟A所述交換芯片更新對應(yīng)的ARP信息包括交換芯片將ARP信息中的端口屬性更新為廣播。
交換芯片檢測到MAC地址被刪除的同時進一步包括交換芯片啟動一個定時器,在定時器超時后,若還未檢測到該MAC地址被重學(xué)習(xí),則根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,并觸發(fā)該ARP信息重學(xué)習(xí)。
所述方法進一步包括交換芯片檢測到ARP信息中的MAC地址被重學(xué)習(xí),則根據(jù)該MAC地址對應(yīng)的IP地址,查找到對應(yīng)的ARP信息,將ARP信息中的端口更新為學(xué)習(xí)到的端口,并將端口屬性更新為單播。
所述交換芯片檢測到MAC地址信息發(fā)生了改變?yōu)榻粨Q芯片檢測到MAC地址對應(yīng)端口發(fā)生了遷移,所述交換芯片更新對應(yīng)的ARP信息包括交換芯片根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,將該ARP信息中的端口更新為遷移后的端口。
與現(xiàn)有技術(shù)相比,本發(fā)明通過在MAC地址表中增加與MAC地址對應(yīng)的IP地址,當(dāng)MAC地址信息發(fā)生了改變時,根據(jù)所述IP地址查找到對應(yīng)的ARP信息,并及時更新ARP信息中的MAC地址信息,避免了當(dāng)MAC地址信息發(fā)生改變時,由于ARP信息更新不及時而導(dǎo)致的三層轉(zhuǎn)發(fā)端口無法查找到或查找錯誤,從而引起的三層轉(zhuǎn)發(fā)流量中斷的發(fā)生。具體地,當(dāng)MAC地址被刪除時,可以將ARP信息中的對應(yīng)端口屬性設(shè)置為廣播;當(dāng)MAC地址對應(yīng)端口發(fā)生遷移時,可以將ARP信息中的端口及時更新為遷移后的端口,使得MAC地址信息改變后,無需再將報文發(fā)送到CPU以觸發(fā)MAC地址重學(xué)習(xí)、無需向CPU發(fā)送ARP報文,在避免三層轉(zhuǎn)發(fā)流量中斷的同時,避免了對CPU的占用率的沖擊;進一步地,對于單向流,可在檢測到MAC地址信息被刪除時啟動一定時器,并在定時超時后及時刪除ARP,以觸發(fā)ARP重新學(xué)習(xí),避免單向流的網(wǎng)絡(luò)中斷現(xiàn)象的發(fā)生。
圖1為本發(fā)明實施例提供的采用兩張表存儲三層轉(zhuǎn)發(fā)信息時,當(dāng)MAC地址被刪除時的三層轉(zhuǎn)發(fā)流程圖;圖2為本發(fā)明實施例提供的采用兩張表存儲三層轉(zhuǎn)發(fā)信息時,當(dāng)MAC地址對應(yīng)端口發(fā)生遷移時的三層轉(zhuǎn)發(fā)流程圖;圖3為本發(fā)明實施例提供的三層轉(zhuǎn)發(fā)裝置框圖一;
圖4為本發(fā)明實施例提供的三層轉(zhuǎn)發(fā)裝置框圖二。
具體實施例方式
本發(fā)明的核心思想是對于采用兩張表存儲三層轉(zhuǎn)發(fā)信息的交換芯片,在MAC地址表中增加與MAC地址對應(yīng)的IP地址,當(dāng)MAC地址被刪除時,在MAC地址表中設(shè)置被刪除標(biāo)記,并根據(jù)IP地址查找到對應(yīng)的ARP信息,將ARP信息中的端口屬性設(shè)置成VLAN內(nèi)廣播;當(dāng)MAC地址對應(yīng)端口發(fā)生遷移時,將MAC地址表中的端口更新為遷移后的端口,并根據(jù)IP地址查找到對應(yīng)的ARP信息,將ARP信息中的端口也更新為遷移后的端口,從而實現(xiàn)了ARP信息表的及時更新,避免了三層轉(zhuǎn)發(fā)流量的中斷。
下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。
圖1為本發(fā)明提供的采用兩張表存儲三層轉(zhuǎn)發(fā)信息時,當(dāng)MAC地址被刪除時的三層轉(zhuǎn)發(fā)的流程圖,如圖1所示,其具體步驟如下步驟101交換芯片在MAC地址表中增加各MAC地址對應(yīng)的IP地址。
步驟102交換芯片檢測到某個MAC地址被刪除,在MAC地址表中為該MAC地址設(shè)置被刪除標(biāo)記,并在MAC地址表中記錄該MAC地址的被刪除時刻。
步驟103交換芯片在MAC地址表中查找到該MAC地址對應(yīng)的IP地址,然后根據(jù)最長匹配原則在網(wǎng)段地址前綴表中查找到與該IP地址最匹配的網(wǎng)段地址前綴,進而查找到與該網(wǎng)段地址前綴對應(yīng)的ARP信息,將該ARP信息中的端口屬性設(shè)置為VLAN內(nèi)廣播。
對于單向以太網(wǎng)報文,由于沒有對應(yīng)的以太網(wǎng)報文返回,因此無法觸發(fā)MAC地址的再學(xué)習(xí)。為了避免該MAC地址對應(yīng)的三層報文轉(zhuǎn)發(fā)流量中斷,在本發(fā)明中,交換芯片檢測到某個MAC地址被刪除的同時,進一步包括啟動一個定時器,當(dāng)交換芯片檢測到該定時器超時,且該MAC地址未被重新學(xué)習(xí)如被刪除標(biāo)記未被清除,則在MAC地址表中查找到該MAC地址對應(yīng)的IP地址,然后查找到該IP地址對應(yīng)的網(wǎng)段地址前綴,進而查找到該網(wǎng)段地址前綴對應(yīng)的ARP信息,將該ARP信息刪除,以觸發(fā)ARP信息重新學(xué)習(xí)。
步驟104交換芯片接收以太網(wǎng)報文。
步驟105交換芯片根據(jù)該報文的目的IP地址,按照最長匹配原則,在自身查找到與該目的IP地址最匹配的網(wǎng)段地址前綴,然后根據(jù)該網(wǎng)段地址前綴查找到對應(yīng)的ARP信息,以ARP信息中的MAC地址替換報文的目的MAC地址,以自身的出接口MAC地址替換報文的源MAC地址。
步驟106交換芯片檢測到ARP信息中的端口屬性為VLAN內(nèi)廣播,將該報文在ARP信息中的VLAN內(nèi)廣播。
進一步地,當(dāng)交換芯片檢測到被刪除的MAC地址被重新學(xué)習(xí)后,清除MAC地址表中設(shè)置在該MAC地址上的被刪除標(biāo)記,并通過MAC地址表中保存的該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,將ARP信息中的端口更新為新學(xué)習(xí)到的端口,將端口屬性由廣播更新為單播。
可以看出當(dāng)MAC地址被刪除時,由于通過ARP信息表更新步驟即步驟101~103將ARP信息表中的對應(yīng)端口屬性設(shè)置為廣播,使得報文可以轉(zhuǎn)發(fā)出去,避免了三層轉(zhuǎn)發(fā)流量的中斷。
圖2為本發(fā)明提供的采用兩張表存儲三層轉(zhuǎn)發(fā)信息時,發(fā)生端口遷移時的三層轉(zhuǎn)發(fā)的流程圖,如圖2所示,其具體步驟如下步驟201交換芯片在MAC地址表中增加各MAC地址對應(yīng)的IP地址。
步驟202交換芯片檢測到某個MAC地址的端口發(fā)生遷移,將MAC地址表中保存的該MAC地址對應(yīng)的端口更新為遷移后的端口。
步驟203交換芯片根據(jù)MAC地址表中保存的該MAC地址對應(yīng)的IP地址,按照最長匹配原則,在自身查找到與該IP地址最匹配的網(wǎng)段地址前綴,然后根據(jù)該網(wǎng)段地址前綴查找到對應(yīng)的ARP信息,將ARP信息中的端口更新為遷移后的端口。
步驟204交換芯片接收以太網(wǎng)報文。
步驟205交換芯片根據(jù)該報文的目的IP地址,按照最長匹配原則,在自身查找到與該目的IP地址最匹配的網(wǎng)段地址前綴,然后根據(jù)該網(wǎng)段地址前綴查找到對應(yīng)的ARP信息,以ARP信息中的MAC地址替換報文的目的MAC地址,以自身的出接口MAC地址替換報文的源MAC地址。
步驟206交換芯片將報文從ARP信息中的端口、VLAN發(fā)送出去。
可以看出當(dāng)MAC地址對應(yīng)端口發(fā)生遷移時,由于通過ARP信息表更新步驟即步驟201~203將ARP信息表中的對應(yīng)端口及時更新為遷移后的端口,使得報文可以通過正確的端口轉(zhuǎn)發(fā)出去,避免了三層轉(zhuǎn)發(fā)流量的中斷。
圖3為本發(fā)明提供的三層轉(zhuǎn)發(fā)的裝置框圖一,如圖3所示,該裝置包括MAC地址信息更新檢測模塊31、MAC地址信息存儲更新模塊32、ARP信息存儲更新模塊33和轉(zhuǎn)發(fā)控制模塊34,其中MAC地址信息更新檢測模塊31用于在檢測到MAC地址信息發(fā)生改變后,向MAC地址信息存儲更新模塊32發(fā)送攜帶MAC地址的更新指示。
MAC地址信息存儲更新模塊32用于保存MAC地址信息即保存MAC地址、端口、VLAN、IP地址的對應(yīng)關(guān)系,根據(jù)MAC地址信息更新檢測模塊31發(fā)來的更新指示,對應(yīng)更新自身保存的MAC地址信息,并在自身查找MAC地址信息更新檢測模塊31發(fā)來的MAC地址對應(yīng)的IP地址,然后向ARP信息存儲更新模塊33發(fā)送攜帶該IP地址的更新指示。
ARP信息存儲更新模塊33保存網(wǎng)段地址前綴和ARP信息的對應(yīng)關(guān)系即保存網(wǎng)段地址前綴、MAC地址、端口、VLAN信息等的對應(yīng)關(guān)系,在收到MAC地址信息存儲更新模塊32發(fā)來的攜帶IP地址的更新指示后,按照最長匹配原則,在自身查找到與該IP地址最匹配的網(wǎng)段地址前綴,從而查找到與該網(wǎng)段地址前綴對應(yīng)的ARP信息,根據(jù)所述更新指示對應(yīng)更新ARP信息;在收到轉(zhuǎn)發(fā)控制模塊34發(fā)來的攜帶目的IP地址的ARP信息請求后,按照最長匹配原則,在自身查找到與該目的IP地址最匹配的網(wǎng)段地址前綴,從而查找到與該網(wǎng)段地址前綴對應(yīng)的ARP信息,將ARP信息中的MAC地址、端口和VLAN信息返回給轉(zhuǎn)發(fā)控制模塊34。
轉(zhuǎn)發(fā)控制模塊34在收到以太網(wǎng)報文后,將該以太網(wǎng)報文的目的IP地址攜帶在ARP信息請求中發(fā)送給ARP信息存儲更新模塊33,并以ARP信息存儲更新模塊33返回的MAC地址替換該報文的目的MAC地址,以自身保存的出接口MAC地址替換該報文的源MAC地址,并根據(jù)ARP信息存儲更新模塊33返回的端口和VLAN信息轉(zhuǎn)發(fā)該報文。
圖4為本發(fā)明提供的三層轉(zhuǎn)發(fā)裝置框圖二,如圖4所示,該圖與圖3相比MAC地址信息更新檢測模塊31主要包括MAC地址刪除檢測模塊311和端口遷移檢測模塊312,其中MAC地址刪除檢測模塊311用于在檢測到MAC地址被刪除時,向MAC地址信息存儲更新模塊32發(fā)送攜帶MAC地址的刪除指示;端口遷移檢測模塊312用于在檢測到MAC地址對應(yīng)的端口發(fā)生遷移時,向MAC地址信息存儲更新模塊32發(fā)送攜帶MAC地址和遷移后的端口信息的端口遷移指示。
MAC地址信息存儲更新模塊32主要包括MAC地址刪除指示接收模塊321、端口遷移指示接收模塊322和MAC地址信息更新模塊323,其中MAC地址刪除指示接收模塊321用于接收MAC地址刪除檢測模塊311發(fā)來的攜帶MAC地址的刪除指示,并將該刪除指示轉(zhuǎn)發(fā)給MAC地址信息更新模塊323,同時向MAC地址信息更新模塊323獲取該MAC地址對應(yīng)的IP地址,然后向ARP信息存儲更新模塊33發(fā)送攜帶該IP地址的端口屬性更新指示;端口遷移指示接收模塊322用于接收端口遷移檢測模塊312發(fā)來的攜帶MAC地址和端口信息的端口遷移指示,將該端口遷移指示轉(zhuǎn)發(fā)給MAC地址信息更新模塊323,并向MAC地址信息更新模塊323獲取端口遷移檢測模塊312發(fā)來的MAC地址對應(yīng)的IP地址,然后向ARP信息存儲更新模塊33發(fā)送攜帶該IP地址和所述端口遷移指示中的端口信息的端口更新指示;
MAC地址信息更新模塊323保存MAC地址信息即保存MAC地址、端口、VLAN、IP地址的對應(yīng)關(guān)系,在收到MAC地址刪除指示接收模塊321發(fā)來的攜帶MAC地址的刪除指示后,在自身保存的該MAC地址上設(shè)置被刪除標(biāo)記,并記錄該MAC地址的刪除時刻;在收到端口遷移指示接收模塊322發(fā)來的攜帶MAC地址和端口信息的端口遷移指示后,將自身保存的與該MAC地址對應(yīng)的端口更新為該端口遷移指示攜帶的端口,且若檢測到該MAC地址上設(shè)置有被刪除標(biāo)記,則清除該標(biāo)記;根據(jù)MAC地址刪除指示接收模塊321和端口遷移指示接收模塊322發(fā)來的攜帶MAC地址的獲取IP地址請求,將與所述MAC地址對應(yīng)的IP地址返回給MAC地址刪除指示接收模塊321和端口遷移指示接收模塊322。
ARP信息存儲更新模塊33主要包括端口屬性更新指示接收模塊331、端口更新指示接收模塊332和ARP信息更新模塊333,其中端口屬性更新指示接收模塊331用于接收MAC地址刪除指示接收模塊321發(fā)來的攜帶IP地址的端口屬性更新指示,將該端口屬性更新指示轉(zhuǎn)發(fā)給ARP信息更新模塊333;端口更新指示接收模塊332用于接收端口遷移指示接收模塊322發(fā)來的攜帶IP地址和端口信息的端口更新指示,將該端口更新指示轉(zhuǎn)發(fā)給ARP信息更新模塊333;ARP信息更新模塊333用于保存網(wǎng)段地址前綴和ARP信息的對應(yīng)關(guān)系,在收到攜帶IP地址的端口屬性更新指示后,按照最長匹配原則,在自身查找與該IP地址最匹配的網(wǎng)段地址前綴,然后將該網(wǎng)段地址前綴對應(yīng)的ARP信息中的端口屬性更新為廣播;在收到攜帶IP地址和端口信息的端口更新指示后,按照最長匹配原則,在自身查找與該IP地址最匹配的網(wǎng)段地址前綴,然后將該網(wǎng)段地址前綴對應(yīng)的ARP信息中的端口更新為所述端口更新指示攜帶的端口;在收到轉(zhuǎn)發(fā)控制模塊34發(fā)來的攜帶目的IP地址的ARP信息請求后,按照最長匹配原則,在自身查找與該目的IP地址最匹配的網(wǎng)段地址前綴,然后將該網(wǎng)段地址前綴對應(yīng)的ARP信息中的MAC地址、端口和VLAN信息發(fā)送給轉(zhuǎn)發(fā)控制模塊34。
以上所述僅為本發(fā)明的過程及方法實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種三層轉(zhuǎn)發(fā)方法,其特征在于,采用網(wǎng)段地址前綴表和地址解析協(xié)議ARP信息表存儲三層轉(zhuǎn)發(fā)信息的交換芯片在自身保存的媒體接入控制MAC地址表中增加與MAC地址對應(yīng)的IP地址信息,該方法包括A、交換芯片檢測到MAC地址信息發(fā)生了改變,根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,并根據(jù)改變的MAC地址信息,更新對應(yīng)的ARP信息;B、交換芯片收到以太網(wǎng)報文,根據(jù)更新后的ARP信息進行三層轉(zhuǎn)發(fā)。
2.如權(quán)利要求1所述的方法,其特征在于,步驟A所述交換芯片檢測到MAC地址信息發(fā)生了改變?yōu)榻粨Q芯片檢測到MAC地址被刪除,步驟A所述交換芯片更新對應(yīng)的ARP信息包括交換芯片將ARP信息中的端口屬性更新為廣播。
3.如權(quán)利要求2所述的方法,其特征在于,所述步驟B包括交換芯片收到以太網(wǎng)報文,按照最長匹配原則在自身查找到該報文的目的IP地址對應(yīng)的網(wǎng)段地址前綴,然后查找到該網(wǎng)段地址前綴對應(yīng)的ARP信息,并檢測到該ARP信息中的端口屬性為在虛擬局域網(wǎng)VLAN內(nèi)廣播,則交換芯片在ARP信息中指定的VLAN內(nèi)廣播該報文。
4.如權(quán)利要求2所述的方法,其特征在于,交換芯片檢測到MAC地址被刪除的同時進一步包括交換芯片啟動一個定時器,在定時器超時后,若還未檢測到該MAC地址被重學(xué)習(xí),則根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,并觸發(fā)該ARP信息重學(xué)習(xí)。
5.如權(quán)利要求2所述的方法,其特征在于,所述步驟A之后進一步包括交換芯片檢測到該MAC地址被重學(xué)習(xí),則根據(jù)該MAC地址對應(yīng)的IP地址,查找到對應(yīng)的ARP信息,將ARP信息中的端口更新為學(xué)習(xí)到的端口,并將端口屬性更新為單播。
6.如權(quán)利要求1所述的方法,其特征在于,步驟A所述交換芯片檢測到MAC地址信息發(fā)生了改變?yōu)榻粨Q芯片檢測到MAC地址對應(yīng)端口發(fā)生了遷移,步驟A所述交換芯片更新對應(yīng)的ARP信息包括交換芯片根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,將該ARP信息中的端口更新為遷移后的端口。
7.一種三層轉(zhuǎn)發(fā)裝置,其特征在于,該裝置包括MAC地址信息更新檢測模塊,檢測到MAC地址信息發(fā)生改變,將攜帶MAC地址的更新指示發(fā)送出去;MAC地址信息存儲更新模塊,根據(jù)MAC地址信息更新檢測模塊發(fā)來的攜帶MAC地址的更新指示,在自身查找該MAC地址對應(yīng)的IP地址,將攜帶該IP地址的更新指示發(fā)送出去;ARP信息存儲更新模塊,根據(jù)MAC地址信息存儲更新模塊發(fā)來的攜帶IP地址的更新指示更新自身與該IP地址對應(yīng)的ARP信息;接收攜帶IP地址的ARP信息請求,將自身與該IP地址對應(yīng)的ARP信息返回;轉(zhuǎn)發(fā)控制模塊,接收以太網(wǎng)報文,將該報文的目的IP地址攜帶在ARP信息請求中發(fā)送給ARP信息存儲更新模塊,根據(jù)ARP信息存儲更新模塊返回的ARP信息轉(zhuǎn)發(fā)該報文。
8.如權(quán)利要求7所述的裝置,其特征在于,所述MAC地址信息更新檢測模塊包括MAC地址刪除檢測模塊,在檢測到MAC地址被刪除時,向MAC地址信息存儲更新模塊發(fā)送攜帶MAC地址的刪除指示;端口遷移檢測模塊,在檢測到MAC地址對應(yīng)的端口發(fā)生遷移時,向MAC地址信息存儲更新模塊發(fā)送攜帶MAC地址和端口信息的端口遷移指示。
9.如權(quán)利要求8所述的裝置,其特征在于,所述MAC地址信息存儲更新模塊包括MAC地址刪除指示接收模塊,接收MAC地址刪除檢測模塊發(fā)來的攜帶MAC地址的刪除指示,將該刪除指示轉(zhuǎn)發(fā)出去,并根據(jù)獲取到的所述MAC地址對應(yīng)的IP地址,將攜帶該IP地址的端口屬性更新指示發(fā)送出去;端口遷移指示接收模塊,接收端口遷移檢測模塊發(fā)來的攜帶MAC地址和端口信息的端口遷移指示,將該端口遷移指示轉(zhuǎn)發(fā)出去,并根據(jù)獲取到的所述MAC地址對應(yīng)的IP地址,將攜帶該IP地址和所述端口信息的端口更新指示發(fā)送出去;MAC地址信息更新模塊,接收MAC地址刪除指示接收模塊發(fā)來的攜帶MAC地址的刪除指示,在自身保存的該MAC地址上設(shè)置被刪除標(biāo)記;接收端口遷移指示接收模塊發(fā)來的攜帶MAC地址和端口信息的端口遷移指示,將自身保存的與該MAC地址對應(yīng)的端口更新為該端口遷移指示攜帶的端口,且若檢測到該MAC地址上設(shè)置有被刪除標(biāo)記,則清除該標(biāo)記;根據(jù)MAC地址刪除指示接收模塊和端口遷移指示接收模塊發(fā)來的攜帶MAC地址的獲取IP地址請求,將對應(yīng)的IP地址返回給MAC地址刪除指示接收模塊和端口遷移指示接收模塊。
10.如權(quán)利要求9所述的裝置,其特征在于,所述ARP信息存儲更新模塊包括端口屬性更新指示接收模塊,將接收到的MAC地址刪除指示接收模塊發(fā)來的攜帶IP地址的端口屬性更新指示轉(zhuǎn)發(fā)出去;端口更新指示接收模塊,將接收到的端口遷移指示接收模塊發(fā)來的攜帶IP地址和端口信息的端口更新指示轉(zhuǎn)發(fā)出去;ARP信息更新模塊,根據(jù)端口屬性更新指示接收模塊發(fā)來的攜帶IP地址的端口屬性更新指示,將自身與該IP地址對應(yīng)的ARP信息中的端口屬性更新為廣播;根據(jù)端口更新指示接收模塊發(fā)來的攜帶IP地址和端口信息的端口更新指示,將自身與該IP地址對應(yīng)的ARP信息中的端口更新為所述端口;接收轉(zhuǎn)發(fā)控制模塊發(fā)來的攜帶目的IP地址的ARP信息請求,將自身與該目的IP地址對應(yīng)的ARP信息發(fā)送給轉(zhuǎn)發(fā)控制模塊。
11.一種ARP信息表更新方法,其特征在于,采用網(wǎng)段地址前綴表和ARP信息表存儲三層轉(zhuǎn)發(fā)信息的交換芯片在自身保存的MAC地址表中增加與MAC地址對應(yīng)的IP地址信息,該方法包括交換芯片檢測到MAC地址信息發(fā)生了改變,根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,并根據(jù)改變的MAC地址信息,更新對應(yīng)的ARP信息。
12.如權(quán)利要求11所述的方法,其特征在于,所述交換芯片檢測到MAC地址信息發(fā)生了改變?yōu)榻粨Q芯片檢測到MAC地址被刪除,步驟A所述交換芯片更新對應(yīng)的ARP信息包括交換芯片將ARP信息中的端口屬性更新為廣播。
13.如權(quán)利要求12所述的方法,其特征在于,交換芯片檢測到MAC地址被刪除的同時進一步包括交換芯片啟動一個定時器,在定時器超時后,若還未檢測到該MAC地址被重學(xué)習(xí),則根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,并觸發(fā)該ARP信息重學(xué)習(xí)。
14.如權(quán)利要求12所述的方法,其特征在于,所述方法進一步包括交換芯片檢測到ARP信息中的MAC地址被重學(xué)習(xí),則根據(jù)該MAC地址對應(yīng)的IP地址,查找到對應(yīng)的ARP信息,將ARP信息中的端口更新為學(xué)習(xí)到的端口,并將端口屬性更新為單播。
15.如權(quán)利要求11所述的方法,其特征在于,所述交換芯片檢測到MAC地址信息發(fā)生了改變?yōu)榻粨Q芯片檢測到MAC地址對應(yīng)端口發(fā)生了遷移,所述交換芯片更新對應(yīng)的ARP信息包括交換芯片根據(jù)該MAC地址對應(yīng)的IP地址查找到對應(yīng)的ARP信息,將該ARP信息中的端口更新為遷移后的端口。
全文摘要
本發(fā)明公開了一種三層轉(zhuǎn)發(fā)方法,包括在MAC地址表中增加與MAC地址對應(yīng)的IP地址,當(dāng)MAC地址信息發(fā)生改變時,根據(jù)所述IP地址查找到對應(yīng)的ARP信息,并更新ARP信息中的MAC地址信息;本發(fā)明同時公開了一種三層轉(zhuǎn)發(fā)裝置,包括MAC地址信息更新檢測模塊、MAC地址信息存儲更新模塊、ARP信息存儲更新模塊和轉(zhuǎn)發(fā)控制模塊;本發(fā)明也公開了一種ARP信息表更新方法。本發(fā)明避免了MAC地址信息發(fā)生改變時,由于ARP信息更新不及時而導(dǎo)致的三層轉(zhuǎn)發(fā)端口無法查找到或查找錯誤從而引起的三層轉(zhuǎn)發(fā)流量中斷的發(fā)生,并避免了對CPU的占用率的沖擊;對于單向流,在MAC地址信息改變的同時啟動一定時器,并在定時超時后及時觸發(fā)ARP信息重新學(xué)習(xí),避免單向流的網(wǎng)絡(luò)中斷現(xiàn)象的發(fā)生。
文檔編號H04L29/06GK1878139SQ20061008330
公開日2006年12月13日 申請日期2006年5月31日 優(yōu)先權(quán)日2006年5月31日
發(fā)明者蘇興山, 趙麗娜 申請人:杭州華為三康技術(shù)有限公司