專利名稱::一種實現多業務轉發的方法和網絡處理器的制作方法
技術領域:
:本發明涉及數據通信領域,尤其涉及一種實現普通二層、QinQ(802.lQin802.1Q,VLAN雙堆疊技術)業務和L2VPN(VirtualPrivateNetwork,虛擬私有網絡)等多業務轉發的方法和網絡處理器。
背景技術:
:網絡高速發展的今天,網絡處理器憑借其靈活的可編程性和高處理性能得到越來越廣泛的應用。網絡處理器需要在有限的指令空間和有限的資源限制下實現多種業務。目前MPLS(MultiprotocolLabelSwitching,多協議標記交換)VPN業務已經越來越廣泛的應用到現網中,基于MPLS的L2VPN(二層VPN)有VPLS(VirualPrivateLANService,虛擬專用局域網業務)和VPWS(VirtualPrivateWireService,虛擬專用線路業務)兩類。其中VPLS能夠提供多點到多點的二層VPN技術,VPffS提供點到點的二層VPN技術,由于其技術不同,體現在轉發流程上有較大區別。同時L2VPN的接入方式有多種,如基于端口接入、基于端口和VLAN接入、基于端口和兩層VLAN(VirtualLocalAreaNetwork,虛擬局域網)接入等。網絡處理器需要在有限的指令空間中實現L2VPN多種接入和轉發,同時又必須能同時實現基本的二層轉發和QinQ業務。在以往的實現過程中,往往將L2VPN技術和普通二層轉發以及QinQ實現分別進行處理,需要針對不同的業務設計不同的表項,同時設計不同的轉發處理流程,不但極大的占用資源,而且由于區分業務進行處理,浪費指令空間,極大的影響網絡處理器的性能,對控制層面來說也增加了負擔。同時由于不同業務不同處理,造成需要業務擴展時非常困難,嚴重影響了網絡處理器功能實現的可擴展性和兼容性。
發明內容本發明要解決的問題是提供一種實現多業務轉發的方法和網絡處理器,通過將普通二層業務、QinQ業務、L2VPN業務綜合進行抽象,將上述三種業務的轉發表抽象綜合一體化,將上述三種業務的轉發流程設計成一個流程,極大的節省了網絡處理器指令空間和表項資源,減輕了控制層面負擔,并且提高了可擴展性和兼容性。為了解決上述技術問題,本發明提供了一種實現多業務轉發的方法,包括接收到報文后,根據業務配置解析出報文攜帶的虛擬局域網(VLAN)信息,根據報文接入的端口信息和所述VLAN信息查找相應的轉發標識;根據報文攜帶的目的MAC地址信息和所述轉發標識,在MAC地址表中查找目的端口的信息;根據查找結果將報文發送給查找到的目的端口或所述轉發標識對應的端口。進一步地,上述方法還具有下面特征若根據業務配置解析出所述報文攜帶二層VLAN標志,則根據特定的哈希算法將所述端口信息和VLAN信息計算為一哈希值;根據所述哈希值在預先配置的第一映射表中查找相應的轉發標識。進一步地,上述方法還具有下面特征若在預先配置的第一表中未查找相應的轉發標識,則根據所述端口信息和外層VLAN信息在預先配置的第二表中查找相應的轉發標識。進一步地,上述方法還具有下面特征若根據業務配置解析出所述報文攜帶一層VLAN標志或不帶VLAN標志,則根據所述端口信息和VLAN信息、或者所述端口信息和所述端口的缺省VLAN信息在預先配置的第二映射表中查找相應的轉發標識。進一步地,上述方法還具有下面特征還包括,在所述MAC地址表中查找所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,若未查找到所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,或者查找到所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,但端口信息不同,則進行MAC地址學習,將源MAC地址信息、所述轉發標識和相應的端口信息填進所述MAC地址表。為了解決上述技術問題,本發明還提供了一種網絡處理器,包括配置模塊,用于接收用戶輸入的業務配置信息后,將所述業務配置信息中的端口信息和VLAN信息映射為相應的轉發標識,并建立映射表;解析模塊,用于接收到報文后根據所述配置模塊的所述業務配置信息解析出所述報文攜帶的VLAN信息,將所述VLAN信息輸出給查找模塊;查找模塊,用于根據接收到的所述VLAN信息和所述報文接入的端口信息在所述映射表中查找相應的轉發標識,然后根據所述轉發標識和所述報文攜帶的目的MAC信息在MAC地址表中查找目的端口的信息,將查找結果消息輸出給轉發模塊;轉發模塊,用于根據接收到的查找結果消息將報文發送給查找到的目的端口或所述轉發標識對應的端口。進一步地,上述網絡處理器還具有下面特征所述配置模塊,具體用于若所述VLAN信息為二層VLAN標志,則根據哈希算法將所述端口信息和VLAN信息計算為一第一哈希值,為所述第一哈希值配置一轉發標識,建立第一映射表;若所述VLAN信息為一層VLAN標志或無VLAN信息,則將所述端口信息和VLAN信息、或所述端口信息和缺省VLAN信息映射為一轉發標識,建立第二映射表。進一步地,上述網絡處理器還具有下面特征所述解析模塊,還用于若解析出所述VLAN信息為二層VLAN標志,則根據所述哈希算法將該端口信息和VLAN信息計算為第二哈希值,將所述第二哈希值輸出給所述查找模塊;所述查找模塊,還用于根據接收到的所述第二哈希值在所述第一映射表中查找相應的轉發標識。進一步地,上述網絡處理器還具有下面特征所述查找模塊,還用于若在所述第一映射表中未查找到相應的轉發標識,則根據所述端口信息和外層VLAN標志在所述第二映射表中查找相應的轉發標識。進一步地,上述網絡處理器還具有下面特征所述解析模塊,還用于若解析出所述VLAN信息為一層VLAN標志或不帶VLAN標志,則所述VLAN信息輸出給所述查找模塊;所述查找模塊,還用于根據接收到的所述VLAN信息在所述第二映射表中查找相應的轉發標識。進一步地,上述網絡處理器還具有下面特征還包括學習模塊,所述查找模塊,還用于在所述MAC地址表中查找所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,若未查找到所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,或者查找到所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,但端口信息不同,則向所述學習模塊輸出一消息;學習模塊,用于接收到所述查找模塊輸出的消息后,進行MAC地址學習,將所述報文攜帶的源MAC地址信息、所述轉發標識和相應的端口信息學習到所述MAC地址表。綜上,本發明提供的實現多業務轉發的方法和網絡處理器,通過將二層業務轉發的關鍵性因素統一映射成內部的轉發標識,對普通二層業務、QinQ業務、L2VPN業務設計相同的表項,同時設計相同的轉發處理流程,節約了資源,極大的優化了網絡處理器的可擴展性和兼容性等的性能。圖1為本發明實施例的網絡處理器的示意圖;圖2是根據本發明實施例的多業務報文轉發的方法的流程圖。具體實施例方式普通二層業務的VLAN、QinQ業務中的單層VLAN和雙層VLAN以及L2VPN業務中的VPNID分別是上述三種業務轉發的關鍵性因素,本發明的核心思想是將上述關鍵因素統一抽象映射成內部轉發標識FID,在轉發流程上,對普通二層業務、QinQ業務和VPLS業務的轉發統一用報文攜帶的目的MAC(DMAC)地址和FID來查找轉發目的地址,VPffS直接根據FID進行轉發。圖1為本發明實施例的網絡處理器的示意圖,如圖所示,本實施例的網絡處理器包括配置模塊、解析模塊、查找模塊、學習模塊和轉發模塊。配置模塊用于接收用戶輸入的業務配置信息后,將用戶配置的各種業務的端口信息和VLAN信息映射為相應的轉發標識FID。具體地,對于通過端口和一層VLAN映射FID可以實現——映射;對于通過端口和兩層VLAN映射FID,由于直接用端口和兩層VLAN—一映射FID,會占用較大的表項資源,可以先通過某種哈希(HASH)算法將端口和兩層VLAN計算成一HASH值,再將HASH值和FID一一映射。對于普通二層業務,同一個VLAN的端口可以申請同一個FID,如表1所示,VLANYl中有端口Xl和X2,表中的端口X1、X2和VLANYl申請的FID相同,都為附。對于QinQ業務,用戶配置的信息有用戶側端口、網絡側端口、內層VLAN和外層VLAN,并且將網絡側端口配置成可解析兩層VLAN。具體的映射為對于用戶側,根據端口和內層VLAN申請一個FID,對于網絡側根據端口和兩層VLAN申請FID,這兩個FID數值一樣。假設配置用戶側端口為X3,網絡側端口為X4,內層VLAN為Y2,外層VLAN為Y3,則如表1所示,端口X3、VLANY2的FID為N2,網絡側端口X4、VLANY2、VLANY3通過HASH算法算出HASH值Ml,如表2,將Ml和N2填寫入表中。對于L2VPN業務,如果有端口和兩層VLAN接入,將該端口配置成可以解析兩層VLAN,對于VPLS,同一個VPN內的接入配置相同的FID,如表1所示,假設端口X5和VLANY5接入VPN1,端口X6和VLANY6也接入VPN1,則同一個VPN接入申請的FID—樣為N3。對于VPWS,VPWS的接入也有三種,通過端口、端口和一層VLAN或端口和兩層VLAN。如果配置端口X7和VLANY7接入,則申請FIDN4,同時表中VPWS位置為1,表示是VPWS。如果配置端口X8、VLANY8和VLANY9接入VPWS,則根據端口X8、VLANY8和VLANY9計算出HASH值M3,申請FIDN6寫入表中。表1<table>tableseeoriginaldocumentpage7</column></row><table>表2<table>tableseeoriginaldocumentpage7</column></row><table>解析模塊當接收到報文時,根據所述配置模塊的所述業務配置信息解析出所述報文攜帶的VLAN信息,將所述VLAN信息輸出給查找模塊。一般報文的格式為目的MAC(DMAC)+源MAC(SMAC)+VLANtag(標志)+ETYPE+PAYL0AD,其中,PAYL0AD表示報文的內容,ETYPE是以太類型。進一步地,解析模塊可以從報文格式中的VLAN標志解析出報文攜帶的VLAN信息,具體地,對于普通二層業務、QinQ業務和L2VPN業務的報文解析出來的VLAN信息可能攜帶二層VLAN標志,也可能攜帶一層VLAN標志,或者不攜帶VLAN標志。查找模塊根據報文攜帶的VLAN信息和報文接入的端口信息在預先配置的映射表中查找相應的轉發標識FID,然后根據所述FID和所述報文攜帶的目的MAC信息在MAC地址表中查找目的端口的信息,將查找結果消息輸出給轉發模塊。具體地,對于攜帶兩層VLAN標志的報文,通過采用與配置模塊配置FID時相同的HASH算法,將報文攜帶的端口信息和兩層VLAN計算成一HASH值,再通過計算得到的HASH值在表2中查找FID,如果沒有查找到相應的FID,就采用端口和外層VLAN再查映射表,如表1;對于攜帶一層VLAN的報文,直接用端口信息和VLAN信息查映射,如表1;對于沒有帶VLAN的報文,用端口信息和端口缺省VLAN信息查映射表,如表1,如果沒有查找到相應的FID,則表示沒有配置相應的FID,將報文丟棄。具體地,查找模塊根據查找到的FID和報文的目的MAC信息查找多業務MAC地址表(如表3所示)。如果在表3中能夠查找到與目的MAC和FID的相應信息,則可以查找到與目的MAC和FID對應的目的端口信息,然后將查找到目的端口的結果消息輸出給轉發模塊;如果在表3中未查找到MAC和FID的相應信息,則將未查找到目的端口的結果消息輸出給轉發模塊。轉發模塊用于接收到查找結果消息后,將報文發送給FID對應的端口。具體地,若轉發模塊接收到查找到目的端口的結果消息,則將報文發送到該查找到的端口。如果在轉發模塊接收到未查找到目的端口的結果消息,則直接將報文在FID對應的端口內廣播,如果是普通二層業務,則該FID對應的端口就是該VLAN中的端口,如果是L2VPN業務,則FID對應的端口就是該VPN中的本地成員和遠端成員。對于VPWS業務,則直接根據FID對應的端口進行轉發。表3MAC地址表FIDMAC端口其他信息進一步地,本實施例的網絡處理器還包括學習模塊,查找模塊,還用于在所述MAC地址表中查找所述報文攜帶的源MAC地址信息和所述FID對應的信息,該對應的信息指源MAC地址信息、FID和端口信息完全對應,這樣若未查找到源MAC地址信息和FID對應,或者查找到源MAC地址信息和FID對應,但是端口信息不同,則向所述學習模塊輸出一消息;學習模塊,用于接收到所述查找模塊輸出的消息后,學習MAC地址,將SMAC地址、FID和相應的端口信息學習到多業務MAC地址表。下面詳細說明基于上述的網絡處理器進行多業務報文轉發的方法。圖2是根據本發明實施例的多業務報文轉發的方法的流程圖,網絡處理器接收用戶配置的各種業務,預先將端口信息和VLAN信息配置成相應的轉發標識FID,建立端口信息和VLAN信息與FID—一映射的映射關系表。如圖所示,本實施例的多業務報文轉發的方法包括下面步驟SllO網絡處理器接收報文;S120網絡處理器根據業務配置解析出報文攜帶的VLAN信息;S130根據報文接入的端口信息和攜帶的VLAN信息查找預先配置的相應的轉發標識FID;由于用戶配置的普通二層業務、QinQ業務和L2VPN業務的報文可能攜帶二層VLAN標志,也可能攜帶一層VLAN標志,或者不攜帶VLAN標志。對于攜帶二層VLAN標志的情況,可以通過端口和兩層VLAN映射FID,但由于直接用端口和兩層VLAN—一映射FID,將會占用較大的表項資源,所以在配置時可以先通過某種哈希(HASH)算法將端口和兩層VLAN計算成一HASH值,再將HASH值和FID—一映射。對于攜帶一層VLAN標志的情況,可以通過端口和一層VLAN映射FID實現一一映射。對未攜帶VLAN標志的情況,可以通過端口和缺省VLAN來映射FID以實現一一映射。因此,進一步地,步驟S131,網絡處理器在解析報文的過程中,先判斷報文攜帶VLAN信息的情況,若報文攜帶兩層VLAN,則進入步驟S132,若報文沒有攜帶VLAN或者只帶一層VLAN,則進入步驟S133。S132,利用配置時采用的HASH算法,通過報文攜帶的端口信息和兩層VLAN信息計算得到HASH值,根據算出的HASH值查找預先配置的HASH值與FID的映射表(例如,表2),若查找到HASH值對應的FID,則進入步驟S140,若未查到HASH值對應的FID,則進入步驟S133。S133,根據端口和外層VLAN查找FID映射表(例如,表1),如果報文沒有帶VLAN,就用端口和端口的缺省VLAN查FID映射表(例如,表1),若查找到對應的FID,則進入步驟S140,否則就將報文丟棄。進一步地,S140,判斷是否是VPWS接入,若是,則進入步驟S180,否則進入步驟S150。具體地,在預先配置的映射表中(例如,表1或表2)查詢標記是否為VPWS的項,例如,表1或表2中標記是否為VPWS的項置為“1”,說明該報文是VPWS接入。S150,根據報文中攜帶的源MAC和查到的FID查找多業務MAC表,若未查找到源MAC地址信息和FID對應,或者查找到源MAC地址信息和FID對應,但是端口信息不同,則進入步驟S160,否則進入步驟S170。S160,將SMAC地址、FID和相應的端口信息學習到多業務MAC地址表。S170,根據報文中攜帶的DMAC和查到的FID查找多業務MAC表,如果在多業務MAC表中查到相應的目的端口信息,則轉發至查找的目的端口,否則,進入步驟S180。S180,將報文在FID對應的端口上廣播,如果報文是普通二層業務和QinQ業務,則在多業務MAC表中查找到的FID對應的廣播端口就是普通二層業務和QinQ業務中相應VLAN中的端口;如果報文是VPWS業務,則多業務MAC表中查找到的該FID中只有一個目的端口,就直接通過該目的端口轉發;如果是VPLS業務,該多業務MAC表中查找到的FID對應的廣播端口就是該VPN的本地成員和遠端成員。以上所述僅為本發明的實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的權利要求范圍之內。權利要求一種實現多業務轉發的方法,包括接收到報文后,根據業務配置解析出報文攜帶的虛擬局域網(VLAN)信息,根據報文接入的端口信息和所述VLAN信息查找相應的轉發標識;根據報文攜帶的目的MAC地址信息和所述轉發標識,在MAC地址表中查找目的端口的信息;根據查找結果將報文發送給查找到的目的端口或所述轉發標識對應的端口。2.如權利要求1所述的方法,其特征在于,若根據業務配置解析出所述報文攜帶二層VLAN標志,則根據特定的哈希算法將所述端口信息和VLAN信息計算為一哈希值;根據所述哈希值在預先配置的第一映射表中查找相應的轉發標識。3.如權利要求2所述的方法,其特征在于,若在預先配置的第一表中未查找相應的轉發標識,則根據所述端口信息和外層VLAN信息在預先配置的第二表中查找相應的轉發標識。4.如權利要求1所述的方法,其特征在于,若根據業務配置解析出所述報文攜帶一層VLAN標志或不帶VLAN標志,則根據所述端口信息和VLAN信息、或者所述端口信息和所述端口的缺省VLAN信息在預先配置的第二映射表中查找相應的轉發標識。5.如權利要求1-4任一項所述的方法,其特征在于,還包括,在所述MAC地址表中查找所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,若未查找到所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,或者查找到所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,但端口信息不同,則進行MAC地址學習,將源MAC地址信息、所述轉發標識和相應的端口信息填進所述MAC地址表。6.一種網絡處理器,其特征在于,包括配置模塊,用于接收用戶輸入的業務配置信息后,將所述業務配置信息中的端口信息和VLAN信息映射為相應的轉發標識,并建立映射表;解析模塊,用于接收到報文后根據所述配置模塊的所述業務配置信息解析出所述報文攜帶的VLAN信息,將所述VLAN信息輸出給查找模塊;查找模塊,用于根據接收到的所述VLAN信息和所述報文接入的端口信息在所述映射表中查找相應的轉發標識,然后根據所述轉發標識和所述報文攜帶的目的MAC信息在MAC地址表中查找目的端口的信息,將查找結果消息輸出給轉發模塊;轉發模塊,用于根據接收到的查找結果消息將報文發送給查找到的目的端口或所述轉發標識對應的端口。7.如權利要求6所述的網絡處理器,其特征在于,所述配置模塊,具體用于若所述VLAN信息為二層VLAN標志,則根據哈希算法將所述端口信息和VLAN信息計算為一第一哈希值,為所述第一哈希值配置一轉發標識,建立第一映射表;若所述VLAN信息為一層VLAN標志或無VLAN信息,則將所述端口信息和VLAN信息、或所述端口信息和缺省VLAN信息映射為一轉發標識,建立第二映射表。8.如權利要求7所述的方法,其特征在于,所述解析模塊,還用于若解析出所述VLAN信息為二層VLAN標志,則根據所述哈希算法將該端口信息和VLAN信息計算為第二哈希值,將所述第二哈希值輸出給所述查找模塊;所述查找模塊,還用于根據接收到的所述第二哈希值在所述第一映射表中查找相應的轉發標識。9.如權利要求8所述的方法,其特征在于,所述查找模塊,還用于若在所述第一映射表中未查找到相應的轉發標識,則根據所述端口信息和外層VLAN標志在所述第二映射表中查找相應的轉發標識。10.如權利要求8所述的方法,其特征在于,所述解析模塊,還用于若解析出所述VLAN信息為一層VLAN標志或不帶VLAN標志,則所述VLAN信息輸出給所述查找模塊;所述查找模塊,還用于根據接收到的所述VLAN信息在所述第二映射表中查找相應的轉發標識。11.如權利要求6-10任一項所述的方法,其特征在于,還包括學習模塊,所述查找模塊,還用于在所述MAC地址表中查找所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,若未查找到所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,或者查找到所述報文攜帶的源MAC地址信息和所述轉發標識對應的信息,但端口信息不同,則向所述學習模塊輸出一消息;學習模塊,用于接收到所述查找模塊輸出的消息后,進行MAC地址學習,將所述報文攜帶的源MAC地址信息、所述轉發標識和相應的端口信息學習到所述MAC地址表。全文摘要本發明涉及一種實現多業務轉發的方法和網絡處理器,該方法包括接收到報文后,根據業務配置解析出報文攜帶的VLAN信息,根據報文接入的端口信息和所述VLAN信息查找相應的轉發標識;根據報文攜帶的目的MAC地址信息和所述轉發標識,在MAC地址表中查找目的端口的信息;根據查找結果將報文發送給查找到的目的端口或所述轉發標識對應的端口。本發明通過將普通二層業務、QinQ業務、L2VPN業務綜合進行抽象,將上述三種業務的轉發表抽象綜合一體化,將上述三種業務的轉發流程設計成一個流程,極大的節省了網絡處理器指令空間和表項資源,減輕了控制層面負擔,并且提高了可擴展性和兼容性。文檔編號H04L12/56GK101820392SQ20101013968公開日2010年9月1日申請日期2010年3月26日優先權日2010年3月26日發明者孫蓓,錢勇申請人:中興通訊股份有限公司