CN1809033A - 网络地址转换的硬件实现方法 - Google Patents
网络地址转换的硬件实现方法 Download PDFInfo
- Publication number
- CN1809033A CN1809033A CNA2006100202973A CN200610020297A CN1809033A CN 1809033 A CN1809033 A CN 1809033A CN A2006100202973 A CNA2006100202973 A CN A2006100202973A CN 200610020297 A CN200610020297 A CN 200610020297A CN 1809033 A CN1809033 A CN 1809033A
- Authority
- CN
- China
- Prior art keywords
- network address
- address
- conversion
- implementation method
- hardware implementation
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及网络技术,特别涉及网络地址转换方法。本发明解决了现有NAT技术,转换速度慢,耗费***资源,降低***效率的问题,公开了一种直接在FPGA/CPLD,ASIC等硬件基础上实现的网络地址转换方法。本发明的网络地址转换方法,首先按照预订格式,在NAT模块中建立规则表;从数据包中抽取五元组并输入NAT模块,在NAT模块中,五元组与规则表进行匹配,根据规则表的内容决定转换类型,最后,计算出需要转换的IP地址和PORT号。本发明的有益效果是,能充分发挥硬件的速度优势,转换速度快,效率高。本发明的技术方案,主要用于网络芯片的设计。
Description
技术领域
本发明涉及网络技术,特别涉及网络地址转换方法。
背景技术
由于IPv4网络协议本身的不足,加之现在越来越多的网络设备接入,网络地址正面临着被分配耗尽的危险。为了缓解这个问题,网络地址转换(NAT)技术被提出并得到了应用。NAT技术可以将网络数据流中的多个关键元素,尤其是网络地址按一定规律进行转换,在局部范围内形成互不冲突的地址/端口组合,从而提高网络地址的利用效率。现有NAT技术通常有两种方式:
1.采用软件方式实现,即网络数据包全部交由CPU,依靠软件的方式从包内检出五个关键元素(SIP,SPORT,DIP,DPORT,PROTOCOL),再根据要求完成源地址转换——SNAT,即转换SIP或SPORT,或目的地址转换——DNAT,即转换DIP或DPORT。此方法的缺点是,数据包从通讯端口到CPU必须经过PCI总线、***RAM通道、南桥通道等转换过程,才能交给软件处理,软件执行NAT转换还需要进行大量计算和频繁的RAM读写,尤其是对每个包都要进行一次,耗费了大量CPU时间和***资源,使整个***在完成NAT功能时效率骤降。
2.采用NP(网络处理器)方式实现,NP在对网络包处理的速度和效率上较高,但最终仍然是基于微代码的执行过程,速度比不上硬件。在从包中检出五元组的过程中NP比CPU的效率高,但在进行NAT地址转换时,仍然要依赖于微代码的计算和频繁的RAM读写才能确定要转换的地址,在这个方面,NP的效率也并不高。
发明内容
本发明所要解决的技术问题,就是针对现有NAT技术,转换速度慢,耗费***资源,降低***效率的缺点,提供一种直接在FPGA/CPLD,ASIC等硬件基础上实现的网络地址转换方法。
本发明解决所述技术问题,采用的技术方案是,网络地址转换的硬件实现方法,包括如下步骤:
a.按照预定格式配置规则表;
b.从数据包中抽取五元组,与规则表进行匹配;
c.若匹配上某一表项,则根据表项内容对网络地址进行转换;
d.若未匹配上表项,则输出未匹配信号。
本发明的有益效果是,能充分发挥硬件的速度优势,将繁杂的搜索和转换计算过程固化后得到高速执行,支持小数据包的线速处理。硬件在实现时,各个功能模块相对独立,NAT的运行不会以减低其它模块的效率为代价。同时,硬件对RAM的读写效率非常高,读写的数据格式也能够精简,能进一步提高转换效率。保证了***在开启NAT功能时整体数据流的处理过程仍然能高速执行。
附图说明
图1是本发明的流程图;
图2是NAT模块的示意图。
具体实施方式
下面结合附图及实施例,信息描述本发明的技术方案。
本发明的技术方案是,网络地址转换的硬件实现方法,包括如下步骤:
a.按照预定格式配置规则表;
b.从数据包中抽取五元组,与规则表进行匹配;
c.若匹配上某一表项,则根据表项内容对网络地址进行转换;
d.若未匹配上表项,则输出未匹配信号;
具体的是,所述网络地址包括IP地址和PORT号;
进一步的是,所述步骤c中IP地址的转换为随机转换、指定范围转换或罗列选取;
所述步骤c中PORT号的转换为随机转换或指定范围转换;
更进一步的是,所述步骤c中网络地址转换包括源地址转换和目的地址转换。
本发明的网络地址转换方法,首先,按照预定格式,在NAT模块中建立规则表。从数据包中抽取五元组,包括源地址:SIP,SPORT;目的地址:DIP,DPORT;以及PROTOCOL。将上述五元组输入NAT模块。在NAT模块中,五元组与规则表进行匹配,根据规则表的内容决定做哪一种转换:源地址转换——SNAT;或目的地址转换——DNAT。最后,计算并得出需要转换的IP地址和PORT号(MIP和MPORT)。
上述规则表包括五元组内容、匹配规则、做何种转换,即DNAT或SNAT、IP的转换范围、PORT的转换范围等参数。从数据包中抽取五元组,搜索整个规则表,根据五元组和匹配规则确定是否匹配上某一表项。如果未匹配上表项,则输出未匹配信号,以便其他模块进行处理;如果匹配上表项,则根据表项内容对IP和PORT进行转换。程序流程参见图1,NAT模块结构见图2。
实施例1
IP地址的转换分三种方式:一为随机范围转换,即范围不固定;二为指定范围转换,这要求用户在规则表中预先对基值和偏移量进行配置;三为罗列选取,即转换的值在一个罗列的表项中随机选择一个,这也要求用户在规则表中预先对罗列表进行配置。
假设转换之前的IP地址均为192.168.0.1,在随机范围转换模式下,得到的MIP会是一个任意的IP地址,比如:123.89.67.251。在指定范围转换模式下,得到的MIP会是一定范围内的任意IP地址,这里的范围取决于规则表中的配置(基地址+偏移量)。比如:规则表的配置为:基地址=119.160.2.0,偏移量=50,则得到的MIP是119.160.2.0至119.160.2.50范围内的一个任意IP地址,如119.160.2.34。在罗列选取模式下,得到的MIP会是规则表中所罗列的IP地址的其中之一。比如规则表罗列的地址有三个:0号地址:120.2.7.13,1号地址:120.2.7.39,2号地址:120.2.7.254;根据192.168.0.1的低2位的数值01,得到的MIP应该取1号地址:120.2.7.39。将转换后的MIP安要求输出。
实施例2
PORT号的转换分两种方式:一为随机范围转换,即范围不固定;二为指定范围转换,这要求用户在规则表中预先对基值和偏移量进行配置。
假设转换之前的PORT号均为80,在随机范围转换模式下,得到的MPORT会是一个不大于65535的任意的PORT号,比如:8880。在指定范围转换模式下,得到的MPORT是一定范围内的任意值,这里的范围取决于规则表中的配置(基值+偏移量)。比如:规则表的配置为:基地址=3000,偏移量=80,则得到的MPORT是3000至3080范围内的一个任意值,如3056。将转换后的MPORT按要求输出。
上述实施例中,若网络地址是源地址——SIP,SPORT;则对应的转换为源地址转换——SNAT。若网络地址为目的地址——DIP,DPORT;则对应的转换为目的地址转换——DNAT。
Claims (5)
1.网络地址转换的硬件实现方法,包括如下步骤:
a.按照预定格式配置规则表;
b.从数据包中抽取五元组,与规则表进行匹配;
c.若匹配上某一表项,则根据表项内容对网络地址进行转换;
d.若未匹配上表项,则输出未匹配信号。
2.根据权利要求1所述的网络地址转换的硬件实现方法,其特征在于:所述网络地址包括IP地址和PORT号。
3.根据权利要求2所述的网络地址转换的硬件实现方法,其特征在于:所述步骤c中IP地址的转换为随机转换、指定范围转换或罗列选取。
4.根据权利要求2所述的网络地址转换的硬件实现方法,其特征在于:所述步骤c中PORT号的转换为随机转换或指定范围转换。
5.根据权利要求1、2、3或4所述的网络地址转换的硬件实现方法,其特征在于:所述步骤c中网络地址转换包括源地址和目的地址转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100202973A CN1809033A (zh) | 2006-02-16 | 2006-02-16 | 网络地址转换的硬件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100202973A CN1809033A (zh) | 2006-02-16 | 2006-02-16 | 网络地址转换的硬件实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1809033A true CN1809033A (zh) | 2006-07-26 |
Family
ID=36840726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100202973A Pending CN1809033A (zh) | 2006-02-16 | 2006-02-16 | 网络地址转换的硬件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1809033A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100452746C (zh) * | 2007-03-12 | 2009-01-14 | 杭州华三通信技术有限公司 | 一种确定出接口的方法及多接入宽带路由器 |
CN101119324B (zh) * | 2007-09-21 | 2010-04-14 | 杭州华三通信技术有限公司 | 网络地址转换属性自适应方法及装置 |
CN101132424B (zh) * | 2007-09-29 | 2011-08-31 | 杭州华三通信技术有限公司 | 网络地址转换的方法及装置 |
CN104184732A (zh) * | 2014-08-25 | 2014-12-03 | 浪潮集团有限公司 | 一种ip地址匹配ip范围策略的硬件实现方法 |
CN111510513A (zh) * | 2020-01-03 | 2020-08-07 | 普联国际有限公司 | 一种map-e链路加速方法、装置、存储介质及网络设备 |
CN113132242A (zh) * | 2021-03-19 | 2021-07-16 | 翱捷科技股份有限公司 | 一种网络设备及其共享发送和接收缓存的方法 |
-
2006
- 2006-02-16 CN CNA2006100202973A patent/CN1809033A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100452746C (zh) * | 2007-03-12 | 2009-01-14 | 杭州华三通信技术有限公司 | 一种确定出接口的方法及多接入宽带路由器 |
CN101119324B (zh) * | 2007-09-21 | 2010-04-14 | 杭州华三通信技术有限公司 | 网络地址转换属性自适应方法及装置 |
CN101132424B (zh) * | 2007-09-29 | 2011-08-31 | 杭州华三通信技术有限公司 | 网络地址转换的方法及装置 |
CN104184732A (zh) * | 2014-08-25 | 2014-12-03 | 浪潮集团有限公司 | 一种ip地址匹配ip范围策略的硬件实现方法 |
CN111510513A (zh) * | 2020-01-03 | 2020-08-07 | 普联国际有限公司 | 一种map-e链路加速方法、装置、存储介质及网络设备 |
CN111510513B (zh) * | 2020-01-03 | 2022-08-30 | 普联国际有限公司 | 一种map-e链路加速方法、装置、存储介质及网络设备 |
CN113132242A (zh) * | 2021-03-19 | 2021-07-16 | 翱捷科技股份有限公司 | 一种网络设备及其共享发送和接收缓存的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1809033A (zh) | 网络地址转换的硬件实现方法 | |
CN101227318B (zh) | 高速网络流量的超点实时检测方法 | |
CN101056218A (zh) | 一种网络性能测量方法及*** | |
CN1593041A (zh) | 具有多个首部的包的解封装和封装的方法、装置和计算机程序 | |
CN1273394A (zh) | 综合ip网络 | |
US20080059464A1 (en) | Positionally dependent pattern checking in character strings using deterministic finite automata | |
CN1255975C (zh) | 在路由设备中为分组选择路由的方法 | |
CN101043692A (zh) | 巡检方法及巡检服务器 | |
CN1408089A (zh) | 用于管理客户与服务器之间的连接的***和方法 | |
CN101848239B (zh) | 一种高时效性的分布式服务集成调用*** | |
CN1777889A (zh) | 域名***中的数据库性能的增强 | |
CN1770048A (zh) | 一种嵌入式网页服务器 | |
CN104778189A (zh) | 一种基于xml标签语言的日志管理方法和*** | |
JP2003124977A (ja) | チェックサムの書換装置 | |
CN1272724C (zh) | 基于内核中套接字对接的第七层负载均衡的方法 | |
CN101056219A (zh) | 一种实现网络性能测量的方法及*** | |
CN1398474A (zh) | 用于互联网通信的方法 | |
SE531947C2 (sv) | Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk | |
CN1777018A (zh) | 基于dsp芯片的励磁控制器通讯***及其usb协议实现的方法 | |
CN1819557A (zh) | 硬件建立tcp数据流连接的方法 | |
CN1317874C (zh) | 提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法 | |
CN102088457A (zh) | 一种基于保证连接均衡性的报文分流方法 | |
CN1260920C (zh) | 实现网络地址转换的方法 | |
CN1272938C (zh) | 一种提高以太网带宽的方法 | |
CN1581842A (zh) | 一种实现源ip地址和源mac地址绑定路由的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |