CN112671946B - 一种基于sdn的地址转换实现方法 - Google Patents
一种基于sdn的地址转换实现方法 Download PDFInfo
- Publication number
- CN112671946B CN112671946B CN202011556944.9A CN202011556944A CN112671946B CN 112671946 B CN112671946 B CN 112671946B CN 202011556944 A CN202011556944 A CN 202011556944A CN 112671946 B CN112671946 B CN 112671946B
- Authority
- CN
- China
- Prior art keywords
- nat
- sdn
- conversion
- address
- forwarding
- 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.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于SDN的地址转换实现方法,其中,该方法包括:SDN控制器根据网络连接以及NAT地址空间,确定NAT转换的模式和NAT类型;SDN控制器根据确定的NAT转换的模式和NAT类型,设计不同的转发流水线,进一步确定NAT转换的流表和组表;SDN控制器将确定的NAT转换的流表和组表通过OpenFlow协议下发到转发面;转发面根据转发流水线进行报文转发。该方法由SDN控制器根据网络连接以及NAT地址空间确定NAT转发流水线的方式,并通过对动态端口表项的扩展,满足现有NAT的使用场景。
Description
技术领域
本发明涉及NAT转换领域,尤其是一种基于SDN的地址转换实现方法。
背景技术
SDN(software defined network,软件定义网络)架构具有控制面和转发面分离,开放的可编程接口以及集中化控制等特征;其集中化的网络管控方式,使得网络的管理和调度更加的智能化;同时开放的转发面编程接口,使得转换面的处理方式更加的灵活。OpenFlow作为SDN网络的一种南向接口,其转发面以流表的方式实现报文的转发,使得报文的转发行为可以由控制器按照业务特征来设计,使得转发面更加的灵活,更加的贴近业务。
NAT(network address translation,网络地址转换)地址转换,作为网络边界的一种常用技术,可以完成不同网络之间的地址转换,解决IP地址不足的问题,而且还能够有效的隐藏内部的资产,防止来自外网的攻击。
但是,目前为止以OpenFlow为代表的流表转发面,并不能很好的支撑NAT转换。现有的申请号为CN201210574680.9的发明专利,公开了一种NAT实现系统、方法及OpenFlow交换机,通过扩展了组表来支持NAT转换。但是,并没有解决现有的NAT基于端口的转换问题以及NAT的管理问题。
发明内容
为解决NAT转换的多场景以及管理复杂的问题,本发明提供一种基于SDN的地址转换实现方法,由SDN控制器根据网络连接以及NAT地址空间确定NAT转发流水线的方式,并通过对动态端口表项的扩展,可以解决上述问题,满足现有NAT的使用场景。
为实现上述目的,本发明采用下述技术方案:
在本发明一实施例中,提出了一种基于SDN的地址转换实现方法,该方法包括:
SDN控制器根据网络连接以及NAT地址空间,确定NAT转换的模式和NAT类型;
SDN控制器根据确定的NAT转换的模式和NAT类型,设计不同的转发流水线,进一步确定NAT转换的流表和组表;
SDN控制器将确定的NAT转换的流表和组表通过OpenFlow协议下发到转发面;
转发面根据转发流水线进行报文转发。
进一步地,NAT转换的模式包括一对一映射、多对一映射和一对多映射。
进一步地,NAT类型包括SNAT和DNAT。
进一步地,网络连接包括边界节点与外网的连接,以及内部应用的部署情况。
进一步地,转发流水线包括入接口表、路由表、SNAT表、DNAT表以及动态端口转换表和组表。入接口表的匹配字段为入接口,动作为设置metadata以及跳转到路由表,metadata的比特位标识接口或网络连接信息;路由表的匹配字段为目的地址和metadata,动作为出接口或者跳转到下一个表项;SNAT表的匹配字段为源地址,动作为修改源地址、动态端口以及出接口;DNAT表的匹配字段为目的地址和目的端口,动作为修改目的地址、修改目的端口、跳转到组表以及出接口。SNAT表和DNAT表的动作均根据NAT转换模式进行确定;
在某个实施例中,SNAT的转换类型为一对一的静态地址转换,则动作为修改源地址;在具体实施例中,SNAT的转换类型为动态端口转换,则SNAT表的动作为修改源地址、动态端口以及出接口;动态端口动作根据SNAT表所设置的NAT地址、报文中的目的地址和目的端口进行可用源端口选择。
进一步的,通过metadata携带内外网的接口信息或者网络连接信息。
进一步地,动态端口转换表由动态端口执行动作来触发执行。动态端口动作,对Openflow协议进行了扩展,通过比特位(BITMAP)的方式,来标识端口是否被使用。
进一步的,定期监控NAT会话表,NAT会话表超时,则清空NAT会话表锁对应的动态端口转换表的所用端口的置位。
进一步地,动态端口转换表由NAT地址、目的地址和目的端口唯一匹配;动态端口转换表的端口状态位标识其使用状态。
有益效果:
1、本发明能够更好的支持OpenFlow交换机中NAT转换的功能,通过对动态端口转换表的扩展,解决现有NAT基于端口的转换问题。
2、本发明通过设计OpenFlow交换机中不同的转发流水线,支持了多种NAT转换的模式。
附图说明
图1是本发明一实施例的基于SDN的地址转换实现方法流程示意图;
图2是本发明一实施例的转发流水线组成示意图;
图3是本发明一实施例的网络拓扑示意图;
图4是本发明一实施例的负载均衡的DNAT策略转换对应的流水线示意图;
图5是本发明一实施例的端口映射的DNAT策略转换对应的流水线示意图;
图6是本发明一实施例的静态地址的SNAT策略转换对应的流水线示意图;
图7是本发明一实施例的动态端口的SNAT策略转换对应的流水线示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种基于SDN的地址转换实现方法,SDN控制器根据网络拓扑以及NAT地址空间,确定NAT模式和NAT类型;再根据NAT模式和NAT类型,设计不同的转发流水线,进一步确定NAT转换的流表和组表;转发流水线由入接口表、路由表、SNAT表、DNAT表以及动态端口转换表和组表组成,解决了NAT转换的多场景以及管理复杂的问题。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1是本发明一实施例的基于SDN的地址转换实现方法流程示意图。如图1所示,该方法包括:
S1、SDN控制器根据网络连接以及NAT地址空间,确定NAT转换的模式和NAT类型;
网络连接包括边界节点与外网的连接,以及内部应用的部署情况;
NAT转换的模式包括一对一映射、多对一映射和一对多映射;一对一映射又称为静态地址映射,多对一映射又称为动态端口映射,一对多映射又称为负载均衡;
NAT类型包括SNAT和DNAT;
S2、SDN控制器根据确定的NAT转换的模式和NAT类型,设计不同的转发流水线,进一步确定NAT转换的流表和组表;
图2是本发明一实施例的转发流水线组成示意图。如图2所示,转发流水线包括入接口表、路由表、SNAT(source NAT,源地址NAT转换)表、DNAT(destination NAT,目的NAT地址转换)表以及动态端口转换表和组表;具体如下:
对于SNAT静态地址转换,首先根据报文的入接口匹配入接口表Table0,根据匹配结果执行动作,跳转到路由表Table5,然后根据目的地址匹配路由表Table5,根据路由表Table5的执行结果跳转到SNAT表Table10;再根据路由表Table5的执行结果所确定的出接口以及源地址匹配SNAT表Table10,执行动作为修改源地址;
对于SNAT动态端口转换,首先根据报文的入接口匹配入接口表Table0,然后匹配路由表Table5,再根据出接口匹配SNAT表Table10,动作为修改源地址和动态修改源端口;动态修改源端口为在OF1.5协议基础上新扩展的Action(动作),Action的类型为设置动态端口;该动作触发查询动态端口转换表,根据查询结果设置端口,并修改端口的状态;动态端口转换表是转发面根据报文所访问的服务和NAT地址建立的BITMAP(比特映射表)表;BITMAP表的匹配字段为NAT地址、目的地址和目的端口,目的端口默认范围为1-65535,目的端口范围可配置;目的端口的状态默认为0,标识该目的端口未使用,当目的端口被占用之后,设置为1,标识该目的端口被使用,同时触发定时器;定时器超时之后,该会话对应的报文计数没有增长,则释放该目的端口,重新将目的端口状态标识为0;
对于负载均衡即一对多的DNAT转换,首先匹配入接口表Table0,然后匹配DNAT表Table20,根据目的地址和目的端口跳转到组表,执行动作为组表,组表类型为Select;
对于DNAT的地址映射和端口映射,首先匹配入接口表Table0,然后匹配DNAT表Table20,执行动作为修改目的地址和目的端口;
S3、SDN控制器将确定的NAT转换的流表和组表通过OpenFlow协议下发到转发面;
S4、转发面根据转发流水线进行报文转发。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述基于SDN的地址转换实现方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
图3是本发明一实施例的网络拓扑示意图。如图3所示,ovs交换机(openvswitch,一种支持OpenFlow协议的虚拟交换机)与SDN控制器通过OpenFlow协议进行通信,ovs交换机有五个接口:port1、port2、port3和port4连接公司内网,分别连接VM1、VM2、VM3和VM4,port5连接公司外网。SDN控制器根据网络内、外网的互联情况以及业务情况,分配给ovs交换机的NAT地址为10.1.1.10和10.1.1.11,本发明中NAT地址可以是公网IP,也可以是私网IP;本实施例以ovs交换机为例,也可以是其他支持OpenFlow协议的设备,不影响本方案的描述。
实现场景1:负载均衡的DNAT策略转换
本场景中内部服务器VM1(192.168.1.1)和VM2(192.168.1.2)通过NAT地址10.1.1.10对外发布服务,实现负载均衡的功能,并对内部网络的保护。SDN控制器根据网络拓扑以及NAT地址空间,结合DNAT的转发流水线,将流表和组表到ovs交换机。对应的流水线如图4所示。
假设收到目的地址为10.1.1.10的报文。
ovs交换机首先根据报文的入接口匹配入接口表Table0,找到对应的入接口port5所对应的条目,该条目的动作是跳转到DNAT表Table20;该报文来自于外网,可能需要做DNAT转换,故通过metadata携带外网接口的比特位信息,先跳转到DNAT表Table20;DNAT表Table20根据报文的目的地址10.1.1.10和metadata进行匹配,跳转到组表。组表的类型为select,组表中有两个bucket,bucket1将报文目的地址修改成192.168.1.1,并将报文转发至VM1;bucket2将报文的目的地址修改为192.168.1.2,将报文转发至VM2。此场景内部服务器通过ovs交换机实现了对外提供服务,并实现了负载均衡的功能。
实现场景2:端口映射的DNAT策略转换
本场景中内部服务器VM1(192.168.1.1)和VM2(192.168.1.2)通过NAT地址10.1.1.11的tcp:80和tcp:81端口对外发布服务。SDN控制器根据网络拓扑以及NAT地址空间,设计转发流水线,并下发表到ovs交换机。对应的流水线如图5所示。
假设收到目的地址为10.1.1.11,目的端口为tcp:80的报文。
ovs交换机首先将报文匹配入接口表Table0,找到对应的入接口port5;由于入接口连接公司外网,可能需要做DNAT转换,故通过metadata携带外网接口的比特位信息,先跳转到DNAT表Table20;DNAT表Table20再根据报文的目的地址10.1.1.11和目的端口tcp:80,将目的地址修改为192.168.1.1。此场景隐藏了内部服务器的地址,实现了对内部服务器的保护。
实现场景3:静态地址的SNAT策略转换
本场景中VM3(192.168.1.3)通过NAT地址10.1.1.11去访问外网。SDN控制器根据网络拓扑以及NAT地址空间,设计转发流水线,并下发表到ovs交换机。对应的流水线如图6所示。
假设收到源地址为192.168.1.3,目的地址为10.1.1.20的报文。
ovs交换机首先将报文匹配入接口表Table0,找到对应的入接口port3;通过metadata携带内网接口的比特位信息,先跳转到路由表Table5,根据metadata以及出接口确定是否做SNAT转换;路由表Table5根据目的地址确定报文出接口为port5,结合metadata以及出接口信息,确定内部主机需要访问外网,然后跳转到SNAT表Table10。根据源地址和出接口匹配SNAT表Table10,若命中SNAT表Table10,则认为需要做SNAT转换,本实施例中,SNAT表Table10将报文源地址192.168.1.3转换成10.1.1.11,并转发至出接口port5。在SNAT表Table10中,缺省表为丢弃,即没有命中条目的报文,会被丢弃。
实现场景4:动态端口的SNAT策略转换
本场景中VM3(192.168.1.3)和VM4(192.168.1.4)分别通过NAT地址10.1.1.10的tcp:80和tcp:81端口去访问外网。SDN控制器根据网络拓扑以及NAT地址空间,设计转发流水线,并下发表到ovs交换机。对应的流水线如图7所示。
假设收到源地址为192.168.1.3,目的地址为10.1.1.20的报文。
ovs交换机首先将报文匹配入接口表Table0,找到对应的入接口port3;由于入接口连接公司内网,可能需要做SNAT转换,通过metadata携带内网接口的比特位信息,先跳转到路由表Table5;路由表Table5根据目的地址确定报文出接口为port5,结合metadata以及出接口信息,确定流量由内网访问外网,需要进行SNAT转换,然后跳转到SNAT表Table10。SNAT表Table10将报文源地址192.168.1.3转换成10.1.1.11,源端口转换成tcp:80,然后执行动作。
本发明提出的基于SDN的地址转换实现方法,能够更好的支持OpenFlow交换机中NAT转换的功能,通过对动态端口转换表的扩展,解决现有NAT基于端口的转换问题;通过设计OpenFlow交换机中不同的转发流水线,支持了多种NAT转换的模式。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (5)
1.一种基于SDN的地址转换实现方法,其特征在于,该方法包括:
SDN控制器根据网络连接以及NAT地址空间,确定NAT转换的模式和NAT类型;
SDN控制器根据确定的NAT转换的模式和NAT类型,设计不同的转发流水线,进一步确定NAT转换的流表和组表;转发流水线包括入接口表、路由表、SNAT表、DNAT表以及动态端口转换表和组表;动态端口转换表由动态端口执行动作来触发执行;
SDN控制器将确定的NAT转换的流表和组表通过OpenFlow协议下发到转发面;
转发面根据转发流水线进行报文转发。
2.根据权利要求1所述的基于SDN的地址转换实现方法,其特征在于,所述NAT转换的模式包括一对一映射、多对一映射和一对多映射;
3.根据权利要求1所述的基于SDN的地址转换实现方法,其特征在于,所述NAT类型包括SNAT和DNAT。
4.根据权利要求1所述的基于SDN的地址转换实现方法,其特征在于,所述网络连接包括边界节点与外网的连接,以及内部应用的部署情况。
5.根据权利要求1所述的基于SDN的地址转换实现方法,其特征在于,所述动态端口转换表由NAT地址、目的地址和目的端口唯一匹配;所述动态端口转换表的端口状态位标识其使用状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011556944.9A CN112671946B (zh) | 2020-12-25 | 2020-12-25 | 一种基于sdn的地址转换实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011556944.9A CN112671946B (zh) | 2020-12-25 | 2020-12-25 | 一种基于sdn的地址转换实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112671946A CN112671946A (zh) | 2021-04-16 |
CN112671946B true CN112671946B (zh) | 2023-04-25 |
Family
ID=75408627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011556944.9A Active CN112671946B (zh) | 2020-12-25 | 2020-12-25 | 一种基于sdn的地址转换实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112671946B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113422846B (zh) * | 2021-06-23 | 2022-12-23 | 浪潮思科网络科技有限公司 | 一种基于网络地址转换协议的业务报文处理方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729367A (zh) * | 2008-10-30 | 2010-06-09 | 华为技术有限公司 | 实现网络地址转换的方法、设备及系统 |
CN103067534A (zh) * | 2012-12-26 | 2013-04-24 | 中兴通讯股份有限公司 | 一种NAT实现系统、方法及Openflow交换机 |
CN106101298A (zh) * | 2016-06-06 | 2016-11-09 | 刘昱 | 基于sdn的网络地址转换装置及方法 |
CN106489256A (zh) * | 2013-11-04 | 2017-03-08 | 瑞典爱立信有限公司 | 在使用软件定义连网的云环境中的服务链接 |
CN106817301A (zh) * | 2015-11-30 | 2017-06-09 | 中兴通讯股份有限公司 | 故障恢复方法及装置、控制器、软件定义网络 |
CN106982206A (zh) * | 2017-03-10 | 2017-07-25 | 中国科学院信息工程研究所 | 一种基于ip地址自适应转换的恶意扫描防御方法及系统 |
CN110430130A (zh) * | 2019-07-18 | 2019-11-08 | 中盈优创资讯科技有限公司 | 确定策略路径的方法及装置 |
-
2020
- 2020-12-25 CN CN202011556944.9A patent/CN112671946B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729367A (zh) * | 2008-10-30 | 2010-06-09 | 华为技术有限公司 | 实现网络地址转换的方法、设备及系统 |
CN103067534A (zh) * | 2012-12-26 | 2013-04-24 | 中兴通讯股份有限公司 | 一种NAT实现系统、方法及Openflow交换机 |
CN106489256A (zh) * | 2013-11-04 | 2017-03-08 | 瑞典爱立信有限公司 | 在使用软件定义连网的云环境中的服务链接 |
CN106817301A (zh) * | 2015-11-30 | 2017-06-09 | 中兴通讯股份有限公司 | 故障恢复方法及装置、控制器、软件定义网络 |
CN106101298A (zh) * | 2016-06-06 | 2016-11-09 | 刘昱 | 基于sdn的网络地址转换装置及方法 |
CN106982206A (zh) * | 2017-03-10 | 2017-07-25 | 中国科学院信息工程研究所 | 一种基于ip地址自适应转换的恶意扫描防御方法及系统 |
CN110430130A (zh) * | 2019-07-18 | 2019-11-08 | 中盈优创资讯科技有限公司 | 确定策略路径的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112671946A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11888899B2 (en) | Flow-based forwarding element configuration | |
US10785186B2 (en) | Control plane based technique for handling multi-destination traffic in overlay networks | |
EP3248331B1 (en) | Method for controlling switches to capture and monitor network traffic | |
CN109937401B (zh) | 经由业务旁路进行的负载均衡虚拟机的实时迁移 | |
CN106797351B (zh) | 使用控制器执行逻辑网络转发的系统和方法 | |
EP2748992B1 (en) | Method for managing network hardware address requests with a controller | |
US10135687B2 (en) | Virtual group policy based filtering within an overlay network | |
CN107071088B (zh) | 逻辑l3路由 | |
US10530656B2 (en) | Traffic replication in software-defined networking (SDN) environments | |
CN109474627B (zh) | 一种基于sdn的虚拟租户网络隔离方法及系统 | |
US20150172156A1 (en) | Detecting end hosts in a distributed network environment | |
WO2013126195A1 (en) | System and methods for managing network packet forwarding with a controller | |
US10212126B2 (en) | System for mediating connection | |
EP3292659B1 (en) | Multicast data packet forwarding | |
US11936612B2 (en) | Address resolution handling at logical distributed routers | |
Dixit et al. | Composing heterogeneous SDN controllers with flowbricks | |
CN112671946B (zh) | 一种基于sdn的地址转换实现方法 | |
US10862850B2 (en) | Network-address-to-identifier translation in virtualized computing environments | |
US11362863B2 (en) | Handling packets travelling from logical service routers (SRs) for active-active stateful service insertion | |
US9264295B1 (en) | Systems and methods for forwarding broadcast network packets with a controller | |
Chung et al. | P4MT: Multi-tenant support prototype for international P4 testbed | |
Araji | Embedding Location-Based Network Connectivity within IPv6 Address |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 200000 room 702-2, No. 4811 Cao'an Road, Jiading District, Shanghai Patentee after: CHINA UNITECHS Address before: Room 1004-4, 10 / F, 1112 Hanggui Road, Anting Town, Jiading District, Shanghai Patentee before: CHINA UNITECHS |