具体实施方式
本发明实施例提供一种私网用户使用公网地址接入公网的方法,下面结合附图对本发明实施例进行进一步的说明。
请参见图1,网关从WAN侧获取公网地址后,将该公网地址与需要和WAN侧设备直接通信的特定私网用户关联;当LAN侧私网用户申请地址时,若是特定私网用户,则下发公网地址,否则,下发私网地址。该方法具体包括:
地址分配方案。网关预先配置并记录需要使用公网地址的私网用户即关联私网用户PC1的信息,如PC1的MAC地址。但本发明实施例不限于记录用户的MAC地址,如果关联私网用户有其他唯一性的信息,网关也可以记录该信息。网关可以通过PPPoE或者DHCP或者静态配置等方式从WAN侧获得公网地址IP1。网关将IP1进行特殊标记后,放入LAN侧地址池。
在每台安装有TCP/IP协议的计算机里都有一个ARP缓存表,即AddressResolution Protocol(地址解析协议)。表里的IP地址与MAC地址是一一对应的。网关把关联私网用户PC1的IP地址、MAC地址输入到一个静态表中,形成IP地址-MAC地址的绑定,即实现公网地址IP1与PC1相关联。为了关联私网用户的安全,网关也可以将关联私网用户专用的端口与IP、MAC地址绑定在一起。
请参见图2,当私网用户向网关申请地址时,网关判断私网用户的MAC地址是否与记录的MAC地址信息一致。若一致,则将公网地址IP1下发给关联私网用户PC1,PC1可使用该地址直接接入公网。这样,根据自身业务需要与公网侧设备进行直接通信的私网用户在通信方面变得很便捷。同时直接与公网设备通信的关联私网用户PC1的防火墙功能既可在自身实现,也可在网关上实现,具备更强的安全性。若不一致,网关在地址池中将私网地址IP2~IPn下发私网用户。
数据转发方案。网关预先分别为PC1和网关自身的业务应用预留相应的TCP/UPD端口,这些预留的端口对外只能由PC1和网关使用。
请参见图3,当私网用户向WAN侧设备发送数据时,网关判断其MAC地址与记录的MAC信息是否一致。若记录的MAC信息一致,则该私网用户为关联私网用户PC1,网关不对数据报文修改,不进行NAT/NAPT地址转换,直接转发数据,并记录PC1会话的五元组信息。若与记录的MAC地址信息不一致,则该私网用户为私网用户PC2~PCn。网关判断端口是否为关联私网用户PC1或网关业务预留的专用端口。
若是预留的专用端口,则网关对私网用户进行地址和端口的NAPT转换后将数据发送出去,记录NAPT转换前后的五元组信息,建立NAT/NAPT映射表。如表1所示,例如,网关申请的公网地址为IP1=202.204.65.2,端口为8080,网关给私网用户PC2下发的私网IP地址(即源IP地址)为Src=192.168.1.2,源端口号为1010,目的IP地址为Des=166.111.80.200,目的端口为80。PC2与WAN侧设备通信,经过网关时,网关进行NAPT地址和端口的转换,将PC2的源IP地址改为公网地址IP1=Src=202.204.65.2,源端口改为8080。这样,WAN侧设备接收到的数据报文中,来源IP地址为网关申请的公网地址IP1,端口为8080。如表1所示,在网关中建立如下NAT/NAPT映射表。网关每进行一次NAT/NAPT转换,就在映射表中相应地增加一条记录。另外,也可以在该映射表中记录直接使用公网地址的关联私网用户PC1的五元组信息。每一个私网用户在NAT/NAPT转换前后的数据都是一一对应的关系。
表1
若不是预留的专用端口,则判断该端口是否已经被其它的私网用户使用,如果该端口已经被使用,则对私网用户进行地址和端口号的NAPT转换后,将数据报文发送出去,并在NAT/NAPT映射表中,记录其转换前后的五元组信息;如果该端口没有被使用,则网关对私网用户进行网络地址的NAT转换后,将数据报文发送出去,并在NAT/NAPT映射表中,记录其NAT转换前后的五元组信息。
请参见图4,当WAN侧向LAN侧私网用户发送数据时,网关在收到数据报文后,根据在NAT/NAPT映射表中记录的五元组信息,将收到的数据报文翻译后,转发给相应的私网用户。由于转换前后的五元组信息都是一一对应的关系,因此,网关在收到数据包的时候,可以在映射表中查找相关私网用户的会话信息,这样,就可以使数据转发给相应的私网用户。
本发明实施例还提供了一种私网用户使用公网地址接入公网的网关,如图4所示,该网关包括:获取单元1,用于从WAN侧获取公网地址;关联单元2,用于将获取的公网地址与特定私网用户相关联;判断单元3,用于判断LAN侧私网用户的属性,并下发地址给相应的私网用户;转换翻译单元4,用于记录私网用户NAT/NAPT转换前后的五元组信息,并翻译WAN侧设备发送的数据,将数据转发给相应的私网用户。同时,该网关还包括为LAN侧特定私网用户预留的专用端口,和为网关自身业务需要而预留的专用端口。
获取单元1在WAN侧通过PPPoE或者DHCP或者静态配置等方式从WAN侧获得公网地址IP1。关联单元2记录下需要与公网侧设备直接通信的特定私网用户的信息,如MAC地址,并将该MAC地址反馈给判断单元3。关联单元2对该公网地址IP1进行特殊标记,并把关联私网用户PC1的IP地址、MAC地址输入到一个静态表中,形成IP地址-MAC地址的绑定,即实现公网地址IP1与PC1相关联。为了关联私网用户的安全,网关也可以将关联私网用户专用的端口与IP、MAC地址绑定在一起。
当私网用户申请地址时,判断单元3根据关联单元2反馈的MAC地址信息,判断私网用户的MAC地址是否与记录的MAC地址一致。若一致,则将公网地址IP1下发给该用户;若不一致,则将私用地址IP2~IPn下发给该用户。
当私网用户向WAN侧发送数据时,判断单元3判断私网用户的MAC地址是否与记录的MAC地址一致。若一致,则为关联私网用户,判断单元3直接转发数据,并将关联用户的五元组信息反馈给转换翻译单元4。转换翻译单元4将关联私网用户的五元组信息记录在NAT/NAPT映射表中。该映射表是存储在转换翻译单元4中的动态存储表,每个私网用户进行一次NAT/NAPT转换后,都在该映射表增加一条该私网用户转换前后的五元组信息。
若MAC地址与记录的MAC地址不一致,则该私网用户为私网用户PC2~PCn。判断单元3判断端口是否为关联私网用户PC1或网关业务预留的专用端口。若是预留的专用端口,则判断单元3将数据报文发送给转换翻译单元4,转换翻译单元4对私网用户进行地址和端口的NAPT转换后将数据发送出去,并在NAT/NAPT映射表中记录该私网用户转换前后的五元组信息。这样,就实现了
若不是预留的专用端口,则判断单元3判断该端口是否已经被其它的私网用户使用。如果该端口已经被使用,则判断单元3将数据报文发送给转换翻译单元4,由转换翻译单元4对私网用户进行地址和端口号的NAPT转换后,将数据报文发送出去,并在NAT/NAPT映射表中,增加一条该私网用户转换前后的五元组信息的记录;如果该端口没有被使用,则转换翻译单元4对该私网用户进行网络地址的NAT转换后,将数据报文发送出去,并在NAT/NAPT映射表中,记录其NAT转换前后的五元组信息。
当WAN侧向LAN侧私网用户发送数据时,转换翻译单元4在收到数据报文后,将收到的数据报文翻译后,根据在NAT/NAPT映射表中记录的五元组信息,转发给相应的私网用户。由于转换前后的五元组信息都是一一对应的关系,因此,网关在收到数据包的时候,可以在映射表中查找相关私网用户的会话信息,这样,就可以使数据转发给相应的私网用户。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。