一種is-is協議中支持轉發地址的方法及其裝置制造方法
【專利摘要】本發明提供一種IS-IS協議中支持轉發地址的方法及其裝置,應用于支持IPv6的路由器,所述方法包括:引入外部路由時,當外部路由下一跳地址和出接口地址具有相同前綴時,則選取下一跳地址作為轉發地址FA填充到TLV結構中擴展的FA?sub?TLV中隨鏈路狀態協議數據單元LSP發布出去;解析收到的非自身生成的LSP的FA?sub?TLV中的FA,根據FA計算出外部路由的下一跳地址。本發明可以根據FA計算外部路由的下一跳,避免數據流量多傳一跳情況的發生。
【專利說明】—種IS-1S協議中支持轉發地址的方法及其裝置
【技術領域】
[0001]本發明涉及中間系統到中間系統IS-1S協議領域,尤其涉及一種IS-1S協議中支持轉發地址的方法及其裝置。
【背景技術】
[0002]IS-1S (Intermediate System-to-1ntermediate System,中間系統到中間系統協議)是一種動態路由協議。LSP (鏈路狀態協議數據單元),路由器產生LSP,LSP中收集了有關連接鏈路、鄰居路由器、IP子網、相關的度量信息等本地鏈路狀態信息。FA (Forwardingaddress,轉發地址)是為外部路由提供的額外的轉發路徑。
[0003]參看圖1,現有的IS-1S協議中支持IPv6的路由器Route A、Router B、Router E為自治域內部的路由器,路由器Router C為自治域外部的路由器。路由器Router C通過一個多點可達的網絡,與自治域內部的路由器Router E和Router B連接,Router E將RouterC的網絡引入自治域內部。由于Router C的網絡是通過Router E引入自治域內部的,當自治域內部的路由器Route A訪問Router C的網絡時,數據流量會到達Router B并轉發給Router E,然后到達Router C,即圖1中的黑色路徑。顯然,這樣的轉發路徑的數據流量經過Router B后,雖然Router B也與Router C連接,但仍需經過Router E再發送給RouterC,造成數據流量多傳一跳情況的發生。
【發明內容】
[0004]有鑒于此,本發明提供一種IS-1S協議中支持轉發地址的方法及其裝置,其可以根據FA計算外部路由的下一跳,避免數據流量多傳一跳情況的發生。
[0005]本發明提供一種IS-1S協議中支持轉發地址的方法,應用于支持IPv6的路由器,所述方法包括:
[0006]引入外部路由時,當外部路由下一跳地址和出接口地址具有相同前綴時,則選取下一跳地址作為轉發地址FA填充到TLV結構中擴展的FA sub TLV中隨鏈路狀態協議數據單元LSP發布出去。
[0007]解析收到的非自身生成的LSP的FA sub TLV中的FA,根據FA計算出外部路由的下一跳地址。
[0008]進一步地,本發明所述引入外部路由時,當外部路由下一跳地址和出接口地址具有相同前綴時,則選取下一跳地址作為FA填充到TLV結構中擴展的FA sub TLV中隨鏈路狀態協議數據單元LSP發布出去還包括:
[0009]當外部路由下一跳地址和出接口地址具有不同前綴時,則使用保留FA填充到FAsub TLV中隨LSP發布出去。
[0010]進一步地,本發明所述保留FA為:
[0011]如果存在至少一個使能的UP狀態的環回接口,則選擇任一使能的UP狀態的環回接口的全球單播地址作為保留FA ;[0012]否則,選擇任一使能的UP狀態的普通接口的全球單播地址作為保留FA。
[0013]進一步地,本發明所述根據FA計算出外部路由的下一跳地址包括:
[0014]將和所述FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址;
[0015]將所述FA的下一跳地址繼承為所述外部路由的下一跳地址。
[0016]進一步地,本發明所述將和FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址包括:
[0017]如果自治域內存在多個和所述FA具有相同如綴的路由,則將和所述FA具有相同前綴的最長匹配的路由的下一跳地址繼承為FA的下一跳地址。
[0018]本發明還提供一種IS-1S協議中支持轉發地址的裝置,應用于支持IPv6的路由器,其特征在于,所述裝置包括:
[0019]FA發布模塊,用于引入外部路由時,當外部路由下一跳地址和出接口地址具有相同前綴時,則選取下一跳地址作為FA填充到TLV結構中擴展的FA sub TLV中隨鏈路狀態協議數據單元LSP發布出去;
[0020]FA計算模塊,用于解析收到的非自身生成的LSP的FA sub TLV中的FA,根據FA計算出外部路由的下一跳地址。
[0021]進一步地,本發明所述FA發布模塊還用于當外部路由下一跳地址和出接口地址具有不同前綴時,則使用保留FA填充到FA sub TLV中隨LSP發布出去。
[0022]進一步地,本發明所述保留FA為:
[0023]當存在至少一個使能的UP狀態的環回接口,則選擇任一使能的UP狀態的環回接口的全球單播地址作為保留FA ;
[0024]否則,選擇任一使能的UP狀態的普通接口的全球單播地址作為保留FA。
[0025]進一步地,本發明所述FA計算模塊中的根據FA計算出外部路由的下一跳地址包括:
[0026]將和所述FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址;
[0027]將所述FA的下一跳地址繼承為所述外部路由的下一跳地址。
[0028]進一步地,本發明所述將和FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址包括:
[0029]如果自治域內存在多個和所述FA具有相同如綴的路由,則將和所述FA具有相同前綴的最長匹配的路由的下一跳地址繼承為FA的下一跳地址。
[0030]由以上技術方案可見,本發明在IS-1S協議報文的TLV結構中擴展FA sub TLV,將FA sub TLV通過LSP發布出去,根據FA sub TLV中的FA計算出外部路由的下一跳地址。并且,本發明FA為和出接口地址具有相同前綴的外部路由的下一跳地址。這樣,本發明IS-1S協議可以實現轉發地址功能,從而保證數據流量直接從和外部路由具有相同前綴的下一跳地址到達自治域外部的路由器,數據流量以最佳路由訪問外部網絡,避免了多傳一跳情況的發生。
【專利附圖】
【附圖說明】[0031]圖1是IS-1S協議中路由器的轉發路徑示意圖;
[0032]圖2是本發明方法的流程圖;
[0033]圖3是本發明TLV結構示意圖;
[0034]圖4 是本發明 IPv6Reachability TLV 不意圖;
[0035]圖5是本發明裝置的系統結構圖。
【具體實施方式】
[0036]本發明在IS-1S協議報文的TLV結構中擴展FA sub TLV JfFA sub TLV通過LSP發布出去,根據FA sub TLV中的FA計算出外部路由的下一跳地址。并且,本發明FA為和出接口地址具有相同前綴的外部路由的下一跳地址。這樣,本發明IS-1S協議可以實現轉發地址功能,從而保證數據流量直接從和外部路由相同前綴的下一跳地址到達自治域外部的路由器,數據流量以最佳路由訪問外部網絡,避免了多傳一跳情況的發生。
[0037]參見圖2,本發明提供一種IS-1S協議中支持轉發地址的方法,應用于支持IPv6的路由器,所述方法包括:
[0038]S1、引入外部路由時,當外部路由下一跳地址和出接口地址具有相同前綴時,則選取下一跳地址作為FA填充到TLV結構中擴展的FA sub TLV中隨鏈路狀態協議數據單元LSP發布出去。
[0039]本發明在IS-1S協議報文的TLV結構中擴展存儲轉發地址FA的FA sub TLV。
[0040]TLV (Type-Length-Value)是IS-1S協議的鏈路狀態路由LSP中的信息組織形式。參看圖3, TLV格式包括Type、Length和Value。
[0041]在IS-1S協議中sub TLV的格式和普通TLV格式相同,只是普通TLV包含在IS-1S報文中,而sub TLV包含在普通TLV中。
[0042]具體地,本發明在IPv6Reachability TLV中新增一種sub TLV類型來存儲FA,即FA sub TLV。
[0043]所述FA sub TLV的格式和內容如下:
[0044]Type字段即FA sub TLV的類型字段,優選地可以為128。
[0045]Length字段為所述FA sub TLV中Value字段的長度。
[0046]Value為IPv6前綴對應IPv6FA,優選地長度為16字節。
[0047]具體地,例如IS-1S協議引入一條外部靜態路由1111:: 1111/64,當所述外部靜態路由的下一跳地址為2222:: 1111/64,出接口為EthernetO/Ι。所述使能了 IS-1S的出接口EthernetO/Ι的地址為2222::2222/64。由于外部靜態路由下一跳地址2222:: 1111/64和出接口地址2222::2222/64具有相同前綴,那么在IS-1S協議生成1111:: 1111/64這條前綴對應的IPv6Reachability TLV時,將2222:: 1111作為FA加入TLV中。在生成LSP攜帶IPv6Reachability TLV時,將FA填充到FA sub TLV 中發布出去。發布的 IPv6ReachabilityTLV如圖4所示。
[0048]進一步地, 所述步驟SI還包括:
[0049]當外部路由下一跳地址和出接口地址具有不同前綴時,則使用保留FA填充到FAsub TLV中隨LSP發布出去。
[0050]如果外部路由下一跳地址和出接口地址具有不同前綴,則表明無須更改FA,使用保留FA填充到FA sub TLV中。具體地,例如在生成LSP攜帶IPv6Reachability TLV時,將FA填充到FA sub TLV中發布出去。數據流量仍然按照原來的路徑訪問自治域外部路由器。
[0051]當然,當外部路由下一跳地址和出接口地址具有不同前綴時亦可不使用保留FA填充到FA sub TLV中,而是并不填充TLV中的FA sub TLV,仍然按照原有的TLV隨LSP進行發布,也并不影響后續的路由計算。
[0052]進一步地,所述保留FA為:
[0053]如果存在至少一個使能的UP狀態的環回接口,則選擇任一使能的UP狀態的環回接口的全球單播地址作為保留FA。
[0054]否則,選擇任一使能的UP狀態的普通接口的全球單播地址作為保留FA。
[0055]由于環回接口相對穩定,變更少,本發明優選環回接口作為保留FA。
[0056]如果無須改變FA,則優選使能的UP狀態的環回接口作為保留FA,如果存在多個使能的UP狀態的環回接口則選取任意一個使能的UP狀態的環回接口的全球單播地址作為保留FA。如果不存在使能的UP狀態的環回接口,則選擇任一使能的UP狀態的普通接口的全球單播地址作為保留FA。
[0057]S2、解析收到的非自身生成的LSP的FA sub TLV中的FA,根據FA計算出外部路由的下一跳地址。
[0058]進一步地,所述步驟S2中的根據FA計算出外部路由的下一跳地址包括:
[0059]S21、將和所述FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址。
[0060]S22、將所述FA的下一跳地址繼承為所述外部路由的下一跳地址。
[0061]進一步地,所述步驟S21包括:
[0062]如果自治域內存在多個和所述FA具有相同如綴的路由,則將和所述FA具有相同前綴的最長匹配的路由的下一跳地址繼承為FA的下一跳地址。
[0063]由于步驟SI中如果外部路由下一跳地址和出接口地址具有相同前綴,則選取下一跳地址作為FA。因此,將和所述FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址。進一步地,FA的下一跳地址為和外部路由下一跳地址具有相同前綴的自制域內的路由的下一跳地址。因此,實現了在IS-1S協議中的支持FA功能,利用FA實現外部路由的數據流量最佳路徑傳輸。
[0064]對應于上述方法,本發明還提供一種IS-1S協議中支持轉發地址功能的裝置,其應用于支持IPv6的路由器,所述路由器包括CPU、內存、非易失性存儲器以及其他硬件,所述裝置在邏輯上包括:
[0065]FA發布模塊,用于引入外部路由時,當外部路由下一跳地址和出接口地址具有相同前綴,則選取下一跳地址作為FA填充到TLV結構中擴展的FA sub TLV中隨鏈路狀態協議數據單元LSP發布出去。
[0066]FA計算模塊,用于解析收到的非自身生成的LSP的FA sub TLV中的FA,根據FA計算出外部路由的下一跳地址。
[0067]進一步地,本發明所述FA發布模塊還用于當外部路由下一跳地址和出接口地址具有不同前綴,則使用保留FA填充到FA sub TLV中隨LSP發布出去。[0068]進一步地,本發明所述保留FA為:
[0069]當存在至少一個使能的UP狀態的環回接口,則選擇任一使能的UP狀態的環回接口的全球單播地址作為保留FA ;
[0070]否則,選擇任一使能的UP狀態的普通接口的全球單播地址作為保留FA。
[0071]進一步地,本發明所述FA計算模塊中的根據FA計算出外部路由的下一跳地址包括:
[0072]將和所述FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址;
[0073]將所述FA的下一跳地址繼承為所述外部路由的下一跳地址。
[0074]進一步地,本發明所述將和FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址包括:
[0075]如果自治域內存在多個和所述FA具有相同如綴的路由,則將和所述FA具有相同前綴最長匹配的路由的下一跳地址繼承為FA的下一跳地址。
[0076]為說明本發明實現,現在以一個具體實例來進一步進行說明。
[0077]參見圖1,IS- 1S協議中支持IPv6的路由器Route A、Router B、Router E為自治域內部的路由器。路由器Router C為自治域外部的路由器,路由器Router C通過廣播網鏈路與路由器Router E和Router B連接。其中Router E和Router B建立IS-1S IPv6鄰居,Router B和Router A建立IS-1S IPv6鄰居。Router E和Router C建立開放式最短路徑優先OSPF v3鄰居,Router E上通過OSPF v3協議學到Router C上1:: 1/64的外部路由,下一跳地址為2:2:2:2::1。
[0078]Router E上通過IS-1S協議將OSPF v3協議的路由1:: 1/64引入自治域內部,在LSP中生成攜帶FA為2:2:2:2::1的1::1/64路由。
[0079]當Router B收到相應的LSP時,計算路由1:: 1/64時會繼承FA為2:2:2:2::1的路由的下一跳,FA為2:2:2:2::1的路由的下一跳會匹配到地址為2:2:2:2::2/64的接口上,計算出1::1/64路由的出接口為2:2:2:2::2/64地址對應的接口,下一跳地址為2:2:2:2::1,直指Router C設備,從而比經過RouterE節省一跳。則從Router A到達路由I:: 1/64的流量經過Router B轉發時,Router B根據下一跳直接轉發到Route C。
[0080]以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。
【權利要求】
1.一種IS-1S協議中支持轉發地址的方法,應用于支持IPv6的路由器,其特征在于,所述方法包括: 引入外部路由時,當外部路由下一跳地址和出接口地址具有相同前綴時,則選取下一跳地址作為轉發地址FA填充到TLV結構中擴展的FA subTLV中隨鏈路狀態協議數據單元LSP發布出去; 解析收到的非自身生成的LSP的FA sub TLV中的FA,根據FA計算出外部路由的下一跳地址。
2.根據權利要求2所述的方法,其特征在于,所述引入外部路由時,當外部路由下一跳地址和出接口地址具有相同前綴時,則選取下一跳地址作為FA填充到TLV結構中擴展的FAsub TLV中隨鏈路狀態協議數據單元LSP發布出去還包括: 當外部路由下一跳地址和出接口地址具有不同前綴時,則使用保留FA填充到FA subTLV中隨LSP發布出去。
3.根據權利要求2所述的方法,其特征在于,所述保留FA為: 如果存在至少一個使能的UP狀態的環回接口,則選擇任一使能的UP狀態的環回接口的全球單播地址作為保留FA ; 否則,選擇任一使能的UP狀態的普通接口的全球單播地址作為保留FA。
4.根據權利要求3所述的方法,其特征在于,所述根據FA計算出外部路由的下一跳地址包括: 將和所述FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址; 將所述FA的下一跳地址繼承為所述外部路由的下一跳地址。
5.根據權利要求4所述的方法,其特征在于,所述將和FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址包括: 如果自治域內存在多個和所述FA具有相同前綴的路由,則將和所述FA具有相同前綴的最長匹配的路由的下一跳地址繼承為FA的下一跳地址。
6.一種IS-1S協議中支持轉發地址的裝置,應用于支持IPv6的路由器,其特征在于,所述裝置包括: FA發布模塊,用于引入外部路由時,當外部路由下一跳地址和出接口地址具有相同前綴時,則選取下一跳地址作為FA填充到TLV結構中擴展的FA sub TLV中隨鏈路狀態協議數據單元LSP發布出去; FA計算模塊,用于解析收到的非自身生成的LSP的FA sub TLV中的FA,根據FA計算出外部路由的下一跳地址。
7.根據權利要求6所述的裝置,其特征在于,所述FA發布模塊還用于當外部路由下一跳地址和出接口地址具有不同前綴時,則使用保留FA填充到FA sub TLV中隨LSP發布出去。
8.根據權利要求7所述的裝置,其特征在于,所述保留FA為: 當存在至少一個使能的UP狀態的環回接口,則選擇任一使能的UP狀態的環回接口的全球單播地址作為保留FA ; 否則,選擇任一使能的UP狀態的普通接口的全球單播地址作為保留FA。
9.根據權利要求8所述的裝置,其特征在于,所述FA計算模塊中的根據FA計算出外部路由的下一跳地址包括: 將和所述FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址; 將所述FA的下一跳地址繼承為所述外部路由的下一跳地址。
10.根據權利要求9所述的裝置,其特征在于,所述將和FA具有相同前綴的自治域內的路由的下一跳地址繼承為FA的下一跳地址包括: 如果自治域內存在多個和所述FA具有相同前綴的路由,則將和所述FA具有相同前綴的最長匹配的 路由的下一跳地址繼承為FA的下一跳地址。
【文檔編號】H04L29/12GK103701696SQ201310755392
【公開日】2014年4月2日 申請日期:2013年12月31日 優先權日:2013年12月31日
【發明者】曹偉, 魏志廣 申請人:杭州華三通信技術有限公司