CN112104761A - 一种nat地址转换的方法 - Google Patents
一种nat地址转换的方法 Download PDFInfo
- Publication number
- CN112104761A CN112104761A CN202010847861.9A CN202010847861A CN112104761A CN 112104761 A CN112104761 A CN 112104761A CN 202010847861 A CN202010847861 A CN 202010847861A CN 112104761 A CN112104761 A CN 112104761A
- Authority
- CN
- China
- Prior art keywords
- port
- source
- tuple
- address translation
- searching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000013519 translation Methods 0.000 title claims abstract description 19
- 238000001514 detection method Methods 0.000 claims abstract description 6
- 230000009191 jumping Effects 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 abstract description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/255—Maintenance or indexing of mapping tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种NAT地址转换的方法,具体包括以下步骤:S1、获取5元组信息,以这5元组信息查表,如果匹配上,说明会话已经生效,跳到S8,否则走新建会话流程,跳转到S2;S2、查规则表,获取服务器的ip和端口,根据规则信息判断是否需要替换报文源ip和端口,如果不需要,跳到S5,否则,继续执行S3;S3、查找回源ip表,获取回源ip;S4、探测出可用的回源端口,探测方法,本发明涉及通信技术领域。该NAT地址转换的方法,降低了冲突几率,更加快速的探测到可用的回源端口,提高了查找回源端口的速率,提升了申请和释放效率,过滤掉无用的报文,不必对无用报文做过多的处理,提升了整体的报文处理性能,从而提升了转发性能。
Description
技术领域
本发明涉及通信网络技术领域,具体为一种NAT地址转换的方法。
背景技术
NAT(网络地址转换)是1994年提出的,当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法,这种方法需要在专用网连接到因特网的路由器上安装NAT软件,装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址,这样所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接,另外这种通过使用少量的公有IP地址代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭,NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机,1.宽带分享:这是NAT主机的最大功能,2.安全防护:NAT之内的PC联机到Internet上面时,他所显示的IP是NAT主机的公共IP,所以Client端的PC当然就具有一定程度的安全了,外界在进行portscan(端口扫描)的时候,就侦测不到源Client端的PC,NAT的实现方式有三种,即静态转换StaticNat、动态转换DynamicNat和端口多路复用OverLoad。
现有的NAT地址转换方法,未及时探测到可用的回源端口,不存在源地址检测的情况下,由于发送报文和回复报文所用端口不一致,会影响负载均衡的效果,同时报文中还含有较多的无用报文,使得后续出现报文处理效率低的问题,因此针对以上问题,本发明提供了一种NAT地址转换的方法。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种NAT地址转换的方法,解决了现有的NAT地址转换方法,未及时探测到可用的回源端口,同时报文中还含有较多的无用报文,使得后续出现报文处理效率低的问题。
(二)技术方案
为实现以上目的,本发明通过以下技术方案予以实现:一种NAT地址转换的方法,具体包括以下步骤:
S1、获取5元组信息,以这5元组信息查表,如果匹配上,说明会话已经生效,跳到S8,否则走新建会话流程,跳转到S2;
S2、查规则表,获取服务器的ip和端口,根据规则信息判断是否需要替换报文源ip和端口,如果不需要,跳到S5,否则,继续执行S3;
S3、查找回源ip表,获取回源ip;
S4、探测出可用的回源端口,探测方法,记录上次探测成功的端口,从下一端口开始(目的提高查找速度,通常1次就可以查找到可用端口),使用经过S2到S4步骤获取到的出站方向的5元组信息作为参数,查找哈希表,如果匹配不上,证明端口可用;
S5、从链表池子申请一个entry,根据上文给entry中两个方向的元组信息赋值;
S6、以进站方向的5元组为参数,推入哈希链表;
S7、以出站方向的5元组为参数,推入哈希链表;
S8、修改报文源、目的ip和端口,发送报文。
优选的,所述步骤S1中的5元组信息是指源ip、目的ip、源端口、目的端口和协议。
优选的,所述步骤S2中的规则表以及S3中回源ip表均来自控制面的配置数据。
优选的,所述步骤S4中的哈希表里面每一个节点和S5中链表池子的entry一样,每一项包含了进站、出站两个方向的5元组信息,当新建会话时,先从这个池子中申请出一个Entry,修改进站和出站两个方向的5元组,分别以该5元组为参数入队列到哈希表中,当读取到一个报文时,首先查这个哈希表,对应的5元组信息匹配上,刷新源目的ip和端口,发送报文出去。
优选的,所述步骤S5中的链表池子中每个转发线程都有一个自己的池子。
(三)有益效果
本发明提供了一种NAT地址转换的方法。具备以下有益效果:该NAT地址转换的方法,通过S1、获取5元组信息,以这5元组信息查表,如果匹配上,说明会话已经生效,跳到S8,否则走新建会话流程,跳转到S2;S2、查规则表,获取服务器的ip和端口,根据规则信息判断是否需要替换报文源ip和端口,如果不需要,跳到S5,否则,继续执行S3;S3、查找回源ip表,获取回源ip;S4、探测出可用的回源端口,探测方法,记录上次探测成功的端口,从下一端口开始(目的提高查找速度,通常1次就可以查找到可用端口),使用经过S2到S4步骤获取到的出站方向的5元组信息作为参数,查找哈希表,如果匹配不上,证明端口可用;S5、从链表池子申请一个entry,根据上文给entry中两个方向的元组信息赋值;S6、以进站方向的5元组为参数,推入哈希链表;S7、以出站方向的5元组为参数,推入哈希链表;S8、修改报文源、目的ip和端口,发送报文;
1、各自线程的回源ip都不一样,探测回源端口时不需要考虑其他线程,降低了冲突几率,更加快速的探测到可用的回源端口;
2、该回源ip上一次成功探测的回源端口作为该ip下一个回源端口的起始端口,提高了查找回源端口的速率;
3、链表池子和哈希表配合,申请和释放只是简单的出队列和入队列的操作,而且每个entry分别以cacheline对齐,提升了申请和释放效率;
4、首先查规则表,首先过滤掉无用的报文,不必对无用报文做过多的处理,提升了整体的报文处理性能,从而提升了转发性能。
附图说明
图1为本发明的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例提供一种技术方案:一种NAT地址转换的方法,降低了冲突几率,更加快速的探测到可用的回源端口,提高了查找回源端口的速率,提升了申请和释放效率,过滤掉无用的报文,不必对无用报文做过多的处理,提升了整体的报文处理性能,从而提升了转发性能,具体包括以下步骤:
S1、获取5元组信息,以这5元组信息查表,如果匹配上,说明会话已经生效,跳到S8,否则走新建会话流程,跳转到S2;
S2、查规则表,获取服务器的ip和端口,根据规则信息判断是否需要替换报文源ip和端口,如果不需要,跳到S5,否则,继续执行S3;
S3、查找回源ip表,获取回源ip;
S4、探测出可用的回源端口,探测方法,记录上次探测成功的端口,从下一端口开始(目的提高查找速度,通常1次就可以查找到可用端口),使用经过S2到S4步骤获取到的出站方向的5元组信息作为参数,查找哈希表,如果匹配不上,证明端口可用;
S5、从链表池子申请一个entry,根据上文给entry中两个方向的元组信息赋值;
S6、以进站方向的5元组为参数,推入哈希链表,链表bai是一种物理存储单元上非du连续、非顺序的存储结zhi构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成;
S7、以出站方向的5元组为参数,推入哈希链表;
S8、修改报文源、目的ip和端口,发送报文,报文是网络中交换与传输的数据单元,即站点一次性要发送的数据块,报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。
本发明中,步骤S1中的5元组信息是指源ip、目的ip、源端口、目的端口和协议。
本发明中,步骤S2中的规则表以及S3中回源ip表均来自控制面的配置数据。
本发明中,步骤S4中的哈希表里面每一个节点和S5中链表池子的entry一样,每一项包含了进站、出站两个方向的5元组信息,当新建会话时,先从这个池子中申请出一个Entry,修改进站和出站两个方向的5元组,分别以该5元组为参数入队列到哈希表中,当读取到一个报文时,首先查这个哈希表,对应的5元组信息匹配上,刷新源目的ip和端口,发送报文出去,散列表(也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,这个映射函数叫做散列函数,存放记录的数组叫做散列表,给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash)函数。
本发明中,步骤S5中的链表池子中每个转发线程都有一个自己的池子。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (5)
1.一种NAT地址转换的方法,其特征在于:具体包括以下步骤:
S1、获取5元组信息,以这5元组信息查表,如果匹配上,说明会话已经生效,跳到S8,否则走新建会话流程,跳转到S2;
S2、查规则表,获取服务器的ip和端口,根据规则信息判断是否需要替换报文源ip和端口,如果不需要,跳到S5,否则,继续执行S3;
S3、查找回源ip表,获取回源ip;
S4、探测出可用的回源端口,探测方法,记录上次探测成功的端口,从下一端口开始(目的提高查找速度,通常1次就可以查找到可用端口),使用经过S2到S4步骤获取到的出站方向的5元组信息作为参数,查找哈希表,如果匹配不上,证明端口可用;
S5、从链表池子申请一个entry,根据上文给entry中两个方向的元组信息赋值;
S6、以进站方向的5元组为参数,推入哈希链表;
S7、以出站方向的5元组为参数,推入哈希链表;
S8、修改报文源、目的ip和端口,发送报文。
2.根据权利要求1所述的一种NAT地址转换的方法,其特征在于:所述步骤S1中的5元组信息是指源ip、目的ip、源端口、目的端口和协议。
3.根据权利要求1所述的一种NAT地址转换的方法,其特征在于:所述步骤S2中的规则表以及S3中回源ip表均来自控制面的配置数据。
4.根据权利要求1所述的一种NAT地址转换的方法,其特征在于:所述步骤S4中的哈希表里面每一个节点和S5中链表池子的entry一样,每一项包含了进站、出站两个方向的5元组信息,当新建会话时,先从这个池子中申请出一个Entry,修改进站和出站两个方向的5元组,分别以该5元组为参数入队列到哈希表中,当读取到一个报文时,首先查这个哈希表,对应的5元组信息匹配上,刷新源目的ip和端口,发送报文出去。
5.根据权利要求1所述的一种NAT地址转换的方法,其特征在于:所述步骤S5中的链表池子中每个转发线程都有一个自己的池子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010847861.9A CN112104761A (zh) | 2020-08-20 | 2020-08-20 | 一种nat地址转换的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010847861.9A CN112104761A (zh) | 2020-08-20 | 2020-08-20 | 一种nat地址转换的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112104761A true CN112104761A (zh) | 2020-12-18 |
Family
ID=73753334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010847861.9A Pending CN112104761A (zh) | 2020-08-20 | 2020-08-20 | 一种nat地址转换的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112104761A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113852555A (zh) * | 2021-09-26 | 2021-12-28 | 天翼数字生活科技有限公司 | 一种基于网关的多通道路由快速转发和智能选路方法 |
CN115134334A (zh) * | 2022-06-22 | 2022-09-30 | 上海弘积信息科技有限公司 | 一种负载均衡设备nat地址池扩展分配端口的方法 |
CN115442328A (zh) * | 2022-08-03 | 2022-12-06 | 天翼云科技有限公司 | 一种网络地址转换方法、装置、网关、介质和设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1777194A (zh) * | 2005-12-16 | 2006-05-24 | 中国科学院计算技术研究所 | Pat模式下支持多会话应用层协议的网络地址转换方法 |
CN1925458A (zh) * | 2005-09-02 | 2007-03-07 | 中兴通讯股份有限公司 | 一种网络端口地址转换的实现方法 |
CN101018206A (zh) * | 2007-02-14 | 2007-08-15 | 华为技术有限公司 | 分片报文处理方法与装置 |
CN101420465A (zh) * | 2008-12-05 | 2009-04-29 | 北京星网锐捷网络技术有限公司 | 在地址转换表中映射源端口的方法及网络地址转换设备 |
CN104994184A (zh) * | 2015-06-25 | 2015-10-21 | 北京广密华安科技有限公司 | 一种nat穿透方法和装置 |
US20150341309A1 (en) * | 2009-08-21 | 2015-11-26 | Cisco Technology, Inc. | Port chunk allocation in network address translation |
CN106790556A (zh) * | 2016-12-26 | 2017-05-31 | 深圳市风云实业有限公司 | 一种基于分布式系统的nat会话管理方法 |
CN109314701A (zh) * | 2016-06-21 | 2019-02-05 | 高通股份有限公司 | 使用可用网络连接的网络路径探测 |
CN110995878A (zh) * | 2019-11-18 | 2020-04-10 | 成都知道创宇信息技术有限公司 | 一种多层网络传输中源信息的获取方法、装置及系统 |
-
2020
- 2020-08-20 CN CN202010847861.9A patent/CN112104761A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1925458A (zh) * | 2005-09-02 | 2007-03-07 | 中兴通讯股份有限公司 | 一种网络端口地址转换的实现方法 |
CN1777194A (zh) * | 2005-12-16 | 2006-05-24 | 中国科学院计算技术研究所 | Pat模式下支持多会话应用层协议的网络地址转换方法 |
CN101018206A (zh) * | 2007-02-14 | 2007-08-15 | 华为技术有限公司 | 分片报文处理方法与装置 |
CN101420465A (zh) * | 2008-12-05 | 2009-04-29 | 北京星网锐捷网络技术有限公司 | 在地址转换表中映射源端口的方法及网络地址转换设备 |
US20150341309A1 (en) * | 2009-08-21 | 2015-11-26 | Cisco Technology, Inc. | Port chunk allocation in network address translation |
CN104994184A (zh) * | 2015-06-25 | 2015-10-21 | 北京广密华安科技有限公司 | 一种nat穿透方法和装置 |
CN109314701A (zh) * | 2016-06-21 | 2019-02-05 | 高通股份有限公司 | 使用可用网络连接的网络路径探测 |
CN106790556A (zh) * | 2016-12-26 | 2017-05-31 | 深圳市风云实业有限公司 | 一种基于分布式系统的nat会话管理方法 |
CN110995878A (zh) * | 2019-11-18 | 2020-04-10 | 成都知道创宇信息技术有限公司 | 一种多层网络传输中源信息的获取方法、装置及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113852555A (zh) * | 2021-09-26 | 2021-12-28 | 天翼数字生活科技有限公司 | 一种基于网关的多通道路由快速转发和智能选路方法 |
CN113852555B (zh) * | 2021-09-26 | 2022-12-16 | 天翼数字生活科技有限公司 | 一种基于网关的多通道路由快速转发和智能选路方法 |
CN115134334A (zh) * | 2022-06-22 | 2022-09-30 | 上海弘积信息科技有限公司 | 一种负载均衡设备nat地址池扩展分配端口的方法 |
CN115442328A (zh) * | 2022-08-03 | 2022-12-06 | 天翼云科技有限公司 | 一种网络地址转换方法、装置、网关、介质和设备 |
CN115442328B (zh) * | 2022-08-03 | 2023-06-02 | 天翼云科技有限公司 | 一种网络地址转换方法、装置、网关、介质和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112422481B (zh) | 网络威胁的诱捕方法、系统和转发设备 | |
US7594031B2 (en) | Network address selection | |
US9253149B2 (en) | Method for providing an internal server with a shared public IP address | |
US8730966B2 (en) | Anonymization using anonymizing device and packet server in which anonymous address is generated based on prefix acquired from server | |
US9712559B2 (en) | Identifying frames | |
CN112104761A (zh) | 一种nat地址转换的方法 | |
US6754716B1 (en) | Restricting communication between network devices on a common network | |
US20120144483A1 (en) | Method and apparatus for preventing network attack | |
US9917928B2 (en) | Network address translation | |
US9231908B2 (en) | Ensuring symmetric routing to private network | |
US8578468B1 (en) | Multi-factor client authentication | |
US8254286B2 (en) | Method and system for detection of NAT devices in a network | |
Ullrich et al. | {IPv6} security: Attacks and countermeasures in a nutshell | |
CN107094110B (zh) | 一种dhcp报文转发方法及装置 | |
US20080205388A1 (en) | Discovery of network devices logically located between a client and a service | |
CN111147519A (zh) | 数据检测方法、装置、电子设备和介质 | |
AU2023203289A1 (en) | Systems and methods for providing a ReNAT communications environment | |
US11658995B1 (en) | Methods for dynamically mitigating network attacks and devices thereof | |
US20140185626A1 (en) | Systems and Methods for Providing a ReNAT Virtual Private Network | |
CN112383559A (zh) | 地址解析协议攻击的防护方法及装置 | |
CN111756636B (zh) | 数据包处理方法、装置及设备、存储介质 | |
JP2019522416A (ja) | Dnsリクエストの抑制のためのシステム及び方法 | |
US20220337546A1 (en) | Method and system for realizing network dynamics, terminal device and storage medium | |
JP2019041176A (ja) | 不正接続遮断装置及び不正接続遮断方法 | |
CN115442328B (zh) | 一种网络地址转换方法、装置、网关、介质和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201218 |
|
RJ01 | Rejection of invention patent application after publication |