專利名稱:一種避免中間系統鄰居關系震蕩的方法和一種中間系統的制作方法
技術領域:
本發明涉及網絡通信技術領域,尤指 一種避免中間系統鄰居關系震蕩的 方法和一種中間系統。
背景技術:
中間系統到中間系統的域內路由信息交換協議(Intermediate System-to-intermediate System intra-domain routing information exchange protocol),簡稱ISIS協議最初是國際標準化組織(ISO)為其無連接網絡 協議設計的一種動態路由協議。為了提供對IP的路由支持,因特網工程任 務組(IETF)在RFC1195中對ISIS協議進行可擴充和修改,使它能夠同時 應用在TCP/IP和OSI環境中,稱為集成化ISIS( Integrated ISIS或Dual ISIS )。 ISIS協議是一種鏈路狀態協議,使用最短路徑優先(SPF)算法進行路由機 型。ISIS是一種重要的內部網關協議(IGP),用于自治系統內部。為了描述方便,先簡要介紹ISIS協議中的一些術語中間系統(IS, Intermediate System ) : IS是ISIS協議中生成路由和傳 播路由信息的基本單元,在ISO規范中, 一個路由器就是一個IS,因此ISIS 協議是提供路由器和路由器之間通信的協議;路由域(RD, Routing Domain ),在一個路由域中 一群IS通過相同的 路由協議來交換路由信息;區域(Area):路由域的劃分單元;鏈路狀態數據庫(LSDB, Link State Data Base ):所有的網絡內鏈路狀 態組成了鏈路狀態數據庫,在每一個IS中都至少有一個LSDB。IS使用SPF 算法,利用LSDB來生成自己的路由。ISIS報文主要包括以下三種 (1 ) Hello報文Hello才艮文用于建立和維持鄰居關系;(2)鏈路狀態報文(LSP, Link State Packet) LSP用來交換鏈路狀態信息;在ISIS中,每個IS都會將自身的鏈路狀 態信息攜帶在LSP中在本區域內擴散;每個IS收集本區域內所有的LSP生 成自己的LSDB;(3 )時序才艮文(SNP, Sequence Number Packet)SNP用于確認鄰居之間最新接收的LSP; SNP包括全時序報文(CSNP, Complete SNP )和部分時序報文(PSNP, Partial SNP ); PSNP只列舉最近 收到的一個或多個LSP的序號,它能夠一次對多個LSP進行確認,當發現 LSDB不同步時,也用PSNP來請求鄰居發送新的LSP; CSNP包括LSDB 中所有LSP的摘要信息,從而可以在相鄰路由器間保持LSDB同步。圖1是現有的運行ISIS協議的網絡的一個組網示意圖。如圖1所示, SI和S2表示連接到骨干網絡的路由器,MRT1和MRT2表示匯聚層的路由 器,RT1至RTn表示接入層的路由器。這里接入層的路由器RT1至RTn的 數量可能超過幾百臺,甚至上千臺。匯聚層的路由器MTRl和MTR2需要 與接入層的這些路由器建立ISIS鄰居關系。以MRT1為例,在MRT1上維 護如此多的鄰居關系,需要發送和接收大量的ISIS報文。在穩定的網絡中, MRTl在大部分時間只需要發送和接收Hello報文維護鄰居關系。但是,當 LSDB中的鏈路狀態信息更新(周期性地更新)時,每個路由器都需要向自 身的所有鄰居通知自身LSDB中更新的鏈路狀態信息,LSDB中每一次更 新的鏈路狀態信息包括多個LSP分片(前面提到LSDB是IS通過收集本區 域內的所有LSP生成的,LSP分片的內容其實就是生成LSDB時的LSP所 承載的鏈路狀態信息,因此每一個LSP分片對應一條鏈路狀態信息),而 這些LSP分片通常是同時或在相近的時間內產生的,例如在ISIS引入了大 量的其他協議^^由時,由于這些路由是同時引入的,所示在相同或相近的時
間產生大量的LSP分片。每個LSP分片的更新周期是相同的,所以這些LSP 會在相同或相近的時間更新。在ISIS協議中,每個LSP分片都被組裝成一 個LSP發送出去,因此在LSDB中的鏈路狀態信息更新時,即LSDB中的LSP分片更新時,IS路由器會發送大量的與更新的LSP分片--對應的LSP,這會造成如下的問題1、 如果是MRTl的LSDB中的鏈路狀態信息周期性更新,可能會造成 MRTl的ISIS報文發送隊列滿,從而部分Hello報文發不出去或者不能按時發 出,造成鄰居如RT1與MRTl的鄰居關系超時,鄰居關系震蕩,而鄰居關系的 震蕩又會造成MRT1與RT1等路由器重新生成LSP,造成MRT1有更多的ISIS 報文發送,產生惡性循環,造成ISIS鄰居關系不停震蕩;2、 如果是RT1、 RT2這些路由器的LSDB中的鏈路狀態信息周期性更新, 可能會造成MRTl的ISIS報文接收隊列滿,這樣RT1 、 RT2這些路由器發送的 Hello報文可能會MRTl丟棄,MRTl會認為RT1、 RT2這些路由器的鄰居關系 超時,這樣也會造成鄰居關系震蕩,也會產生惡性循環,造成ISIS鄰居關系不 停震蕩。對于上述問題,目前的解決方案有(1) 擴大MRTl中的ISIS報文的接收和發送隊列。但該方法不能解決 根本問題,因為不可能無限地擴大ISIS報文的接收和發送隊列,而周期性 更新的LSP分片會隨著網絡的擴大和路由的增多成線性增長,當增長到一 定程度時ISIS報文接收和發送隊列還是會滿。(2) 優先處理Hello報文,努力保持ISIS鄰居關系。該方法需要區別 出hello報文與其他ISIS報文,而hello報文與LSP報文和CSNP報文是很 難簡單區分,需要深度檢測才能區分,因此該方法對設備硬件的要求很高。 同時,ISIS報文接收隊列滿時,優先處理hello報文會造成LSP報文會丟棄, 造成LSP重傳,進而造成LSDB同步困難,會有更多的ISIS報文需要處理 增加了處理負擔。(3) 將Hello報文的定時器時間間隔擴大,并使用BFD ( BFD—個通
用的、標準化的、介質無關、協議無關的快速故障檢測機制,可以為各上層協議如路由協議、MPLS等統一地快速檢測兩臺路由器間雙向轉發路徑的故 障)探測鄰居是否正常。此方法要求所有路由器設備都要支持BFD,而RT1、 RT2到RTN都是低端路由器通常不支持BFD功能,而且RT1、 RT2到RTN 與MRT1和MRT2之間的鏈路通常是低速鏈路,運行BFD需要占用大量帶 寬;MRT1和MRT2需要建立大量ISIS鄰居,進而需要建立同樣多的BFD 連接,可能會超過BFD規格限制。綜上所述,當一個IS與多個IS之間建立ISIS鄰居關系時,由于LSDB 中的鏈路狀態信息周期性更新,可能會造成LSP的突發,使得ISIS報文的 接收和發送隊列溢出,導致ISIS鄰居關系震蕩。但現有技術中還沒有一個 有效解決該問題的方案。發明內容本發明的主要提供了兩種避免中間系統鄰居關系震蕩的方法,這兩種方 法能夠有效地避免LSDB中的鏈路狀態信息周期性更新時的LSP突發所造 成的ISIS報文發送和接收隊列滿所導致的ISIS鄰居關系震蕩。本發明還提供了兩種中間系統IS,這兩種IS能夠有效地避免LSDB中 的鏈路狀態信息周期性更新時的LSP突發所造成的ISIS報文發送和接收隊 列滿所導致的ISIS鄰居關系震蕩。為達到上述目的,本發明的技術方案具體是這樣實現的本發明公開了 一種避免中間系統鄰居關系震蕩的方法,對于與第二中間 系統IS存在鄰居關系的第 一 中間系統IS,該方法包括第一 IS在自身鏈路狀態數據庫LSDB中的N條鏈路狀態信息更新時, 組裝部分時序報文PSNP,將與所述更新后的N條鏈路狀態信息——對應的 N個鏈路狀態報文LSP的N個LSP摘要信息攜帶在所述PSNP中發送給第 二 IS;其中,每個LSP摘要信息包括LSP標識、序列號、校驗和和保持 時間;N為自然數; 所述第一 IS發送的PSNP使得第二 IS根據收到的該PSNP中攜帶的LSP 摘要信息更新該第二 IS自身的LSDB。本發明還公開了 一種避免中間系統鄰居關系震蕩的方法,對于與第 一 中 間系統IS存在鄰居關系的第二中間系統IS,該方法包括第二 IS在收到來自第一 IS的PSNP時,對于該收到的PSNP中攜帶的 每一個摘要信息,根據該摘要信息中的LSP標識查找自身的LSDB判斷是 否存在相同的LSP標識;如果存在,則進一步判斷該摘要信息中的序列號 是否比LSDB中的與所述LSP標識對應的序列號大;如果大,則用該摘要 信息中的序列號、校驗和和保持時間更新自身LSDB中與所述LSP標識對 應的序列號、校驗和和保持時間;其中,所述PSNP是第一 IS在自身LSDB中的N條鏈路狀態信息更新 時組裝發送的;所述PSNP中攜帶有與所述更新后的N條鏈路狀態信息—— 對應的N個LSP的N個LSP摘要信息,每個LSP摘要信息包括LSP標識、 序列號、校驗和和保持時間;N為自然數。本發明公開了一種中間系統IS,該IS包括鏈路狀態更新信息發送模塊,用于在所述IS的LSDB中的N條鏈路狀 態信息更新時,組裝PSNP,將與所述更新后的N條鏈路狀態信息——對應 的N個LSP的N個LSP摘要信息攜帶在所述PSNP中發送給所述IS的鄰居 IS;其中,每個LSP摘要信息包括LSP標識、序列號、校驗和和保持時間; N為自然數;所述鏈路狀態更新信息處理模塊發送的所述PSNP使得所述鄰居IS根 據收到的該PSNP中攜帶的LSP摘要信息更新所述鄰居IS自身的LSDB。本發明還公開了一種中間系統IS,該IS包括鏈路狀態更新信息處理 模塊和LSDB存儲模塊,其中,LSDB存儲模塊,用于存儲所述IS的鏈路狀態數據庫LSDB;鏈路狀態更新信息處理模塊,用于在收到所述IS的鄰居IS發送的PSNP時,對于該收到的PSNP中攜帶的每一個摘要信息,根據該摘要信息中的
LSP標識查找所述LSDB存儲模塊中的LSDB,判斷LSDB中是否存在相同 的LSP標識;如果存在,則進一步判斷該摘要信息中的序列號是否比LSDB 中與所述LSP標識對應的序列號大;如果大,則用該摘要信息中的序列號、 校驗和和保持時間更新LSDB中與所述LSP標識對應的序列號、校驗和和 保持時間;所述PSNP是所述鄰居IS在其自身的LSDB中的N條鏈路狀態信息更 新時組裝發送的;所述PSNP中攜帶有與所述更新后的N條鏈路狀態信息一 一對應的N個LSP的N個LSP摘要信息,每個LSP摘要信息包括LSP標 識、序列號、校驗和和保持時間;N為自然數。由上述技術方案可見,本發明這種中間系統IS在其LSDB中的N條鏈 路狀態信息產生更新時,不向鄰居IS發送與所述更新后的N條鏈路狀態信 息——對應的N個LSP,而是組裝一個攜帶所述N個LSP的摘要信息的 PSNP發送給鄰居IS,以使得鄰居IS根據所述N個LSP的摘要信息更新自 身的LSDB的方案,極大減少了 LSP更新時產生的ISIS報文,進而避免了 由于ISIS報文發送和接收隊列滿而導致的ISIS鄰居關系的震蕩。
圖1是現有的運行ISIS協議的網絡的一個組網示意圖;圖2是本發明實施例一種避免中間系統鄰居關系震蕩的方法的流程圖;閨3是本發明一種中間系統IS的第一實施例組成絲構框圖;圖4是本發明一種中間系統IS的第二實施例組成結構框圖。
具體實施方式
圖2是本發明實施例一種避免中間系統鄰居關系震蕩的方法的流程圖。 如圖2所示,對于存在鄰居關系的第一IS和第二IS,該方法包括以下步驟步驟201,第一IS在自身LSDB中的N條鏈路狀態信息更新時,不向 第二 IS發送與所述更新后的N條鏈路狀態信息——對應的N個LSP,而是 組裝PSNP,將所述N個LSP的N個LSP摘要信息攜帶在所述PSNP中發 送給第二IS;其中,每個LSP摘要信息包括LSP標識、序列號、校驗和 和保持時間;N為自然^:;步驟202,第二 IS在收到來自第一 IS的PSNP時,對于該收到的PSNP 中攜帶的每一個摘要信息,根據該摘要信息中的LSP標識查找自身的LSDB 判斷是否存在相同的LSP標識;如果存在,則進一步判斷該摘要信息中的 序列號是否比LSDB中的與所述LSP標識對應的序列號大;如果大,則用 該摘要信息中的序列號、校驗和和保持時間更新自身LSDB中與所述LSP 標識對應的序列號、校驗和和保持時間。上述方案極大減少了LSP更新時產生的ISIS報文,進而避免了由于ISIS 報文發送和接收隊列滿而導致的ISIS鄰居關系的震蕩。為使本發明的目的、技術方案及優點更加清楚明白,以下對本發明進行 進一步的詳細iJi明。在ISIS中,當LSDB中鏈路狀態信息周期性更新時,所發送的鏈路狀 態報文LSP承載的路由信息并沒有改變,只是用于標識該LSP信息發生了 變化。這些標識LSP的信息稱為LSP摘要信息。LSP摘要信息包括LSP 標識(LSPID)、序列號、校驗和、保持之間。在ISIS中,當LSDB中鏈路狀態信息周期性更新時,LSPID不變,序 列號加1,重新計算校驗和,保持時間置為最大值,即LSP摘要信息中LSPID 不變,其他三項變化。當一個IS的LSDB中鏈路狀態信息周期性更新時,本IS會向自身的所 有鄰居IS發送相應的LSP,以通知鄰居IS同步LSDB,此時便形成了上文 中描述的突發報文。對于鄰居IS同步LSDB而言,本IS其實并沒有必要發 送整個LSP,而只要通知鄰居IS該LSP更新了,而LSP中的LSPID、序列 號和校驗和可以唯一標識一個LSP,因此本IS只需要將LSP摘要信息通知 給鄰居IS就可以使鄰居IS同步其自身的LSDB,即鄰居IS在收到LSP摘要 信息后與自身LSDB中的相同LSPID的LSP分片進行比較,會發現該LSP
摘要信息中序列號比自身LSDB中的相同LSPID的LSP分片的序列號大1, 則鄰居IS就認為該LSP摘要信息比自身LSDB中的相同LSPID的LSP分片 要新,用該LSP摘要信息更新自身LSDB中的相同LSPID的LSP分片的摘要信息。另外,在ISIS協議中,LSP摘要信息在包括CSNP和PSNP的SNP報 文中攜帶,且一個SNP報文可以攜帶多個LSP摘要信息。因此,在本發明實施例中本IS用PSNP才艮文通知鄰居IS本IS的LSDB 中的LSP分片的更新,因此在本IS的LSDB中的多個LSP分片的更新時, 不再發送多個LSP,而只發送一個攜帶多個LSP摘要信息的PSNP,極大減 少了 ISIS報文的發送。路狀態信息更新時所發送的PSNP:當LSDB中鏈路狀態信息更新時,對于LSDB中任一個更新的LSP分 片(即會被封裝成一個LSP的一條鏈路狀態信息),其LSPID是不變的唯 一的,而序列號會加1。此時如果向鄰居IS發送本發明中所述的含有該更新 后的LSP分片的摘要信息的PSNP,則該摘要信息中的序列號比鄰居IS的 LSDB中相應序列號大,鄰居IS則認為該摘要信息比自己的新,從而更新自 身的LSDB。而現有技術中普通PSNP是用來請求LSP或者確認收到的LSP 的,其中所攜帶的LSP摘要中的序列號與接收者LSDB中的相應序列號相 同。可見,在本發明實施例中,可以通過比較PSNP中的LSP摘要信息中的明中在LSDB中的鏈路狀態信息更新時所發送的PSNP。下面仍以圖1中所示的MRT1以及MRT1的所有鄰居(RT1至RTn ) 為例對本發明的技術方案進一步詳細說明。參見圖1, MRT1的LSDB中的鏈路狀態信息更新,且本實施例中假設 此次更新的鏈路狀態信息包括5條鏈路狀態信息,即5個LSP分片。則按 照現有技術的方案,MR1此時會將更新后的5個LSP分片中的每個LSP分片都封裝成一個LSP,然后向自身的所有鄰居發送封裝后的5個LSP。而根 據本發明的方案則會執行如下步驟1、 MRT1在自身LSDB中的5條鏈路狀態信息更新時,不向RTl ~ RTn 發送與所述更新后的5條鏈路狀態信息——對應的5個LSP,而是組裝 PSNP,將所述5個LSP的5個LSP摘要信息攜帶在所述PSNP中發送給 RTl ~RTn。2、 RTl ~ RTn收到PSNP后的處理過程相同,這里以RTl為例進行說明2.1、 RTl取出PSNP中的第一個LSP摘要信息,根據該摘要信息中的 LSPID查找RTl自身的LSDB判斷是否存在相同的LSPID;如果存在則執 行2.2,如果不存在則執行2.3;2.2、 RTl進一步判斷該LSP摘要信息中的序列號是否比自身LSDB中 的與該LSPID對應的序列號大;如果該LSP摘要信息中的序列號比自身 LSDB中的與該LSPID對應的序列號大,則用該LSP摘要信息中的序列號、 校驗和和保持時間更新自身LSDB中與所述LSP標識對應的序列號、校驗 和和保持時間;反之,如果相同或小于則表示當前接收的PSNP是現有技術 中的普通PSNP, RTl按照現有的流程進行處理(需要說明的是在廣播網 絡中非DIS路由器不再繼續處理PSNP,直接丟棄);執行步驟2.4;2.3、 RTl向MRT1發送請求與所述LSPID對應的LSP的PSNP;執行 步驟2.4;2.4、 RTl取出PSNP中的下一個LSP摘要信息,進行與2.1 2.3相同 的處理,直至處理完PSNP中的5個LSP摘要信息;2.5、 TR1處理完所接收的PSNP后,其自身的LSDB已產生更新,則 RTl也根據自身LSDB中已更新的LSP摘要信息組建PSNP通告給其他鏈路 上的鄰居。在步驟2.5中,如果MRT1與RTl之間的鏈路是P2P鏈路,則RTl在 處理完所接收的PSNP后,還進一步向MRT1返回用于確認收到鏈路狀態更
新信息的PSNP;如果MRT1與RTl之間的鏈路是廣播鏈路,則RTl在處 理完所接收的PSNP后,不向MRTl返回用于確認收到4連;洛狀態更新信息的 PSNP。在實際組網中,有些IS能支持本發明中的方案,而有些IS不支持本發 明的方案,為了描述方便,將支持本發明方案的IS稱為新IS,將不支持本 發明方案的IS稱為舊IS。當實際組網中同時存在新IS和舊IS時,例如, 在圖1所示的組網中MRTl是新IS,而RTl RTn中有部分是新IS,也有 部分是舊IS時,本發明還給處理如下的優化處理方案將所述MRT1的與RTl -RTn連接的接口分為兩組,分別為第一組和第 二組;其中與第一組中的接口所連接的鄰居RT能夠處理MRTl在其自身的 LSDB中的鏈路狀態信息更新時所發送的PSNP (即這部分RT為新IS ),而 與第二組中的接口所連接的鄰居RT則不能處理MRTl在其自身的LSDB中 的鏈路狀態信息更新時所發送的PSNP (即這部分RT是舊IS ); MRTl在其 自身的LSDB中的N條鏈路狀態信息更新時,向第二組中的接口發送與所 述更新后的N條鏈路狀態信息——對應的N個LSP,向第一組中的接口發 送攜帶所述N個LSP的N個LSP摘要信息的PSNP; N為自然數。在實際當中,可以采用靜態配置方式,即手工配置方式將PRT1的與各 鄰居RT連接的接口分為第 一組和第二組,如在廣播鏈路中可以采用此種方 式。在P2P鏈路中也可以采用靜態配置方式將PRT1的與各鄰居RT連接的 接口分為第一組和第二組;或者,也可以通過首次的鏈路狀態信息更新來判 斷,具體為MRTl在自身LSDB中M條鏈路狀態信息首次更新時,默認 對端的鄰居IS是新IS,這里以該鄰居IS為RTl為例,MRTl不向RTl發送 與所述更新后的M條鏈路狀態信息——對應的M個LSP,而是向RTl發送 攜帶所述M個LSP的M個LSP摘要信息的PSNP;如果MTR1在指定時間 內收到了 RTl返回的確認收到鏈路狀態更新信息的PSNP,則確認RTl是新 IS,將MRT1的與RTl連接的接口分到第一組;反之,如果MRTl在指定 時間內沒有收到RTl返回的用于確認收到鏈路狀態更新信息的PSNP,則確
認RT1是舊IS,將MRT1的與RT1連接的接口分到第二組;M是自然數。通過上述方案,可以使得支持本發明方案的新IS依然可以兼通原有的 舊IS。接下來給出本發明實施例中的中間系統IS的組成結構。 圖3是本發明一種中間系統IS的第一實施例組成結構框圖。如圖3所 示,該IS包括鏈路狀態更新信息發送模塊301,用于在所述IS的LSDB中的N條鏈 路狀態信息更新時,組裝PSNP,將與所述更新后的N條鏈路狀態信息—— 對應的N個LSP的N個LSP摘要信息攜帶在所述PSNP中發送給所述IS 的鄰居IS;其中,每個LSP摘要信息包括LSP標識、序列號、校驗和和 保持時間;N為自然數;所述鏈路狀態更新信息處理模塊發送的所述PSNP使得所述鄰居IS根 據收到的該PSNP中攜帶的LSP摘要信息更新所述鄰居IS自身的LSDB。 具體為所述鏈路狀態更新信息處理模塊發送的所述PSNP使得所述鄰居IS 在收該PSNP時,對于該PSNP中攜帶的每一個摘要信息,根據該摘要信息 中的LSP標識查找該鄰居IS自身的LSDB判斷是否存在相同的LSP標識, 如果存在,則進一步判斷該摘要信息中的序列號是否比該鄰居IS自身的 LSDB中與所述LSP標識對應的序列號大,如果大,則用該摘要信息中的序 列號、校驗和和保持時間更新該鄰居IS自身的LSDB中與所述LSP標識對 應的序列號、校驗和和保持時間。在圖3中,該IS的與各鄰居IS連接的接口被分為第一組和第二組;其 中與第一組中的接口所連接的鄰居IS能夠處理所述LSP更新信息發送模塊 在所述IS的LSDB中的鏈路狀態信息更新時所發送的PSNP,而與第二組中 的接口所連接的鄰居IS則不能處理所述LSP更新信息發送模塊在所述IS的 LSDB中的鏈路狀態信息更新時所發送的PSNP;所述鏈路狀態更新信息發送模塊301 ,在所述IS的LSDB中的N條鏈 路狀態信息更新時,用于向第二組中的接口發送與所述更新后的N條鏈路
狀態信息——對應N個LSP,向第一組中的接口發送攜帶所述N個LSP的 N個LSP摘要信息的PSNP。在圖3中,該IS進一步包括鄰居接口分組4莫塊302,所述鄰居接口分組模塊302,用于接收靜態配置信息,并根據靜態配置 信息將該IS的與各鄰居IS連接的接口被分為第一組和第二組;或者所述鄰居接口分組模塊302,在該IS的LSDB中的M條鏈路狀態 信息更新時,指令所述鏈路狀態更新信息發送模塊301不向與該IS的一個 未分組的接口連接的指定鄰居發送與所述更新后的M條鏈路狀態信息—— 對應的M個LSP,而是向該指定鄰居發送攜帶所述M個LSP的M個LSP 摘要信息的PSNP;如果該IS在指定時間內收到了所述指定鄰居返回的用于 確認收到鏈路狀態更新信息的PSNP,則將該IS的與所述指定鄰居連接的接 口分到第一組;反之,如果第一 IS在指定時間內沒有收到所述指定鄰居返 回的用于確認收到鏈路狀態更新信息的PSNP,則將該IS的與所述指定鄰居 連接的接口分到第二組;M是自然數。圖4是本發明一種中間系統IS的第二實施例組成結構框圖。如圖4所 示,該IS包括鏈路狀態更新信息處理模塊401和LSDB存儲模塊402,其 中LSDB存儲模塊402,用于存儲所述IS的鏈路狀態數據庫LSDB;鏈路狀態更新信息處理模塊401,用于在收到所述IS的鄰居IS發送的 PSNP時,對于該收到的PSNP中攜帶的每一個摘要信息,根據該摘要信息 中的LSP標識查找LSDB存儲模塊402中的LSDB,判斷LSDB是否存在相 同的LSP標識;如果存在,則進一 步判斷該摘要信息中的序列號是否比LSDB 中與所述LSP標識對應的序列號大;如果大,則用該摘要信息中的序列號、 校-瞼和和保持時間更新LSDB中與所述LSP標識對應的序列號、才交-驗和和 保持時間;所述PSNP是所述鄰居IS在其自身的LSDB中的N條鏈路狀態信息更 新時組裝發送的;所述PSNP中攜帶有與所述更新后的N條鏈路狀態信息一
一對應的N個LSP的N個LSP摘要信息,每個LSP摘要信息包括LSP標 識、序列號、校驗和和保持時間;N為自然數。在圖4中,所述鏈路狀態更新信息處理模塊401,在對于所述收到的 PSNP中攜帶的每一個摘要信息,根據該摘要信息中的LSP標識查找自身的 LSDB判斷是否存在相同的LSP標識時,如果LSDB中不存在相同的LSP 標識,則進一步用于,向發送PSNP的鄰居IS發送請求與所述LSP標識對 應的LSP的PSNP。在圖4中,所述鏈路狀態更新信息處理模塊401,進一步用于向發送所 述PSNP的鄰居IS返回用于確認收到鏈路狀態更新信息的PSNP。圖3和圖4中所述的中間系統IS可以是同一個IS。即該IS即可以在其 自身LSDB中的N條鏈路狀態信息更新時,組裝PSNP,將與所述更新后的 N條鏈路狀態信息——對應的N個LSP的N個LSP摘要信息攜帶在所述 PSNP中發送給自身的鄰居IS;也可以接收并處理鄰居IS在其自身LSDB 中的N條鏈路狀態信息更新時組裝發送的PSNP。綜上所述,本發明實施例這種中間系統IS在其LSDB中的N條鏈路狀 態信息產生更新時,不向鄰居IS發送與所述更新后的N條鏈路狀態信息一 一對應的N個LSP,而是組裝一個攜帶所述N個LSP的摘要信息的PSNP 發送給鄰居IS,以使得鄰居IS根據所述N個LSP的摘要信息更新自身的 LSDB的方案,極大減少了 LSP更新時產生的ISIS報文,從根本上解決了 由于LSP周期性更新造成的ISIS報文大量突發,進而避免了由于ISIS報文 發送和接收隊列滿而導致的ISIS鄰居關系的震蕩。且本發明實施例中的上 述方案與原有的ISIS協議兼容。以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護 范圍,凡在本發明的精神和原則之內所做的任何修改、等同替換、改進等, 均應包含在本發明的保護范圍之內。
權利要求
1、一種避免中間系統鄰居關系震蕩的方法,其特征在于,對于與第二中間系統IS存在鄰居關系的第一中間系統IS,該方法包括第一IS在自身鏈路狀態數據庫LSDB中的N條鏈路狀態信息更新時,組裝部分時序報文PSNP,將與所述更新后的N條鏈路狀態信息一一對應的N個鏈路狀態報文LSP的N個LSP摘要信息攜帶在所述PSNP中發送給第二IS;其中,每個LSP摘要信息包括LSP標識、序列號、校驗和和保持時間;N為自然數;所述第一IS發送的PSNP使得第二IS根據收到的該PSNP中攜帶的LSP摘要信息更新該第二IS自身的LSDB。
2、 如權利要求l所述的方法,其特征在于,該方法進一步包括 將所述第一IS的與各鄰居IS連接的接口分為第一組和第二組;其中與第一組中的接口所連接的鄰居IS能夠處理第一 IS在其自身的LSDB中的鏈 路狀態信息更新時所發送的PSNP,而與第二組中的接口所連接的鄰居IS則 不能處理第一 IS在其自身的LSDB中的鏈路狀態信息更新時所發送的 PSNP;所述第二 IS與第一組中的接口連接;第一IS在其自身的LSDB中的N條鏈路狀態信息更新時,向第二組中的接口發送與所述更新后的N條《連路狀態信息--對應的N個LSP,向第一組中的接口發送攜帶所述N個LSP的N個LSP摘要信息的PSNP。
3、 如權利要求2所述的方法,其特征在于,所述將第一 IS的與各鄰居 IS連接的接口分為第一組和第二組包括釆用靜態配置方式將第一 IS的與各鄰居IS連接的接口分為第 一組和第 二組;或者對于與第一 IS的一個未分組的接口連接的指定鄰居IS,第一 IS在其自 身的LSDB中的M條鏈路狀態信息發生更新時,不向該指定鄰居IS發送與 所述更新后的M條鏈;洛狀態信息——對應的M個LSP,而是向該指定鄰居 發送攜帶所述M個LSP的M個LSP摘要信息的PSNP;如果第一 IS在指定 時間內收到了所述指定鄰居返回的確認收到鏈路狀態更新信息的PSNP,則 將第一IS的與所述指定鄰居連接的接口分到第一組;反之,如果第一IS在 指定時間內沒有收到所述指定鄰居返回的用于確認收到鏈路狀態更新信息 的PSNP,則將第一IS的與所述指定鄰居連接的接口分到第二組;M是自然 數。
4、 一種避免中間系統鄰居關系震蕩的方法,其特征在于,對于與第一 中間系統IS存在鄰居關系的第二中間系統IS,該方法包括第二 IS在收到來自第一 IS的PSNP時,對于該收到的PSNP中攜帶的 每一個摘要信息,根據該摘要信息中的LSP標識查找自身的LSDB判斷是 否存在相同的LSP標識;如果存在,則進一步判斷該摘要信息中的序列號 是否比LSDB中的與所述LSP標識對應的序列號大;如果大,則用該摘要 信息中的序列號、校驗和和保持時間更新自身LSDB中與所述LSP標識對 應的序列號、校驗和和保持時間;其中,所迷PSNP是第一 IS在自身LSDB中的N條鏈路狀態信息更新 時組裝發送的;所述PSNP中攜帶有與所述更新后的N條鏈路狀態信息—— 對應的N個LSP的N個LSP摘要信息,每個LSP摘要信息包括LSP標識、 序列號、校驗和和保持時間;N為自然數。
5、 如權利要求4所述的方法,其特征在于,第二 IS對于所述收到的 PSNP中攜帶的每一個摘要信息,根據該擁要信息中的LSP標識查找自身的 LSDB判斷是否存在相同的LSP標識時,如果LSDB中不存在相同的LSP 標識,則該方法進一步包括第二 IS向第一 IS發送請求與所述LSP標識對應的LSP的PSNP。
6、 如權利要求4所述的方法,其特征在于,該方法進一步包括 第二IS向第一IS返回用于確認收到鏈路狀態更新信息的PSNP。
7 、 一種中間系統IS,其特征在于,該IS包括鏈路狀態更新信息發送模塊,用于在所述IS的LSDB中的N條鏈路狀 態信息更新時,組裝PSNP,將與所述更新后的N條鏈路狀態信息——對應 的N個LSP的N個LSP摘要信息攜帶在所述PSNP中發送給所述IS的鄰居 IS;其中,每個LSP摘要信息包括LSP標識、序列號、校驗和和保持時間; N為自然數;所述鏈路狀態更新信息處理模塊發送的所述PSNP使得所述鄰居IS根 據收到的該PSNP中攜帶的LSP摘要信息更新所述鄰居IS自身的LSDB。
8、 如權利要求7所述的IS,其特征在于,該IS的與各鄰居IS連接的 接口被分為第一組和第二組;其中與第一組中的接口所連接的鄰居IS能夠 處理所述LSP更新信息發送模塊在所述IS的LSDB中的鏈路狀態信息更新 時所發送的PSNP,而與第二組中的接口所連接的鄰居IS則不能處理所述 LSP更新信息發送模塊在所述IS的LSDB中的鏈路狀態信息更新時所發送 的PSNP;所述鏈路狀態更新信息發送模塊,在所述IS的LSDB中的N條鏈路狀 態信息更新時,用于向第二組中的接口發送與所述更新后的N條鏈路狀態 信息——對應N個LSP,向第一組中的接口發送攜帶所述N個LSP的N個 LSP摘要信息的PSNP。
9、 如權利要求8所述的IS,其特征在于,該IS進一步包括 鄰居接口分組模塊,用于接收靜態配置信息,并根據靜態配置信息將該IS的與各鄰居IS連接的接口被分為第 一組和第二組;或者所述鄰居接口分組模塊,在該IS的LSDB中的M條鏈路狀態信息 更新時,指令所述鏈路狀態更新信息發送模塊不向與該IS的一個未分組的 接口連接的指定鄰居發送與所述更新后的M條鏈路狀態信息——對應的M 個LSP,而是向該指定鄰居發送攜帶所述M個LSP的M個LSP摘要信息的 PSNP;如果該IS在指定時間內收到了所述指定鄰居返回的用于確認收到鏈 路狀態更新信息的PSNP,則將該IS的與所述指定鄰居連接的接口分到第一 組;反之,如果第一 IS在指定時間內沒有收到所述指定鄰居返回的用于確 認收到鏈路狀態更新信息的PSNP,則將該IS的與所述指定鄰居連接的接口 分到第二組;M是自然數。
10、 一種中間系統IS,其特征在于,該IS包括鏈路狀態更新信息處 理模塊和LSDB存儲模塊,其中,LSDB存儲模塊,用于存儲所述IS的鏈路狀態數據庫LSDB;鏈路狀態更新信息處理模塊,用于在收到所述IS的鄰居IS發送的PSNP 時,對于該收到的PSNP中攜帶的每一個摘要信息,根據該摘要信息中的 LSP標識查找所述LSDB存儲模塊中的LSDB,判斷LSDB中是否存在相同 的LSP標識;如果存在,則進一步判斷該摘要信息中的序列號是否比LSDB 中與所述LSP標識對應的序列號大;如果大,則用該摘要信息中的序列號、 校驗和和保持時間更新LSDB中與所述LSP標識對應的序列號、校驗和和 保持時間;所述PSNP是所述鄰居IS在其自身的LSDB中的N條鏈路狀態信息更 新時組裝發送的;所述PSNP中攜帶有與所述更新后的N條鏈路狀態信息一 一對應的N個LSP的N個LSP摘要信息,每個LSP摘要信息包括LSP標 識、序列號、校驗和和保持時間;N為自然數。
11、 如權利要求IO所述的IS,其特征在于,所述鏈路狀態更新信息處理模塊,在對于所述收到的PSNP中攜帶的每 一個摘要信息,根據該摘要信息中的LSP標識查找自身的LSDB判斷是否 存在相同的LSP標識時,如果LSDB中不存在相同的LSP標識,則進一步 用于,向發送PSNP的鄰居IS發送請求與所述LSP標識對應的LSP的PSNP。
12、 如權利要求IO所述的IS,其特征在于,所述鏈路狀態更新信息處理模塊,進一步用于向發送所述PSNP的鄰居 IS返回用于確認收到鏈^各狀態更新信息的PSNP。
全文摘要
本發明公開了一種避免中間系統鄰居關系震蕩的方法,包括中間系統IS在其LSDB中的N條鏈路狀態信息產生更新時,不向鄰居IS發送與所述更新后的N條鏈路狀態信息一一對應的N個LSP,而是組裝一個攜帶所述N個LSP的摘要信息的PSNP發送給鄰居IS,以使得鄰居IS根據所述N個LSP的摘要信息更新自身的LSDB;N為自然數。本發明還公開了一種中間系統。本發明的技術方案,極大減少了LSP更新時產生的ISIS報文,進而避免了由于ISIS報文發送和接收隊列滿而導致的ISIS鄰居關系的震蕩。
文檔編號H04L12/56GK101394354SQ200810224510
公開日2009年3月25日 申請日期2008年10月17日 優先權日2008年10月17日
發明者趙昌峰 申請人:杭州華三通信技術有限公司