私网与公网通信的方法及网络地址转换设备的制作方法

文档序号:7689096阅读:404来源:国知局
专利名称:私网与公网通信的方法及网络地址转换设备的制作方法
技术领域
本发明涉及数据通信技术领域,具体涉及私网与公网通信的方法及网络地址转换 (NAT,Network Address Translation)设备。
背景技术
NAT是将因特网协议(IP,Internet Protocol)数据报文头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用IP地址空间的枯竭。图1给出了一个现有的典型的NAT组网和转换示意图,如图1所示,主机A或B发送的传输控制协议(TCP,Transmission Control Protocol) /用户数据报协议(UDP,User Datagram Protocol)报文的源地址和源端口都会被NAT设备转换,若在报文的应用层中含有地址信息,则NAT需要进一步做应用网关(ALG,Application Layer Gateway.)处理,将应用层中的私网地址转换成公网地址。NAT不但消耗了 NAT设备的中央处理单元(CPU,Central Processing Unit)能力, 且需要NAT设备能识别应用层协议;另外,NAT设备无法处理某些加密报文,破坏了 IP网络端到端的应用模型。

发明内容
本发明提供私网与公网通信的方法及NAT设备,以在NAT组网下不做IP地址转换和ALG处理,就可实现私网与公网间的通信。本发明的技术方案是这样实现的一种私网与公网通信的方法,网络地址转换NAT设备对自己的所有局域网LAN 口进行二层隔离处理,该方法包括NAT设备接收私网内的主机发来的动态主机配置协议DHCP请求消息,将自己的公网IP地址作为主机的IP地址分配给主机,将自己的上行路由器的IP地址作为主机的网关的IP地址返回给主机,同时为主机分配传输控制协议TCP和用户数据报协议UDP端口范围;NAT设备接收私网内的主机发来的携带主机的网关的IP地址的地址解析协议ARP 请求消息,将LAN 口的虚接口媒体访问控制MAC地址作为主机的网关的MAC地址返回给主机;NAT设备接收主机发来的TCP或UDP报文,该报文的源IP地址为NAT设备为主机分配的IP地址,报文的目的MAC地址为主机的网关的MAC地址,NAT设备根据报文的目的 MAC地址将该报文转发出去。 所述NAT设备为主机分配TCP和UDP端口范围进一步包括 NAT设备将主机的IP地址、TCP和UDP端口范围、MAC地址、LAN 口信息作为一条新的租约表项添加到DHCP租约表中;且,所述方法进一步包括当NAT设备接收到公网服务器发来的TCP或UDP报文时,根据报文的目的端口号在DHCP租约表中查找到对应的主机LAN 口号和MAC地址,根据该主机LAN 口号和MAC地址, 将报文发送给对应的主机。所述NAT设备将自己的上行路由器的IP地址同时作为主机的网关的IP地址和 DHCP服务器的IP地址返回给主机;所述NAT设备将LAN 口的虚接口 MAC地址同时作为主机的网关的MAC地址和DHCP 服务器的MAC地址返回给主机。一种NAT设备,包括二层隔离处理模块对本设备的所有LAN 口进行二层隔离处理;DHCP服务器代理模块接收私网内的主机发来的DHCP请求消息,将本设备的公网 IP地址作为主机的IP地址分配给主机,将本设备的上行路由器的IP地址作为主机的网关的IP地址返回给主机,同时为主机分配TCP和UDP端口范围;ARP代理模块接收私网内的主机发来的携带主机的网关的IP地址的ARP请求消息,将LAN 口的虚接口 MAC地址作为主机的网关的MAC地址返回给主机;报文处理模块接收主机发来的TCP或UDP报文,该报文的源IP地址为本设备为主机分配的IP地址,报文的目的MAC地址为主机的网关的MAC地址,根据报文的目的MAC 地址将该报文转发出去。所述设备进一步包括DHCP租约表模块,用于存储DHCP租约表;且,所述DHCP服务器代理模块进一步用于,在为主机分配TCP和UDP端口范围后, 将主机的IP地址、TCP和UDP端口范围、MAC地址、LAN 口信息作为一条新的租约表项添加到DHCP租约表模块中;且,所述报文处理模块进一步用于,当接收到公网服务器发来的TCP或UDP报文时,根据报文的目的端口号在DHCP租约表模块中查找到对应的主机LAN 口号和MAC地址, 根据该主机LAN 口号和MAC地址,将报文发送给对应的主机。所述DHCP服务器代理模块将本设备的上行路由器的IP地址同时作为主机的网关的IP地址和DHCP服务器的IP地址返回给主机;且,所述ARP代理模块将LAN 口的虚接口 MAC地址同时作为主机的网关的MAC地址和DHCP服务器的MAC地址返回给主机。与现有技术相比,本发明中,在不增加公网IP地址消耗的前提下,NAT设备无需作地址和端口转换,也无需做ALG处理,降低了 NAT设备的CPU消耗,并能维持IP网络端到端的特性。


图1为现有的典型的NAT组网和转换示意图;图2为本发明实施例提供的私网与公网通信的方法流程图;图3为应用本发明的一个示例图;图4为本发明实施例提供的NAT设备的组成示意图。
具体实施例方式下面结合附图及具体实施例对本发明再作进一步详细的说明。图2为本发明实施例提供的私网与公网通信的方法流程图,如图2所示,其具体步骤如下步骤201 :NAT设备对自己的所有局域网(LAN,Local Area Network) 口进行端口隔离处理,以将所有LAN 口下挂的不同主机二层隔离开来。在普通家庭组网或小型局域网中,主机之间基本无通信需求,主要业务为访问外网的TCP或UDP应用,例如WEB、简单邮件传输协议(SMTP,Simple Mai 1 Transfer Protocol)等,其组网中,由网关路由器作为NAT设备,用LAN 口连接主机,用WAN 口连接上行设备。步骤202 主机发出动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)请求消息,该消息携带主机的媒体访问控制(MAC,Media Access Control)地址, 该消息经由NAT设备的LAN 口到达NAT设备。步骤203 =NAT设备接收到主机发来的DHCP请求消息,将自己的公网IP地址分配给主机,将为主机分配的该公网IP地址填充到DHCP响应消息中,并将自己的上行路由器的 IP地址作为DHCP服务器的IP地址以及主机的网关的IP地址填充到DHCP响应消息中,同时,为该主机分配TCP和UDP端口范围,将该TCP和UDP端口范围信息填充到DHCP响应消息中,将DHCP响应消息返回给主机,NAT设备将主机的IP地址、TCP和UDP端口范围、MAC 地址、LAN 口号、租约时长作为一项新的租约信息增加到DHCP租约表中。这里,需要在DHCP响应消息中增加一个扩展选项,该选项为类型长度值(TLV, Type Length and Value)格式,以用来携带为主机分配的TCP和UDP端口范围信息,其中, 类型值取当前DHCP未定义的值即可。为不同主机分配的TCP和UDP端口范围互不重叠。步骤204 主机发送地址解析协议(ARP,Address Resolution Protocol)请求消息,该消息携带DHCP服务器及主机的网关的IP地址,该消息经由NAT设备的LAN 口到达 NAT设备。由于DHCP服务器的IP地址与主机的网关的IP地址相同,所以主机只需发送一条 ARP请求消息请求解析该IP地址,就可以得到DHCP服务器及主机的网关的MAC地址了。
步骤205 =NAT设备接收到主机发来的ARP请求消息,将LAN 口的虚MAC地址作为 DHCP服务器及主机的网关的MAC地址携带在ARP响应消息中返回给主机。这样,此后主机发送DHCP租约消息时,会以本步骤中的DHCP服务器的MAC地址作为目的MAC地址;在发送TCP或UDP报文时,会以自己的网关的MAC地址作为目的MAC地址,从而,DHCP租约消息、TCP或UDP报文都会被发送至NAT设备。步骤206 主机根据NAT设备为自己分配的TCP和UDP端口范围,发出TCP或UDP 报文,报文的源IP地址为自己的公网IP地址,源MAC地址为自己的MAC地址,报文的目的 IP地址为目的设备的IP地址,报文的目的MAC地址为本主机的网关的MAC地址。步骤207 =NAT设备从LAN 口接收主机发来的TCP或UDP报文,将该报文转发给自己的上行路由器。步骤208 :NAT设备从广域网(WAN,Wide Area Network) 口接收公网服务器发来的TCP或UDP报文,报文的目的IP地址为主机的公网IP地址,NAT设备根据报文的目的TCP 或UDP端口号查找DHCP租约表,查找到对应的主机的LAN 口号和主机的MAC地址,根据主机的LAN 口号和MAC地址将该报文转发给主机。以下给出应用本发明的一个示例如图3所示,NAT设备的LAN 口 1下挂主机A,LAN 口 2下挂主机B,主机A的MAC 地址为0-0-1,主机B的MAC地址为0-0-2,NAT设备的公网IP地址为20. 1. 1. 2,NAT设备的上行路由器的IP地址为20. 1. 1. 1。首先,NAT设备会对LAN 口 1、2进行二层隔离,以将主机A、B 二层隔离开来。之后,当NAT设备接收到主机A发来的DHCP请求消息时,将自己的公网IP地址 20. 1. 1. 2分配给主机A,同时将上行路由器的IP地址20. 1. 1. 1作为DHCP服务器的IP地址及主机A的网关的IP地址返回给主机A,同时为主机A分配TCP/UDP端口范围10 2047,将主机A的公网IP地址、TCP和UDP端口范围、MAC地址、LAN 口号和租约时长增加到 DHCP租约表中;DHCP租约表如表1所示
主机的IP地址主机的TCP和主机的MAC主机的LAN租约时长UDP端口范围地址口号20.1.1.21024-20470-0-1124小时表1 DHCP租约表1当NAT设备接收到主机B发来的DHCP请求消息时,将自己的公网IP地址 20. 1. 1.2分配给主机B,同时将上行路由器的IP地址20. 1. 1. 1作为DHCP服务器的IP地址及主机的网关的IP地址返回给主机B,同时为主机B分配TCP/UDP端口范围2048 3071,将主机B的公网IP地址、TCP和UDP端口范围、MAC地址、LAN 口号和租约时长增加到 DHCP租约表中。此时,DHCP租约表如表2所示
主机的IP地址主机的TCP和主机的MAC主机的LAN租约时长UDP端口范围地址口号20.1.1.21024-20470-0-1124小时20.1.1.22048 30710-0-2224小时表2 DHCP租约表2之后,当NAT设备接收到主机A、B发来的ARP请求消息时,消息中携带DHCP服务器及主机的网关的IP地址20. 1. 1. 1,NAT设备将LAN 口的虚接口 MAC地址作为DHCP服务器及主机的网关的MAC地址分配给主机A、B。此后,当主机A、B发出TCP或UDP报文时,会以自己的公网IP地址20. 1. 1. 2作为源IP地址,会以NAT设备为自己分配的TCP和UDP端口范围中的一个端口号作为源TCP 或UDP端口号,会以自己的网关的MAC地址作为目的MAC地址,报文到达NAT设备后,NAT设备会将报文转发至上行路由器;当公网服务器发给主机A或B的TCP或UDP报文到达NAT设备后,NAT设备会根据报文的目的TCP或UDP端口号,在DHCP租约表中查找到对应的主机的LAN 口号和MAC地址,从而将报文发送给对应的主机。例如公网服务器发出一个目的IP地址为20. 1. 1.2,目的端口号为IOM的TCP报文,该报文到达NAT设备后,NAT设备根据目的端口号IOM查找 DHCP租约表,查找到主机的LAN 口号为1,主机的MAC地址为0_0_1,则将该报文从LAN 口 1 转发给主机A ;公网服务器发出一个目的IP地址为20. 1. 1.2,目的端口号为2048的TCP报文,该报文到达NAT设备后,NAT设备根据目的端口号2048查找DHCP租约表,查找到主机的LAN 口号为2,主机的MAC地址为0-0-2,则将该报文从LAN 口 2转发给主机B。图4为本发明实施例提供的NAT设备的组成示意图,如图4所示,其主要包括二层隔离处理模块41、DHCP服务器代理模块42、DHCP租约表模块43、ARP代理模块44和报文处理模块45,其中二层隔离处理模块41 对本设备的所有LAN 口进行二层隔离处理。DHCP服务器代理模块42 接收私网内的主机发来的DHCP请求消息,将本设备的公网IP地址作为主机的IP地址分配给主机,将本设备的上行路由器的IP地址作为DHCP服务器的IP地址及主机的网关的IP地址返回给主机,同时为主机分配TCP和UDP端口范围, 将主机的IP地址、TCP和UDP端口范围、MAC地址、LAN 口信息作为一条新的DHCP租约表项添加到DHCP租约表模块43中。DHCP租约表模块43 存储DHCP租约表。ARP代理模块44 接收私网内的主机发来的携带DHCP服务器及主机的网关的IP 地址的ARP请求消息,将LAN 口的虚接口 MAC地址作为DHCP服务器及主机的网关的MAC地址返回给主机。报文处理模块45 接收主机发来的TCP或UDP报文,该报文的源IP地址为本设备为主机分配的IP地址,报文的目的MAC地址为主机的网关的MAC地址,根据报文的目的MAC 地址将该报文转发出去;接收公网服务器发来的TCP或UDP报文,根据报文的目的端口号在 DHCP租约表模块43中查找到对应的主机LAN 口号和MAC地址,根据该主机LAN 口号和MAC 地址,将报文发送给对应的主机。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种私网与公网通信的方法,其特征在于,网络地址转换NAT设备对自己的所有局域网LAN 口进行二层隔离处理,该方法包括NAT设备接收私网内的主机发来的动态主机配置协议DHCP请求消息,将自己的公网IP 地址作为主机的IP地址分配给主机,将自己的上行路由器的IP地址作为主机的网关的IP 地址返回给主机,同时为主机分配传输控制协议TCP和用户数据报协议UDP端口范围;NAT设备接收私网内的主机发来的携带主机的网关的IP地址的地址解析协议ARP请求消息,将LAN 口的虚接口媒体访问控制MAC地址作为主机的网关的MAC地址返回给主机;NAT设备接收主机发来的TCP或UDP报文,该报文的源IP地址为NAT设备为主机分配的IP地址,报文的目的MAC地址为主机的网关的MAC地址,NAT设备根据报文的目的MAC地址将该报文转发出去。
2.根据权利要求1所述的方法,其特征在于,所述NAT设备为主机分配TCP和UDP端口范围进一步包括NAT设备将主机的IP地址、TCP和UDP端口范围、MAC地址、LAN 口信息作为一条新的租约表项添加到DHCP租约表中;且,所述方法进一步包括当NAT设备接收到公网服务器发来的TCP或UDP报文时,根据报文的目的端口号在 DHCP租约表中查找到对应的主机LAN 口号和MAC地址,根据该主机LAN 口号和MAC地址,将报文发送给对应的主机。
3.根据权利要求1或2所述的方法,其特征在于,所述NAT设备将自己的上行路由器的 IP地址同时作为主机的网关的IP地址和DHCP服务器的IP地址返回给主机;所述NAT设备将LAN 口的虚接口 MAC地址同时作为主机的网关的MAC地址和DHCP服务器的MAC地址返回给主机。
4.一种NAT设备,其特征在于,包括二层隔离处理模块对本设备的所有LAN 口进行二层隔离处理;DHCP服务器代理模块接收私网内的主机发来的DHCP请求消息,将本设备的公网IP 地址作为主机的IP地址分配给主机,将本设备的上行路由器的IP地址作为主机的网关的 IP地址返回给主机,同时为主机分配TCP和UDP端口范围;ARP代理模块接收私网内的主机发来的携带主机的网关的IP地址的ARP请求消息, 将LAN 口的虚接口 MAC地址作为主机的网关的MAC地址返回给主机;报文处理模块接收主机发来的TCP或UDP报文,该报文的源IP地址为本设备为主机分配的IP地址,报文的目的MAC地址为主机的网关的MAC地址,根据报文的目的MAC地址将该报文转发出去。
5.根据权利要求4所述的NAT设备,其特征在于,所述设备进一步包括DHCP租约表模块,用于存储DHCP租约表;且,所述DHCP服务器代理模块进一步用于,在为主机分配TCP和UDP端口范围后,将主机的IP地址、TCP和UDP端口范围、MAC地址、LAN 口信息作为一条新的租约表项添加到 DHCP租约表模块中;且,所述报文处理模块进一步用于,当接收到公网服务器发来的TCP或UDP报文时,根据报文的目的端口号在DHCP租约表模块中查找到对应的主机LAN 口号和MAC地址,根据该主机LAN 口号和MAC地址,将报文发送给对应的主机。
6.根据权利要求4或5所述的NAT设备,其特征在于,所述DHCP服务器代理模块将本设备的上行路由器的IP地址同时作为主机的网关的IP地址和DHCP服务器的IP地址返回给主机;且,所述ARP代理模块将LAN 口的虚接口 MAC地址同时作为主机的网关的MAC地址和 DHCP服务器的MAC地址返回给主机。
全文摘要
本发明公开了私网与公网通信的方法及网络地址转换设备。方法包括NAT设备对所有LAN口进行二层隔离处理;NAT设备接收私网主机发来的DHCP请求消息,将自己的公网IP地址分配给主机,将自己的上行路由器的IP地址作为主机的网关的IP地址返回给主机,同时为主机分配TCP和UDP端口范围;NAT设备接收私网主机发来的携带主机的网关的IP地址的ARP请求消息,将LAN口的虚接口MAC地址作为主机的网关的MAC地址返回给主机;NAT设备接收主机发来的TCP或UDP报文,报文的源IP地址为NAT设备为主机分配的IP地址,报文的目的MAC地址为主机的网关的MAC地址,根据报文的目的MAC地址将该报文转发出去。本发明无需NAT设备进行IP地址转换和ALG处理,就可实现私网与公网间的通信。
文档编号H04L29/12GK102209124SQ201110152879
公开日2011年10月5日 申请日期2011年6月8日 优先权日2011年6月8日
发明者黄哲 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1