專利名稱:一種實(shí)現(xiàn)動(dòng)態(tài)隧道報(bào)文轉(zhuǎn)發(fā)的方法及交換機(jī)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信技術(shù),尤其涉及一種實(shí)現(xiàn)動(dòng)態(tài)隧道報(bào)文轉(zhuǎn)發(fā)的方法及交換機(jī)。
背景技術(shù):
隨著互聯(lián)網(wǎng)絡(luò)規(guī)模的迅速發(fā)展,IP協(xié)議設(shè)計(jì)之初的許多局限性日漸凸顯。特別 是原來(lái)32位的IP地址空間已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足當(dāng)前互聯(lián)網(wǎng)的發(fā)展需要了。在這種情況下, IPv6協(xié)議應(yīng)運(yùn)而生。雖然說(shuō)從IP協(xié)議過(guò)渡到IPv6協(xié)議將是歷史的必然,但這個(gè)過(guò)程并不 是一蹴而就的。在部署IPv6網(wǎng)絡(luò)的過(guò)程中,IPv4網(wǎng)絡(luò)肯定還會(huì)大規(guī)模存在。在解決IPv4 向IPv6網(wǎng)絡(luò)進(jìn)行過(guò)渡這一問(wèn)題的過(guò)程中,促生了許多過(guò)渡技術(shù),其中最為人所關(guān)注的就是 隧道技術(shù)和雙棧技術(shù)。隧道技術(shù)由于只需在IPv4/IPv6網(wǎng)絡(luò)的邊緣進(jìn)行部署,因此大大降 低了設(shè)備更新的代價(jià),成為了一種主要的過(guò)渡技術(shù)。 隧道技術(shù)的主要內(nèi)容是IPv6網(wǎng)絡(luò)的邊緣設(shè)備在收到報(bào)文后,在其上進(jìn)行IPv6 路由查找,如果IPv6路由指向隧道,則根據(jù)隧道信息對(duì)接收到的報(bào)文進(jìn)行IPv4協(xié)議封裝, 然后再根據(jù)IPv4路由在IPv4網(wǎng)絡(luò)中對(duì)該封裝好的報(bào)文進(jìn)行轉(zhuǎn)發(fā);當(dāng)該報(bào)文到達(dá)IPv4網(wǎng) 絡(luò)的邊緣后去掉IPv4首部,再重新按照IPv6路由轉(zhuǎn)發(fā)該報(bào)文。在這個(gè)過(guò)程中,比較顯著 的特點(diǎn)就是,IPv6報(bào)文經(jīng)過(guò)的網(wǎng)絡(luò)邊緣設(shè)備必須是IPv4/IPv6雙協(xié)議棧的,并且需要經(jīng)過(guò) 兩次路由查找。這對(duì)處于網(wǎng)絡(luò)邊緣的雙棧網(wǎng)絡(luò)設(shè)備提出了很高的性能要求,尤其是對(duì)以 ASIC (Application Specific Integrated Circuit,專用集成電路)轉(zhuǎn)發(fā)為主的三層交換 設(shè)備的硬件轉(zhuǎn)發(fā)功能提出了挑戰(zhàn)。 三層交換功能是通過(guò)在交換機(jī)上增加三層路由功能來(lái)實(shí)現(xiàn)的。簡(jiǎn)單地說(shuō),三層交 換首先需要對(duì)收到的第一個(gè)陌生數(shù)據(jù)流進(jìn)行軟件路由轉(zhuǎn)發(fā),然后將根據(jù)第一次路由轉(zhuǎn)發(fā)獲 取的二層信息綁定到三層路由表中;在后續(xù)對(duì)具有相同目的地址的報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí),可直 接利用該三層路由表中綁定的二層信息進(jìn)行封裝轉(zhuǎn)發(fā),即"一次路由,多次交換",有效地提 高了數(shù)據(jù)包轉(zhuǎn)發(fā)的效率。因?yàn)橛布彺婵梢杂葾SIC交換芯片實(shí)現(xiàn),所以采用上述方法可大 大提高數(shù)據(jù)轉(zhuǎn)發(fā)效率,并能有效降低設(shè)備成本。 三層交換技術(shù)在處理靜態(tài)隧道的報(bào)文轉(zhuǎn)發(fā)時(shí),并不困難,由于一條靜態(tài)隧道只會(huì) 對(duì)應(yīng)一個(gè)IPv4目的地址,出接口相對(duì)固定,因此即使IPv4網(wǎng)絡(luò)的路由發(fā)生動(dòng)態(tài)變化,也可 以根據(jù)變化后的新出接口信息動(dòng)態(tài)更新三層路由表,從而實(shí)現(xiàn)快速轉(zhuǎn)發(fā)。
但對(duì)于動(dòng)態(tài)隧道技術(shù)實(shí)現(xiàn)起來(lái)就困難的多了。 一般動(dòng)態(tài)隧道技術(shù)使用固定格式的 IPv6地址,在該地址中包含一個(gè)IPv4地址。在對(duì)報(bào)文進(jìn)行隧道封裝時(shí),要按照IPv6報(bào)文中 的IPv6目的地址獲取IPv4目的地址進(jìn)行封裝。由于目的IPv4地址是動(dòng)態(tài)變化的,因此必 然會(huì)導(dǎo)致下一跳地址的不同,進(jìn)而導(dǎo)致出接口二層信息的多樣性,這樣就面臨著一個(gè)IPv6 路由集、IPv4路由集、二層信息集之間的一種多對(duì)多的映射關(guān)系。當(dāng)然利用通過(guò)二次路由 查找實(shí)現(xiàn)轉(zhuǎn)發(fā)的NP(Network Processor,網(wǎng)絡(luò)處理器)實(shí)現(xiàn)技術(shù)解決該問(wèn)題并不困難,但 對(duì)于直接由IPv6路由索引到二層信息進(jìn)行交換轉(zhuǎn)發(fā)的ASIC交換芯片來(lái)說(shuō)就顯得捉襟見(jiàn)肘了。 如圖1所示,為一個(gè)簡(jiǎn)單的利用6to4隧道來(lái)互聯(lián)IPv6孤島的拓?fù)鋱D,其中站點(diǎn) A、B、C、D只能與IPv4網(wǎng)絡(luò)相連,因此需要在站點(diǎn)邊緣部署IPV6/IPV4雙棧網(wǎng)絡(luò)設(shè)備。假定 站點(diǎn)A邊緣部署一臺(tái)三層交換機(jī),支持IPv6/IPv4雙棧協(xié)議。在該設(shè)備上配置6to4隧道, 其IPv6站點(diǎn)網(wǎng)絡(luò)前綴為2002: :101:101: :/48。并通過(guò)配置2002: :/16前綴的出口為隧道 來(lái)實(shí)現(xiàn)與其它三個(gè)站點(diǎn)的互通。當(dāng)數(shù)據(jù)報(bào)文需要從站點(diǎn)A發(fā)送到站點(diǎn)B時(shí),交換機(jī)根據(jù)該 報(bào)文的目的地址2002:201:101 ::/48查找路由,發(fā)現(xiàn)出口為隧道,則根據(jù)其中的IPv4地址 2. 1. 1. 1進(jìn)行IPV4封裝,再查找IPV4路由表,找到下一跳網(wǎng)段為1.0. 1.0/24。然后根據(jù) IPV4路由的下一跳信息,獲取二層信息,進(jìn)行封裝轉(zhuǎn)發(fā)。按照三層交換原理,此時(shí)應(yīng)該把獲 取的二層信息直接綁定到IPV6的路由前綴2002: :/16,從而在后續(xù)的報(bào)文轉(zhuǎn)發(fā)中實(shí)現(xiàn)ASIC 的快速轉(zhuǎn)發(fā)。但這樣會(huì)導(dǎo)致到其它站點(diǎn)的報(bào)文無(wú)法轉(zhuǎn)發(fā)的問(wèn)題。 如圖2所示,并不是所有的報(bào)文都是發(fā)往站點(diǎn)B的,如果有發(fā)往站點(diǎn)C(目的地址 為2002: :301:101: :/48)或D(目的地址為2002: :401:101: :/48)的報(bào)文通過(guò)時(shí),該三層交 換機(jī)就會(huì)按照錯(cuò)誤的二層信息進(jìn)行封裝,也就無(wú)法到達(dá)正確的目的站點(diǎn)。這樣就產(chǎn)生了一 個(gè)三層交換轉(zhuǎn)發(fā)過(guò)程中難以解決的問(wèn)題,當(dāng)然解決該問(wèn)題可以通過(guò)增加網(wǎng)絡(luò)處理器進(jìn)行二 次路由查找來(lái)實(shí)現(xiàn),但這樣會(huì)大大增加三層交換機(jī)的成本,并且不能實(shí)現(xiàn)交換機(jī)高速轉(zhuǎn)發(fā) 的優(yōu)勢(shì)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種實(shí)現(xiàn)動(dòng)態(tài)隧道報(bào)文轉(zhuǎn)發(fā)的方法及交換機(jī),以 解決現(xiàn)有在三層交換機(jī)上無(wú)法實(shí)現(xiàn)ASIC快速轉(zhuǎn)發(fā)的技術(shù)瓶頸。 為解決上述問(wèn)題,本發(fā)明提供了一種實(shí)現(xiàn)動(dòng)態(tài)隧道報(bào)文轉(zhuǎn)發(fā)的方法,包括
將位于IPv6網(wǎng)絡(luò)邊緣的三層交換機(jī)中的專用集成電路(ASIC)硬件轉(zhuǎn)發(fā)表中動(dòng)態(tài) 隧道的聚合路由表項(xiàng)預(yù)設(shè)為指向中央處理器(CPU);所述交換機(jī)在收到IPv6報(bào)文后,若根 據(jù)IPv6路由查找判斷出所述報(bào)文指向動(dòng)態(tài)隧道,則根據(jù)所述聚合路由表項(xiàng)將所述報(bào)文上 送到所述CPU;所述CPU在收到該報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與該 報(bào)文的IPv6目的地址網(wǎng)絡(luò)前綴的對(duì)應(yīng)關(guān)系保存下來(lái)且將該對(duì)應(yīng)關(guān)系同步到所述ASIC硬件 轉(zhuǎn)發(fā)表中,并將該報(bào)文從相應(yīng)的出端口轉(zhuǎn)發(fā)出去。
進(jìn)一步地,上述方法還可包括 若所述交換機(jī)根據(jù)IPv6路由在所述ASIC硬件轉(zhuǎn)發(fā)表中查找到所述IPv6報(bào)文的 出端口信息,則對(duì)所述IPv6報(bào)文進(jìn)行硬件轉(zhuǎn)發(fā)。
進(jìn)一步地,上述方法還可具有以下特征 所述CPU在收到該報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與該報(bào)文 的IPv6目的地址網(wǎng)絡(luò)前綴的對(duì)應(yīng)關(guān)系保存下來(lái)是指 所述CPU在接收到所述報(bào)文后,根據(jù)其IPv6目的地址進(jìn)行IPv6路由查找,如判 斷出路由的下一跳為動(dòng)態(tài)隧道接口,則進(jìn)一步判斷動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中是否保存有所述IPv6 目的地址中的網(wǎng)絡(luò)前綴對(duì)應(yīng)的表項(xiàng),如果有,則根據(jù)該表項(xiàng)中的二層信息將所述報(bào)文從對(duì) 應(yīng)出端口轉(zhuǎn)發(fā)出去,結(jié)束;否則,將所述IPv6目的地址的網(wǎng)絡(luò)前綴寫入所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā) 表,并根據(jù)從該報(bào)文的IPv6目的地址中獲取到IPv4目的地址對(duì)所述報(bào)文進(jìn)行IPv4協(xié)議封裝;對(duì)封裝好的報(bào)文進(jìn)行IPV4路由查找,通過(guò)地址解析協(xié)議(ARP)協(xié)議學(xué)習(xí)到下一跳的二 層信息后,將所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中所述網(wǎng)絡(luò)前綴表項(xiàng)中的二層信息更新為所述學(xué)習(xí)到的
二層信息。 本發(fā)明還提供了一種實(shí)現(xiàn)動(dòng)態(tài)隧道報(bào)文轉(zhuǎn)發(fā)的交換機(jī),位于IPv6網(wǎng)絡(luò)邊緣,包括 中央處理器(CPU)和專用集成電路(ASIC)交換芯片; 所述ASIC交換芯片的硬件轉(zhuǎn)發(fā)表中動(dòng)態(tài)隧道的聚合路由表項(xiàng)被預(yù)設(shè)為指向所述 CPU ;所述ASIC交換芯片用于在收到IPv6報(bào)文后,若根據(jù)IPv6路由查找判斷出所述報(bào)文指 向動(dòng)態(tài)隧道,則根據(jù)所述聚合路由表項(xiàng)將所述報(bào)文上送到所述CPU ; 所述CPU用于在收到所述報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與 該報(bào)文的IPv6目的地址網(wǎng)絡(luò)前綴的對(duì)應(yīng)關(guān)系保存下來(lái)且將該對(duì)應(yīng)關(guān)系同步到所述ASIC硬 件轉(zhuǎn)發(fā)表中,并將該報(bào)文從相應(yīng)的出端口轉(zhuǎn)發(fā)出去。
進(jìn)一步地,上述交換機(jī)還可具有以下特征 所述ASIC交換芯片還用于在所述ASIC硬件轉(zhuǎn)發(fā)表中查找到所述IPv6報(bào)文的出 端口信息時(shí),對(duì)所述IPv6報(bào)文進(jìn)行硬件轉(zhuǎn)發(fā)。
進(jìn)一步地,上述交換機(jī)還可具有以下特征 所述CPU用于在收到所述報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與 該報(bào)文的IPv6目的地址網(wǎng)絡(luò)前綴的對(duì)應(yīng)關(guān)系保存下來(lái)是指 所述CPU用于在接收到所述報(bào)文后,根據(jù)其IPv6目的地址進(jìn)行IPv6路由查找, 如判斷出路由的下一跳為動(dòng)態(tài)隧道接口 ,則還用于判斷動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中是否保存有所述 IPv6目的地址中的網(wǎng)絡(luò)前綴對(duì)應(yīng)的表項(xiàng),如果有,則還用于根據(jù)該表項(xiàng)中的二層信息將所 述報(bào)文從對(duì)應(yīng)出端口轉(zhuǎn)發(fā)出去;否則,用于將所述IPv6目的地址的網(wǎng)絡(luò)前綴寫入所述動(dòng) 態(tài)隧道轉(zhuǎn)發(fā)表,并根據(jù)從該報(bào)文的IPv6目的地址中獲取到IPv4目的地址對(duì)所述報(bào)文進(jìn)行 IPv4協(xié)議封裝;還用于對(duì)封裝好的報(bào)文進(jìn)行IPV4路由查找,通過(guò)地址解析協(xié)議(ARP)協(xié)議 學(xué)習(xí)到下一跳的二層信息后,將所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中所述網(wǎng)絡(luò)前綴表項(xiàng)中的二層信息更 新為所述學(xué)習(xí)到的二層信息。 進(jìn)一步地,上述交換機(jī)還可具有以下特征 所述CPU中包括IPv6報(bào)文轉(zhuǎn)發(fā)模塊、隧道轉(zhuǎn)發(fā)模塊、隧道轉(zhuǎn)發(fā)表更新模塊、IPv4 報(bào)文轉(zhuǎn)發(fā)模塊、封裝信息更新模塊及存儲(chǔ)模塊,所述存儲(chǔ)模塊中保存有所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā) 表; 所述IPv6報(bào)文轉(zhuǎn)發(fā)模塊用于對(duì)上送所述CPU的報(bào)文根據(jù)目的地址進(jìn)行IPv6路由 查找,如判斷出路由的下一跳為動(dòng)態(tài)隧道接口 ,則將該報(bào)文發(fā)送給所述隧道轉(zhuǎn)發(fā)模塊;
所述隧道轉(zhuǎn)發(fā)模塊用于在收到所述報(bào)文后,判斷所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中是否保存 有該報(bào)文的IPv6目的地址的網(wǎng)絡(luò)前綴對(duì)應(yīng)的表項(xiàng),如果有,則用于直接根據(jù)該表項(xiàng)中的二 層信息從對(duì)應(yīng)出端口轉(zhuǎn)發(fā)出去;否則,用于將該IPv6目的地址中的網(wǎng)絡(luò)前綴發(fā)送到所述隧 道轉(zhuǎn)發(fā)表更新模塊,并根據(jù)從該報(bào)文的IPv6目的地址中獲取到IPv4目的地址對(duì)上述報(bào)文 進(jìn)行IPv4協(xié)議封裝,然后將封裝好的報(bào)文發(fā)送到所述IPv4轉(zhuǎn)發(fā)模塊; 所述隧道轉(zhuǎn)發(fā)表更新模塊用于在接收到所述隧道轉(zhuǎn)發(fā)模塊發(fā)來(lái)的網(wǎng)絡(luò)前綴后,判 斷動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中是否已保存該網(wǎng)絡(luò)前綴;如果沒(méi)有,則用于在所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中 為該網(wǎng)絡(luò)前綴創(chuàng)建新的表項(xiàng);
所述IPv4報(bào)文轉(zhuǎn)發(fā)模塊用于對(duì)接收到的封裝好的報(bào)文進(jìn)行IPV4路由查找,通過(guò) ARP協(xié)議學(xué)習(xí)到下一跳的二層信息后,將該二層信息發(fā)送到所述封裝信息更新模塊,并將該 報(bào)文進(jìn)行二層封裝,從相應(yīng)的出端口轉(zhuǎn)發(fā)出去; 所述封裝信息更新模塊用于在接收到所述二層信息后,將動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中上述
網(wǎng)絡(luò)前綴表項(xiàng)中的二層信息更新為該學(xué)習(xí)到的下一跳的二層信息。 進(jìn)一步地,上述交換機(jī)還可具有以下特征 所述隧道轉(zhuǎn)發(fā)表更新模塊還用于在判斷出所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中已保存該網(wǎng)絡(luò)
前綴后,將該網(wǎng)絡(luò)前綴所在表項(xiàng)的老化計(jì)時(shí)器恢復(fù)為初始值。
進(jìn)一步地,上述交換機(jī)還可具有以下特征 所述隧道轉(zhuǎn)發(fā)表更新模塊還用于維護(hù)定時(shí)老化機(jī)制,老化時(shí)間到時(shí),為表項(xiàng)設(shè)置 刪除標(biāo)志。 采用本發(fā)明后具有以下優(yōu)點(diǎn)不改變ASIC交換芯片的轉(zhuǎn)發(fā)流程,充分利用了ASIC 交換芯片高速報(bào)文轉(zhuǎn)發(fā)的優(yōu)勢(shì);保護(hù)了動(dòng)態(tài)隧道配置簡(jiǎn)單,維護(hù)成本低的優(yōu)勢(shì);動(dòng)態(tài)建立 和更新轉(zhuǎn)發(fā)表信息,能夠充分利用ASIC轉(zhuǎn)發(fā)資源,提高了路由查找效率。
圖1是現(xiàn)有技術(shù)中動(dòng)態(tài)隧道技術(shù)6to4隧道的網(wǎng)絡(luò)拓?fù)鋱D;
圖2是現(xiàn)有技術(shù)中動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中的一對(duì)多瓶頸示意圖;
圖3是本發(fā)明中實(shí)施例中CPU中各模塊的連接關(guān)系示意圖;
圖4是采用本發(fā)明處理前后的硬件轉(zhuǎn)發(fā)表結(jié)構(gòu)圖;
圖5是本發(fā)明應(yīng)用實(shí)例中進(jìn)行動(dòng)態(tài)隧道報(bào)文轉(zhuǎn)發(fā)的工作流程圖。
具體實(shí)施例方式
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說(shuō)明。 本發(fā)明的基本構(gòu)思是將位于IPv6網(wǎng)絡(luò)邊緣的三層交換機(jī)中的ASIC硬件轉(zhuǎn)發(fā)表
中動(dòng)態(tài)隧道的聚合路由表項(xiàng)預(yù)設(shè)為指向CPU ;交換機(jī)在收到IPv6報(bào)文后,若根據(jù)IPv6路由
查找判斷出該報(bào)文指向動(dòng)態(tài)隧道,則根據(jù)上述聚合路由表項(xiàng)將該報(bào)文上送到CPU ;CPU在收
到該報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與該報(bào)文的IPv6目的地址網(wǎng)絡(luò)前
綴的對(duì)應(yīng)關(guān)系保存下來(lái)且將該對(duì)應(yīng)關(guān)系同步到上述ASIC硬件轉(zhuǎn)發(fā)表中,并將該報(bào)文從相
應(yīng)的出端口轉(zhuǎn)發(fā)出去。 此外,若交換機(jī)根據(jù)IPv6路由在ASIC硬件轉(zhuǎn)發(fā)表中查找到上述IPv6報(bào)文的出端 口信息,則對(duì)該報(bào)文進(jìn)行硬件轉(zhuǎn)發(fā)。真正實(shí)現(xiàn)一次路由、多次交換的三層交換技術(shù)的優(yōu)勢(shì)。
進(jìn)一步地,CPU在收到該報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與該 報(bào)文的IPv6目的地址網(wǎng)絡(luò)前綴的對(duì)應(yīng)關(guān)系保存下來(lái)可具體通過(guò)下述方式實(shí)現(xiàn)
CPU在接收到該報(bào)文后,根據(jù)其IPv6目的地址進(jìn)行IPv6路由查找,如判斷出路由 的下一跳為動(dòng)態(tài)隧道接口,則進(jìn)一步判斷動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中是否保存有上述IPv6目的地 址中的網(wǎng)絡(luò)前綴對(duì)應(yīng)的表項(xiàng),如果有,則直接根據(jù)該表項(xiàng)中的二層信息將上述報(bào)文從對(duì)應(yīng) 出端口轉(zhuǎn)發(fā)出去,結(jié)束;否則,將該IPv6目的地址的網(wǎng)絡(luò)前綴寫入動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表,并根據(jù) 從該報(bào)文的IPv6目的地址中獲取到IPv4目的地址對(duì)上述報(bào)文進(jìn)行IPv4協(xié)議封裝;對(duì)封裝好的報(bào)文進(jìn)行IPV4路由查找,通過(guò)ARP(Address Resolution Protocol,地址解析協(xié)議)協(xié) 議學(xué)習(xí)到下一跳的二層信息(包括目的MAC地址及出端口信息)后,將動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中 上述網(wǎng)絡(luò)前綴表項(xiàng)中的二層信息更新為學(xué)習(xí)到的二層信息。 本發(fā)明所述交換機(jī)位于IPv6網(wǎng)絡(luò)邊緣,其中包括ASIC交換芯片和CPU ;如圖3所 示,本發(fā)明所述三層交換機(jī)中的CPU中包括IPv6報(bào)文轉(zhuǎn)發(fā)模塊、隧道轉(zhuǎn)發(fā)模塊、隧道轉(zhuǎn)發(fā) 表更新模塊、IPv4報(bào)文轉(zhuǎn)發(fā)模塊、封裝信息更新模塊及存儲(chǔ)模塊,該存儲(chǔ)模塊中保存有動(dòng)態(tài) 隧道轉(zhuǎn)發(fā)表,且會(huì)定時(shí)向分布式系統(tǒng)的各個(gè)線卡同步該轉(zhuǎn)發(fā)表。各組成單元實(shí)現(xiàn)軟件交換 的流程,包括以下步驟 a、 IPv6報(bào)文轉(zhuǎn)發(fā)模塊對(duì)上送CPU的報(bào)文根據(jù)目的地址進(jìn)行IPv6路由查找,如判 斷出路由的下一跳為動(dòng)態(tài)隧道接口 ,則將該報(bào)文發(fā)送給隧道轉(zhuǎn)發(fā)模塊作進(jìn)一步處理;
b、隧道轉(zhuǎn)發(fā)模塊收到后,判斷動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中是否保存有該報(bào)文的IPv6目的 地址的網(wǎng)絡(luò)前綴對(duì)應(yīng)的表項(xiàng),如果有,則直接根據(jù)該表項(xiàng)中的二層信息從對(duì)應(yīng)出端口轉(zhuǎn)發(fā) 出去,結(jié)束;否則,將該IPv6目的地址中的網(wǎng)絡(luò)前綴發(fā)送到隧道轉(zhuǎn)發(fā)表更新模塊,并根據(jù)從 該報(bào)文的IPv6目的地址中獲取到IPv4目的地址對(duì)上述報(bào)文進(jìn)行IPv4協(xié)議封裝,然后將封 裝好的報(bào)文發(fā)送到IPV4轉(zhuǎn)發(fā)模塊作進(jìn)一步處理; 對(duì)報(bào)文進(jìn)行IPv4封裝的具體流程是所述隧道轉(zhuǎn)發(fā)模塊根據(jù)隧道類型對(duì)報(bào)文進(jìn) 行IPv4首部封裝,如果隧道類型為動(dòng)態(tài)隧道,則根據(jù)IPV6首部中的目的IPv6地址,獲取 IPv4封裝的目的IP地址,例如,如果是6to4隧道,判斷IPv6目的地址前16位是否為2002, 匹配成功則截取該地址的17至48位作為封裝的目的IP地址,連同接口配置的源IP地址 對(duì)報(bào)文進(jìn)行IPv4封裝。 c、隧道轉(zhuǎn)發(fā)表更新模塊在接收到隧道轉(zhuǎn)發(fā)模塊發(fā)來(lái)的網(wǎng)絡(luò)前綴后,判斷動(dòng)態(tài)隧道 轉(zhuǎn)發(fā)表中是否已保存該網(wǎng)絡(luò)前綴;如果是,則更新該網(wǎng)絡(luò)前綴所在表項(xiàng)的老化計(jì)時(shí)器(即 該表項(xiàng)的老化計(jì)時(shí)器恢復(fù)為初始值),否則在該動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中為該網(wǎng)絡(luò)前綴創(chuàng)建新的 表項(xiàng);其還維護(hù)定時(shí)老化機(jī)制,老化時(shí)間到時(shí),為表項(xiàng)設(shè)置刪除標(biāo)志; d、 IPv4報(bào)文轉(zhuǎn)發(fā)模塊對(duì)接收到的該封裝好的報(bào)文進(jìn)行IPV4路由查找,通過(guò) ARP(Address Resolution Protocol,地址解析協(xié)議)協(xié)議學(xué)習(xí)到下一跳的二層信息(包括 目的MAC地址及出端口信息)后,將該二層信息發(fā)送到封裝信息更新模塊,并將該報(bào)文進(jìn)行 二層封裝,從相應(yīng)的出端口轉(zhuǎn)發(fā)出去; e、封裝信息更新模塊在接收到二層信息后,將動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中上述網(wǎng)絡(luò)前綴表 項(xiàng)中的二層信息更新為該學(xué)習(xí)到的下一跳的二層信息。此外,當(dāng)由于IPV4路由下一跳信息 發(fā)生變化等原因造成二層信息不可用時(shí),需要立即將對(duì)應(yīng)表項(xiàng)老化,并將更新結(jié)果同步到 各個(gè)線卡,觸發(fā)動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表的重新學(xué)習(xí)。 需要說(shuō)明的是,上述步驟c與步驟d的執(zhí)行順序不分先后,只要保證在步驟b之 后、步驟e之前執(zhí)行即可。 圖4是采用本發(fā)明處理之后隧道轉(zhuǎn)發(fā)表的映射關(guān)系圖,從圖中可以看出,采用本 發(fā)明即可實(shí)現(xiàn)動(dòng)態(tài)隧道的報(bào)文轉(zhuǎn)發(fā)。 下面以本發(fā)明的一個(gè)應(yīng)用實(shí)例對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
如圖5所示,實(shí)現(xiàn)6to4隧道報(bào)文轉(zhuǎn)發(fā)的流程包括以下步驟
步驟501 :軟硬件轉(zhuǎn)發(fā)判斷;
6to4網(wǎng)絡(luò)的IPV6報(bào)文在到達(dá)網(wǎng)絡(luò)邊緣的6to4隧道設(shè)備(即三層交換機(jī))之后, 先進(jìn)行ASIC硬件轉(zhuǎn)發(fā)表的查找,在找到48位前綴的具體轉(zhuǎn)發(fā)表項(xiàng)之后,直接執(zhí)行硬件轉(zhuǎn)發(fā) 流程,結(jié)束;如果不能查找到48位的6to4轉(zhuǎn)發(fā)表?xiàng)l目,則根據(jù)2002的16位前綴信息上送 CPU走軟件轉(zhuǎn)發(fā)流程502 ; 步驟502 : IPV6報(bào)文轉(zhuǎn)發(fā)處理過(guò)程; 對(duì)于驅(qū)動(dòng)上送CPU的報(bào)文根據(jù)以太網(wǎng)類型決定走IPV6轉(zhuǎn)發(fā)流程,IPV6報(bào)文轉(zhuǎn)發(fā) 模塊通過(guò)IPV6目的地址進(jìn)行IPV6路由查找,決定下一步轉(zhuǎn)發(fā),根據(jù)2002; ;/16的靜態(tài)路 由決定走隧道轉(zhuǎn)發(fā)流程503 ; 步驟503 :隧道轉(zhuǎn)發(fā)模塊根據(jù)嵌入的IPV4地址進(jìn)行報(bào)文封裝;
隧道轉(zhuǎn)發(fā)模塊會(huì)根據(jù)隧道類型決定報(bào)文轉(zhuǎn)發(fā)流程,因?yàn)槭?to4隧道,這里會(huì)截取 IPV6目的地址中的17到48位生成目的IPv4地址,利用該地址和接口上配置的IPv4源地 址進(jìn)行報(bào)文封裝,并且將封裝后IPv6inlPv4報(bào)文送入IPv4報(bào)文轉(zhuǎn)發(fā)模塊,其中動(dòng)態(tài)隧道轉(zhuǎn) 發(fā)表更新流程同上述步驟c,在此不再進(jìn)行贅述; 步驟504 :IPv4報(bào)文轉(zhuǎn)發(fā)模塊根據(jù)IPv4路由和ARP信息進(jìn)行二層報(bào)文封裝。
這里,對(duì)于接收到的IPv4報(bào)文,該模塊先進(jìn)行IPv4路由查找,并根據(jù)下一跳地址 查找ARP表/發(fā)起ARP學(xué)習(xí),在獲取到二層信息之后,進(jìn)行報(bào)文封裝,并送到相應(yīng)端口 ,其中 二層封裝信息處理流程同上述步驟e。 由于存儲(chǔ)模塊會(huì)將動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表更新到ASIC硬件轉(zhuǎn)發(fā)表中,此后,對(duì)于后續(xù)到 達(dá)相同6to4站點(diǎn)網(wǎng)絡(luò)的IPv6數(shù)據(jù)包(即前48位網(wǎng)絡(luò)前綴相同),直接會(huì)在ASIC硬件轉(zhuǎn)發(fā)
表中命中,并根據(jù)前面同步到硬件的封裝信息對(duì)報(bào)文直接進(jìn)行封裝轉(zhuǎn)發(fā)。 綜上所述,因?yàn)楝F(xiàn)在多數(shù)ASIC交換芯片已經(jīng)支持老動(dòng)態(tài)隧道封裝,但卻由于三層
交換的局限不能實(shí)現(xiàn)硬件二次路由查找,使得動(dòng)態(tài)隧道轉(zhuǎn)發(fā)的交換實(shí)現(xiàn)限入瓶頸。通過(guò)本
發(fā)明的方案,以軟件二次路由查找獲取二層封裝信息,并為不同網(wǎng)段的動(dòng)態(tài)隧道站點(diǎn)建立
不同的硬件表項(xiàng),他們可以對(duì)應(yīng)相同的動(dòng)態(tài)隧道接口 ,來(lái)實(shí)現(xiàn)IPV4封裝,但卻對(duì)應(yīng)不同的
二層信息,以實(shí)現(xiàn)報(bào)文向不同的端口轉(zhuǎn)發(fā),從而真正實(shí)現(xiàn)了ASIC交換的"一次路由,多次交
換"的高速轉(zhuǎn)發(fā)。 當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟 悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變 形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
一種實(shí)現(xiàn)動(dòng)態(tài)隧道報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于,將位于IPv6網(wǎng)絡(luò)邊緣的三層交換機(jī)中的專用集成電路(ASIC)硬件轉(zhuǎn)發(fā)表中動(dòng)態(tài)隧道的聚合路由表項(xiàng)預(yù)設(shè)為指向中央處理器(CPU);所述交換機(jī)在收到IPv6報(bào)文后,若根據(jù)IPv6路由查找判斷出所述報(bào)文指向動(dòng)態(tài)隧道,則根據(jù)所述聚合路由表項(xiàng)將所述報(bào)文上送到所述CPU;所述CPU在收到該報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與該報(bào)文的IPv6目的地址網(wǎng)絡(luò)前綴的對(duì)應(yīng)關(guān)系保存下來(lái)且將該對(duì)應(yīng)關(guān)系同步到所述ASIC硬件轉(zhuǎn)發(fā)表中,并將該報(bào)文從相應(yīng)的出端口轉(zhuǎn)發(fā)出去。
2. 如權(quán)利要求l所述的方法,其特征在于,還包括若所述交換機(jī)根據(jù)IPv6路由在所述ASIC硬件轉(zhuǎn)發(fā)表中查找到所述IPv6報(bào)文的出端 口信息,則對(duì)所述IPv6報(bào)文進(jìn)行硬件轉(zhuǎn)發(fā)。
3. 如權(quán)利要求l所述的方法,其特征在于,所述CPU在收到該報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與該報(bào)文的 IPv6目的地址網(wǎng)絡(luò)前綴的對(duì)應(yīng)關(guān)系保存下來(lái)是指所述CPU在接收到所述報(bào)文后,根據(jù)其IPv6目的地址進(jìn)行IPv6路由查找,如判斷出路 由的下一跳為動(dòng)態(tài)隧道接口,則進(jìn)一步判斷動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中是否保存有所述IPv6目的 地址中的網(wǎng)絡(luò)前綴對(duì)應(yīng)的表項(xiàng),如果有,則根據(jù)該表項(xiàng)中的二層信息將所述報(bào)文從對(duì)應(yīng)出 端口轉(zhuǎn)發(fā)出去,結(jié)束;否則,將所述IPv6目的地址的網(wǎng)絡(luò)前綴寫入所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表,并 根據(jù)從該報(bào)文的IPv6目的地址中獲取到IPv4目的地址對(duì)所述報(bào)文進(jìn)行IPv4協(xié)議封裝;對(duì) 封裝好的報(bào)文進(jìn)行IPV4路由查找,通過(guò)地址解析協(xié)議(ARP)協(xié)議學(xué)習(xí)到下一跳的二層信息 后,將所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中所述網(wǎng)絡(luò)前綴表項(xiàng)中的二層信息更新為所述學(xué)習(xí)到的二層信 息。
4. 一種實(shí)現(xiàn)動(dòng)態(tài)隧道報(bào)文轉(zhuǎn)發(fā)的交換機(jī),位于IPv6網(wǎng)絡(luò)邊緣,其特征在于,包括中央 處理器(CPU)和專用集成電路(ASIC)交換芯片;所述ASIC交換芯片的硬件轉(zhuǎn)發(fā)表中動(dòng)態(tài)隧道的聚合路由表項(xiàng)被預(yù)設(shè)為指向所述CPU; 所述ASIC交換芯片用于在收到IPv6報(bào)文后,若根據(jù)IPv6路由查找判斷出所述報(bào)文指向動(dòng) 態(tài)隧道,則根據(jù)所述聚合路由表項(xiàng)將所述報(bào)文上送到所述CPU ;所述CPU用于在收到所述報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與該報(bào) 文的IPv6目的地址網(wǎng)絡(luò)前綴的對(duì)應(yīng)關(guān)系保存下來(lái)且將該對(duì)應(yīng)關(guān)系同步到所述ASIC硬件轉(zhuǎn) 發(fā)表中,并將該報(bào)文從相應(yīng)的出端口轉(zhuǎn)發(fā)出去。
5. 如權(quán)利要求4所述的交換機(jī),其特征在于,所述ASIC交換芯片還用于在所述ASIC硬件轉(zhuǎn)發(fā)表中查找到所述IPv6報(bào)文的出端口 信息時(shí),對(duì)所述IPv6報(bào)文進(jìn)行硬件轉(zhuǎn)發(fā)。
6. 如權(quán)利要求4所述的交換機(jī),其特征在于,所述CPU用于在收到所述報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與該報(bào) 文的IPv6目的地址網(wǎng)絡(luò)前綴的對(duì)應(yīng)關(guān)系保存下來(lái)是指所述CPU用于在接收到所述報(bào)文后,根據(jù)其IPv6目的地址進(jìn)行IPv6路由查找,如判 斷出路由的下一跳為動(dòng)態(tài)隧道接口,則還用于判斷動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中是否保存有所述IPv6 目的地址中的網(wǎng)絡(luò)前綴對(duì)應(yīng)的表項(xiàng),如果有,則還用于根據(jù)該表項(xiàng)中的二層信息將所述報(bào) 文從對(duì)應(yīng)出端口轉(zhuǎn)發(fā)出去;否則,用于將所述IPv6目的地址的網(wǎng)絡(luò)前綴寫入所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表,并根據(jù)從該報(bào)文的IPv6目的地址中獲取到IPv4目的地址對(duì)所述報(bào)文進(jìn)行IPv4協(xié) 議封裝;還用于對(duì)封裝好的報(bào)文進(jìn)行IPV4路由查找,通過(guò)地址解析協(xié)議(ARP)協(xié)議學(xué)習(xí)到 下一跳的二層信息后,將所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中所述網(wǎng)絡(luò)前綴表項(xiàng)中的二層信息更新為所 述學(xué)習(xí)到的二層信息。
7. 如權(quán)利要求6所述的交換機(jī),其特征在于,所述CPU中包括IPv6報(bào)文轉(zhuǎn)發(fā)模塊、隧道轉(zhuǎn)發(fā)模塊、隧道轉(zhuǎn)發(fā)表更新模塊、IPv4報(bào)文 轉(zhuǎn)發(fā)模塊、封裝信息更新模塊及存儲(chǔ)模塊,所述存儲(chǔ)模塊中保存有所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表;所述IPv6報(bào)文轉(zhuǎn)發(fā)模塊用于對(duì)上送所述CPU的報(bào)文根據(jù)目的地址進(jìn)行IPv6路由查 找,如判斷出路由的下一跳為動(dòng)態(tài)隧道接口 ,則將該報(bào)文發(fā)送給所述隧道轉(zhuǎn)發(fā)模塊;所述隧道轉(zhuǎn)發(fā)模塊用于在收到所述報(bào)文后,判斷所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中是否保存有該 報(bào)文的IPv6目的地址的網(wǎng)絡(luò)前綴對(duì)應(yīng)的表項(xiàng),如果有,則用于直接根據(jù)該表項(xiàng)中的二層信 息從對(duì)應(yīng)出端口轉(zhuǎn)發(fā)出去;否則,用于將該IPv6目的地址中的網(wǎng)絡(luò)前綴發(fā)送到所述隧道轉(zhuǎn) 發(fā)表更新模塊,并根據(jù)從該報(bào)文的IPv6目的地址中獲取到IPv4目的地址對(duì)上述報(bào)文進(jìn)行 IPv4協(xié)議封裝,然后將封裝好的報(bào)文發(fā)送到所述IPv4轉(zhuǎn)發(fā)模塊;所述隧道轉(zhuǎn)發(fā)表更新模塊用于在接收到所述隧道轉(zhuǎn)發(fā)模塊發(fā)來(lái)的網(wǎng)絡(luò)前綴后,判斷動(dòng) 態(tài)隧道轉(zhuǎn)發(fā)表中是否已保存該網(wǎng)絡(luò)前綴;如果沒(méi)有,則用于在所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中為該 網(wǎng)絡(luò)前綴創(chuàng)建新的表項(xiàng);所述IPv4報(bào)文轉(zhuǎn)發(fā)模塊用于對(duì)接收到的封裝好的報(bào)文進(jìn)行IPV4路由查找,通過(guò)ARP 協(xié)議學(xué)習(xí)到下一跳的二層信息后,將該二層信息發(fā)送到所述封裝信息更新模塊,并將該報(bào) 文進(jìn)行二層封裝,從相應(yīng)的出端口轉(zhuǎn)發(fā)出去;所述封裝信息更新模塊用于在接收到所述二層信息后,將動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中上述網(wǎng)絡(luò) 前綴表項(xiàng)中的二層信息更新為該學(xué)習(xí)到的下一跳的二層信息。
8. 如權(quán)利要求7所述的交換機(jī),其特征在于,所述隧道轉(zhuǎn)發(fā)表更新模塊還用于在判斷出所述動(dòng)態(tài)隧道轉(zhuǎn)發(fā)表中已保存該網(wǎng)絡(luò)前綴 后,將該網(wǎng)絡(luò)前綴所在表項(xiàng)的老化計(jì)時(shí)器恢復(fù)為初始值。
9. 如權(quán)利要求8所述的交換機(jī),其特征在于,所述隧道轉(zhuǎn)發(fā)表更新模塊還用于維護(hù)定時(shí)老化機(jī)制,老化時(shí)間到時(shí),為表項(xiàng)設(shè)置刪除 標(biāo)志。
全文摘要
一種實(shí)現(xiàn)動(dòng)態(tài)隧道報(bào)文轉(zhuǎn)發(fā)的方法及交換機(jī),該交換機(jī)位于IPv6網(wǎng)絡(luò)邊緣,包括中央處理器(CPU)和專用集成電路(ASIC)交換芯片;所述方法包括將位于IPv6網(wǎng)絡(luò)邊緣的三層交換機(jī)中的ASIC硬件轉(zhuǎn)發(fā)表中動(dòng)態(tài)隧道的聚合路由表項(xiàng)預(yù)設(shè)為指向CPU;交換機(jī)在收到IPv6報(bào)文后,若根據(jù)IPv6路由查找判斷出該報(bào)文指向動(dòng)態(tài)隧道,則根據(jù)聚合路由表項(xiàng)將該報(bào)文上送到CPU;CPU收到該報(bào)文后,采用軟件路由的方式,將獲取到的二層信息與該報(bào)文的IPv6目的地址網(wǎng)絡(luò)前綴的對(duì)應(yīng)關(guān)系保存下來(lái)且將該對(duì)應(yīng)關(guān)系同步到ASIC硬件轉(zhuǎn)發(fā)表中,并將該報(bào)文從相應(yīng)的出端口轉(zhuǎn)發(fā)出去。本發(fā)明能夠充分利用ASIC轉(zhuǎn)發(fā)資源,提高了路由查找效率。
文檔編號(hào)H04L12/56GK101695047SQ200910205540
公開(kāi)日2010年4月14日 申請(qǐng)日期2009年10月26日 優(yōu)先權(quán)日2009年10月26日
發(fā)明者劉曉東 申請(qǐng)人:中興通訊股份有限公司;