本發(fā)明屬于nat網(wǎng)關(guān),尤其涉及一種基于sdn和dpu的nat網(wǎng)關(guān)搭建方法。
背景技術(shù):
1、目前,傳統(tǒng)的nat網(wǎng)關(guān)技術(shù)在處理數(shù)據(jù)中心日益增長的流量需求時存在性能不足的問題。例如,現(xiàn)有技術(shù)主要依賴于cpu進(jìn)行nat地址轉(zhuǎn)換和數(shù)據(jù)包的處理,但隨著云計算、物聯(lián)網(wǎng)、人工智能和5g等技術(shù)的快速發(fā)展,數(shù)據(jù)中心內(nèi)的網(wǎng)絡(luò)流量呈現(xiàn)指數(shù)級增長,傳統(tǒng)基于cpu的軟件nat網(wǎng)關(guān)在高流量環(huán)境下面臨處理性能瓶頸,無法充分滿足大規(guī)模分布式網(wǎng)絡(luò)架構(gòu)中對高效網(wǎng)絡(luò)轉(zhuǎn)發(fā)與地址轉(zhuǎn)換的需求。因此,在負(fù)載過重或高并發(fā)的情況下,現(xiàn)有nat網(wǎng)關(guān)技術(shù)難以保障數(shù)據(jù)中心網(wǎng)絡(luò)的穩(wěn)定性與高效性。因此,亟需一種能夠利用硬件加速、分布式部署,并結(jié)合集中化管理技術(shù)的新型nat網(wǎng)關(guān)方法,在云數(shù)據(jù)中心流量持續(xù)增長的情況下,依然能夠?qū)崿F(xiàn)高效的nat轉(zhuǎn)換和流量調(diào)度,以提高網(wǎng)絡(luò)處理性能,降低延遲,并簡化網(wǎng)絡(luò)管理的復(fù)雜度。
技術(shù)實現(xiàn)思路
1、針對上述存在的技術(shù)不足,本發(fā)明的目的是提出一種基于sdn和dpu的nat網(wǎng)關(guān)搭建方法,旨在解決現(xiàn)有技術(shù)中nat網(wǎng)關(guān)性能受限,尤其是在數(shù)據(jù)中心流量激增的條件下,傳統(tǒng)基于cpu的軟件nat網(wǎng)關(guān)無法實現(xiàn)高效處理網(wǎng)絡(luò)流量的技術(shù)問題。
2、為解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:本發(fā)明提供一種基于sdn和dpu的nat網(wǎng)關(guān)搭建方法,
3、所述基于sdn和dpu的nat網(wǎng)關(guān)搭建方法包括:
4、步驟s10:向sdn控制器發(fā)送啟動指令信號,sdn控制器啟動后配置nat映射地址池;
5、步驟s20:完成nat映射地址池配置后,sdn控制器通過api接口從nat網(wǎng)關(guān)接收dpu網(wǎng)卡的狀態(tài)信息;
6、步驟s30:sdn控制器從sdn交換機(jī)獲取網(wǎng)絡(luò)拓?fù)湫畔ⅲW(wǎng)絡(luò)拓?fù)湫畔▋?nèi)網(wǎng)設(shè)備與外網(wǎng)之間的連接信息,結(jié)合所述dpu網(wǎng)卡的狀態(tài)信息生成數(shù)據(jù)面拓?fù)潢P(guān)系信息;
7、步驟s40:sdn控制器基于生成的數(shù)據(jù)面拓?fù)潢P(guān)系信息向sdn交換機(jī)下發(fā)初始化流表;
8、步驟s50:當(dāng)報文到達(dá)sdn交換機(jī)后,sdn交換機(jī)通過查找所述初始化流表以識別未知報文,提取其中的源地址、目的地址、源端口號及目的端口號,并將這些信息上送至sdn控制器以請求創(chuàng)建新的nat映射規(guī)則;
9、步驟s60:sdn控制器在接收到新的nat映射規(guī)則創(chuàng)建請求后,根據(jù)nat映射地址池中的可用外網(wǎng)地址和端口號,通過隨機(jī)分配方式為該請求分配唯一的外網(wǎng)地址和端口號以及處理nat轉(zhuǎn)換的dpu網(wǎng)卡,并生成nat轉(zhuǎn)換表和報文轉(zhuǎn)發(fā)流表;
10、步驟s70:sdn控制器將生成的報文轉(zhuǎn)發(fā)流表下發(fā)至sdn交換機(jī),用于確保交換機(jī)能夠識別相同流標(biāo)識的雙向報文,并將生成的報文發(fā)送到同一dpu網(wǎng)卡進(jìn)行處理,用于避免報文在多個dpu間來回傳輸造成的延遲;
11、步驟s80:sdn控制器通過nat控件將生成的nat轉(zhuǎn)換表下發(fā)到指定的dpu網(wǎng)卡,dpu網(wǎng)卡根據(jù)該轉(zhuǎn)換表對傳輸?shù)碾p向流量執(zhí)行nat地址轉(zhuǎn)換,dpu網(wǎng)卡在接收到nat轉(zhuǎn)換表后,根據(jù)表中的規(guī)則對內(nèi)網(wǎng)發(fā)往外網(wǎng)的報文進(jìn)行私有地址到公網(wǎng)地址的轉(zhuǎn)換。
12、優(yōu)選地,所述步驟s80,還包括:當(dāng)nat轉(zhuǎn)換規(guī)則長時間沒有流量時,執(zhí)行nat規(guī)則老化,將過期的nat規(guī)則刪除,并將要刪除的nat轉(zhuǎn)換表和報文轉(zhuǎn)發(fā)流表分別下發(fā)至nat控件和sdn交換機(jī)。。
13、優(yōu)選地,所述將要刪除的nat轉(zhuǎn)換表和報文轉(zhuǎn)發(fā)流表分別下發(fā)至nat控件和sdn交換機(jī)的步驟之后還包括:
14、sdn交換機(jī)接受到報文轉(zhuǎn)發(fā)流表刪除指令,刪除對應(yīng)的報文轉(zhuǎn)發(fā)流表;
15、nat控件將刪除指令下發(fā)給dpu網(wǎng)卡,dpu網(wǎng)卡刪除對應(yīng)的報文轉(zhuǎn)發(fā)流表。
16、優(yōu)選地,所述方法還包括:當(dāng)檢測到dpu斷鏈時,執(zhí)行以下步驟:
17、當(dāng)sdn交換機(jī)檢測到dpu網(wǎng)卡斷鏈時,發(fā)送所述dpu網(wǎng)卡的mac地址及斷鏈信息至sdn控制器;
18、所述sdn控制器接收所述dpu網(wǎng)卡斷鏈信息后,查詢當(dāng)前網(wǎng)絡(luò)拓?fù)潢P(guān)系,并選擇用于替代故障dpu網(wǎng)卡的備用dpu網(wǎng)卡;
19、所述sdn控制器刪除與故障dpu網(wǎng)卡相關(guān)的報文轉(zhuǎn)發(fā)流表,生成適用于備用dpu網(wǎng)卡的新的nat轉(zhuǎn)換表及報文轉(zhuǎn)發(fā)流表,并將所述nat轉(zhuǎn)換表及報文轉(zhuǎn)發(fā)流表下發(fā)至所述sdn交換機(jī)及所述備用dpu網(wǎng)卡;
20、所述sdn交換機(jī)接收所述新的報文轉(zhuǎn)發(fā)流表后,更新報文轉(zhuǎn)發(fā)流表并將流量轉(zhuǎn)發(fā)至所述備用dpu網(wǎng)卡;
21、所述備用dpu網(wǎng)卡接收所述新的nat轉(zhuǎn)換表后,基于所述nat轉(zhuǎn)換表對接收到的流量進(jìn)行nat轉(zhuǎn)換處理,完成故障切換操作。
22、優(yōu)選地,步驟s80中,所述的nat控件運行在網(wǎng)關(guān)服務(wù)器上,由ovs插件和nat代理組成,分別用于對接sdn控制器和dpu網(wǎng)卡。
23、優(yōu)選地,所述ovs插件用于對接sdn控制器,接受sdn交換機(jī)下發(fā)的nat轉(zhuǎn)換表,通過nat代理透傳給dpu網(wǎng)卡,并且上送dpu網(wǎng)卡的mac地址。
24、優(yōu)選地,所述nat代理用于對接dpu網(wǎng)卡,負(fù)責(zé)nat轉(zhuǎn)換表的下發(fā)、dpu網(wǎng)卡的運行狀態(tài)上送以及dpu網(wǎng)卡的地址上送
25、本發(fā)明還提供一種基于sdn和dpu的nat網(wǎng)關(guān)搭建裝置包括:
26、啟動模塊,用于向sdn控制器發(fā)送啟動指令信號,sdn控制器啟動后配置nat映射地址池;
27、狀態(tài)信息獲取模塊,用于完成nat映射地址池配置后,sdn控制器通過api接口從nat網(wǎng)關(guān)接收dpu網(wǎng)卡的狀態(tài)信息;
28、拓?fù)湫畔@取模塊,用于sdn控制器從sdn交換機(jī)獲取網(wǎng)絡(luò)拓?fù)湫畔?,網(wǎng)絡(luò)拓?fù)湫畔▋?nèi)網(wǎng)設(shè)備與外網(wǎng)之間的連接信息,結(jié)合所述dpu網(wǎng)卡的狀態(tài)信息生成數(shù)據(jù)面拓?fù)潢P(guān)系信息;
29、初始化流表配置模塊,用于sdn控制器基于生成的數(shù)據(jù)面拓?fù)潢P(guān)系信息向sdn交換機(jī)下發(fā)初始化流表;
30、報文識別模塊,用于當(dāng)報文到達(dá)sdn交換機(jī)后,sdn交換機(jī)通過查找所述初始化流表以識別未知報文,提取其中的源地址、目的地址、源端口號及目的端口號,并將這些信息上送至sdn控制器以請求創(chuàng)建新的nat映射規(guī)則;
31、nat規(guī)則生成模塊,用于sdn控制器在接收到新的nat映射規(guī)則創(chuàng)建請求后,根據(jù)nat映射地址池中的可用外網(wǎng)地址和端口號,通過隨機(jī)分配方式為該請求分配唯一的外網(wǎng)地址和端口號以及處理nat轉(zhuǎn)換的dpu網(wǎng)卡,并生成nat轉(zhuǎn)換表和報文轉(zhuǎn)發(fā)流表;
32、報文轉(zhuǎn)發(fā)流表下發(fā)模塊,用于sdn控制器將生成的報文轉(zhuǎn)發(fā)流表下發(fā)至sdn交換機(jī),用于確保交換機(jī)能夠識別相同流標(biāo)識的雙向報文,并將生成的報文發(fā)送到同一dpu網(wǎng)卡進(jìn)行處理,用于避免報文在多個dpu間來回傳輸造成的延遲;
33、nat轉(zhuǎn)換執(zhí)行模塊,用于sdn控制器通過nat控件將生成的nat轉(zhuǎn)換表下發(fā)到指定的dpu網(wǎng)卡,dpu網(wǎng)卡根據(jù)該轉(zhuǎn)換表對傳輸?shù)碾p向流量執(zhí)行nat地址轉(zhuǎn)換,dpu網(wǎng)卡在接收到nat轉(zhuǎn)換表后,根據(jù)表中的規(guī)則對內(nèi)網(wǎng)發(fā)往外網(wǎng)的報文進(jìn)行私有地址到公網(wǎng)地址的轉(zhuǎn)換。
34、本發(fā)明還提供一種基于sdn和dpu的nat網(wǎng)關(guān)搭建設(shè)備包括:
35、存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的基于sdn和dpu的nat網(wǎng)關(guān)搭建程序,所述基于sdn和dpu的nat網(wǎng)關(guān)搭建程序被所述處理器執(zhí)行時實現(xiàn)所述的基于sdn和dpu的nat網(wǎng)關(guān)搭建方法。
36、本發(fā)明還提供一種計算機(jī)程序產(chǎn)品,包括基于sdn和dpu的nat網(wǎng)關(guān)搭建程序,所述基于sdn和dpu的nat網(wǎng)關(guān)搭建程序被處理器執(zhí)行時實現(xiàn)所述的基于sdn和dpu的nat網(wǎng)關(guān)搭建方法。
37、本發(fā)明的有益效果在于:相較于現(xiàn)有技術(shù)中nat網(wǎng)關(guān)性能受限,尤其是在數(shù)據(jù)中心流量激增的條件下,傳統(tǒng)基于cpu的軟件nat網(wǎng)關(guān)無法實現(xiàn)高效處理網(wǎng)絡(luò)流量的技術(shù)問題,本發(fā)明通過結(jié)合sdn控制器和dpu的硬件加速,提升了nat網(wǎng)關(guān)的性能和擴(kuò)展性,從而避免了cpu瓶頸導(dǎo)致的性能下降問題,提高了網(wǎng)絡(luò)流量處理的效率并降低了延遲。