專利名稱:一種最大傳輸單元的學(xué)習(xí)方法、裝置及路由設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種最大傳輸單元MTU的學(xué)習(xí)方 法、裝置及路由設(shè)備。
背景技術(shù):
現(xiàn)有互聯(lián)網(wǎng)協(xié)議版本6 (IPv6)網(wǎng)絡(luò)作為下一代網(wǎng)絡(luò),目前尚未完全普及,仍然作 為孤島網(wǎng)絡(luò)分散在互聯(lián)網(wǎng)協(xié)議版本4(IPv4)網(wǎng)絡(luò)之中。為了實現(xiàn)這些IPv6網(wǎng)絡(luò)能夠通過 IPv4網(wǎng)絡(luò)實現(xiàn)互聯(lián)互通,一般采用隧道技術(shù),如利用互聯(lián)網(wǎng)協(xié)議版本4-多協(xié)議標(biāo)簽交換 (IPv4-MPLS)網(wǎng)絡(luò)提供IPv6報文傳輸隧道,從而實現(xiàn)IPv6孤島網(wǎng)絡(luò)的互聯(lián)互通,互聯(lián)網(wǎng)工 程任務(wù)組(The Internet EngineeringTask Force, IETF)為該方案制定了相應(yīng)的標(biāo)準(zhǔn),稱 其為IPv6運營商邊界(IPv6 Provider Edge,6PE)方案。圖1所示是采用6PE方案實現(xiàn)IPv6網(wǎng)絡(luò)互聯(lián)的一個具體例子,該例子為單個自治 域(Autonomous System, AS)內(nèi)的IPv6網(wǎng)絡(luò)的互聯(lián)互通,在圖1中,路由設(shè)備6PE_1、6PE_2、 運營商路由器(Provider,簡稱P)和6PE-3組成了整個IPv4MPLS網(wǎng)絡(luò),其中P設(shè)備為網(wǎng)絡(luò) 中IPv4單協(xié)議棧路由設(shè)備,其他各設(shè)備均支持IPv6、IPv4雙協(xié)議棧。6ΡΕ-1、6ΡΕ_2、6ΡΕ_3 之間通過內(nèi)部邊界網(wǎng)關(guān)協(xié)議(Internal Border Gateway Protocol, IBGP)分發(fā)帶標(biāo)簽的 IPv6路由信息,以6PE-1通告IPv6網(wǎng)絡(luò)地址Sl為例,6PE-1通過多協(xié)議內(nèi)部邊界網(wǎng)關(guān)協(xié)議 (Multiprotocol-IBGP,MP-IBGP)協(xié)議向6PE-3通告帶標(biāo)簽的IPv6路由,網(wǎng)絡(luò)地址為Si,對 應(yīng)的標(biāo)簽值為Ll,6PE-3在收到該標(biāo)簽路由之后,將添加IPv6路由,出標(biāo)簽為Li,下一跳為 6PE-1,這樣IPv6 S3網(wǎng)絡(luò)中即存在到達Sl的IPv6路由了。同樣的原理可以實現(xiàn)Si、S2、 S3之間IPv6路由互聯(lián)互通。下面描述IPv6報文如何在MPLS網(wǎng)絡(luò)中傳輸,6PE-3在收到目的地址為Sl的IPv6 報文時,將查找本地IPv6路由表,確認(rèn)下一跳為6PE-1,且出標(biāo)簽為Ll (該報文由6PE-1分 發(fā)),之后6PE-3為該IPv6報文封裝上標(biāo)簽Li,同時查找下一跳6PE-1的出口。根據(jù)MPLS 轉(zhuǎn)發(fā)表確定要達到6PE-1,需要插入標(biāo)簽Tl (為6PE-3到6PE-1的MPLS隧道標(biāo)簽),并轉(zhuǎn) 發(fā)至P,此時原來的IPv6報文將包含雙層標(biāo)簽,內(nèi)層標(biāo)簽為IPv6路由標(biāo)簽(Li),而外層標(biāo) 簽為MPLS隧道標(biāo)簽(Tl)。P在收到該報文之后,它不關(guān)心報文中封裝的是IPv4數(shù)據(jù)還是 IPv6數(shù)據(jù),根據(jù)外層標(biāo)簽Tl確定該報文將轉(zhuǎn)發(fā)至6PE-1,并交換標(biāo)簽Tl為T2,此時報文的 標(biāo)簽棧變?yōu)門2/L1。6PE-1在收到該報文之后,將彈出標(biāo)簽T2,同時根據(jù)IPv6標(biāo)簽Ll確定 轉(zhuǎn)發(fā)至正確的網(wǎng)段。上述IPv6報文在傳輸中容易碰到兩個問題,一方面,IPv4網(wǎng)絡(luò)中的設(shè)備P在轉(zhuǎn)發(fā) 報文時將執(zhí)行最大傳輸單元(Maximum Transmission Unit, MTU)檢查即檢查該報文長度 是否超過出接口的MTU,若當(dāng)前接收的報文的長度超過其出接口的MTU時,P由于無法識別 IPv6報文而只能丟棄該報文;另一方面,即使報文的長度未超過P出接口的MTU,由P成功 轉(zhuǎn)發(fā)至6PE-1,6PE-1根據(jù)該報文的標(biāo)簽Ll以及IPv6路由確認(rèn)轉(zhuǎn)發(fā)至某個出接口,若當(dāng)前 報文的長度超過6PE-1出接口的MTU時,6PE-1將為該IPv6報文再次執(zhí)行分片,這樣導(dǎo)致IPv6報文在經(jīng)隧道傳輸過程被多次分片,降低了報文轉(zhuǎn)發(fā)效率。圖2所示是采用6PE方案實現(xiàn)IPv6網(wǎng)絡(luò)互聯(lián)的另外一個具體例子,該例子為 跨多個自治域的IPv6網(wǎng)絡(luò)的互聯(lián)互通,圖2中ASl由6PE-1、P和自治系統(tǒng)邊界路由器 (Autonomous System Border Router, ASBR) 1 組成,AS2 由 ASBR2 和 6PE-2 組成(ASBR2 和6PE-2之間還可以包括若干P設(shè)備,在圖2中未示意出),IPv6 Sl通過6PE-1連接自 治域AS1,IPv6 S2連接自治域AS2,6PE-1和ASBRl之間建立MP-IBGP連接,6PE-1將帶標(biāo) 簽的IPv6路由通告給ASBR1,ASBRl與ASBR2之間建立多協(xié)議BGP協(xié)議(Multiprotocol Extensions BGP, MP-EBGP)連接,ASBRl 將 6PE-1 的帶標(biāo)簽 IPv6 路由通過 MP-EBGP 通告至 ASBR-2,ASBR2與6PE-2建立MP-IBGP連接,ASBR2再將ASBRl通告的帶標(biāo)簽IPv6路由通過 MP-IBGP通告至6PE-2,這樣6PE-2即可學(xué)習(xí)到6PE-1的帶標(biāo)簽Ipv6路由,S2和Sl相互學(xué) 習(xí)到各自的IPv6路由。IPv6報文的轉(zhuǎn)發(fā)則是通過建立三個MPLS隧道來實現(xiàn)的,如圖2示中的T3(6PE_1 和ASBRl之間的隧道)、T2 (ASBR1和ASBR2之間的隧道)和Tl (ASBR2和6PE-2之間的隧 道),6PE-2在收到到達Sl的IPv6報文之后,將會先通過隧道Tl將報文轉(zhuǎn)發(fā)至ASBR2,ASBR2 再通過隧道T2轉(zhuǎn)發(fā)至ASBRl,ASBRl則通過MPLS隧道T3將報文轉(zhuǎn)發(fā)至6PE-1,從而實現(xiàn) IPv6報文的轉(zhuǎn)發(fā)。由于6PE-2不需要知道如何到達ASBRl和6PE-1,它只需要將報文轉(zhuǎn)發(fā)至 ASBR2,剩余的轉(zhuǎn)發(fā)操作則有ASBR2來執(zhí)行,報文轉(zhuǎn)發(fā)至ASBR2時,ASBR2會進行MTU檢查, 如果報文的長度超過其出接口的MTU,那么需要執(zhí)行分片后轉(zhuǎn)發(fā),類似地,ASBR2和6PE-2在 轉(zhuǎn)發(fā)過程也同樣需要進行MTU的檢查,這樣可能導(dǎo)致IPv6報文在經(jīng)隧道傳輸過程被多次分 片,降低了報文轉(zhuǎn)發(fā)效率。另外,報文在經(jīng)由ASl和AS2中的P設(shè)備轉(zhuǎn)發(fā)至邊界路由設(shè)備時, 也有可能因為其長度大于P設(shè)備出接口的MTU而使得P設(shè)備直接丟棄該報文,使得IPv6報 文的傳輸過程受阻導(dǎo)致IPv6網(wǎng)絡(luò)之間無法實現(xiàn)互通。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種最大傳輸單元MTU的學(xué)習(xí)方法、裝置及路由設(shè)備,用以解 決在現(xiàn)有6PE技術(shù)中IPv6報文在傳輸過程中由于長度大小超過路由設(shè)備出接口 MTU導(dǎo)致 傳輸受阻以及被多次分片導(dǎo)致的報文轉(zhuǎn)發(fā)效率低的問題。本發(fā)明實施例提供的一種最大傳輸單元的學(xué)習(xí)方法,包括接收IPv6報文傳輸隧道中上游邊界網(wǎng)關(guān)協(xié)議BGP鄰居通告的到達IPv6網(wǎng)絡(luò)的 BGP路由信息;所述BGP路由信息中攜帶有所述上游BGP鄰居確定出的到達IPv6網(wǎng)絡(luò)的路 由的第一 MTU ;對接收的所述BGP路由信息攜帶的到達該IPv6網(wǎng)絡(luò)的BGP路由下一跳對應(yīng)的第 二 MTU進行探測;比較所述第一 MTU與探測到的第二 MTU的大小,將兩者中的較小值作為確定出的 到達IPv6網(wǎng)絡(luò)的BGP路由的第三MTU并保存;確定所述隧道中是否還存在下游BGP鄰居,若存在,將所述第三MTU攜帶在到達該 IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至所述下游BGP鄰居。本發(fā)明實施例提供的一種最大傳輸單元的學(xué)習(xí)裝置,包括BGP路由信息接收單元,用于接收IPv6報文傳輸隧道中上游邊界網(wǎng)關(guān)協(xié)議BGP鄰居通告的到達IPv6網(wǎng)絡(luò)的BGP路由信息;所述BGP路由信息中攜帶有所述上游BGP鄰居確 定出的到達IPv6網(wǎng)絡(luò)的路由的第一 MTU ;MTU探測單元,用于對接收的所述BGP路由信息攜帶的到達該IPv6網(wǎng)絡(luò)的BGP路 由下一跳對應(yīng)的第二 MTU進行探測;比較單元,用于將比較所述第一 MTU與探測到的第二 MTU的大小,將兩者中較小值 作為確定出的到達IPv6網(wǎng)絡(luò)的BGP路由的第三MTU并保存;路由通告單元,用于確定所述隧道中是否還存在下游BGP鄰居,若存在,將所述第 三MTU攜帶在到達該IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至所述下游BGP鄰居。本發(fā)明實施例提供的路由設(shè)備,包括本發(fā)明實施例提供的上述最大傳輸單元的學(xué) 習(xí)裝置。本發(fā)明實施例的有益效果包括本發(fā)明實施例提供的最大傳輸單元的學(xué)習(xí)方法、裝置及路由設(shè)備,對于IPv4網(wǎng)絡(luò) 中形成的IPv6報文傳輸隧道中的每個運行BGP的路由設(shè)備,執(zhí)行下述操作即接收上游 BGP鄰居通告的到達IPv6網(wǎng)絡(luò)的BGP路由信息;該BGP路由信息攜帶有該上游BGP鄰居確 定出的到達IPv6網(wǎng)絡(luò)的路由的第一 MTU ;對接收的BGP路由信息攜帶的到達該IPv6網(wǎng)絡(luò) 的BGP路由下一跳對應(yīng)的第二 MTU進行探測;比較第一 MTU與探測到的第二 MTU的大小,將 兩者中較小值作為確定出的到達IPv6網(wǎng)絡(luò)的BGP路由的第三MTU并保存;如果還存在下游 BGP鄰居,則將第三MTU攜帶在到達該IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至下游BGP鄰居, 直至該隧道中的每個運行BGP的路由設(shè)備都學(xué)習(xí)到了到達該IPv6網(wǎng)絡(luò)的BGP路由對應(yīng)的 MTU。本發(fā)明實施例在支持BGP協(xié)議的運營商邊界設(shè)備和自治系統(tǒng)邊界路由之間通過BGP路 由傳遞MTU的值,使得傳輸IPv6報文的隧道的終點即連接另一 IPv6網(wǎng)絡(luò)的運營商邊界設(shè) 備可以計算出到達目的IPv6網(wǎng)絡(luò)的路由中各跳的MTU的最小值,并將其作為發(fā)送IPv6報 文是否需要進行分片的依據(jù),經(jīng)過上述過程之后,在該隧道的終點收到發(fā)往該IPv6網(wǎng)絡(luò)的 IPv6報文時,將該報文的大小與自身保存的MTU的大小進行比較,決定是否需要分片,如果 進行分片,分片后的報文的長度是到達該IPv6網(wǎng)絡(luò)的路由中各跳MTU的最小值,因此,對于 通過IPv4網(wǎng)絡(luò)實現(xiàn)IPv6網(wǎng)絡(luò)的互聯(lián)互通的應(yīng)用場景尤其是跨多個IPv4自治域?qū)崿F(xiàn)IPv6 網(wǎng)絡(luò)的互聯(lián)互通的應(yīng)用場景來說,不論IPv4網(wǎng)絡(luò)中傳輸IPv6報文的隧道需要跨越多少中 間設(shè)備(例如P設(shè)備)或邊界設(shè)備,任何中間設(shè)備或者邊界設(shè)備,都不會因為IPv6報文長 度的大小超出了該路由設(shè)備出接口的MTU的大小而丟棄該IPv6報文,從而避免了現(xiàn)有6PE 技術(shù)出現(xiàn)的IPv6報文的傳輸受阻的情況,并且在該隧道的終點對收到的IPv6報文進行分 片操作后,該隧道中其他路由設(shè)備也不會再執(zhí)行報文的分片操作,提高了 IPv6報文在隧道 中轉(zhuǎn)發(fā)效率。
圖1為現(xiàn)有技術(shù)中6PE方案實現(xiàn)IPv6網(wǎng)絡(luò)互聯(lián)的網(wǎng)絡(luò)連接示意圖之一;圖2為現(xiàn)有技術(shù)中6PE方案實現(xiàn)IPv6網(wǎng)絡(luò)互聯(lián)的網(wǎng)絡(luò)連接示意圖之二 ;圖3為本發(fā)明實施例提供的最大傳輸單元的學(xué)習(xí)方法的流程圖;圖4為自定義團體屬性的格式示意圖;圖5為本發(fā)明實施例提供的第一個具體實例的網(wǎng)絡(luò)連接示意圖6為本發(fā)明實施例提供的最大傳輸單元的學(xué)習(xí)裝置的結(jié)構(gòu)示意圖。
具體實施例方式下面結(jié)合附圖,對本發(fā)明實施例提供的一種最大傳輸單元(MTU)的學(xué)習(xí)方法、裝 置及路由設(shè)備進行詳細地說明。本發(fā)明實施例提供的MTU學(xué)習(xí)方法,如圖3所示,包括如下步驟S301、接收IPv6報文傳輸隧道中上游BGP鄰居通告的到達IPv6網(wǎng)絡(luò)的BGP路由信 息;該BGP路由信息中攜帶有該上游BGP鄰居確定出的到達IPv6網(wǎng)絡(luò)的路由的第一 MTU ;S302、對接收的BGP路由信息攜帶的到達該IPv6網(wǎng)絡(luò)的BGP路由下一跳的第二 MTU進行探測;S303、比較所述第一 MTU與探測到的第二 MTU的大小,將兩者中較小值作為確定出 的到達IPv6網(wǎng)絡(luò)的BGP路由的第三MTU并保存;S304、確定IPv6報文傳輸隧道中是否還存在下游BGP鄰居;若存在,執(zhí)行下述步驟 S305 ;若不存在,結(jié)束本流程;S305、將第三MTU攜帶在到達該IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至下游BGP鄰居。上述步驟S301中,IPv6報文傳輸隧道指的是連接兩個IPv6網(wǎng)絡(luò)的IPv4_MPLS網(wǎng) 絡(luò)提供的IPv6報文傳輸通道。上述步驟S301和步驟S305中,在到達IPv6網(wǎng)絡(luò)的BGP路由信息中攜帶第一 MTU 或攜帶第三MTU,可以通過下述方式實現(xiàn)自定義BGP路由信息中的擴展團體屬性,將第一 MTU或第三MTU的值封裝在所述擴展團體屬性的Value字段中。擴展團體屬性(Extended Communities Attribute)是BGP路由信息中的路由屬 性中的一類,其格式如圖4所示,自定義團體屬性,可以自定義其中的type字段(擴展團體 屬性的類型)為MTU,將第一 MTU或者第三MTU的值封裝在自定義的擴展團體屬性的Value 字段中。較佳地,在本發(fā)明實施例中,還需要同時保存本次MTU學(xué)習(xí)過程中得到的第一 MTU 和第二 MTU也與到達IPv6網(wǎng)絡(luò)的BGP路由信息,以便后續(xù)MTU發(fā)生變化時,可以及時根據(jù) 保存的第一 MTU和第二 MTU對保存的第三MTU進行更新。下面結(jié)合兩個具體的實例,對本發(fā)明實施例提供的MTU學(xué)習(xí)方法進行詳細地說 明。第一個實例本實例采用圖5所示的單自治域內(nèi)IPv6網(wǎng)絡(luò)互聯(lián)的網(wǎng)絡(luò)拓?fù)?,運營商邊界設(shè)備 Rl與IPv6 Sl網(wǎng)絡(luò)相連,運營商邊界設(shè)備R2與IPv6 S2網(wǎng)絡(luò)相連,同時Rl和R2同屬于 IPv4-MPLS網(wǎng)絡(luò),為了實現(xiàn)將IPv6 S2網(wǎng)絡(luò)的IPv6報文發(fā)送至IPv6 Sl網(wǎng)絡(luò),需要在報文發(fā) 送之前,執(zhí)行BGP協(xié)議的路由設(shè)備Rl和R2按照下面的流程分別執(zhí)行MTU學(xué)習(xí)的步驟步驟1、R1向IPv6報文傳輸隧道中其上游的BGP鄰居即R2通告到達IPv6Sl網(wǎng)絡(luò) 的BGP路由信息,在通告的BGP路由中攜帶有Rl確定出的到達IPv6S 1網(wǎng)絡(luò)的路由的MTUl ;在本步驟1中,由于Rl是直接與IPv6 Sl網(wǎng)絡(luò)相連的運營商邊界設(shè)備,MTUl的值, Rl可以通過獲取Rl中與到達IPv6 Sl網(wǎng)絡(luò)的路由對應(yīng)的出接口的MTU的值得到MTU1。
7
Rl將MTUl的值攜帶在自定義的擴展團體屬性中,具體方法參見前述步驟S301的 說明。步驟2、R2接收到該BGP路由信息之后,對該BGP路由信息攜帶的到達IPv6 Sl網(wǎng) 絡(luò)的路由的BGP路由下一跳對應(yīng)的MTU2進行探測;R2從接收的BGP路由信息中提取該BGP路由的下一跳的IP地址,BGP路由的下 一跳是BGP路由信息中路由屬性的一種,用于指明到達該路由前綴對應(yīng)的網(wǎng)絡(luò)(IPv6 Sl網(wǎng) 絡(luò))需要將報文轉(zhuǎn)發(fā)至BGP下一跳的路由設(shè)備(即Rl)。根據(jù)該BGP路由的下一跳(Rl)的IP地址,R2可自動探測該下一跳對應(yīng)的MTU 值。具體可采用現(xiàn)有的自動探測方法,例如通過發(fā)送Internet控制報文協(xié)議(Internet Control Message Protocol, ICMP)報文來發(fā)現(xiàn)MTU2,如果該傳輸隧道中Rl和R2之間的路 徑上還連接有若干P設(shè)備或其他路由設(shè)備,探測MTU2的過程,即確定從R2經(jīng)過若干P設(shè)備 或其他路由設(shè)備到達Rl的路徑中各跳的MTU值的最小值。具體探測方法屬于現(xiàn)有技術(shù),在 此不再贅述。步驟3、R2比較MTUl和MTU2兩者的大小,將兩者中的較小值確定為到達IPv6 Sl 網(wǎng)絡(luò)的BGP路由對應(yīng)的MTU3并保存。MTU3可以與到達IPv6 Sl網(wǎng)絡(luò)的BGP路由一起保存于路由表中,以便在后續(xù)在轉(zhuǎn) 發(fā)該路由的IPv6報文時,可以根據(jù)MTU3的大小判斷是否需要對報文進行分片的操作。步驟4、R2判斷該隧道中是否存在下游BGP鄰居,由于R2是與IPv6 S2網(wǎng)絡(luò)相連 的運營商邊界設(shè)備,其不存在BGP鄰居,因此流程到此結(jié)束。在經(jīng)過上述步驟1 4之后,R2中保存的是到達IPv6 Sl網(wǎng)絡(luò)的路由各跳MTU的 最小值,R2收到IPv6 S2網(wǎng)絡(luò)發(fā)送至IPv6 Sl網(wǎng)絡(luò)的IPv6報文后,將該報文的大小與保存 的MTU3的大小進行比較,決定是否需要分片,如果進行分片,分片后的報文的長度是到達 IPv6 Sl網(wǎng)絡(luò)的路由的MTU的最小值,因此,在R2和Rl之間的P設(shè)備不會因為報文長度的 大小超出了該路由出接口的MTU的大小而丟棄報文,在Rl中,也不會再執(zhí)行報文的分片操 作,提高了報文的轉(zhuǎn)發(fā)效率。第二個實例本實例采用圖2所示的跨自治域的IPv6網(wǎng)絡(luò)互聯(lián)的網(wǎng)絡(luò)拓?fù)?,其中IPv6 Sl網(wǎng)絡(luò) 通過 AS1、AS2 與 IPv6 S2 網(wǎng)絡(luò)相連,ASl 由 6PE-1、P 禾口 ASBRl 組成,AS2 由 ASBR2 禾口 6PE-2 組成,ASl和AS2都屬于IPv4-MPLS網(wǎng)絡(luò),6PE-1和6PE-2是運營商邊界設(shè)備。為了實現(xiàn)將IPv6 S2網(wǎng)絡(luò)的IPv6報文發(fā)送至IPv6 Sl網(wǎng)絡(luò),需要在報文發(fā)送之前, 各執(zhí)行BGP協(xié)議的路由設(shè)備按照下面的流程分別執(zhí)行MTU學(xué)習(xí)的步驟步驟1 ‘、6PE-1向ASBRl通告到達IPv6 Sl網(wǎng)絡(luò)的BGP路由信息,在通告的BGP 路由中攜帶有6PE-1確定出的到達該IPv6 Sl網(wǎng)絡(luò)的路由的MTUl ;與步驟S501相似,6PE-1通過路由信息中的擴展團體屬性攜帶MTUl ;6PE-1向 ASBRl通告的BGP路由信息中還包括該BGP路由的下一跳的信息,該BGP下一跳的信息為 6PE-1的地址。步驟2‘、ASBRl根據(jù)接收的BGP路由信息中的BGP下一跳的地址,對該BGP路由 下一跳對應(yīng)的MTU2進行探測;步驟3 ‘、ASBRl比較MTUl和MTU2的大小,將兩者之中較小值作為該BGP路由的MTU3值并保存。步驟4'、ASBRl確定該隧道中還存在下游BGP鄰居ASBR2 ;步驟5'、ASBRl向ASBR2通告到達IPv6 Sl網(wǎng)絡(luò)的BGP路由信息,在該BGP路由 信息中攜帶ASBRl確定出的到達該IPv6 Sl網(wǎng)絡(luò)的路由的MTU3。步驟6'、ASBR2接收該BGP路由信息之后,與ASBRl的處理方式類似,根據(jù)該BGP 路由信息中的BGP下一跳(ASBRl)的地址,對該BGP路由下一跳對應(yīng)的MTU4進行探測, ASBR2比較MTU4和MTU3的大小,將兩者之中較小值作為該BGP路由的MTO5并保存。ASBR2 確定該隧道中還存在下游BGP鄰居6PE-2,繼續(xù)向6PE-2通告到達IPv6 Sl網(wǎng)絡(luò)的BGP路由 信息,在該BGP路由信息中攜帶ASBR2確定出的到達該IPv6 Sl網(wǎng)絡(luò)的路由的MTO5。步驟7‘、6PE_2接收該BGP路由信息之后,與ASBR2的處理方式類似,根據(jù)該BGP 路由信息中的BGP下一跳(ASBR2)的地址,對該BGP路由下一跳對應(yīng)的MTO6進行探測; 6PE-2比較MTO5和MTO6的大小,將兩者之中較小值作為該BGP路由的MTU7并保存。由于 6PE-2是與IPv6 S2網(wǎng)絡(luò)直接相連的運營商邊界設(shè)備,因此,MTU學(xué)習(xí)的流程到此結(jié)束。經(jīng)過上述流程之后,6PE-2中保存的是到達IPv6 Sl網(wǎng)絡(luò)的路由的各跳MTU中的最 小值,6PE-2收到IPv6 S2網(wǎng)絡(luò)發(fā)送至IPv6 Sl網(wǎng)絡(luò)的IPv6報文后,將該報文的大小與保存 的MTU7的大小進行比較,決定是否需要分片,如果進行分片,分片后的報文的長度是到達 IPv6 Sl網(wǎng)絡(luò)的路由中各跳的MTU的最小值,因此,在6PE-2和6PE-1之間的P設(shè)備不會因 為報文長度的大小超出了該路由出接口的MTU的大小而丟棄該IPv6報文,并且在ASBR2、 ASBRl和6PE-1中,也不會再執(zhí)行報文的分片操作,提高了報文的轉(zhuǎn)發(fā)效率。在上述兩個實例中,如果連接IPv6 Sl網(wǎng)絡(luò)的Rl或者6PE-1發(fā)現(xiàn)到達IPv6網(wǎng)絡(luò) 的路由對應(yīng)的出接口的MTUl出現(xiàn)變化后,會向其下游鄰居R2或ASBRl通告攜帶有更新后 的MTUl的BGP路由信息,R2或ASBRl接收到該BGP路由信息后,會發(fā)現(xiàn)當(dāng)前接收的BGP路 由信息中的MTUl與保存的MTUl值不相等,這時,比較更新后的MTUl與本地保存的MTU2的 大小確定兩者之中的較小值,并在確定出的較小值與保存的MTU3不相等時,并使用該較小 值更新保存的MTU3 ;如果是ASBR1,由于其還存在下游鄰居ASBR2,那么還需要將更新后的 MTU3攜帶在到達該IPv6的BGP路由信息中并通告至ASBR2,ASBR2接收到該路由信息后, 執(zhí)行類似的操作,直至MTU的計算在整個隧道中得到更新。在上述兩個實例中,R2、ASBRU ASBR2或6PE-2還可以在首次學(xué)習(xí)MTU的過程結(jié) 束后,周期性對到達該IPv6網(wǎng)絡(luò)的BGP路由下一跳對應(yīng)的MTU進行自動探測,并根據(jù)自動 探測的結(jié)果,對MTU學(xué)習(xí)的結(jié)果進行更新。以ASBRl為例,ASBRl在當(dāng)前探測到的MTU2與 保存的MTU2不相等時,則需要將當(dāng)前探測到的MTU2的值與保存的該路由對應(yīng)的MTUl值進 行比較確定兩者中的較小值,并當(dāng)兩者中的較小值與保存的MTU3不相等時,使用該較小值 更新保存的MTU3,將更新后的MTU3攜帶在達到IPv6 Sl網(wǎng)絡(luò)的BGP路由信息中并通告至 ASBR2,ASBR2收到后,按照前述更新方法對保存的MTU進行更新,直至連接IPv6 S2網(wǎng)絡(luò)的 運營商邊界設(shè)備6PE-2也更新了其保存的MTU7。基于同一發(fā)明構(gòu)思,本發(fā)明實施例還提供了一種MTU學(xué)習(xí)裝置及路由設(shè)備,由于 該裝置及設(shè)備解決問題的原理與前述一種MTU學(xué)習(xí)方法相似,因此該裝置和路由設(shè)備的實 施可以參見方法的實施,重復(fù)之處不在贅述。本發(fā)明實施例提供的一種最大傳輸單元MTU的學(xué)習(xí)裝置,如圖6所示,包括
BGP路由信息接收單元601,用于接收IPv6報文傳輸隧道中上游邊界網(wǎng)關(guān)協(xié)議BGP 鄰居通告的到達IPv6網(wǎng)絡(luò)的BGP路由信息;所述BGP路由信息中攜帶有所述上游BGP鄰居 確定出的到達IPv6網(wǎng)絡(luò)的路由的第一 MTU ;MTU探測單元602,用于對接收的所述BGP路由信息攜帶的到達該IPv6網(wǎng)絡(luò)的BGP 路由下一跳對應(yīng)的第二 MTU進行探測;比較單元603,用于將比較所述第一 MTU與探測到的第二 MTU的大小,將兩者中較 小值作為確定出的到達IPv6網(wǎng)絡(luò)的BGP路由的第三MTU并保存;路由通告單元604,用于確定所述隧道中是否還存在下游BGP鄰居,若存在,將所 述第三MTU攜帶在到達該IPv6的BGP路由信息中并通告至所述下游BGP鄰居。進一步地,上述路由通告單元604,用于自定義BGP路由信息中的擴展團體屬性, 將自定義的擴展團體屬性的類型字段設(shè)置為MTU ;將第三MTU的值封裝在所述擴展團體屬 性的Value字段中。進一步地,本發(fā)明實施例提供的MTU的學(xué)習(xí)裝置,還包括MTU更新單元605 ;相應(yīng)地,比較單元603,還用于在BGP路由信息接收單元601當(dāng)前接收的上游BGP 鄰居通告的BGP路由信息中的第一 MTU與保存的第一 MTU值不相等時,比較當(dāng)前接收的所 述BGP路由信息中的第一 MTU與保存的第二 MTU的大小確定兩者中的較小值;MTU更新單元605,用于當(dāng)所述較小值與保存的第三MTU不相等時,使用所述較小 值更新保存的第三MTU;路由通告單元604,還用于確定所述隧道中是否還存在下游BGP鄰居,若存在,將 更新后的第三MTU攜帶在到達該IPv6的BGP路由信息中并通告至所述下游BGP鄰居。進一步地,本發(fā)明實施例提供的MTU的學(xué)習(xí)裝置中的MTU探測單元602,還用于在 路由通告單元604將所述第三MTU攜帶在到達該IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至所 述下游BGP鄰居的步驟之后,周期地對到達該IPv6網(wǎng)絡(luò)的BGP路由下一跳的第二 MTU進行 探測;比較單元603,還用于在MTU探測單元602當(dāng)前探測到的第二 MTU與保存的第二 MTU不相等時,比較當(dāng)前探測到的第二 MTU與保存的第一 MTU,確定兩者中的較小值;MTU更新單元605,還用于當(dāng)所述較小值與保存的第三MTU不相等時,使用所述較 小值更新保存的第三MTU的值;路由通告單元604,還用于確定隧道中是否還存在下游BGP鄰居,若存在,將更新 后的第三MTU攜帶在到達該IPv6的BGP路由信息中并通告至隧道中的下游BGP鄰居。進一步地,當(dāng)本發(fā)明實施例提供的MTU的學(xué)習(xí)裝置位于連接該IPv6網(wǎng)絡(luò)的運營商 邊界設(shè)備中時,還可以包括獲取單元606,用于獲取所述運營商邊界設(shè)備中與到達IPv6網(wǎng)絡(luò)的路由對應(yīng)的出 接口的MTU ;相應(yīng)地,路由通告單元604,還用于確定所述隧道中是否還存在下游BGP鄰居,若 存在,將獲取到所述出接口的MTU攜帶在到達該IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至所述 下游BGP鄰居。本發(fā)明實施例提供的MTU的學(xué)習(xí)裝置,在具體實施時,可以通過設(shè)計下述功能模 塊實現(xiàn)BGP模塊、路由表管理模塊、MTU自動探測模塊,其中
10
BGP模塊用于通告BGP路由信息,優(yōu)選和計算最優(yōu)路由,更新路由對應(yīng)的MTU的值 以及向路由表安裝更新路由表項。路由表管理模塊用于管理路由表項,如確定路由對應(yīng)的下一跳、出接口,以及出接 口 MTU的值,同時也負(fù)責(zé)向BGP模塊通告路由更新的信息。MTU自動探測模塊用于自動探測到達某個地址的傳輸MTU值,并向BGP模塊通告達 到某個地址的MTU值。為了實現(xiàn)利用上述學(xué)習(xí)到的MTU進行數(shù)據(jù)轉(zhuǎn)發(fā),在該裝置中,還可以設(shè)置數(shù)據(jù)轉(zhuǎn) 發(fā)模塊,用于利用學(xué)習(xí)到的MTU執(zhí)行數(shù)據(jù)報文的分片和轉(zhuǎn)發(fā)。上述功能模塊的劃分和實現(xiàn)方式僅是一個具體實例,本發(fā)明實施例提供的MTU的 學(xué)習(xí)裝置并不限于上述的具體實現(xiàn)方式。本發(fā)明實施例還提供了一種路由設(shè)備,該路由設(shè)備包含本發(fā)明實施例提供的上述 MTU學(xué)習(xí)裝置。較佳地,本發(fā)明實施例提供的上述路由設(shè)備,在實際組網(wǎng)時,可以作為6PE應(yīng)用場 景中的運營商邊界設(shè)備或者自治系統(tǒng)邊界路由器。本發(fā)明實施例提供的最大傳輸單元的學(xué)習(xí)方法、裝置及路由設(shè)備,對于IPv4網(wǎng)絡(luò) 中形成的IPv6報文傳輸隧道中的每個運行BGP的路由設(shè)備,執(zhí)行下述操作即接收上游 BGP鄰居通告的到達IPv6網(wǎng)絡(luò)的BGP路由信息;該BGP路由信息攜帶有該上游BGP鄰居確 定出的到達IPv6網(wǎng)絡(luò)的路由的第一 MTU ;對接收的BGP路由信息攜帶的到達該IPv6網(wǎng)絡(luò) 的BGP路由下一跳對應(yīng)的第二 MTU進行探測;比較第一 MTU與探測到的第二 MTU的大小,將 兩者中較小值作為確定出的到達IPv6網(wǎng)絡(luò)的BGP路由的第三MTU并保存;如果還存在下游 BGP鄰居,則將第三MTU攜帶在到達該IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至下游BGP鄰居, 直至該隧道中的每個運行BGP的路由設(shè)備都學(xué)習(xí)到了到達該IPv6網(wǎng)絡(luò)的BGP路由對應(yīng)的 MTU。本發(fā)明實施例在支持BGP協(xié)議的運營商邊界設(shè)備和自治系統(tǒng)邊界路由之間通過BGP路 由傳遞MTU的值,使得傳輸IPv6報文的隧道的終點即連接另一 IPv6網(wǎng)絡(luò)的運營商邊界設(shè) 備可以計算出到達目的IPv6網(wǎng)絡(luò)的路由中各跳的MTU的最小值,并將其作為發(fā)送IPv6報 文是否需要進行分片的依據(jù),經(jīng)過上述過程之后,在該隧道的終點收到發(fā)往該IPv6網(wǎng)絡(luò)的 IPv6報文時,將該報文的大小與自身保存的MTU的大小進行比較,決定是否需要分片,如果 進行分片,分片后的報文的長度是到達該IPv6網(wǎng)絡(luò)的路由中各跳MTU的最小值,因此,對于 通過IPv4網(wǎng)絡(luò)實現(xiàn)IPv6網(wǎng)絡(luò)的互聯(lián)互通的應(yīng)用場景尤其是跨多個IPv4自治域?qū)崿F(xiàn)IPv6 網(wǎng)絡(luò)的互聯(lián)互通的應(yīng)用場景來說,不論IPv4網(wǎng)絡(luò)中傳輸IPv6報文的隧道需要跨越多少中 間設(shè)備(例如P設(shè)備)或邊界設(shè)備,任何中間設(shè)備或者邊界設(shè)備,都不會因為IPv6報文長 度的大小超出了該路由設(shè)備出接口的MTU的大小而丟棄該IPv6報文,從而避免了現(xiàn)有6PE 技術(shù)出現(xiàn)的IPv6報文的傳輸受阻的情況,并且在該隧道的終點對收到的IPv6報文進行分 片操作后,該隧道中其他路由設(shè)備也不會再執(zhí)行報文的分片操作,提高了 IPv6報文在隧道 中轉(zhuǎn)發(fā)效率。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
一種最大傳輸單元MTU的學(xué)習(xí)方法,其特征在于,包括接收IPv6報文傳輸隧道中上游邊界網(wǎng)關(guān)協(xié)議BGP鄰居通告的到達IPv6網(wǎng)絡(luò)的BGP路由信息;所述BGP路由信息中攜帶有所述上游BGP鄰居確定出的到達IPv6網(wǎng)絡(luò)的路由的第一MTU;對接收的所述BGP路由信息攜帶的到達該IPv6網(wǎng)絡(luò)的BGP路由下一跳對應(yīng)的第二MTU進行探測;比較所述第一MTU與探測到的第二MTU的大小,將兩者中的較小值作為確定出的到達IPv6網(wǎng)絡(luò)的BGP路由的第三MTU并保存;確定所述隧道中是否還存在下游BGP鄰居,若存在,將所述第三MTU攜帶在到達該IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至所述下游BGP鄰居。
2.如權(quán)利要求1所述的方法,其特征在于,在到達IPv6網(wǎng)絡(luò)的BGP路由信息中攜帶第 一 MTU或者第三MTU,通過下述方式實現(xiàn)自定義BGP路由信息中的擴展團體屬性,將自定義的擴展團體屬性的類型字段設(shè)置為 MTU ;將第一 MTU或第三MTU的值封裝在所述擴展團體屬性的Value字段中。
3.如權(quán)利要求1所述的方法,其特征在于,所述上游BGP鄰居為連接該IPv6網(wǎng)絡(luò)的運 營商邊界設(shè)備時,所述第一 MTU為所述運營商邊界設(shè)備獲取的所述運營商邊界設(shè)備中與到 達IPv6網(wǎng)絡(luò)的路由對應(yīng)的出接口的MTU。
4.如權(quán)利要求1-3任一項所述的方法,其特征在于,還包括保存所述第一 MTU值與所述探測到的第二 MTU的值。
5.如權(quán)利要求4所述的方法,其特征在于,在當(dāng)前接收的上游BGP鄰居通告的BGP路由 信息中的第一 MTU與保存的第一 MTU值不相等時,還包括比較當(dāng)前接收的所述BGP路由信息中的第一 MTU與保存的第二 MTU的大小確定兩者中 的較小值,并當(dāng)所述較小值與保存的第三MTU不相等時,使用所述較小值更新保存的第三 MTU,確定所述隧道中是否還存在下游BGP鄰居,若存在,將更新后的第三MTU攜帶在到達該 IPv6的BGP路由信息中并通告至所述下游BGP鄰居。
6.如權(quán)利要求4所述的方法,其特征在于,將所述第三MTU攜帶在到達該IPv6網(wǎng)絡(luò)的 BGP路由信息中并通告至所述下游BGP鄰居的步驟之后,還包括周期地對到達該IPv6網(wǎng)絡(luò)的BGP路由下一跳的第二 MTU進行探測,并在當(dāng)前探測到的 第二 MTU與保存的第二 MTU不相等時,比較當(dāng)前探測到的第二 MTU與保存的第一 MTU確定 兩者中的較小值;并當(dāng)所述較小值與保存的第三MTU不相等時,使用所述較小值更新保存 的第三MTU的值,確定所述隧道中是否還存在下游BGP鄰居,若存在,將更新后的第三MTU 攜帶在到達該IPv6的BGP路由信息中并通告至隧道中的下游BGP鄰居。
7.一種最大傳輸單元MTU的學(xué)習(xí)裝置,其特征在于,包括BGP路由信息接收單元,用于接收IPv6報文傳輸隧道中上游邊界網(wǎng)關(guān)協(xié)議BGP鄰居通 告的到達IPv6網(wǎng)絡(luò)的BGP路由信息;所述BGP路由信息中攜帶有所述上游BGP鄰居確定出 的到達IPv6網(wǎng)絡(luò)的路由的第一 MTU ;MTU探測單元,用于對接收的所述BGP路由信息攜帶的到達該IPv6網(wǎng)絡(luò)的BGP路由下 一跳對應(yīng)的第二 MTU進行探測;比較單元,用于將比較所述第一MTU與探測到的第二MTU的大小,將兩者中較小值作為確定出的到達IPv6網(wǎng)絡(luò)的BGP路由的第三MTU并保存;路由通告單元,用于確定所述隧道中是否還存在下游BGP鄰居,若存在,將所述第三 MTU攜帶在到達該IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至所述下游BGP鄰居。
8.如權(quán)利要求7所述的裝置,其特征在于,所述路由通告單元,進一步用于自定義BGP 路由信息中的擴展團體屬性,將自定義的擴展團體屬性的類型字段設(shè)置為MTU ;將第三MTU 的值封裝在所述擴展團體屬性的Value字段中。
9.如權(quán)利要求7或8所述的裝置,其特征在于,還包括MTU更新單元;所述比較單元,還用于在BGP路由信息接收單元當(dāng)前接收的上游BGP鄰居通告的BGP 路由信息中的第一 MTU與保存的第一 MTU值不相等時,比較當(dāng)前接收的所述BGP路由信息 中的第一 MTU與保存的第二 MTU的大小確定兩者中的較小值;所述MTU更新單元,用于當(dāng)所述較小值與保存的第三MTU不相等時,使用所述較小值更 新保存的第三MTU;所述路由通告單元,還用于確定所述隧道中是否還存在下游BGP鄰居,若存在,將更新 后的第三MTU攜帶在到達該IPv6的BGP路由信息中并通告至所述下游BGP鄰居。
10.如權(quán)利要求7或8所述的裝置,其特征在于,還包括MTU更新單元;所述MTU探測單元,還用于在路由通告單元將所述第三MTU攜帶在到達該IPv6網(wǎng)絡(luò)的 BGP路由信息中并通告至所述下游BGP鄰居的步驟之后,周期地對到達該IPv6網(wǎng)絡(luò)的BGP 路由下一跳的第二 MTU進行探測;所述比較單元,還用于在所述MTU探測單元當(dāng)前探測到的第二 MTU與保存的第二 MTU 不相等時,比較當(dāng)前探測到的第二 MTU與保存的第一 MTU確定兩者中的較小值;所述MTU更新單元,用于當(dāng)所述較小值與保存的第三MTU不相等時,使用所述較小值更 新保存的第三MTU的值;所述路由通告單元,還用于確定所述隧道中是否還存在下游BGP鄰居,若存在,將更新 后的第三MTU攜帶在到達該IPv6的BGP路由信息中并通告至隧道中的下游BGP鄰居。
11.如權(quán)利要求7所述的裝置,其特征在于,當(dāng)所述裝置位于連接該IPv6網(wǎng)絡(luò)的運營商 邊界設(shè)備中時,還包括獲取單元,用于獲取所述運營商邊界設(shè)備中與到達IPv6網(wǎng)絡(luò)的路由對應(yīng)的出接口的MTU ;所述路由通告單元,還用于確定所述隧道中是否還存在下游BGP鄰居,若存在,將獲取 到所述出接口的MTU攜帶在到達該IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至所述下游BGP鄰居。
12.—種路由設(shè)備,其特征在于,包括如權(quán)利要求7 11任一項所述的最大傳輸單元 MTU的學(xué)習(xí)裝置。
全文摘要
本發(fā)明公開了一種最大傳輸單元的學(xué)習(xí)方法、裝置及路由設(shè)備,該方法包括接收IPv6報文傳輸隧道中上游BGP鄰居通告的到達IPv6網(wǎng)絡(luò)的BGP路由信息;該BGP路由信息中攜帶有上游BGP鄰居確定出的到達IPv6網(wǎng)絡(luò)的路由的第一MTU;對該BGP路由信息攜帶的BGP路由下一跳對應(yīng)的第二MTU進行探測;比較第一MTU與第二MTU的大小,將較小值作為確定出的到達IPv6網(wǎng)絡(luò)的BGP路由的第三MTU并保存;在確定該隧道中還存在下游BGP鄰居時,將第三MTU攜帶在到達該IPv6網(wǎng)絡(luò)的BGP路由信息中并通告至下游BGP鄰居。本發(fā)明解決了IPv6報文在傳輸過程中傳輸受阻以及被多次分片導(dǎo)致的報文轉(zhuǎn)發(fā)效率低的問題。
文檔編號H04L12/56GK101977156SQ20101054994
公開日2011年2月16日 申請日期2010年11月18日 優(yōu)先權(quán)日2010年11月18日
發(fā)明者吳夢非, 姚輝, 林東豪, 賈攀 申請人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司