网络地址转换方法和NAT网关与流程

文档序号:21182298发布日期:2020-06-20 17:52阅读:364来源:国知局
本发明涉及计算机
技术领域
:,特别涉及网络地址转换方法和nat网关。
背景技术
::目前,在网络地址转换(networkaddresstranslation,nat)网关中,需要把源地址是内网地址的ip地址转换成外网的ip地址,也就是源地址转换snat,也需要把目标ip地址为内网内网服务器公有ip地址的目标ip地址转换成内网的ip地址,即目的地址转换dnat。这种情况下,每个内网的内网服务器就相当于拥有一个公有ip地址,如果一个内网内网服务器使用另一个内网内网服务器的公有ip地址访问该内网服务器,nat网关通常会把访问的数据包送到外网路由器,但是,由于源ip是公有ip地址,而且与目标公有ip地址属于同一个网段,形成典型的发卡流量问题,从而导致外网路由器无法把数据包从进入的路由器端口回送给nat网关。但是,源ip是公有ip地址,而且与目标公有ip地址属于同一个网段,这形成典型的发卡流量问题,从而使得一个内网服务器无法使用另一个内网服务器的外网ip地址,向另一个内网服务器发送数据包,从而导致nat网关中发卡流量不通的情况。技术实现要素:本发明实施例提供了网络地址转换方法和nat网关,能够解决nat网关中发卡流量不通的问题。第一方面,本发明提供了网络地址转换方法,应用于网络地址转换nat网关,包括:获取局域网内的当前内网服务器通过当前内网ip地址发来的第一数据包;当所述第一数据包中的目标ip地址与所述nat网关配置的外网ip地址相匹配时,根据所述nat网关连接的外网路由器修改所述第一数据包中的输入端口信息,得到第二数据包;确定所述当前内网ip地址对应的当前外网ip地址,并确定所述目标ip地址对应的目标内网ip地址;通过所述当前外网ip地址将所述第二数据包发送至所述目标内网ip地址指示的所述局域网内的目标内网服务器。优选地,所述根据所述nat网关连接的外网路由器修改所述第一数据包中的输入端口信息,得到第二数据包,包括:确定所述nat网关连接的外网路由器对应的openvswitchbridge的端口的输入端口信息;通过目标网络地址转换dnat,利用openvswitch的resubmitaction将所述第一数据包的in_port,修改为所述输入端口信息。优选地,在所述获取局域网内的当前内网服务器通过当前内网ip地址发来的第一数据包,进一步包括:确定所述第一数据包中的目标ip地址是否与目标网络地址转换配置的外网ip地址相匹配,如果是,执行所述根据所述nat网关连接的外网路由器,修改所述第一数据包中的输入端口信息得到第二数据包,否则,将所述第一数据包作为第二数据包发送给内网交换机,以使内网交换机将所述第二数据包发送给目标ip地址指示的目标内网服务器。优选地,所述确定所述当前内网ip地址对应的当前外网ip地址,并确定所述目标ip地址对应的目标内网ip地址,包括:利用源网络地址转换snat规则,为所述当前内网ip地址匹配对应的当前外网ip地址;利用目标网路地址转换dnat规则,为所述目标ip地址匹配对应的目标内网ip地址。第二方面,本发明提供了nat网关,包括:信息获取模块,用于获取局域网内的当前内网服务器通过当前内网ip地址发来的第一数据包;转换处理模块,用于当所述第一数据包中的目标ip地址与所述nat网关配置的外网ip地址相匹配时,根据所述nat网关连接的外网路由器修改所述信息获取模块获取的所述第一数据包中的输入端口信息,得到第二数据包;地址匹配模块,用于确定所述当前内网ip地址对应的当前外网ip地址,并确定所述目标ip地址对应的目标内网ip地址;信息发送模块,用于通过所述地址匹配模块确定的所述当前外网ip地址将所述转换处理模块得到的所述第二数据包发送至所述目标内网ip地址指示的所述局域网内的目标内网服务器。优选地,所述转换处理模块,信息确定模块和配置修改模块;所述信息确定模块,用于确定所述nat网关连接的外网路由器对应的openvswitchbridge的端口的输入端口信息;所述配置修改模块,用于通过目标网络地址转换dnat,利用openvswitch的resubmitaction将所述第一数据包的in_port,修改为所述输入端口信息。优选地,所述转换处理模块,进一步用于确定所述第一数据包中的目标ip地址是否与目标网络地址转换配置的外网ip地址相匹配,如果是,执行所述根据所述nat网关连接的外网路由器,修改所述第一数据包中的输入端口信息得到第二数据包,否则,将所述第一数据包作为第二数据包,执行所述确定所述当前内网ip地址对应的当前外网ip地址。优选地,所述地址匹配模块,用于利用源网络地址转换snat规则,为所述当前内网ip地址匹配对应的当前外网ip地址;利用目标网路地址转换dnat规则,为所述目标ip地址匹配对应的目标内网ip地址。第三方面,本发明提供了网络地址转换系统,包括:位于同一局域网内的至少两个内网服务器和nat网关;所述至少两个内网服务器中的当前内网服务器,用于在获取到数据发送指令时,通过所述当前内网服务器的当前内网ip地址将第一数据包发送给所述nat网关;所述至少两个内网服务器中的目标内网服务器,用于获取所述nat网关通过所述当前内网服务器的当前外网ip地址发送的与所述第一数据包相对应的第二数据包。第四方面,本发明还提供了存储介质,包括:至少一个存储器和至少一个处理器;所述至少一个存储器,用于存储机器可读程序;所述至少一个处理器,用于调用所述机器可读程序,执行第一方面中任一所述的网络地址转换方法。第五方面,本发明还提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面中任一所述的网络地址转换方法。本发明实施例提供了网络地址转换方法和nat网关,当局域网内的当前内网服务器想使用目标内网服务器的外网ip地址访问目标内网服务器时,当前内网服务器需要先通过其当前内网ip地址将第一数据包发给nat网关,然后在nat网关确定第一数据包所要发送最终的目标内网服务器的目标ip地址是nat网关配置的ip地址时,则需要对第一数据包内的输入端口信息进行更改得到第二数据包,以使将第一数据包伪装由nat网关所连接的外网路由器发来的数据包,这样再基于当前内网ip地址匹配对应的当前外网ip地址,并基于目标ip地址匹配对应的目标内网ip地址,即可通过当前外网ip地址将第二数据包发送给目标内网ip地址,以便目标内网服务器接收到第二数据包,从而解决nat网关发卡流量不通的问题。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一实施例提供的网络地址转换方法的流程图;图2是本发明一实施例提供的nat网关的结构示意图;图3是本发明一实施例提供的网络地址转换系统的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,本发明实时例提供了网络地址转换方法,应用于网络地址转换nat网关,包括:步骤101:获取局域网内的当前内网服务器通过当前内网ip地址发来的第一数据包;步骤102:当所述第一数据包中的目标ip地址与所述nat网关配置的外网ip地址相匹配时,根据所述nat网关连接的外网路由器修改所述第一数据包中的输入端口信息,得到第二数据包;步骤103:确定所述当前内网ip地址对应的当前外网ip地址,并确定所述目标ip地址对应的目标内网ip地址;步骤104:通过所述当前外网ip地址将所述第二数据包发送至所述目标内网ip地址指示的所述局域网内的目标内网服务器。在本发明实施例中,当局域网内的当前内网服务器想使用目标内网服务器的外网ip地址访问目标内网服务器时,当前内网服务器需要先通过其当前内网ip地址将第一数据包发给nat网关,然后在nat网关确定第一数据包所要发送最终的目标内网服务器的目标ip地址是nat网关配置的ip地址时,则需要对第一数据包内的输入端口信息进行更改得到第二数据包,以使将第一数据包伪装由nat网关所连接的外网路由器发来的数据包,这样再基于当前内网ip地址匹配对应的当前外网ip地址,并基于目标ip地址匹配对应的目标内网ip地址,即可通过当前外网ip地址将第二数据包发送给目标内网ip地址,以便目标内网服务器接收到第二数据包,从而解决nat网关发卡流量不通的问题。为了解决nat网关中发卡流量不通的问题,在本发明一实施例中,所述根据所述nat网关连接的外网路由器修改所述第一数据包中的输入端口信息,得到第二数据包,包括:确定所述nat网关连接的外网路由器对应的openvswitchbridge的端口的输入端口信息;通过目标网络地址转换dnat,利用openvswitch的resubmitaction将所述第一数据包的in_port,修改为所述输入端口信息。在本发明实施例中,nat网关在获取到第一数据包后,需要先判断第一数据包所要发送的目标内网服务器的目标ip地址,是否为nat网关已配置的目标网络地址转换dnat的外网ip地址,则需要调用dnat规则,使用openvswitch的resubmitaction来把该数据包的in_port,修改为nat网关的外网路由器对应的openvswitchbridge的端口,得到第二数据包,就好像第二数据包是从nat网关所连接的外网路由器进来的,来欺骗openflow流表。然后重新送到openflow流表table0,再匹配目标ip地址对应的内网ip地址,实现解决nat网关中发卡流量不通的情况。在本发明一实施例中,在所述获取局域网内的当前内网服务器通过当前内网ip地址发来的第一数据包之前,进一步包括:确定所述第一数据包中的目标ip地址是否与目标网络地址转换配置的外网ip地址相匹配,如果是,执行所述根据所述nat网关连接的外网路由器,修改所述第一数据包中的输入端口信息得到第二数据包,否则,将所述第一数据包作为第二数据包发送给内网交换机,以使内网交换机将所述第二数据包发送给目标ip地址指示的目标内网服务器。在本发明实施例中,nat网关在接收到当前内网服务器发来的第一数据包后,需要判断第一数据包是要通过局域网发送给目标内网服务器,还是通过目标内网服务器的外网ip地址发送给目标内网服务器,如果第一数据包是要通过目标内网服务器的外网ip地址发送给目标内网服务器,则需要修改第一数据包的in_port,以便将第一数据包伪装成由外网路由器发来的数据包。如果第一数据包是要通过局域网发送给目标内网服务器,则无需通过nat介入,内网交换机/路由器既能保证内网服务器之间的正常通信。在本发明一实施例中,所述确定所述当前内网ip地址对应的当前外网ip地址,并确定所述目标ip地址对应的目标内网ip地址,包括:利用源网络地址转换snat规则,为所述当前内网ip地址匹配对应的当前外网ip地址;利用目标网路地址转换dnat规则,为所述目标ip地址匹配对应的目标内网ip地址。在本发明实施例中,当确定第一数据包是要使用目标内网服务器的外网ip地址发送给目标内网服务器后,需要通过snat规则将当前内网ip地址转换为对应的当前外网ip地址,并通过dnat规则目标ip地址转换为对应的目标内网ip地址,以实现将第一数据包使用目标内网服务器的外网ip地址发送给目标内网服务器。如图2所示,本发明实施例提供了nat网关,包括:信息获取模块201,用于获取局域网内的当前内网服务器通过当前内网ip地址发来的第一数据包;转换处理模块202,用于当所述第一数据包中的目标ip地址与所述nat网关配置的外网ip地址相匹配时,根据所述nat网关连接的外网路由器修改所述信息获取模块201获取的所述第一数据包中的输入端口信息,得到第二数据包;地址匹配模块203,用于确定所述当前内网ip地址对应的当前外网ip地址,并确定所述目标ip地址对应的目标内网ip地址;信息发送模块204,用于通过所述地址匹配模块203确定的所述当前外网ip地址将所述转换处理模块202得到的所述第二数据包发送至所述目标内网ip地址指示的所述局域网内的目标内网服务器。在本发明实施例中,当局域网内的当前内网服务器想使用目标内网服务器的外网ip地址访问目标内网服务器时,当前内网服务器需要先通过其当前内网ip地址将第一数据包发给你nat网关,然后在信息获取模块获取到第一数据包后,转换处理模块再确定第一数据包所要发送最终的目标内网服务器的目标ip地址是nat网关配置的ip地址时,则需要对第一数据包内的输入端口信息进行更改得到第二数据包,以使将第一数据包伪装由nat网关所连接的外网路由器发来的数据包,这样再基于地址匹配模块匹配当前内网ip地址匹配对应的当前外网ip地址,并基于目标ip地址匹配对应的目标内网ip地址,信息发送模块即可通过当前外网ip地址将第二数据包发送给目标内网ip地址,以便目标内网服务器接收到第二数据包,从而解决nat网关发卡流量不通的问题。在本发明一实施例中,所述转换处理模块,信息确定模块和配置修改模块;所述信息确定模块,用于确定所述nat网关连接的外网路由器对应的openvswitchbridge的端口的输入端口信息;所述配置修改模块,用于通过目标网络地址转换dnat,利用openvswitch的resubmitaction将所述第一数据包的in_port,修改为所述输入端口信息。在本发明一实施例中,所述转换处理模块,进一步用于确定所述第一数据包中的目标ip地址是否与目标网络地址转换配置的外网ip地址相匹配,如果是,执行所述根据所述nat网关连接的外网路由器,修改所述第一数据包中的输入端口信息得到第二数据包,否则,将所述第一数据包作为第二数据包,执行所述确定所述当前内网ip地址对应的当前外网ip地址。在本发明一实施例中,所述地址匹配模块,用于利用源网络地址转换snat规则,为所述当前内网ip地址匹配对应的当前外网ip地址;利用目标网路地址转换dnat规则,为所述目标ip地址匹配对应的目标内网ip地址。可以理解的是,本发明实施例示意的结构并不构成对nat网关的具体限定。在本发明的另一些实施例中,nat网关可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。如图3所示,本发明实施例提供了网络地址转换系统,包括:位于同一局域网内的至少两个内网服务器301和nat网关302;所述至少两个内网服务器301中的当前内网服务器,用于在获取到数据发送指令时,通过所述当前内网服务器的当前内网ip地址将第一数据包发送给所述nat网关302;所述至少两个内网服务器301中的目标内网服务器,用于获取所述nat网关302通过所述当前内网服务器的当前外网ip地址发送的与所述第一数据包相对应的第二数据包。需要说明的是,图3中示出了位于同一局域网内的4个内网服务器。本发明实施例还提供了存储介质,包括:至少一个存储器和至少一个处理器;所述至少一个存储器,用于存储机器可读程序;所述至少一个处理器,用于调用所述机器可读程序,执行本发明任一实施例中的网络地址转换方法。本发明实施例还提供了一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行本发明任一实施例中的网络地址转换方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从内网服务器计算机上下载程序代码。此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。需要说明的是,1、在nat网关上为内网服务器a配置snat和dnat规则,其中,snatrule:table=0,ip,nw_src=ip内a,actions=ct(commit,table=0,nat(src=ip外a:1024-65535))dnatrule:table=0,ip,nw_dst=ip外a,actions=ct(commit,table=0,nat)注:dnat将利用已有的conntrack状态表来做。2、在nat网关上为内网服务器b配置snat和dnat规则。snatrule:table=0,ip,nw_src=ip内b,actions=ct(commit,table=0,nat(src=ip外b:1024-65535))dnatrule:table=0,nw_dst=ip外b,actions=ct(commit,table=0,nat)注:dnat将利用已有的conntrack状态表来做。3、在nat网关上内为ip外a配置发卡流量规则。table=2,in_port=内网端口,ip,nw_dst=ip外a,actions=resubmit(外网端口,0)4、在nat网关上内为ip外b配置发卡流量规则。table=2,in_port=内网端口,ip,nw_dst=ip外b,actions=resubmit(外网端口,0)本发明各个实施例至少具有如下有益效果:1、解决了nat网关中发卡流量不通的问题。2、使用现有的技术低成本快速解决了关键的功能问题。3、利用了nat网关现有规则,使用最少的规则解决问题,不影响南北向流向。需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1