平滑重啟gr的處理方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及網(wǎng)絡(luò)通信技術(shù),特別涉及平滑重啟(GR :Graceful Restart)的處理方 法和設(shè)備。
【背景技術(shù)】
[0002] 虛擬可擴(kuò)展局域網(wǎng)(VXLAN :Virtual extensible Local Area Network)的控制層 面運(yùn)行中間系統(tǒng)至中間系統(tǒng)(ISIS 〖Intermediate System Intermediate System)協(xié)議,隧 道端點(diǎn)(VTEP :VXLAN Tunnel End Point)生成鏈路狀態(tài)報(bào)文(LSP :Link-State Packet)并 通過(guò)隧道(Tunnel)同步給鄰居,LSP報(bào)文包含VTEP本地虛擬機(jī)(VM:Virtual Machine)的 鏈路狀態(tài)信息,VM的鏈路狀態(tài)信息指VM的MAC、路由、所屬的VXLAN標(biāo)識(shí)(ID)等。
[0003] 每個(gè)VTEP本地可能存在大量VM,VTEP生成的LSP報(bào)文的最大長(zhǎng)度受接口 MTU等 限制,所以當(dāng)一個(gè)VTEP本地大量VM的鏈路狀態(tài)信息的長(zhǎng)度大于LSP報(bào)文的最大長(zhǎng)度時(shí),一 個(gè)LSP報(bào)文是不足以攜帶VTEP本地大量VM的鏈路狀態(tài)信息,基于此,VTEP會(huì)生成多個(gè)LSP 報(bào)文分片,生成的LSP報(bào)文分片的最大長(zhǎng)度小于或等于LSP報(bào)文的最大長(zhǎng)度,VTEP將本地 大量VM的鏈路狀態(tài)信息分散在LSP報(bào)文分片中,之后生成每一個(gè)LSP報(bào)文分片對(duì)應(yīng)的LSP 報(bào)文并同步給對(duì)端VTEP。
[0004] 當(dāng)VTEP發(fā)生GR時(shí),VTEP會(huì)把本地所有VM的鏈路狀態(tài)信息進(jìn)行重組生成多個(gè)LSP 報(bào)文分片,這可能會(huì)出現(xiàn)在GR前后VTEP本地同一 VM的鏈路狀態(tài)信息攜帶在序列號(hào)不同的 LSP報(bào)文分片中,而VTEP本地同一 VM的鏈路狀態(tài)信息攜帶在不同序列號(hào)的LSP報(bào)文分片中 會(huì)引起隧道對(duì)端VTEP重新計(jì)算路由表項(xiàng)、出現(xiàn)流量短暫中斷。
【發(fā)明內(nèi)容】
[0005] 本申請(qǐng)?zhí)峁┝似交貑R的處理方法和設(shè)備,以防止GR過(guò)程中流量中斷。
[0006] 本申請(qǐng)?zhí)峁┑募夹g(shù)方案包括:
[0007] -種平滑重啟GR的處理方法,該方法應(yīng)用于使能了 GR功能的設(shè)備,包括:
[0008] 協(xié)議重啟后,獲取本設(shè)備在協(xié)議重啟之前發(fā)送給鄰居的鏈路狀態(tài)信息和所述鏈路 狀態(tài)信息所處的LSP報(bào)文分片的序列號(hào),將所述鏈路狀態(tài)信息和所述鏈路狀態(tài)信息所處的 LSP報(bào)文分片的序列號(hào)對(duì)應(yīng)記錄至本地;
[0009] 獲取本地的鏈路狀態(tài)信息;
[0010] 針對(duì)獲取的每一鏈路狀態(tài)信息,確定本地是否已記錄該VM鏈路狀態(tài)信息對(duì)應(yīng)的 LSP報(bào)文分片的序列號(hào),如果是,將該VM鏈路狀態(tài)信息添加至對(duì)應(yīng)的LSP報(bào)文分片中; [0011] 依據(jù)所述LSP報(bào)文分片生成對(duì)應(yīng)的LSP報(bào)文并發(fā)送給所述鄰居。
[0012] 一種防止平滑重啟GR過(guò)程中流量中斷的設(shè)備,該設(shè)備使能了 GR功能,包括:
[0013] 第一獲取單元,用于協(xié)議重啟后,獲取本設(shè)備在協(xié)議重啟之前發(fā)送給鄰居的鏈路 狀態(tài)信息和所述鏈路狀態(tài)信息所處的LSP報(bào)文分片的序列號(hào),將所述鏈路狀態(tài)信息和所述 鏈路狀態(tài)信息所處的LSP報(bào)文分片的序列號(hào)對(duì)應(yīng)記錄至本地;
[0014] 第二獲取單元,用于獲取本地的鏈路狀態(tài)信息;
[0015] 報(bào)文分片單元,用于針對(duì)所述第二獲取單元獲取的每一鏈路狀態(tài)信息,確定本地 是否已記錄該VM鏈路狀態(tài)信息對(duì)應(yīng)的LSP報(bào)文分片的序列號(hào),如果是,將該VM鏈路狀態(tài)信 息添加至對(duì)應(yīng)的LSP報(bào)文分片中;
[0016] 發(fā)送單元,用于依據(jù)所述LSP報(bào)文分片生成對(duì)應(yīng)的LSP報(bào)文并發(fā)送給所述鄰居。
[0017] 由以上技術(shù)方案可以看出,本發(fā)明中,能夠保證VTEP本地同一鏈路狀態(tài)信息比如 VM鏈路狀態(tài)信息在協(xié)議重啟前后所處的LSP報(bào)文分片序列號(hào)不變,避免了 VTEP的鄰居因 VTEP本地同一 VM的鏈路狀態(tài)信息攜帶在序列號(hào)不同的LSP報(bào)文分片中而引起的重新計(jì)算 路由表項(xiàng)、流量短暫中斷等問(wèn)題。
【附圖說(shuō)明】
[0018] 圖1為本發(fā)明提供的方法流程圖;
[0019] 圖2為L(zhǎng)SP報(bào)文分片結(jié)構(gòu)示意圖;
[0020] 圖3為T(mén)LV格式示意圖;
[0021] 圖4為本發(fā)明提供的實(shí)施例示意圖;
[0022] 圖5為本發(fā)明提供的設(shè)備結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0023] 為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì) 本發(fā)明進(jìn)行詳細(xì)描述。
[0024] 下面對(duì)本發(fā)明提供的方法進(jìn)行描述:
[0025] 參見(jiàn)圖1,圖1為本發(fā)明提供的方法流程圖。該流程應(yīng)用于使能了 GR功能的設(shè)備, 該設(shè)備具體實(shí)現(xiàn)時(shí)可有多種實(shí)現(xiàn)形式,比如VTEP、TRILL路由橋(Rbridge),EVI網(wǎng)絡(luò)中ISIS 邊緣設(shè)備(ED)等。這里,當(dāng)設(shè)備使能了 GR功能,也就意味著設(shè)備可以在協(xié)議重啟時(shí)執(zhí)行 GR。這里的協(xié)議重啟具體可為:主備倒換、進(jìn)程重啟等,本發(fā)明并不具體限定。
[0026] 如圖1所示,該流程可包括以下步驟:
[0027] 步驟101,協(xié)議重啟后,獲取本設(shè)備在協(xié)議重啟之前發(fā)送給鄰居的鏈路狀態(tài)信息和 鏈路狀態(tài)信息所處的LSP報(bào)文分片的序列號(hào),將確定的鏈路狀態(tài)信息和LSP報(bào)文分片的序 列號(hào)對(duì)應(yīng)記錄至本地。
[0028] 這里的鏈路狀態(tài)信息具體實(shí)現(xiàn)時(shí)可包括:設(shè)備本地各VM的鏈路狀態(tài)信息比如 MAC、路由等,設(shè)備本地的ARP表項(xiàng)、設(shè)備本地支持的VLAN信息、VLAN信息所屬的虛擬交換 接口(VSI :Virtual Switch Interface)等,本發(fā)明并不具體限定。
[0029] 為融合現(xiàn)有GR過(guò)程中的各個(gè)階段,步驟101可為本發(fā)明對(duì)現(xiàn)有GR過(guò)程進(jìn)行改進(jìn) 額外增加的階段,記為L(zhǎng)SP穩(wěn)定(STABLE)階段。現(xiàn)有GR過(guò)程中包含很多個(gè)階段,如LSDP 同步階段、路由計(jì)算階段、LSP報(bào)文產(chǎn)生階段等,本發(fā)明額外增加的LSP STABLE階段在時(shí)間 先后順序上會(huì)介于現(xiàn)有GR過(guò)程中的LSDP同步階段和路由計(jì)算階段之間,但是,在具體實(shí)現(xiàn) 上,本發(fā)明額外增加的LSP STABLE階段并不影響GR過(guò)程中原有的階段,因此,本發(fā)明并不 再重點(diǎn)描述GR過(guò)程中原有的階段。
[0030] 在LSDB同步階段中,設(shè)備會(huì)向鄰居發(fā)送請(qǐng)求報(bào)文以請(qǐng)求本設(shè)備在協(xié)議重啟之前 發(fā)送給鄰居的LSP報(bào)文,當(dāng)鄰居收到請(qǐng)求報(bào)文后,將設(shè)備在協(xié)議重啟之前發(fā)送的LSP報(bào)文 再返回給設(shè)備,這里,設(shè)備在協(xié)議重啟之前發(fā)送給鄰居的LSP報(bào)文包含了鏈路狀態(tài)信息和 鏈路狀態(tài)信息所處的LSP報(bào)文分片的序列號(hào)。圖2示出了 LSP報(bào)文的結(jié)構(gòu)。鏈路狀態(tài)信息 是攜帶在LSP報(bào)文的變長(zhǎng)字段(Variable Length Fields)中,鏈路狀態(tài)信息由類型-長(zhǎng) 度-數(shù)值(TLV =Type-Length-Value)三元組組成,每一個(gè)TLV代表一個(gè)鏈路狀態(tài)信息,TLV 的格式如圖3所示,在圖3中,T字段包含攜帶鏈路狀態(tài)信息的類型值,L字段包含TLV的 長(zhǎng)度,V字段包含鏈路狀態(tài)信息。在圖2所示的LSP報(bào)文結(jié)構(gòu)中,鏈路狀態(tài)信息所處的LSP 報(bào)文分片的序列號(hào)是包含在LSP報(bào)文的LSP標(biāo)識(shí)(ID)字段中,這里,LSPID字段由系統(tǒng)號(hào) (System ID)、偽節(jié)點(diǎn)號(hào)和LSP報(bào)文分片的分片序列號(hào)三部分組成,其中,System ID由MAC 地址表示。至于圖2所示的LSP報(bào)文結(jié)構(gòu)中的其他字段,在本發(fā)明不重點(diǎn)涉及,這里不再贅 述。
[0031] 基于圖2、圖3所示的LSP報(bào)文的結(jié)構(gòu),步驟101中獲取本設(shè)備在協(xié)議重啟之前發(fā) 送給鄰居的鏈路狀態(tài)信息和所述鏈路狀態(tài)信息所處的LSP報(bào)文分片的序列號(hào)具體為:
[0032] 從鄰居獲取本設(shè)備在協(xié)議重啟之前發(fā)送給鄰居的LSP報(bào)文,
[0033] 從該LSP報(bào)文獲取該LSP報(bào)文攜帶的鏈路狀態(tài)信息和該鏈路狀態(tài)信息所處的LSP 報(bào)文分片的序列號(hào)。這里,從鄰居獲取的LSP報(bào)文的數(shù)量可不止一個(gè),當(dāng)從鄰居獲取的LSP 報(bào)文的數(shù)量不止一個(gè)時(shí),針對(duì)從鄰居獲取的每一 LSP報(bào)文,則從該LSP報(bào)文獲取該LSP報(bào)文 攜帶的鏈路狀態(tài)信息和該鏈路狀態(tài)信息所處的LSP報(bào)文分片的序列號(hào)。
[0034] 至此,即實(shí)現(xiàn)了步驟101的操作。
[0035] 步驟102,獲取本設(shè)備本地的鏈路狀態(tài)信息。
[0036] 具體地,作為本發(fā)明的一個(gè)優(yōu)選實(shí)施例,這里獲取的鏈路狀態(tài)信息可包括:
[0037] 從本設(shè)備內(nèi)的MAC模塊獲取本設(shè)備本地各VM的MAC、以及本設(shè)備的MAC ;
[0038] 從本設(shè)備內(nèi)的VLAN模塊獲取本地各VM所屬的VLAN信息、以及本設(shè)備支持的VLAN 信息;
[0039] 從本設(shè)備內(nèi)的ARP模塊獲取本地各個(gè)VM的ARP表項(xiàng)、以及遠(yuǎn)程各個(gè)VM的ARP表 項(xiàng)等;
[0040] 從本設(shè)備內(nèi)的L2VPN模塊獲取本地各個(gè)VM所屬的VLAN的VSI。
[0041] 如上所述,GR過(guò)程中包含路由計(jì)算階段,在路由計(jì)算階段中,設(shè)備需要學(xué)習(xí)本地的 鏈路狀態(tài)信息,也即步驟102中的獲取的鏈路狀態(tài)信息,之后設(shè)備依據(jù)獲取的鏈路狀態(tài)信 息進(jìn)行路由計(jì)算,這里路由計(jì)算的方式類似現(xiàn)有路由計(jì)算,不再贅述。
[0042] 在通常情況下,設(shè)備在協(xié)議重啟之后獲取的本地鏈路狀態(tài)信息與協(xié)議重啟之前獲 取的本地