一種報文轉發方法和網絡設備與流程
2023-04-26 14:46:42
本發明屬於數據通信領域,尤其涉及一種報文轉發方法和網絡設備。
背景技術:
隨著網絡規模的增大以及無線網絡的普及,對無線控制器(Access Controller,AC)設備的轉發性能要求越來越高,現有的AC設備使用純CPU軟體或者使用CPU加交換晶片的方式來完成數據轉發,交換晶片轉發為硬體轉發,通常能夠做到在其帶寬內線速轉發報文,傳統的AC設備使用CPU加交換晶片的方式完成的數據轉發,其交換晶片只是用來增加AC設備對外提供的埠密度以及埠類型,達到擴展埠的作用,並未充分利用其線速轉發特性,使得報文的轉發工作仍然只在CPU上進行,交換晶片的加入並未對整機轉發性能的提高做出貢獻。
技術實現要素:
本發明提供一種報文轉發方法,用以解決現有技術中,網絡設備中加入交換晶片只是用於擴展埠,並未充分利用交換晶片的轉發功能及線速轉發特性,來提高網絡設備整機轉發性能的問題。
基於上述目的,第一方面,本發明實施例提供了一種報文轉發方法,應用於包含CPU和交換晶片的網絡設備中,所述交換晶片與所述CPU通過HiGig口進行連接,所述方法包括:
交換晶片接收來自所述網絡設備面板口的第一報文;
當判斷所述第一報文攜帶CAPWAP頭部時,將所述第一報文進行HiGig頭部封裝後生成第二報文轉發至CPU,由CPU對所述第二報文進行處理;
當判斷所述第一報文未攜帶CAPWAP頭部時,在交換晶片中查二層/三層轉發表項進行報文轉發。
本發明提供的一種報文轉發方法,充分利用交換晶片的轉發功能以及線速轉發特性,在網絡設備中通過交換晶片完成二層/三層轉發,減小CPU負擔;通過在HiGig頭部中攜帶自定義信息的方式解決報文經過交換晶片轉發後再次回到CPU時無法得到報文原始信息的問題,提高了網絡設備的整機轉發性能。
第二方面,本發明實施例還提供了一種網絡設備,包括CPU處理模塊和交換晶片模塊,所述交換晶片模塊與所述CPU處理模塊通過HiGig口進行連接,
所述交換晶片模塊,用於接收來自所述網絡設備面板口的第一報文;
所述交換晶片模塊,還用於當判斷所述第一報文攜帶CAPWAP頭部時,將所述第一報文進行HiGig頭部封裝後生成第二報文轉發至CPU處理模塊;
所述CPU處理模塊,用於對所述第二報文進行處理;
所述交換晶片模塊,還用於當判斷所述第一報文未攜帶CAPWAP頭部時,在交換晶片中查二層/三層轉發表項進行報文轉發。
本發明的有益效果為:在本發明中充分利用交換晶片的轉發功能以及線速轉發特性,在網絡設備中通過交換晶片完成二層/三層轉發,減小CPU負擔;通過在HiGig頭部中攜帶自定義信息的方式解決報文經過交換晶片轉發後再次回到CPU時無法得到報文原始信息的問題,提高了網絡設備的整機轉發性能。
附圖說明
圖1是本發明實施例提供的一種報文轉發方法的方法流程圖;
圖2是本發明實施例提供的一種報文轉發方法的方法流程圖;
圖3是本發明實施例提供的一種報文轉發方法的方法流程圖;
圖4是本發明實施例提供的一種報文轉發方法的方法流程圖;
圖5是本發明實施例提供的一種報文轉發方法的方法流程圖;
圖6是本發明實施例提供的一種報文轉發方法的方法流程圖;
圖7是本發明實施例提供的一種網絡設備的結構示意圖。
具體實施方式
為使本發明的技術方案更加清楚明白,現結合附圖對本發明做進一步詳細說明:
本發明實施例提供一種報文轉發方法及一種網絡設備,用以解決現有技術中,網絡設備中加入交換晶片只是用於擴展埠,並未充分利用交換晶片的線速轉發特徵,來提高網絡設備整機轉發性能的問題。
為了達到以上目的,本發明實施例提供了一種報文轉發方法,應用於包含CPU和交換晶片的網絡設備中,所述交換晶片與所述CPU通過HiGig口進行連接,如圖1所示,所述方法包括:
步驟101、交換晶片接收來自所述網絡設備面板口的第一報文;
步驟102、當判斷所述第一報文攜帶CAPWAP頭部時,將所述第一報文進行HiGig頭部封裝後生成第二報文轉發至CPU,由CPU對所述第二報文進行處理;
在本發明實施例中,如果報文的源地址為終端,則該報文在進入網絡設備之前會先進行CAPWAP頭部封裝,因此來自終端的報文會攜帶CAPWAP頭部。如來自STATION的報文在通過無線接入點AP進入無線控制器AC時,在AP上會進行CAPWAP頭部封裝,因此最終到達AC的來自終端的報文會攜帶CAPWAP頭部。
由於交換晶片與CPU相連的埠為HiGig口,經過HiGig口的報文都會進行HiGig頭部封裝,因此在本發明實施例中,不管是從交換晶片轉發至CPU的報文還是從CPU轉發至交換晶片的報文,都會在HiGig口進行加解HiGig頭部封裝後再進行報文的後續處理動作。
在本發明實施例中,如果報文從終端發出並經過三層轉發再次轉發至終端時,報文的轉發路徑是交換晶片->CPU->交換晶片->CPU->交換晶片,報文兩次經過交換晶片後被轉發至CPU,後一次被轉發至CPU時可能已經無法得知該報文的原始來源了,因此在本發明實施例中可以利用HiGig頭部中二層/三層轉發不使用的位域(如HiGig頭部的VC_LABEL域等)作為HiGig頭部的自定義信息欄位,自定義信息欄位中可以攜帶包括報文的CAPWAP信息、物理入口信息、VLAN信息等報文的原始來源信息,這部分信息可以讓技術人員了解該報文是否來自終端等,以使報文不管經過多少次轉發都始終能夠使CPU知道該報文的原始來源信息。
在步驟102之後,還包括CPU對所述第二報文進行處理步驟,如圖2所示,所述由CPU對所述第二報文進行處理具體包括:
步驟201、CPU解析所述第二報文的HiGig頭部得出所述第二報文的源埠為面板口之後,進行CAPWAP解封裝並獲取內層報文,
步驟202、當判斷所述內層報文的目的MAC地址為終端的MAC地址時,將所述內層報文重新進行CAPWAP頭部封裝後生成第三報文發送至交換晶片,由交換晶片查二層/三層轉發表項後將所述第三報文轉發至去往所述終端所經過的網絡設備的相應面板口;在本發明實施例中,終端首次上線時,CPU會記錄包括MAC地址在內的終端的相關信息。
步驟203、當判斷所述內層報文的目的MAC地址不是終端的MAC地址時,將所述內層報文解封裝前對應的CAPWAP信息封裝在所述內層報文的HiGig頭部的自定義信息欄位中後生成第四報文轉發至交換晶片。
如圖3所示,在步驟203的將所述內層報文解封裝前對應的CAPWAP信息封裝在所述內層報文的HiGig頭部的自定義信息欄位中後生成第四報文轉發至交換晶片之後,所述方法還包括:
步驟301、交換晶片接收所述第四報文,對去掉所述HiGig頭部後的第四報文進行判斷,
步驟302、當判斷所述去掉所述HiGig頭部後的第四報文的目的IP位址不是終端的IP位址,根據查二層/三層轉發表項得出所述去掉所述HiGig頭部後的第四報文的目的出埠為網絡設備的面板口時,將所述去掉所述HiGig頭部後的第四報文轉發至所述網絡設備的面板口;
步驟303、當判斷所述去掉所述HiGig頭部後的第四報文的目的IP位址為終端的IP位址,根據查二層/三層轉發表項得出所述去掉所述HiGig頭部後的第四報文的目的出埠為HiGig口時,將所述去掉所述HiGig頭部後的第四報文的目的MAC地址修改為終端的MAC地址並重新進行HiGig頭部封裝後生成第五報文轉發至CPU。
如圖4所示,在步驟303的將所述去掉所述HiGig頭部後的第四報文的目的MAC地址修改為終端的MAC地址並重新進行HiGig頭部封裝後生成第五報文轉發至CPU後,所述方法還包括:
步驟401、CPU接收所述第五報文,解析所述第五報文的HiGig頭部得出所述第五報文的源埠為HiGig口之後,對所述第五報文的HiGig頭部的自定義信息欄位中攜帶的CAPWAP信息進行解析後根據MAC地址判斷所述第五報文的目的MAC地為終端的MAC時,對所述第五報文重新進行CAPWAP頭部封裝後生成第六報文轉發至交換晶片,由交換晶片查二層/三層轉發表項將所述第六報文轉發至去往所述終端所經過的網絡設備的相應面板口。
在本發明實施例中,在交換晶片中查二層/三層轉發表項得出如果報文的目的出埠為網絡設備的面板口時,則無需對報文做任何修改,如果報文的目的出埠是HiGig口,則可以通過在HiGig頭部的自定義信息欄位中攜帶自定義信息的方式,將我們需要關心的自定義信息包括物理入口信息、VLAN信息以及CAPWAP信息等封裝在HiGig頭部中發送至CPU,使得CPU拿到報文的原始信息。
步驟103、當判斷所述第一報文未攜帶CAPWAP頭部時,在交換晶片中查二層/三層轉發表項進行報文轉發。在本步驟中,如果接收到的第一報文未攜帶CAPWAP頭部,則該第一報文的源端設備可以是PC以及其他通過網線/光纖等方式連接的有線網絡設備。在本步驟中,如何查二層/三層轉發表項進行報文轉發是已有技術,此處不再贅述。
如圖5所示,在步驟103的當判斷接所述第一報文未攜帶CAPWAP頭部時,在交換晶片中查二層/三層轉發表項進行報文轉發之後,所述方法還包括:
步驟501、當判斷所述第一報文的目的IP位址不是終端的IP位址,根據查二層/三層轉發表項得出所述第一報文的目的出埠為網絡設備的面板口時,將所述第一報文轉發至所述網絡設備的面板口;
步驟502、當判斷所述第一報文的目的IP位址為終端的IP位址,根據查二層/三層轉發表項得出所述第一報文的目的出埠為HiGig口時,將所述第一報文的目的MAC地址修改為終端的MAC地址生成第七報文後轉發至CPU。
如圖6所示,在步驟502的將所述第一報文的目的MAC地址修改為終端的MAC地址生成第七報文後轉發至CPU之後,所述方法還包括:
步驟601、CPU接收所述第七報文,根據MAC地址判斷所述第七報文的目的MAC地為終端的MAC時,對所述第七報文重新進行CAPWAP頭部封裝後生成第八報文轉發至交換晶片,由交換晶片查二層/三層轉發表項將所述第八報文轉發至去往所述終端所經過的網絡設備的相應面板口。
本發明實施例提供的一種報文轉發方法,該方法充分利用交換晶片的轉發功能以及線速轉發特性,在網絡設備中通過交換晶片完成二層/三層轉發,減小CPU負擔;通過在HiGig頭部中攜帶自定義信息的方式解決報文經過交換晶片轉發後再次回到CPU時無法得到報文原始信息的問題,提高了網絡設備的整機轉發性能。
基於上述實施例所述的一種報文轉發方法,本發明實施例還提供了一種網絡設備,如圖7所示,該網絡設備包括CPU處理模塊701和交換晶片模塊702,所述交換晶片模塊702與所述CPU處理模塊701通過HiGig口進行連接,
所述交換晶片模塊702,用於接收來自所述網絡設備面板口的第一報文;
所述交換晶片模塊702,還用於當判斷所述第一報文攜帶CAPWAP頭部時,將所述第一報文進行HiGig頭部封裝後生成第二報文轉發至CPU處理模塊701;
所述CPU處理模塊701,用於對所述第二報文進行處理;
所述交換晶片模塊702,還用於當判斷所述第一報文未攜帶CAPWAP頭部時,在交換晶片中查二層/三層轉發表項進行報文轉發。
所述CPU處理模塊701,還用於解析所述第二報文的HiGig頭部得出所述第二報文的源埠為面板口之後,進行CAPWAP解封裝並獲取內層報文,當判斷所述內層報文的目的MAC地址為終端的MAC地址時,將所述內層報文重新進行CAPWAP頭部封裝後生成第三報文發送至交換晶片模塊702;
所述交換晶片模塊702,還用於接收所述第三報文,查二層/三層轉發表項後將所述第三報文轉發至去往所述終端所經過的網絡設備的相應面板口;
所述CPU處理模塊701,還用於當判斷所述內層報文的目的MAC地址不是終端的MAC地址時,將所述內層報文解封裝前對應的CAPWAP信息封裝在所述內層報文的HiGig頭部的自定義信息欄位中後生成第四報文轉發至交換晶片模塊702。
所述交換晶片模塊702,還用於接收所述第四報文,對去掉所述HiGig頭部後的第四報文進行判斷,當判斷所述去掉所述HiGig頭部後的第四報文的目的IP位址不是終端的IP位址,根據查二層/三層轉發表項得出所述去掉所述HiGig頭部後的第四報文的目的出埠為網絡設備的面板口時,將所述去掉所述HiGig頭部後的第四報文轉發至所述網絡設備的面板口;
所述交換晶片模塊702,還用於當判斷所述去掉所述HiGig頭部後的第四報文的目的IP位址為終端的IP位址,根據查二層/三層轉發表項得出所述去掉所述HiGig頭部後的第四報文的目的出埠為HiGig口時,將所述去掉所述HiGig頭部後的第四報文的目的MAC地址修改為終端的MAC地址並重新進行HiGig頭部封裝後生成第五報文轉發至CPU處理模塊701。
所述CPU處理模塊701,還用於接收所述第五報文,解析所述第五報文的HiGig頭部得出所述第五報文的源埠為HiGig口之後,對所述第五報文的HiGig頭部的自定義信息欄位中攜帶的CAPWAP信息進行解析後根據MAC地址判斷所述第五報文的目的MAC地為終端的MAC時,對所述第五報文重新進行CAPWAP頭部封裝後生成第六報文轉發至交換晶片模塊702;
所述交換晶片模塊702,還用於接收所述第六報文,查二層/三層轉發表項將所述第六報文轉發至去往所述終端所經過的網絡設備的相應面板口。
所述交換晶片模塊702,還用於當判斷所述第一報文的目的IP位址不是終端的IP位址,根據查二層/三層轉發表項得出所述第一報文的目的出埠為網絡設備的面板口時,將所述第一報文轉發至所述網絡設備的面板口;
所述交換晶片模塊702,還用於當判斷所述第一報文的目的IP位址為終端的IP位址,根據查二層/三層轉發表項得出所述第一報文的目的出埠為HiGig口時,將所述第一報文的目的MAC地址修改為終端的MAC地址生成第七報文後轉發至CPU處理模塊701。
所述CPU處理模塊701,還用於接收所述第七報文,根據MAC地址判斷所述第七報文的目的MAC地為終端的MAC時,對所述第七報文重新進行CAPWAP頭部封裝後生成第八報文轉發至交換晶片模塊702;
所述交換晶片模塊702,還用於接收所述第八報文,查二層/三層轉發表項將所述第八報文轉發至去往所述終端所經過的網絡設備的相應面板口。
本發明實施例提供的一種網絡設備充分利用交換晶片模塊的轉發功能及線速轉發特性,在網絡設備中通過交換晶片模塊完成二層/三層轉發,減小CPU負擔;通過在HiGig頭部中攜帶自定義信息的方式解決報文經過交換晶片模塊轉發後再次回到CPU處理模塊時無法得到報文原始信息的問題,提高了網絡設備的整機轉發性能。
以上所述,僅為本發明的具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應以所述權利要求的保護範圍為準。