[發明專利]一種基于DPDK下實現NAT的方法在審
| 申請號: | 201810419879.1 | 申請日: | 2018-05-04 |
| 公開(公告)號: | CN108600120A | 公開(公告)日: | 2018-09-28 |
| 發明(設計)人: | 王宇杰;蔡曄華;王強 | 申請(專利權)人: | 廣東唯一網絡科技有限公司 |
| 主分類號: | H04L12/883 | 分類號: | H04L12/883;H04L12/935;H04L29/12 |
| 代理公司: | 東莞恒成知識產權代理事務所(普通合伙) 44412 | 代理人: | 鄧燕 |
| 地址: | 523000 廣東省東莞市南城街*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據包 讀取 數據包請求 逆轉換 用戶端 鏈表 程序模塊 目標服務器 數據包處理 數據包轉發 數據包轉換 轉發規則表 查找 鏈表獲取 網卡模塊 轉發規則 轉換規則 五元組 應答 調用 記錄 | ||
本發明涉及一種基于DPDK下實現NAT的方法,實現NAT轉發的步驟如下:S1:調用DPDK程序模塊的api接口讀取經由NAT設備網卡模塊的數據包;S2:對S1步驟中讀取到的數據包進行識別,若為用戶端第一次數據包請求,則查找轉發規則表,根據對應的轉發規則,將需要做NAT轉換的數據包進行NAT轉換或NAT逆轉換,并建立鏈表及記錄該數據包轉換前后五元組到鏈表;若為用戶端第N次數據包請求或目標服務器第1、2…N次數據包應答,則查找鏈表獲取轉換規則,將需要做NAT轉換的數據包進行NAT轉換或NAT逆轉換;本發明能夠提升數十倍數據包處理性能,實現千萬級別的數據包轉發能力。
技術領域
本發明涉及網絡通信技術領域,特別是涉及一種基于DPDK下實現NAT的方法。
背景技術
NAT(Network Address Translation,網絡地址轉換)技術能夠解決IP地址不足的問題,用于通信的IP數據包一般具有Source IP Address(源IP地址)與Destination IP Address(目的IP地址)這兩個字段,采用NAT技術實現內網與外網之間的通信時,數據包所經過的路由器/設備通過基于Linux內核協議棧對數據包進行處理,根據源IP地址字段和目的IP地址字段判定數據由什么地方發過來的,它要將數據包發到什么地方去,并通過iptables利用轉發規則表,將內網地址與外網地址進行轉換,但采用該方式需要較長的地址轉換計算時間,性能耗損大,且無法直接繞過Linux內核協議棧實現數據包從內網到公網方向的通信,在面向廠商服務時,面對上百萬的用戶請求數量,現有的數據包處理性能難以滿足實際需求。
發明內容
為解決上述問題,本發明提供一種基于DPDK下實現NAT的方法,其大幅度提升數據包處理性能,實現千萬級別數據包轉發能力。
為解決上述目的,本發明采用的如下技術方案。
一種基于DPDK下實現NAT的方法,在NAT設備集成DPDK程序模塊,在NAT設備上分配內存,并建立轉換流表池單元,實現NAT轉發的步驟如下:
S1:調用DPDK程序模塊的api接口讀取經由NAT設備網卡模塊的數據包;
S2:對S1步驟中讀取到的數據包進行識別;
S21:若為用戶端第一次數據包請求,則查找轉發規則表,根據對應的轉換規則,將需要做NAT轉換的數據包進行NAT轉換,并建立鏈表及記錄該數據包轉換前后五元組到鏈表;
S22:若為用戶端第N次數據包請求,則查找鏈表獲取轉換規則,將需要做NAT轉換的數據包進行NAT轉換;
S23:若為目標服務器第1、2…N次數據包應答,則查找鏈表獲取轉換規則,將需要做NAT轉換的數據包進行NAT逆轉換。
S3:繼續調用DPDK程序模塊的api接口讀取下一數據包。
進一步地,在S2步驟中若為用戶端第一次數據包請求,計算該請求方向數據包五元組的hash值,若為目標服務器第一次數據包應答,計算該應答方向數據包五元組的hash值,將請求方向和應答方向的hash值記錄到鏈表,并可通過指針互指相連。
進一步地,在S2步驟中,若為用戶端第N次數據包請求或目標服務器第1、2…N次數據包應答,計算五元組的hash值并查找鏈表,獲得轉換規則,進行NAT轉換或NAT逆轉換。
進一步地,NAT轉換應用SNAT將數據包的源IP地址修改為轉換的源IP地址,NAT逆轉換應用DNAT將數據包的目的IP地址修改為轉換的目的IP地址。
進一步地,S1步驟中調用DPDK程序模塊的api接口讀取數據包具體為:通過函數rte_lcore_id()獲取當前cpu邏輯核id;通過函數rte_eth_rx_burst()讀取數據包;通過函數rte_pktmbuf_free()釋放mbuf。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東唯一網絡科技有限公司,未經廣東唯一網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810419879.1/2.html,轉載請聲明來源鉆瓜專利網。





