本申請涉及網絡通信技術,特別涉及全局資源分配方法和裝置。
背景技術:
在網絡通信應用中,大部分資源是多個應用共享的,如大規模精確匹配表(LEM:Large Exact Match)、轉發等價類(FEC)表項、出方向封裝信息資源(EEI:Egress Encapsulation Information)、地址解析協議(ARP:Address Resolution Protocol)表項。
在網絡應用中,有些應用所需的設置或表項是全局下發的,稱為全局資源。對于全局資源,先由全局主控板為全局資源分配一個全局資源標識(ID),并將全局資源ID連同全局資源一起下發至所有單板(Slot)。這里的全局資源ID實質為全局資源的地址標識,所有單板上同一全局資源的地址標識相同。
系統中各單板的資源規格一般不同。目前全局資源的最大規格受限于系統中各單板的全局資源規格中取值最小的規格。以全局資源為ARP表項為例,假如Slot1上ARP表項的最大規格為32K,Slot2上ARP表項的最大規格為64K,Slot3上ARP表項的最大規格為128K,則只能限定全局主控板上全局資源的最大規格為32K,進而限定整個系統的ARP最大規格為32K,這導致大型的數據中心網絡中日益增長的用戶數量帶來的規格要求無法滿足。
技術實現要素:
本申請提供了全局資源分配方法和裝置,以打破全局資源規格限制,避免因全局資源規格限制帶來的缺陷。
一種全局資源分配方法,該方法應用于單板,包括:
在本單板作為全局資源匹配的下行單板時,在本地分配一個與全局資源標識ID具有映射關系的局部資源ID,并建立與全局資源匹配的硬件表項,硬件表項的索引為局部資源ID,全局資源ID為全局主控板為全局資源分配的標識;
接收報文,依據報文攜帶的全局資源ID找到與全局資源ID具有映射關系的局部資源ID,依據索引為局部資源ID的硬件表項轉發報文。
一種全局資源分配裝置,該裝置應用于單板,包括:
標識處理單元,用于在本單板作為全局資源匹配的下行單板時,在本地分配一個與全局資源標識ID具有映射關系的局部資源ID,并建立與全局資源匹配的硬件表項,硬件表項的索引為局部資源ID,全局資源ID為全局主控板為全局資源分配的標識;
報文處理單元,用于接收報文,依據報文攜帶的全局資源ID找到與全局資源ID具有映射關系的局部資源ID,依據索引為局部資源ID的硬件表項轉發報文。
由以上技術方案可以看出,本發明打破了現有全局資源方案中全局資源規格限制,不再將全局主控板為全局資源分配的全局資源ID同步到各單板,而是在全局資源匹配的下行單板分配一個與全局資源ID具有映射關系的局部資源ID,使局部資源映射成全局資源的一部分,極大擴展了全局資源規格,避免因全局資源規格受限帶來的缺陷,提高了產品的競爭力。
附圖說明
圖1為本發明提供的方法流程圖;
圖2為本發明提供的各單板資源占用示意圖;
圖3為本發明提供的實施例示意圖;
圖4為現有方案中全局資源分配示意圖;
圖5為現有方案中全局資源規格示意圖;
圖6為本發明提供的全局資源分配示意圖;
圖7為本發明提供的全局資源規格示意圖;
圖8為本發明提供的裝置示意圖。
具體實施方式
盡管全局主控板存有為全局資源分配的全局資源ID,但是,因為全局主控板上沒有交換芯片,不做硬件表項下發,其存有的全局資源ID相對而言只是一個“虛”的索引,不用于指導報文轉發,并且,因為全局主控板上沒有交換芯片,沒有硬件表項的限制,因此,全局主控板上的全局資源ID完全可以按需擴展,沒有必要受限制。
基于此,本申請打破了現有全局資源分配方案中全局資源最大規格的限制(限制為所有單板的全局資源規格中的最小規格),不再將全局主控板為全局資源分配的全局資源ID同步到各單板,而是在全局資源匹配的下行單板分配一個與全局資源ID具有映射關系的局部資源ID,使局部資源映射成全局資源的一部分,極大擴展了全局資源規格,避免因全局資源分配的最大規格受限于規格最小的單板規格帶來的缺陷,提高了產品的競爭力。
為了使本發明的目的、技術方案和優點更加清楚,下面結合附圖和具體實施例對本發明進行詳細描述。
參見圖1,圖1為本申請提供的方法流程圖。如圖1所示,該流程可包括以下步驟:
步驟101,全局主控板在應用申請全局資源時,從指定的全局資源ID范圍中選擇唯一一個空閑的全局資源ID分配給全局資源,將為全局資源分配的全局資源ID下發給各單板。
作為本發明的一個實施例,這里的全局資源ID范圍為從單板地址空間的最低地址開始的一段連續地址范圍。或者,
全局資源標識ID范圍為從單板地址空間的最高地址開始的一段連續地址范圍。
步驟102,單板在本板作為全局資源匹配的下行單板時,在本地分配一個與全局資源ID具有映射關系的局部資源ID,并建立與全局資源匹配的硬件表項,硬件表項的索引為局部資源ID。
在本發明中,作為一個實施例,步驟102中,分配一個與全局資源ID具有映射關系的局部資源ID包括:
從指定的局部資源ID范圍中選擇一個空閑的局部資源ID,
將選擇出的局部資源ID作為與全局資源ID具有映射關系的局部資源ID。如此,在單板本地就會存在全局資源ID與局部資源ID的映射關系。圖2舉例示出了全局資源ID與局部資源ID的映射關系。
作為一個實施例,當全局資源ID范圍為從單板地址空間的最低地址開始的一段連續地址范圍時,這里的局部資源ID范圍優選為從單板地址空間的最高地址開始的一段連續地址范圍;當全局資源ID范圍為從單板地址空間的最高地址開始的一段連續地址范圍時,局部資源ID范圍優選為從單板地址空間的最低地址開始的一段連續地址范圍。
作為一個實施例,步驟102中,建立與全局資源匹配的硬件表項類似現有硬件表項建立方式。以全局資源為ARP表項為例,則單板建立與全局資源匹配的硬件表項具體可為與本單板學習到的ARP表項對應的硬件表項。
步驟103,單板接收報文,依據報文攜帶的全局資源ID找到與全局資源ID具有映射關系的局部資源ID,依據索引為該找到的局部資源ID的硬件表項轉發報文。
至此,完成圖1所示的流程。
下面以全局資源為ARP表項為例通過一個實施例對圖1所示流程進行詳細描述:
參見圖3,圖3為本發明提供的實施例示意圖。在圖3中,主機(Host)A和Host B不在同一個網段,以Host A向Host B發送IP數據報文為例,則,
Host A檢查IP數據報文的目的IP地址(即Host B的IP地址)與本Host A處于不同網段,則Host A將IP數據報文發送給網關設備。
網關設備收到Host A發送的IP數據報文后,從本地ARP表中查找目的IP地址匹配的ARP表項(也即Host B對應的ARP表項);
網關設備查找到ARP表項,則利用ARP表項中的MAC地址對IP數據報文進行幀封裝,并將IP數據報文發送給Host B。本實施例以網關設備未查找到ARP表項為例,則,
網關設備未查找到ARP表項,則將IP數據報文緩存,然后以廣播方式發送一個ARP請求報文。ARP請求報文中的發送端IP地址和發送端MAC地址分別為網關設備的IP地址和MAC地址,目標IP地址為Host B的IP地址,目標MAC地址為設定的廣播MAC地址(比如全0的MAC地址)。
Host B接收到網關設備廣播的ARP請求報文后,比較本Host B的IP地址和ARP請求報文中的目標IP地址,發現兩者相同,則學習與ARP請求報文中發送端的IP地址匹配的ARP表項,ARP表項包含ARP請求報文中發送端的IP地址和MAC地址、出端口(接收ARP請求報文的端口)。之后Host B以單播方式發送ARP響應報文給網關設備,ARP響應報文攜帶了Host B的MAC地址。
網關設備接收Host B發送的ARP響應報文,學習一個與Host B的IP地址匹配的ARP表項,ARP表項至少包含:Host B的IP地址、MAC地址、出端口(接收到ARP響應報文的端口)。并且,網關設備還利用該建立的ARP表項將緩存的IP數據報文進行幀封裝并向Host B發送。
在上面描述中,Host B和網關設備學習ARP表項的過程也是ARP表項的下發過程,在這個階段需要申請全局資源ID來下發ARP表項。下面僅通過以網關設備的ARP學習來比較現有方案和本發明:
現有技術方案:
按照現有技術方案,則當下發一條ARP表項(記為ARP表項1)時,網關設備的全局主控板為ARP表項1分配一個全局資源ID(記為Global ID1),并同步到網關設備的各單板(即Slot1至Slot3),具體如圖4所示。
類似地,當下發另一條ARP表項(記為ARP表項2)時,網關設備的全局主控板為ARP表項2分配一個全局資源ID(記為Global ID2),并同步到網關設備的各單板(即Slot1至Slot3);當再下發一條ARP表項(記為ARP表項3)時,網關設備的全局主控板為ARP表項3分配一個全局資源ID(記為Global ID3),并同步到網關設備的各單板(即Slot1至Slot3),具體如圖4所示
由于網關設備的各單板都要分配出相同的一部分資源用于ARP表項的學習,假設各單板ARP表項的資源規格最大為32K,則整個系統的ARP最大規格也就為32K,具體如圖5所示。
本發明方案:
按照本發明提供的如圖1所示流程,則當下發ARP表項1’時,網關設備的全局主控板為ARP表項1’分配一個全局資源ID(記為Global ID1_1),而對于網關設備的各單板,在單板為ARP表項的出端口所在單板(也即ARP表項匹配的下行單板)時,以網關設備的Slot1為下行單板為例,Slot1在本地分配一個與全局資源ID即Global ID1_1具有映射關系的局部資源ID(記為Local ID1_1),將全局主控板分配的全局資源ID即Global ID1_1與本單板分配的局部資源ID即Local ID1_1做映射,并將映射關系保存在本Slot1。其中,局部資源ID與全局資源ID可以不同。
對于ARP表項2’,當下發時,也是由全局主控板為該ARP表項2’分配一個全局資源ID(記為Global ID1_2),而對于網關設備的各單板,在單板為該ARP表項的出端口所在單板(也即該ARP表項匹配的下行單板)時,以Slot2為下行單板為例,Slot2在本地分配一個與全局資源ID即Global ID1_2具有映射關系的局部資源ID(記為Local ID1_2),將全局主控板分配的全局資源ID即Global ID1_2與本單板分配的局部資源ID即Local ID1_2做映射,并將映射關系保存在本單板。
對于ARP表項3’,當下發時,也是由全局主控板為該ARP表項3’分配一個全局資源ID(記為Global ID1_3),而對于網關設備的各單板,在單板為該ARP表項的出端口所在單板(也即該ARP表項匹配的下行單板)時,以Slot3為下行單板為例,Slot3在本地分配一個與全局資源ID即Global ID1_3具有映射關系的局部資源ID(記為Local ID1_3),將全局主控板分配的全局資源ID即Global ID1_3與本單板分配的局部資源ID即Local ID1_3做映射,并將映射關系保存在本單板。
需要說明的是,在本發明中,作為一個優選實施例,網關設備上各單板(即Slot1至Slot3)分配的局部資源ID可以復用同一個資源ID。基于此,上述Slot2在本地分配的與全局資源ID即Global ID1_2具有映射關系的局部資源ID也可為上述的Local ID1_1。類似地,上述Slot3在本地分配的與全局資源ID即Global ID1_3具有映射關系的局部資源ID也可為上述的Local ID1_1。但是,盡管各單板(Slot1至Slot3)上局部資源ID相同,但映射到不同的全局資源ID。Slot1上的Local ID1_1映射至Global ID1_1,Slot2上的Local ID1_1映射至Global ID1_2,Slot3上的Local ID1_1映射至Global ID1_3,具體如圖6所示。
通過本發明方案,可以保證報文在上行查到的全局資源ID唯一,且在對應的出端口上能夠通過映射關系找到局部資源ID并做封裝正確轉發。而通過局部資源ID和全局資源ID的映射關系,將局部資源ID映射成全局資源的一部分,大大擴展了全局資源ID。
由于網關設備的各單板都要分配出相同的一部分資源用于ARP表項的學習,假設各單板ARP表項的資源規格最大為32K,則應用于如上面描述的本發明方案,整個系統的ARP最大規格為各單板規格相加(在本例中能夠達到96K),具體如圖7所示,大大擴展了整機ARP的規格。
至此,完成了實施例的描述。
以上對本發明提供的方法進行了描述。下面對本發明提供的裝置進行描述:參見圖8,圖8為本發明提供的裝置結構圖,該裝置應用于單板,如圖8所示,該裝置可包括:
標識處理單元,用于在本單板作為全局資源匹配的下行單板時,在本地分配一個與全局資源標識ID具有映射關系的局部資源ID,并建立與全局資源匹配的硬件表項,硬件表項的索引為局部資源ID,全局資源ID為全局主控板為全局資源分配的標識;
報文處理單元,用于接收報文,依據報文攜帶的全局資源ID找到與全局資源ID具有映射關系的局部資源ID,依據索引為局部資源ID的硬件表項轉發報文。
優選地,標識處理單元分配一個與全局資源ID具有映射關系的局部資源ID包括:
從指定的局部資源ID范圍中選擇一個空閑的局部資源ID,
將選擇出的局部資源ID作為與全局資源ID具有映射關系的局部資源ID。
優選地,全局資源匹配的下行單板包括:全局資源的出端口所在的單板;
其中,全局資源包括但不限于:地址解析協議ARP表項、轉發等價類FEC表項。
優選地,報文處理單元進一步在本單板作為全局資源匹配的上行單板時,當接收到與全局資源匹配的報文時,在接收的報文上攜帶全局資源ID,并發送給全局資源匹配的下行單板。
優選地,局部資源ID與其他單板分配的局部資源ID相同或不同;
局部資源ID與其他單板分配的局部資源ID映射至不同的全局資源ID。
至此,完成圖8所示裝置結構圖。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。