專利名稱:一種多協議標簽交換模塊、配置方法及邊緣路由器的制作方法
技術領域:
本發明涉及網絡領域,尤其涉及一種多協議標簽交換模塊、配置方法及邊緣路由
O
背景技術:
MPLS (Multiprotocol Label Switching,多協議標簽交換)技術是是三層路由和二層交換的集合模型,可以在多種第二層媒介上進行標簽交換的網絡技術;所謂多協議是指MPLS支持多種網絡層協議,例如IP、IPv6、IPX等;而且兼容包括ATM、幀中繼、以太網、 PPP等在內的多種鏈路層技術;所謂標簽交換就是對報文附上標簽,根據標簽進行轉發。因為MPLS技術不但提高了轉發速率,而且它將二層交換和三層路由技術結合起來的固有優勢在解決VPN (虛擬專用網)、CoS (服務分類)和TE (流量工程)這些IP網絡的重大問題時具有其它技術無可比擬的地方,所以MPLS技術獲得了越來越多的關注。因此。MPLS的應用也逐步轉向MPLS VPN和MPLS流量工程等。MPLS這一技術結合了第二層的交換和第三層路由的特點,第三層的路由在網絡的邊緣實施,而在MPLS的網絡核心采用第二層交換(無需分析IP報文頭),即MPLS技術將報文的三層選路和報文的轉發分開了。在MPLS網絡中,邊緣路由器既要支持路由又要支持MPLS,路由和MPLS都是用了一種相同的硬件資源——層三接口(每條硬件路由信息,都會關聯一個層三接口)。路由中, 層三接口用于在轉發時獲取源MAC和VLAN信息;在MPLS中,除了從層三接口中獲取源MAC (Media Access Control,介質訪問控制)和 VLAN (Virtual Local Area Network,虛擬局域網)信息外,還會獲取到標簽。在路由中,層三接口是一種可復用的資源,只要VLAN信息相同,不同的路由也可以使用相同的層三接口 ;在MPLS中,一條路由對應一個打了標簽的層三接口。如圖1所示,如果設備支持MPLS功能,那么MPLS就會給有需要的硬件路由條目1 打上對應的標簽。因為MPLS打標簽修改了層三接口的信息,如果此層三接口是一個多條路由(比如圖1中的硬件路由條目1、硬件路由條目2和硬件路由條目3)復用的層三接口,那么標簽一打,就影響了本來不想打標簽的路由(比如圖1中的硬件路由條目2、3)。
發明內容
本發明要解決的技術問題是如何使用有限的層三接口資源解決路由和MPLS的資源耦合問題。為了解決上述問題,本發明提供了一種多協議標簽交換的配置方法,包括
當獲知向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS 標簽,則創建第二層三接口 ;
將該條路由條目由映射到所述第一層三接口更改為映射到所述第二層三接口; 更改后,為該條路由條目分發映射到所述第二層三接口的MPLS標簽。
進一步地,如果一路由條目被分發了 MPLS標簽,則通過該條路由條目的業務流從該MPLS標簽所映射到的層三接口按照MPLS方式轉發。進一步地,所述的配置方法還包括
在向驅動程序中添加路由條目時,首先查找該條路由條目映射到的層三接口是否存在,如果存在則直接添加路由條目,不存在則創建該路由條目所映射到的層三接口后再添加路由條目。進一步地,所述的配置方法還包括
當獲知刪除路由條目成功后,刪除分發給該路由條目的MPLS標簽,解除所刪除的MPLS 標簽和層三接口之間的映射關系。進一步地,所述將該條路由條目由映射到所述第一層三接口更改為映射到所述第二層三接口的步驟中還包括
將該條路由條目和所述第一層三接口的映射關系保存在記錄中; 所述方法還包括
當獲知刪除所述路由條目映射到所述第二層三接口的MPLS標簽成功時,根據所述記錄將該條路由條目由映射到所述第二層三接口更改為映射到所述第一層三接口。本發明還提供了一種邊緣路由器,包括路由模塊;
多協議標簽交換MPLS模塊,用于當獲知所述路由模塊向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS標簽,則創建第二層三接口,然后將該路由條目中的所述第一層三接口更改為所述第二層三接口,為該路由條目分發映射到所述第二層三接口的MPLS標簽。進一步地,所述MPLS模塊包括
創建單元,用于當獲知所述路由模塊向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS標簽,則創建第二層三接口 ;
更新單元,用于將所述路由條目由映射到第一層三接口更改為映射到所述第二層三接
Π ;
分發單元,用于在更改后為該路由條目分發映射到所述第二層三接口的MPLS標簽。進一步地,所述的邊緣路由器還包括
轉發模塊,用于將通過被分發了 MPLS標簽的路由條目的業務流從該MPLS標簽所映射到的層三接口按照MPLS方式轉發。進一步地,所述的邊緣路由器還包括
層三接口管理模塊,用于對路由模塊創建的層三接口的單獨管理,保存路由條目和層三接口之間的映射關系;
所述路由模塊在向驅動寫路由條目時,首先在層三接口管理模塊中查找對應的層三接口存不存在,如果存在就直接使用,不存在則創建接口再寫路由。保證了層三接口在路由模塊的復用。進一步地,所述MPLS模塊還用于當獲知所述路由模塊刪除路由條目成功后,刪除分發給該路由條目的MPLS標簽,解除所刪除的MPLS標簽和層三接口之間的映射關系。進一步地,所述層三接口管理模塊還用于當獲知所述路由模塊向第一層三接口添加路由條目成功后,將該條路由條目和所述第一層三接口的映射關系保存在記錄中;
5所述路由模塊還用于當獲知所述MPLS模塊刪除所述路由條目映射到所述第二層三接口的MPLS標簽成功時,根據所述層三接口管理模塊保存的記錄,將該條路由條目由映射到所述第二層三接口更改為映射到所述第一層三接口。本發明還提供了一種多協議標簽交換模塊,包括
創建單元,用于當獲知向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS標簽,則創建第二層三接口 ;
更新單元,用于將所述路由條目由映射到所述第一層三接口更改為映射到所述第二層三接口 ;
分發單元,用于在更改后為該路由條目分發映射到所述第二層三接口的MPLS標簽。本發明的技術方案避免了層三接口打標簽后影響了它在路由中的復用功能這一缺陷,解除了路由和MPLS在硬件上的耦合關系,并且最大程度的節省了硬件層三接口資源;本發明的優化方案提供了路由和MPLS的事件通知機制,可保證路由的添加/刪除和 MPLS的打/去標簽對彼此的業務沒有影響。
圖1為現有的MPLS分發標簽前后的示意圖2為實施例一的多協議標簽交換的配置方法的流程示意圖; 圖3為實施例二中邊緣路由器中MPLS配置的示意圖; 圖4為實施例二中MPLS分發標簽前后的示意圖。
具體實施例方式下面將結合附圖及實施例對本發明的技術方案進行更詳細的說明。需要說明的是,如果不沖突,本發明實施例以及實施例中的各個特征可以相互結合,均在本發明的保護范圍之內。由于在硬件資源中,可創建層三接口的數目不及可創建路由數目的1/3,因此僅僅依靠不讓路由復用層三接口來避免MPLS中層三接口不能復用的問題是行不通的;本發明的技術方案可以使用有限的層三接口資源解決路由和MPLS的資源耦合問題。實施例一、一種多協議標簽交換的配置方法,如圖2所示,包括
當獲知向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS 標簽,則創建第二層三接口 ;
將該條路由條目由映射到所述第一層三接口更改為映射到所述第二層三接口; 更改后,為該條路由條目分發映射到所述第二層三接口的MPLS標簽。本實施例中,當獲知向第一層三接口添加路由條目成功后,如果不需要向該條路由條目分發MPLS標簽,則可按照現有流程處理。本實施例中,當向所述第一層三接口添加路由條目成功后可以產生路由添加事件,可根據該路由添加事件獲知向第一層三接口添加路由條目成功。本實施例中,如果一路由條目被分發了 MPLS標簽,則通過該條路由條目的業務流從該MPLS標簽所映射到的層三接口按照MPLS方式轉發。本實施例中,所述方法還可以包括在向驅動程序中添加路由條目時,首先查找該條路由條目映射到的層三接口是否存在,如果存在則直接添加路由條目,不存在則創建該路由條目所映射到的層三接口后再添加路由條目。 這樣就保證了路由對層三接口的復用。 本實施例中,路由和MPLS單獨管理各自創建的層三接口,解除路由和MPLS在硬件上的耦合關系,最終達到業務流該走路由的走路由、該走MPLS的走MPLS的目的,保證層三接口在路由中的復用性。本實施例中,所述方法還可以包括
當獲知刪除路由條目成功后,刪除分發給該路由條目的MPLS標簽,更新MPLS標簽與層三接口之間的映射關系,即解除所刪除的MPLS標簽和層三接口之間的映射關系。本實施例中,當刪除路由條目成功后,可以產生路由刪除事件,可根據該路由刪除事件獲知刪除路由條目成功。本實施例中,所述將該條路由條目由映射到所述第一層三接口更改為映射到所述第二層三接口的步驟中還可以包括
將該條路由條目和所述第一層三接口的映射關系保存在記錄中; 所述方法還可以包括
當獲知刪除所述路由條目映射到所述第二層三接口的MPLS標簽成功時,根據所述記錄將該條路由條目由映射到所述第二層三接口更改為映射到所述第一層三接口。本實施例中,當刪除所述路由條目映射到所述第二層三接口的MPLS標簽時可以產生標簽去除事件,可根據標簽去除事件獲知刪除所述路由條目映射到所述第二層三接口的MPLS標簽成功。本實施例中,路由器或其它負責路由管理的設備不需要知道現在路由條目是工作在有標簽的狀態還是沒有標簽的狀態,并且對于上述分發了 MPLS標簽的路由條目,依然記錄的是映射到所述第一層三接口 ;本實施例的做法既保證了路由對層三接口的復用,也避免了 MPLS對層三接口的修改(因為修改的是第二層三接口)造成對其他路由條目的影響。實施例二、一種邊緣路由器,包括 路由模塊;
MPLS模塊,用于當獲知所述路由模塊向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS標簽,則創建第二層三接口,然后將該路由條目中的所述第一層三接口更改為所述第二層三接口,為該路由條目分發映射到所述第二層三接口的MPLS 標簽。本實施例中的路由模塊主要負責管理各種路由協議的路由條目,并對路由條目的寫驅動操作進行管理,包括增加、刪除、修改、查找。本實施例中的MPLS模塊基于路由信息,按照用戶的需求對相應的報文打上標簽, 修改硬件路由條目中層三接口的相關信息;和所述路由模塊之間通過事件通知相互聯系。 如圖3中虛線所示,MPLS模塊分發標簽只會修改路由對應層三接口的信息,而不會修改路由條目的內容。本實施例中的硬件資源包括多個硬件路由條目,比如硬件路由條目1、……硬件路由條目n,還包括層三接口,在圖3中,層三接口保存在層三接口表中。
本實施例中,所述MPLS模塊具體可以包括
創建單元,用于當獲知所述路由模塊向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS標簽,則創建第二層三接口 ;
更新單元,用于將所述路由條目由映射到第一層三接口更改為映射到所述第二層三接
Π ;
分發單元,用于在更改后為該路由條目分發映射到所述第二層三接口的MPLS標簽。本實施例中,所述路由模塊當向所述第一層三接口添加路由條目成功后可以產生路由添加事件,創建單元可以當收到路由添加事件時確定向第一層三接口添加路由條目成功。本實施例中,所述邊緣路由器還可以包括
轉發模塊,用于將通過被分發了 MPLS標簽的路由條目的業務流從該MPLS標簽所映射到的層三接口按照MPLS方式轉發。本實施例中,MPLS模塊配置的優先級高于路由模塊配置,即,只要MPLS模塊對路由條目分發了標簽,那么業務流就走MPLS轉發;另外,對于層三接口的使用,遵守“誰創建, 誰管理”的原則。本實施例中,所述邊緣路由器還包括
層三接口管理模塊,用于對路由模塊創建的層三接口的單獨管理,保存路由條目和層三接口之間的映射關系;
所述路由模塊在向驅動程序中添加路由條目時,首先在層三接口管理模塊中查找該條路由條目映射到的層三接口是否存在,如果存在則直接添加路由條目,不存在則創建該路由條目所映射到的層三接口后再添加路由條目。本實施例中,所述路由模塊和MPLS模塊對不同事件的處理過程如下,所述事件包括路由事件和MPLS事件。(一)路由事件路由添加,路由刪除。如圖4所示,當路由模塊向硬件添加路由成功后產生路由添加事件,MPLS模塊收到路由添加事件時,如果此時需要對這條路由條目(現在映射到層三接口 B)分發標簽,那么 MPLS模塊就會創建一個自己的第二層三接口 Α,并將此路由條目(圖4中的硬件路由條目1) 由映射到第一層三接口(層三接口 B)替換為映射到第二層三接口(層三接口 Α)。這既保證了路由模塊對層三接口的復用,也避免了 MPLS模塊對層三接口中路由條目的分發標簽造成對其他路由條目(圖4中的硬件路由條目2、3 )的影響。對于路由模塊,不需要知道現在路由條目是工作在有標簽的狀態還是沒有標簽的狀態,層三接口管理模塊中依然保存的是硬件路由條目1映射到層三接口 B。也就是說,所述層三接口管理模塊還用于當獲知所述路由模塊向第一層三接口添加路由條目成功后,將該條路由條目和所述第一層三接口的映射關系保存在記錄中;
所述MPLS模塊還用于當獲知所述路由模塊刪除路由條目成功后,刪除分發給該路由條目的MPLS標簽,更新自己保存的MPLS標簽與層三接口之間的映射關系,即解除所刪除的MPLS標簽和層三接口之間的映射關系;所述映射關系可以但不限于為一映射關系表。當路由模塊從硬件刪除路由成功后可產生路由刪除事件,MPLS模塊收到路由刪除事件時獲知所述路由模塊刪除路由條目成功。
(二)MPLS事件標簽去除。所述路由模塊還用于當獲知所述MPLS模塊刪除所述路由條目映射到所述第二層三接口的MPLS標簽成功時,根據所述層三接口管理模塊保存的記錄,將該條路由條目由映射到所述第二層三接口更改為映射到所述第一層三接口。在MPLS模塊將路由條目對應的標簽(比如圖4中映射到層三接口 A的標簽)去掉時,可產生標簽去除事件,路由模塊收到標簽去除事件時獲知所述MPLS模塊刪除所述路由條目映射到所述第二層三接口的MPLS標簽成功。實施例三、一種MPLS模塊,包括
創建單元,用于當獲知向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS標簽,則創建第二層三接口 ;
更新單元,用于將所述路由條目由映射到所述第一層三接口更改為映射到所述第二層三接口 ;
分發單元,用于在更改后為該路由條目分發映射到所述第二層三接口的MPLS標簽。本實施例中,創建單元可以是當收到路由添加事件時獲知向第一層三接口添加路由條目成功。當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明的權利要求的保護范圍。
權利要求
1.一種多協議標簽交換的配置方法,包括當獲知向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發多協議標簽交換MPLS標簽,則創建第二層三接口 ;將該條路由條目由映射到所述第一層三接口更改為映射到所述第二層三接口;更改后,為該條路由條目分發映射到所述第二層三接口的MPLS標簽。
2.如權利要求1所述的配置方法,其特征在于如果一路由條目被分發了 MPLS標簽,則通過該條路由條目的業務流從該MPLS標簽所映射到的層三接口按照MPLS方式轉發。
3.如權利要求1所述的配置方法,其特征在于,還包括在向驅動程序中添加路由條目時,首先查找該條路由條目映射到的層三接口是否存在,如果存在則直接添加路由條目,不存在則創建該路由條目所映射到的層三接口后再添加路由條目。
4.如權利要求1所述的配置方法,其特征在于,還包括當獲知刪除路由條目成功后,刪除分發給該路由條目的MPLS標簽,解除所刪除的MPLS 標簽和層三接口之間的映射關系。
5.如權利要求1所述的配置方法,其特征在于,所述將該條路由條目由映射到所述第一層三接口更改為映射到所述第二層三接口的步驟中還包括將該條路由條目和所述第一層三接口的映射關系保存在記錄中;所述方法還包括當獲知刪除所述路由條目映射到所述第二層三接口的MPLS標簽成功時,根據所述記錄將該條路由條目由映射到所述第二層三接口更改為映射到所述第一層三接口。
6.一種邊緣路由器,包括路由模塊;其特征在于,還包括多協議標簽交換MPLS模塊,用于當獲知所述路由模塊向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS標簽,則創建第二層三接口,然后將該路由條目中的所述第一層三接口更改為所述第二層三接口,為該路由條目分發映射到所述第二層三接口的MPLS標簽。
7.如權利要求6所述的邊緣路由器,其特征在于,所述MPLS模塊包括創建單元,用于當獲知所述路由模塊向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS標簽,則創建第二層三接口 ;更新單元,用于將所述路由條目由映射到第一層三接口更改為映射到所述第二層三接Π ;分發單元,用于在更改后為該路由條目分發映射到所述第二層三接口的MPLS標簽。
8.如權利要求6所述的邊緣路由器,其特征在于,還包括轉發模塊,用于將通過被分發了 MPLS標簽的路由條目的業務流從該MPLS標簽所映射到的層三接口按照MPLS方式轉發。
9.如權利要求6所述的邊緣路由器,其特征在于,還包括層三接口管理模塊,用于對路由模塊創建的層三接口的單獨管理,保存路由條目和層三接口之間的映射關系;所述路由模塊在向驅動寫路由條目時,首先在層三接口管理模塊中查找對應的層三接口存不存在,如果存在就直接使用,不存在則創建接口再寫路由。
10.如權利要求6所述的邊緣路由器,其特征在于所述MPLS模塊還用于當獲知所述路由模塊刪除路由條目成功后,刪除分發給該路由條目的MPLS標簽,解除所刪除的MPLS標簽和層三接口之間的映射關系。
11.如權利要求9所述的邊緣路由器,其特征在于,所述層三接口管理模塊還用于當獲知所述路由模塊向第一層三接口添加路由條目成功后,將該條路由條目和所述第一層三接口的映射關系保存在記錄中;所述路由模塊還用于當獲知所述MPLS模塊刪除所述路由條目映射到所述第二層三接口的MPLS標簽成功時,根據所述層三接口管理模塊保存的記錄,將該條路由條目由映射到所述第二層三接口更改為映射到所述第一層三接口。
12.一種多協議標簽交換模塊,其特征在于,包括創建單元,用于當獲知向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS標簽,則創建第二層三接口 ;更新單元,用于將所述路由條目由映射到所述第一層三接口更改為映射到所述第二層三接口 ;分發單元,用于在更改后為該路由條目分發映射到所述第二層三接口的MPLS標簽。
全文摘要
本發明公開了一種多協議標簽交換模塊、配置方法及邊緣路由器;其中所述配置方法包括當獲知向第一層三接口添加路由條目成功后,如果判斷需要向該條路由條目分發MPLS標簽,則創建第二層三接口;將該條路由條目由映射到所述第一層三接口更改為映射到所述第二層三接口;更改后,為該條路由條目分發映射到所述第二層三接口的MPLS標簽。本發明能夠使用有限的層三接口資源解決路由和MPLS的資源耦合問題。
文檔編號H04L12/56GK102404217SQ20111037582
公開日2012年4月4日 申請日期2011年11月23日 優先權日2011年11月23日
發明者楊忠洪 申請人:瑞斯康達科技發展股份有限公司