首页> 中国专利> 对网络地址转换虚地址的地址解析协议请求响应的方法

对网络地址转换虚地址的地址解析协议请求响应的方法

摘要

本发明公开了一种对NAT虚地址的ARP请求响应的方法,包括有:检查NAT转换后的地址是否与路由器中某接口IP地址在同一网段,如果是,则查找该虚地址是否在链接表中注册,若已注册,则新链接建立后,对该虚地址进行链接计数;若未注册,则把虚地址注册到该同一网段的接口上,链接建立后,将该虚地址的链接计数初始化为1。本发明在配置NAT地址转换规则时,就可以配置与接口地址同属一个网段的IP地址,取消了在应用NAT时的一大限制。而且,本发明尽可能地节省了系统资源。

著录项

  • 公开/公告号CN1558614A

    专利类型发明专利

  • 公开/公告日2004-12-29

    原文格式PDF

  • 申请/专利权人 港湾网络有限公司;

    申请/专利号CN200410000846.1

  • 发明设计人 张持岸;

    申请日2004-01-17

  • 分类号H04L12/28;

  • 代理机构北京君尚知识产权代理事务所;

  • 代理人邵可声

  • 地址 100089 北京市海淀区西三环北路21号久凌大厦13层

  • 入库时间 2023-12-17 15:43:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-16

    未缴年费专利权终止 IPC(主分类):H04L12/28 授权公告日:20061227 终止日期:20150117 申请日:20040117

    专利权的终止

  • 2012-04-04

    专利权的转移 IPC(主分类):H04L12/28 变更前: 变更后: 登记生效日:20120222 申请日:20040117

    专利申请权、专利权的转移

  • 2006-12-27

    授权

    授权

  • 2005-03-02

    实质审查的生效

    实质审查的生效

  • 2004-12-29

    公开

    公开

说明书

技术领域:

本发明涉及一种对NAT虚地址的ARP请求响应的方法。

背景技术:

NAT(Network Address Translator,网络地址转换)用于允许专用网络上的多台PC机(使用专用地址范围,例如10.0.x.x、192.168.x.x、172.x.x.x)共享单个、可全局路由的IPv4(地址转换协议的第4版本)地址,即NAT可以在多重的internet子网中使用相同的IPv4地址,保证了数量有限的IPv4地址被尽可能多的用户使用,同时NAT也支持外部源地址的转换,其接受到外部回来的数据包,再根据NAT表把地址翻译成内部的局部IP,并将数据包转发过去;NAT也支持内部服务器的负载均衡等其他的相关应用。

如图1为使用NAT访问外部公有网的情况,其中eth0/0为NAT的内网接口,eth0/1为外网接口,内网网段为10.5.5.0/24,外网网段为20.1.1.0/24。配置NAT的地址转换规则为:

ip nat inside source static 10.5.5.2 20.1.1.1

这条规则的含义是把内网PC1的源地址10.5.5.2转换成外部公网地址,此处使用的是与外网相连的接口eth0/1的IP地址20.1.1.1。

在这样的配置下,NAT可以进行正常的地址转换,内网主机PC1发出的报文经过NAT后源地址由10.5.5.2转换成地址20.1.1.1,并可与外网主机例如IP地址为20.1.1.10的Server进行正常的通讯。

但如果在做地址转换时,把内网地址10.5.5.2转换成外部地址20.1.1.2,而这个地址不是与外网相连的接口地址20.1.1.1,也不是外网中任何一台网络设备的IP地址,并与外网接口地址在同一网段。如图1的组网情况,若配置如下NAT地址转换规则;

ip nat inside source static 10.5.5.2 20.1.1.2

在这种配置下,内网主机PC1的报文发出后,经过NAT路由器进行源地址的转换工作,将源地址10.5.5.2转换成20.1.1.2后发送给外网主机(例如Server,IP地址为20.1.1.10)。由于收到报文的源地址是20.1.1.2,所以Server在应答时回应报文的目的地址为20.1.1.2,而地址20.1.1.2不是路由器某个接口地址,也不是该网络中某个主机地址,我们称之为NAT虚地址。在发送报文时,由于虚地址20.1.1.2与NAT的外网同属一个网段,即20.1.1.0/24网段,因此不用去查路由表,而直接进行二层转发。在转发前,需要知道对方的MAC地址,也即虚地址20.1.1.2所对应的MAC地址。由于不知道20.1.1.2所对应的MAC地址,发送报文的网络设备(图1中的Server)会在20.1.1.0/24网段上发送ARP请求,请求IP地址为20.1.1.2的设备所对应的MAC地址。

由于20.1.1.2是NAT使用的虚地址,NAT路由器上接口eth0/1不会响应对IP地址20.1.1.2的ARP请求。对于外网主机Server来说,ARP请求没有响应,得不到IP地址20.1.1.2所对应的MAC地址,应答报文就无法发送出去,从而导致通过NAT进行地址转换和数据转发的失败。

在使用NAT进行地址转换时,如果用户配置的转换后的IP地址与路由器的接口地址同属一个网段,应答报文会因ARP请求的失败而找不到目的IP地址所对应的MAC地址,从而NAT路由器收不到应答报文,地址转换失败。

发明内容:

针对NAT对NAT虚地址发送报文时所存在的问题和不足,本发明的目的是提供一种对NAT虚地址的ARP请求响应的方法。

本发明是这样实现的:一种对NAT虚地址的ARP请求响应的方法,包括以下步骤:

检查NAT转换后的地址是否与路由器中某接口IP地址在同一网段,如果是,则查找该虚地址是否在链接表中注册,若已注册,则新链接建立后,对该虚地址进行链接计数;若未注册,则把虚地址注册到该同一网段的接口上,链接建立后,将该虚地址的链接计数初始化为1。

进一步地,该方法还包括:链接终止,检查链接表中有没有注册虚地址,若有,则将该虚地址的链接计数减1;若链接计数为0,取消注册该虚地址的链接。

进一步地,所述含有虚地址的链表中的每个节点记录的内容包括有:

虚地址,需对ARP请求进行回应的IP地址,该地址为NAT转换后的IP地址,并与某接口地址同属一个网段;

接口索引,接口的IP地址和上述需回应的IP地址同属一个网段的接口,收到对上述虚IP地址的ARP请求时,该接口把自己的MAC地址回应给请求方;

链接计数,虚地址链接建立后,增加该虚地址的链接的计数,该计数表示目前有几个链接在使用这个虚地址。

本发明在配置NAT地址转换规则时,就可以配置与接口地址同属一个网段的IP地址,取消了在应用NAT时的一大限制。而且,本发明尽可能地节省了系统资源,具体体现在以下几个方面:

1、配置用户的源地址转换到与接口同属一网段的地址时,接口会响应对该地址的ARP请求,这样发向该地址的报文就可以以接口的MAC为目的MAC地址发出,从而接口0/1会顺利地收到回应方向的报文,经过地址转换后的通讯可以正常进行;

2、本发明只有在真正地使用该虚地址转换规则建立通讯链接时,NAT才会去注册对这个虚地址ARP请求的响应。并且,当使用某虚地址的最后一条通讯链接关闭时,该虚地址的注册信息中的通讯链接计数会为零,表示当前已经没有链接使用这个地址进行通讯,NAT会删除对虚地址ARP请求响应的注册。通过采用这样的方法,尽可能地减少了虚地址的生效时间,从而把注册虚地址对接口模块的影响降低到最小程度,同时节省了系统资源;

3、当接口的地址改变时,同一IP地址注册的对应接口会随着新链接的生成而自动更新。例如,用户配置了到地址30.1.1.2的转换,而此时没有任何一个接口的IP地址属30.1.1.0/24网段,因此也不会有链接注册IP地址30.1.1.2的ARP请求接口。但当系统运行过程中,假如用户把某个接口地址变成了30.1.1.0/24网段的一个地址,此后在建立新的通讯链接时,NAT会检查到这个接口需要注册对IP地址30.1.1.2的ARP请求,并且会在这个接口上进行注册。这样可以保持注册信息与接口地址的一致性。

总之,本发明可以有效地解决对NAT使用的虚地址ARP请求的响应问题,拓宽了NAT使用的网络环境,增加了NAT对各种配置条件的兼容性。本发明仅在必要的时候使用有限的系统资源。本发明即能保证对NAT配置的虚地址的ARP请求进行正确响应,又能保证地址转换工作的效率。

附图说明:

下面结合附图,对本发明作出详细描述。

图1为现有的NAT转发方法示意图;

图2为本发明建立链接的流程图;

图3为本发明关闭链接的流程图。

具体实施方式:

本发明在NAT进行地址转换并建立一条新的通讯链接时,检查当前转换后的IP地址是否与NAT路由器出接口的IP地址在同一网段,如果与出接口在同一网段,在该接口上注册对该虚IP地址ARP请求的响应,注册后该接口会把自己的MAC地址回应给该IP地址ARP请求。当在这条通讯链接关闭时,取消注册该地址在这个接口上的ARP请求响应。具体为:检查NAT转换后的地址是否与路由器中某接口IP地址在同一网段,如果是,则查找该虚地址是否在链接表中注册,若已注册,则新链接建立后,对该虚地址进行链接计数;若未注册,则把虚地址注册到该同一网段的接口上,链接建立后,将该虚地址的链接计数初始化为1。链接终止时,检查链接表中有没有注册虚地址,若有,则将该虚地址的链接计数减1;若链接计数为0,取消注册该虚地址的链接。这里,链表中的每个节点记录的内容包括有:虚地址,需对ARP请求进行回应的IP地址,该地址为NAT转换后的IP地址,并与某接口地址同属一个网段;接口索引,接口的IP地址和上述需回应的IP地址同属一个网段的接口,收到对上述虚IP地址的ARP请求时,该接口把自己的MAC地址回应给请求方;链接计数,虚地址链接建立后,增加该虚地址的链接的计数,该计数表示目前有几个链接在使用这个虚地址。

如图2所示,当建立一个新的通讯链接时,检查NAT转换后的地址是否与路由器某接口IP地址在同一网段,如果是,则把这个虚地址注册到该接口上,使该接口能对这个虚地址的ARP请求进行正确响应。如果不是,则进行常规处理。

将一个虚地址注册到某接口上后,要将这条注册信息保存下来,建立一个链表来记录所有已经注册的NAT虚IP地址及其所对应的接口等信息。链表的每个结点所记录的内容主要有以下几个要素:虚IP地址,接口索引、通讯链接计数,其中,虚IP地址,需要对ARP请求进行回应的IP地址,该地址为NAT转换后的IP地址,并且与某接口地址同属一个网段,需要该接口对这个地址的ARP请求进行响应;接口索引,接口IP地址和虚IP地址同属一个网段的接口,当收到对虚IP地址的ARP请求时,该接口要把自己的MAC地址回应给请求方;链接计数,对于一个已经注册ARP请求响应的NAT虚地址,可能有多条通讯链接同时使用这个地址进行NAT转换。如果有多条链接共同使用一个虚IP地址,只在第一条链接时注册虚地址的ARP请求,后面链接建立时,只增加这个计数,表示目前有几个链接在使用这个虚地址。在取消对虚地址ARP请求的注册时,只有在所有的通讯链接都不使用这个虚地址时才可以取消,也即链接计数为0时取消对虚地址ARP请求的注册。

由于可能有多条链接使用同一个虚地址,为避免重复注册,在注册之前,检查已经记录的注册信息中有无这个地址存在,如果有则将该地址注册信息中的链接计数加1。如果没有生成这条注册信息,则生成这条记录并将链接计数初始化为1。

如图3所示,当一条通讯链接终止后,检查这条链接有没有注册虚地址,如果有则将该注册信息中的通讯链接减1。当通讯链接数为0时,表示这个虚地址已经不再被任何链接使用,这时可以取消注册这个虚地址了,也即不再需要有接口响应这个虚地址的ARP请求了。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号