本發(fā)明涉及IPv6(InternetProtocolVersion6,互聯(lián)網(wǎng)協(xié)議版本6)隧道方法
技術(shù)領(lǐng)域:
,具體涉及一種調(diào)整IPv6隧道最大傳輸單元的方法和裝置。
背景技術(shù):
:目前的IPv6隧道接口是邏輯接口,可以通過命令創(chuàng)建和刪除,并且隧道接口和supervlan(VLAN聚合,VirtualLocalAreaNetwork,虛擬局域網(wǎng)),smartgroup(鏈路聚合形成的邏輯端口)這些邏輯接口不同,IPv6隧道實(shí)際物理接口是不能通過命令綁定確認(rèn)的,而是通過查詢路由表動態(tài)獲得的,路由接口的變化可能導(dǎo)致隧道出接口的實(shí)際接口發(fā)生變化。IPv6隧道是三層接口,可以獨(dú)立的部署三層業(yè)務(wù),支持MTU(MaximumTransmissionUnit,最大傳輸單元)的配置,鏈路的實(shí)際發(fā)包能力受鏈路實(shí)際出接口的MTU的限制,因此隧道接口和物理接口的MTU是存在約束關(guān)系的。這種約束關(guān)系會導(dǎo)致隧道的二次分片。若有多層隧道嵌套環(huán)境存在,會產(chǎn)生多次分片的情況,對主控產(chǎn)生壓力,若上送報(bào)文被控制面安全丟棄,還會產(chǎn)生分片中的部分報(bào)文被丟棄,報(bào)文不能重組的情況。技術(shù)實(shí)現(xiàn)要素:為了解決上述由于隧道多次分片而導(dǎo)致主控的上送報(bào)文壓力過大的問題,本發(fā)明提供一種調(diào)整IPv6隧道最大傳輸單元的方法和裝置。為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采取的技術(shù)方案如下:一種調(diào)整IPv6隧道最大傳輸單元的方法,包括:當(dāng)接收到的IPv6隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文時(shí),將所述隧道報(bào)文的報(bào)文長度與實(shí)際出接口的最大傳輸單元MTU值比較;當(dāng)所述隧道報(bào)文的報(bào)文長度大于所述實(shí)際出接口的MTU值時(shí),根據(jù)所述隧道報(bào)文的報(bào)文長度與所述實(shí)際出接口的MTU值的差值,調(diào)整所述隧道接口的MTU的生效值和/或所述實(shí)際出接口的MTU的生效值。進(jìn)一步地,在接收到的隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文之前,還包括:設(shè)置所述隧道接口的MTU值和/或所述實(shí)際出接口的MTU值。進(jìn)一步地,所述方法還包括:當(dāng)所述隧道報(bào)文的報(bào)文長度小于或者等于所述MTU值時(shí),保持所述隧道接口的MTU值和所述實(shí)際出接口的MTU值不變。進(jìn)一步地,確定接收到的隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文包括:根據(jù)所述隧道報(bào)文中的網(wǎng)絡(luò)互連協(xié)議IP報(bào)文的片偏移量值,確定接收到的隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文。進(jìn)一步地,所述根據(jù)所述隧道報(bào)文的報(bào)文長度與所述實(shí)際出接口的MTU值的差值,調(diào)整所述隧道接口的MTU的生效值和/或所述實(shí)際出接口的MTU的生效值包括:將所述隧道接口的MTU的生效值調(diào)整為設(shè)置的所述隧道接口的MTU值減去所述差值;和/或,將所述實(shí)際出接口的MTU的生效值調(diào)整為設(shè)置的所述實(shí)際出接口的MTU值加上所述差值。本發(fā)明還提供一種調(diào)整IPv6隧道最大傳輸單元的裝置,包括:比較模塊,用于當(dāng)接收到的IPv6隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文時(shí),將所述隧道報(bào)文的報(bào)文長度與實(shí)際出接口的最大傳輸單元MTU值比較;調(diào)整模塊,用于當(dāng)所述隧道報(bào)文的報(bào)文長度大于所述實(shí)際出接口的MTU值時(shí),根據(jù)所述隧道報(bào)文的報(bào)文長度與所述實(shí)際出接口的MTU值的差值,調(diào)整所述隧道接口的MTU的生效值和/或所述實(shí)際出接口的MTU的生效值??蛇x地,所述裝置還包括:設(shè)置模塊,用于設(shè)置所述隧道接口的MTU值和/或所述實(shí)際出接口的MTU值??蛇x地,所述裝置還包括:保持模塊,用于當(dāng)所述隧道報(bào)文的報(bào)文長度小于或者等于所述MTU值時(shí),保持所述隧道接口的MTU值和所述實(shí)際出接口的MTU值不變。可選地,所述比較模塊中確定接收到的隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文是指:根據(jù)所述隧道報(bào)文中的網(wǎng)絡(luò)互連協(xié)議IP報(bào)文的片偏移量值,確定接收到的隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文??蛇x地,所述調(diào)整模塊用于:將所述隧道接口的MTU的生效值調(diào)整為設(shè)置的所述隧道接口的MTU值減去所述差值;和/或,將所述實(shí)際出接口的MTU的生效值調(diào)整為設(shè)置的所述實(shí)際出接口的MTU值加上所述差值。本發(fā)明和現(xiàn)有技術(shù)相比,具有如下有益效果:本發(fā)明提供的方法和裝置通過調(diào)整隧道MTU防止由于隧道多次分片而導(dǎo)致主控的上送報(bào)文壓力過大的問題,提升IPv6隧道的分片轉(zhuǎn)發(fā)性能,防止隧道多次分片,緩解IPv6隧道分片報(bào)文部分報(bào)文丟失導(dǎo)致無法重組的情況。附圖說明圖1是本發(fā)明實(shí)施例的一種調(diào)整IPv6隧道最大傳輸單元的方法的流程圖;圖2是本發(fā)明實(shí)施例的一種調(diào)整IPv6隧道最大傳輸單元的裝置的結(jié)構(gòu)示意圖;圖3是本發(fā)明實(shí)施例二調(diào)整IPv6隧道最大傳輸單元的基本架構(gòu)圖;圖4是本發(fā)明實(shí)施例二調(diào)整IPv6隧道最大傳輸單元的流程圖。具體實(shí)施方式為使本發(fā)明的發(fā)明目的、技術(shù)方案和有益效果更加清楚明了,下面結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行說明,需要說明的是,在不沖突的情況下,本申請中的實(shí)施例和實(shí)施例中的特征可以相互任意組合。如圖1所示,本發(fā)明實(shí)施例提供的一種調(diào)整IPv6隧道最大傳輸單元的方法,包括:當(dāng)接收到的IPv6隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文時(shí),將所述隧道報(bào)文的報(bào)文長度與實(shí)際出接口的最大傳輸單元MTU值比較;當(dāng)所述隧道報(bào)文的報(bào)文長度大于所述實(shí)際出接口的MTU值時(shí),根據(jù)所述隧道報(bào)文的報(bào)文長度與所述實(shí)際出接口的MTU值的差值,調(diào)整所述隧道接口的MTU的生效值和/或所述實(shí)際出接口的MTU的生效值。在接收到的隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文之前,還包括:設(shè)置所述隧道接口的MTU值和/或所述實(shí)際出接口的MTU值。所述方法還包括:當(dāng)所述隧道報(bào)文的報(bào)文長度小于或者等于所述MTU值時(shí),保持所述隧道接口的MTU值和所述實(shí)際出接口的MTU值不變。確定接收到的隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文包括:根據(jù)所述隧道報(bào)文中的網(wǎng)絡(luò)互連協(xié)議IP報(bào)文的片偏移量offest值,確定接收到的隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文。所述根據(jù)所述隧道報(bào)文的報(bào)文長度與所述實(shí)際出接口的MTU值的差值,調(diào)整所述隧道接口的MTU的生效值和/或所述實(shí)際出接口的MTU的生效值包括:將所述隧道接口的MTU的生效值調(diào)整為設(shè)置的所述隧道接口的MTU值減去所述差值;和/或,將所述實(shí)際出接口的MTU的生效值調(diào)整為設(shè)置的所述實(shí)際出接口的MTU值加上所述差值。IPv6隧道外層可以封裝IPv4頭,也可以封裝IPv6頭,根據(jù)IPv6隧道下面的IPv4報(bào)文或者IPv6報(bào)文的offest值來確定報(bào)文是不是分片報(bào)文,當(dāng)主 控收到的報(bào)文的下掛的IP頭里層的offest值為0,表示為第一片包或者未分片報(bào)文,IPv6隧道按照收到的第一片報(bào)文的長度與實(shí)際出接口的MTU對比,當(dāng)收到封裝了隧道頭的offest=0的報(bào)文大于實(shí)際出接口的MTU值的時(shí)候,取兩個(gè)MTU的差值,動態(tài)調(diào)整隧道接口MTU值為原隧道接口MTU減去這個(gè)差值,當(dāng)收到封裝了隧道頭的offest=0的報(bào)文小于或等于實(shí)際出接口的MTU值的時(shí)候,隧道接口MTU值不做修改。當(dāng)隧道的實(shí)際出接口發(fā)生改變或者配置到該隧道實(shí)際出接口的MTU發(fā)生改變或者隧道接口的MTU發(fā)生改變的時(shí)候,對應(yīng)的隧道接口協(xié)議需要通過流量動態(tài)感知。若檢測到報(bào)文的offest值不為0,則不調(diào)整隧道接口MTU的大小為分片報(bào)文。如有變化對外通知更新。如圖2所示,本發(fā)明實(shí)施例提供一種調(diào)整IPv6隧道最大傳輸單元的裝置,包括:比較模塊,用于當(dāng)接收到的IPv6隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文時(shí),將所述隧道報(bào)文的報(bào)文長度與實(shí)際出接口的最大傳輸單元MTU值比較;調(diào)整模塊,用于當(dāng)所述隧道報(bào)文的報(bào)文長度大于所述實(shí)際出接口的MTU值時(shí),根據(jù)所述隧道報(bào)文的報(bào)文長度與所述實(shí)際出接口的MTU值的差值,調(diào)整所述隧道接口的MTU的生效值和/或所述實(shí)際出接口的MTU的生效值。所述裝置還包括:設(shè)置模塊,用于設(shè)置所述隧道接口的MTU值和/或所述實(shí)際出接口的MTU值。所述裝置還包括:保持模塊,用于當(dāng)所述隧道報(bào)文的報(bào)文長度小于或者等于所述MTU值時(shí),保持所述隧道接口的MTU值和所述實(shí)際出接口的MTU值不變。所述比較模塊中確定接收到的隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文是指:根據(jù)所述隧道報(bào)文中的網(wǎng)絡(luò)互連協(xié)議IP報(bào)文的片偏移量offest值,確定接收到的隧道報(bào)文是第一片報(bào)文或者未分片報(bào)文。所述調(diào)整模塊用于:將所述隧道接口的MTU的生效值調(diào)整為設(shè)置的所述隧道接口的MTU值減去所述差值;和/或,將所述實(shí)際出接口的MTU的生效值調(diào)整為設(shè)置的所述實(shí)際出接口的MTU值加上所述差值。實(shí)施例一本發(fā)明實(shí)施例采用以下技術(shù)方案防止IPv6隧道二次分片:A、分布式交換機(jī)/路由器系統(tǒng),IPv6隧道接口MTU調(diào)整由主控來實(shí)現(xiàn);B、通過在OAM(OperationAdministrationandMaintenance,操作、管理和維護(hù))配置隧道實(shí)際出接口的MTU;C、當(dāng)實(shí)際出接口配置MTU時(shí),IPv6隧道的隧道接口MTU按照隧道口的配置值生效,或者按照之前生效的MTU值生效;D、根據(jù)上送上來的報(bào)文的offest值來確定是否需要重新設(shè)置隧道接口MTU值;E、判斷需要重新設(shè)置隧道接口MTU值,將當(dāng)前獲得的可能值進(jìn)行判斷;F、判斷需要調(diào)整的值的大小,更新IPv6隧道的隧道接口MTU的大小為當(dāng)前報(bào)文的隧道接口MTU減去調(diào)整值的小大,并將更新通知給協(xié)議;G、將生效值通知FTM(forwardtablemanage,轉(zhuǎn)發(fā)表管理)寫表;H、NP(NetworkProcessor,網(wǎng)絡(luò)處理器)通過FTM讀取最后生效值。本發(fā)明所述動態(tài)調(diào)整隧道接口MTU實(shí)現(xiàn)的方法包括以下步驟:第一步:telnet到設(shè)備OAM界面配置IPv6隧道接口的MTU值和實(shí)際出接口的MTU值;第二步:流量在底層封裝IPv6隧道頭之前進(jìn)行分片;第三步:設(shè)備實(shí)時(shí)監(jiān)控上送MPU(MicroprocessorUnit,微處理器,是T8000系列路由器的主控板,負(fù)責(zé)完成系統(tǒng)的管理和路由功能)的IPv6隧道報(bào)文大小和offest值;第四步:當(dāng)IPv6隧道頭下掛的IP報(bào)文頭的offest值非0的時(shí)候,不判斷當(dāng)前報(bào)文的大小和實(shí)際出接口MTU的大小,當(dāng)報(bào)文里面offest=0的時(shí)候,對比報(bào)文的大小與實(shí)際出接口MTU的大??;第五步:發(fā)現(xiàn)當(dāng)前報(bào)文的大小小于或者等于實(shí)際出接口的MTU的值的時(shí)候,;并維持當(dāng)前隧道接口MTU值不變;發(fā)現(xiàn)當(dāng)前IPv6隧道報(bào)文的大小大于當(dāng)前生效的實(shí)際出接口MTU值時(shí),執(zhí)行第六步第六步:更新隧道接口MTU;第七步:更新后的生效值通知FTM寫表;第八步:NP從FTM讀取生效值。實(shí)施例二硬件模塊部分包括:設(shè)備的主控板和線卡。其中主控板需要OAM進(jìn)行實(shí)際出接口的MTU的配置,線卡板實(shí)現(xiàn)根據(jù)實(shí)際出接口MTU對流量進(jìn)行處理的功能。流程部分的處理步驟如下:比如在v6_tunnel1實(shí)際出接口配置了MTU值為A,v6_tunnel1口配置的MTU值為B,V6隧道頭大小為D,按照圖3的架構(gòu)和圖4中的流程,首先設(shè)置模塊根據(jù)配置的隧道接口IPMTU生效;1)線卡根據(jù)隧道接口的MTU值B對進(jìn)入IPv6隧道前的報(bào)文進(jìn)行分片;2)動態(tài)調(diào)整之前,IPv6隧道接口的MTU值為配置值B,將B作為生效值進(jìn)行分片;3)分片后,報(bào)文封裝上IPv6隧道頭上送主控,報(bào)文大小為B+D;4)封裝上IPv6隧道頭后根據(jù)上送IPv6隧道報(bào)文里面下掛的IP頭的offest字段確認(rèn)是否要讀取此片報(bào)文的大??;5)比較模塊讀取IPv6隧道報(bào)文里面下掛的IP頭的offest=0的報(bào)文的大小為B+D;6)若B+D>A,將B+D通知給調(diào)整模塊;7)調(diào)整模塊獲取值B+D-A,更新隧道接口的MTU為A-D;8)若B+D<A或B+D=A,保持模塊不修改隧道接口的MTU;9)下一次通知接調(diào)整模塊更新時(shí),以A-D為生效值與新讀取的實(shí)際出接口的MTU進(jìn)行比對。雖然本發(fā)明所揭示的實(shí)施方式如上,但其內(nèi)容只是為了便于理解本發(fā)明的技術(shù)方案而采用的實(shí)施方式,并非用于限定本發(fā)明。任何本發(fā)明所屬
技術(shù)領(lǐng)域:
內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭示的核心技術(shù)方案的前提下,可以在實(shí)施的形式和細(xì)節(jié)上做任何修改與變化,但本發(fā)明所限定的保護(hù)范圍,仍須以所附的權(quán)利要求書限定的范圍為準(zhǔn)。當(dāng)前第1頁1 2 3