CN101150513A - 在pat下实现pptp alg的方法 - Google Patents

在pat下实现pptp alg的方法 Download PDF

Info

Publication number
CN101150513A
CN101150513A CNA2007101642532A CN200710164253A CN101150513A CN 101150513 A CN101150513 A CN 101150513A CN A2007101642532 A CNA2007101642532 A CN A2007101642532A CN 200710164253 A CN200710164253 A CN 200710164253A CN 101150513 A CN101150513 A CN 101150513A
Authority
CN
China
Prior art keywords
point
message
tunnel protocol
address
pptp
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.)
Granted
Application number
CNA2007101642532A
Other languages
English (en)
Other versions
CN101150513B (zh
Inventor
陈尔严
郑轶
林晨
孙勇
陈晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN2007101642532A priority Critical patent/CN101150513B/zh
Publication of CN101150513A publication Critical patent/CN101150513A/zh
Application granted granted Critical
Publication of CN101150513B publication Critical patent/CN101150513B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种在动态可重用网络地址转换下实现PPTPALG的方法,包括:根据接收到的报文头中的协议字段确定报文的类型,其中,报文的类型包括TCP报文和IP数据报文;判断TCP报文是否是PPTP控制报文;以及判断IP数据报文是否是PPTP数据报文;以及在判断TCP报文是PPTP控制报文的情况下,判断组网方式,并根据组网方式的判断结果确定是否替换PPTP控制报文的CALLID;在判断IP数据报文是PPTP数据报文的情况下,查找映射条目,并根据查找结果确定是否换PPTP数据报文的CALLID。

Description

在PAT下实现PPTP ALG的方法
技术领域
本发明涉及数据通讯领域,并且特别地,设计一种在动态可重用网络地址转换(PAT/NAPT)下实现点对点隧道协议(PPTP)应用层网关(Application Layer Gateway,ALG)的方法。
背景技术
网络地址转换(NAT)技术是一种地址映射技术,该技术通常用于在子域内具有私网IP地址的主机访问外部主机时,将该主机的私网IP地址映射为一个外部唯一可识别的公网IP地址;同时,将外部主机返回给内部主机的公网IP地址映射回内部标志该主机的私网IP地址,使得返回的数据包能够正确到达内部目的主机。该技术使得不同私有网络可以使用相同的私有IP地址段而不会导致外部网络的地址信息出现混乱,从而扩展了IP地址的应用范围。
NAT一般可分为以下三种类型:
(1)静态NAT,内部私网IP地址和公网(Internet)IP地址的映射是静态一一对应的,如果结合端口来实现静态映射关系,就是端口重定向或静态PAT/NAPT;
(2)动态不可重用NAT,使用公网IP地址池技术,从公网IP地址池中获取一个可用的公网IP地址进行转换;在通信完毕之后,该公网IP地址也被释放回地址池中,在使用过程中,一个公网IP只能有一个映射关系;
(3)动态可重用NAT(PAT/NAPT),与动态不可重用模式相比,通信的映射是通过IP地址和端口号的组合来完成的。
通过应用对内部网与外部网之间的服务进行转发的设备,称为应用层网关(Application Layer Gateway,ALG)。
另外,在相关技术中,点对点隧道协议(PPTP)是广泛使用的虚拟专用网络协议(有关PPTP的详细描述见RFC 2367,这里不进行详细描述),其用于在IP网络上建立PPP会话隧道,并且在Windows 98、Windows Millennium Edition、Windows 2000、以及Windows XP等中都包含有该协议。PPTP是用于在中间网络上传输点对点协议(PPP)帧的一种隧道机制。在这种配置下,PPTP隧道和PPP会话运行在两个相同的机器上,呼叫方充当PPTP网络服务器(PNS)。通过利用PPP的身份验证、加密、和协议配置机制,PPTP连接同时为远程访问和路由器到路由器的虚拟专用网(VPN)连接提供了一条在公共网络(例如,Internet)上创建安全连接的途径。
PPTP报文可分为控制报文、管理报文、和数据报文。控制报文和管理报文本身都是TCP报文。管理报文在目前的RFC文档中还没有给出具体定义;控制报文可分为15种,其格式大致相同,具体信息如表1所示。此外,数据报文采用修改过的GRE封装方式。
  PPTP控制报文   控制报文流向   是否有CALL ID   是否需要创建条目   是否需要替换CALL ID
  PAC   PNS
  Start-Control-Connection-Request   PAC<-->PNS   No   N   No   No
  Start-Control-Connection-Reply   PAC<一>PNS   No   N   No   No
  Stop-Control-Connection-Request   PAC<-->PNS   No   No   No   No
  Stop-Control-Connection-Reply   PAC<-->PNS   No   No   No   No
  Echo-Request   PAC<一>PNS   No   No   No   No
  Echo-Reply   PAC<-->PNS   No   No   No   No
  Outgoing-Call-Request   PAC<--PNS   No   Yes   Yes   Yes
  Outgoing-Call-Reply   PAC-->PNS   Yes   Yes   No   Yes
  Incoming-Call-Request   PAC-->PNS   Yes   No   No   No
  Incoming-Call-Reply   PAC<--PNS   Yes   Yes   Yes   Yes
  Incoming-Call-Connected   PAC-->PNS   No   Yes   No   Yes
  Call-Clear-Request   PAC<--PNS   No   Yes   No   Yes
  Call-Disconnect-Notify   PAC-->PNS   Yes   No   No   No
  WAN-Error-Notify   PAC-->PNS   No   Yes   No   Yes
  Set-Link-Info   PAC<--PNS   Yes   No   No   No
表1
由于PPTP数据报文中没有端口号信息,因此,在采用PAT方式时就存在以下问题:由于数据报文无法得到类似TCP/UDP的端口号,所以在PAT方式下无法查找转换信息并进行转换;并且,要经过启用NAT的路由器时,实现以PPTP协议建立VPN隧道的功能,就需要为每个拨号客户单独分配一个公网地址,这显然是不合适的。
目前,尚未提出能够解决上述问题的技术方案。
发明内容
考虑到上述问题而做出本发明,为此,本发明的主要目的在于提供一种在动态可重用网络地址转换下实现点对点隧道协议应用层网关的方案,以解决路由器在启用了动态可重用网络地址转换规则时,无法经由该路由器利用点对点隧道协议建立虚拟专用网的问题,并且不需要为每个点对点隧道协议拨号都单独分配一个公网IP地址。
根据本发明的实施例,提供了一种在动态可重用网络地址转换下实现点对点隧道协议应用层网关的方法。
该方法包括:根据接收到的报文头中的协议字段确定报文的类型,其中,报文的类型包括:传输控制协议报文和IP数据报文;
判断传输控制协议报文是否是点对点隧道协议控制报文;以及判断IP数据报文是否是点对点隧道协议数据报文;以及
在判断传输控制协议报文是点对点隧道协议控制报文的情况下,判断组网方式,并根据组网方式的判断结果确定是否替换点对点隧道协议控制报文的呼叫ID;在判断IP数据报文是点对点隧道协议数据报文的情况下,查找映射条目,并根据查找结果确定是否换点对点隧道协议数据报文的呼叫ID。
其中,在判断传输控制协议报文是点对点隧道协议控制报文的情况下,进一步包括以下处理:
查找用于转换点对点隧道协议控制报文的IP地址和TCP端口的映射条目,并根据点对点隧道协议控制报文的类型、数据流向来判断路由器的组网方式;
在组网方式为预定方式的情况下,判断是否需要替换点对点隧道协议控制报文的呼叫ID;
如果不需要替换点对点隧道协议控制报文的呼叫ID,则在点对点隧道协议控制报文为预定类型的情况下,通过索引链遍历整个链,更新映射条目的使用情况;
如果需要替换点对点隧道协议控制报文的呼叫ID,则查找是否存在对应的映射条目;在未找到映射条目的情况下,创建映射条目,将创建的映射条目加入到点对点隧道协议应用控制层条目的索引链中,并替换点对点隧道协议报文的呼叫ID;以及
在组网方式不是预定方式的情况下,替换点对点隧道协议控制报文的IP地址和TCP端口。
其中,组网方式的预定方式为:点对点隧道协议网络服务器位于相对于路由器的私有网络。并且,数据流向包括:点对点隧道协议网络服务器与点对点隧道协议接入集中器之间的数据流向。另外,预定类型包括:回显请求消息和回显应答消息。
另一方面,在判断IP数据报文是点对点隧道协议数据报文的情况下,进一步包括以下处理:步骤A,以IP地址和点对点隧道协议端口查找映射条目;以及步骤B,如果查找到映射条目,则替换点对点隧道协议数据报文地IP地址;否则根据点对点隧道协议网络服务器与对点隧道协议接入集中器之间的数据流向查找其它映射条目。
其中,在步骤B中,在未查找到映射条目的情况下,进一步包括:
如果点对点隧道协议数据报文是由点对点隧道协议网络服务器发送给点对点隧道协议集中接入器的,则查找地址管理方法中所保存的IP映射关系,并根据IP映射关系对点对点隧道协议数据报文的IP地址进行替换;以及
如果点对点隧道协议数据报文是由点对点隧道协议集中接入器发送给点对点隧道协议网络服务器的,则以点对点隧道协议数据报文中包含的点对点隧道协议网络服务器的呼叫ID和IP地址来查找映射条目,并对点对点隧道协议数据报文的呼叫ID和IP地址进行替换。
此外,点对点隧道协议端口为1723端口。
通过本发明的上述技术方案,解决了路由器在启用了动态可重用网络地址转换规则时,无法利用点对点隧道协议经由该路由器建立虚拟专用网的问题;并且,不需要为每个点对点隧道协议拨号都单独分配一个公网IP地址;节省了要申请的外部公网IP地址,降低了组网的费用。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的PAT下PPTP ALG的组网方式的实例;
图2是根据本发明实施例的PAT下PPTP ALG的组网方式的另一实例;
图3是根据本发明实施例的在动态可重用网络地址转换下实现PPTP ALG的方法的流程图;
图4是实现根据本发明实施例的实现PAT下的PPTP ALG的方法的组网示意图;
图5是在PNS位于私网内部的情况下,在与其相连的路由器上启用PAT规则时,建立会话过程中PPTP控制报文在PPTP ALG中的处理过程;以及
图6是在PNS位于私网内部的情况下,在与其相连的路由器上启用PAT规则时,建立会话过程中PPTP控制报文在PPTP ALG中的处理过程。
具体实施方式
一个PPTP隧道中可以存在多个会话,会话可以由PNS主动发起,也可以由PAC主动发起。用于唯一标识会话的是一对CALL ID,这对CALL ID分别由PAC和PNS分配。不同的隧道中CALL ID可以相同。因此当不同的PNS拨号到同一个PAC时,PAC所分配的CALL ID不会出现相同的情况,但PNS分配的CALL ID可能出现相同的情况。
对于PPTP ALG,PPTP拨号的基本组网形式有两种:一种是PNS位于私网内部,PAC位于公网上,如图1所示;另一种是PNS位于公网上,而PAC位于私网内部,这种情况需要配置静态PAT规则,将PAC的1723端口(PPTP专用)映射到某个公网地址的1723端口,见图2所示。
在图1所示的组网环境中,当一个私网中有多个PNS拨号到外部的网络,如果与该私网相连的路由器上启用的是PAT规则,且配置的公网IP地址池中只有一个公网IP地址时,则不同PNS发出的PPTP报文在转换后就使用了同一个公网IP地址。如果地址池中有多个公网IP地址时,则有可能出现不同PNS发出的PPTP报文在转换后使用同一个公网IP地址情况。这种情况虽然对建立隧道不会有影响,但是对处理隧道中的会话就会产生影响。由于不同的隧道中的会话可以使用相同的CALL ID,在建立会话后,路由器在处理PPTP数据报文就会出现混乱。PPTP数据报文中不含端口信息,当私网的不同PNS使用同一个CALL ID时,路由器在收到PAC发给PNS的数据报文时,由于PPTP数据报文中的CALL ID是由对端分配的(即由PNS分配的),就无法区分出该PPTP数据报文是属于哪个隧道哪个会话的。
为了解决这个问题,就需要在处理PPTP数据报文时,有能区分这些会话的唯一标识。也就是说,由PAC发给PNS的PPTP数据报文中的CALL ID对于整个私网来说应该是唯一的。要保证这些PNS所分配互不相同,就需要在对PPTP报文进行PAT转换时,也对PNS所分配的CALL ID进行转换,以保证PAC所得到的PNS的CALL ID不冲突。
在本实施例中,提供了一种在动态可重用网络地址转换下实现点对点隧道协议(PPTP)应用层网关(ALG)的方法。
如图3所示,根据本发明实施例的方法包括:步骤S302,根据接收到的报文头中的协议字段确定报文的类型,其中,报文的类型包括:传输控制协议(TCP)报文和IP数据报文;
步骤S304-2,判断TCP报文是否是PPTP控制报文;步骤S304-4,判断IP数据报文是否是PPTP数据报文;以及
步骤S306-2,在判断TCP报文是PPTP控制报文的情况下,判断组网方式,并根据组网方式的判断结果确定是否替换PPTP控制报文的CALL ID;步骤S306-4,在判断IP数据报文是PPTP数据报文的情况下,查找映射条目,并根据查找结果确定是否换PPTP数据报文的CALL ID。
其中,在判断TCP报文是PPTP控制报文的情况下,进一步包括以下处理:
查找用于转换PPTP控制报文的IP地址和TCP端口的映射条目,并根据PPTP控制报文的类型、数据流向来判断路由器的组网方式;
在组网方式为预定方式的情况下,判断是否需要替换PPTP控制报文的CALL ID;
如果不需要替换PPTP控制报文的CALL ID,则在点对点隧道协议控制报文为预定类型(回显请求消息和回显应答消息,echorequest/reply)的情况下,通过索引链遍历整个链,更新映射条目的使用情况;
如果需要替换PPTP控制报文的CALL ID,则查找是否存在对应的映射条目;在未找到映射条目的情况下,创建映射条目,将创建的映射条目加入到PPTP应用控制层条目的索引链中,并替换PPTP报文的CALL ID;以及
在组网方式不是预定方式的情况下,替换PPTP控制报文的IP地址和TCP端口。
其中,组网方式的预定方式为:PNS位于相对于路由器的私有网络。图1示出了预定组网方式的实例。如图1所示,PNS位于私网内部,PAC位于公网上,与PNS相连的路由器上配置的是PAT规则。除了建立PPTP拨号外,PNS的用户可以利用PAT规则正常访问外部网络,实现其它类型的应用。
并且,数据流向包括:PNS与PAC之间的数据流向、以及控制报文在路由器上NAT出/入接口之间的流向。
另一方面,在判断IP数据报文是PPTP数据报文的情况下,进一步包括以下处理:步骤A,以IP地址和PPTP端口(即,固定的1723端口)查找映射条目;以及步骤B,如果查找到映射条目,则替换PPTP数据报文地IP地址;否则根据PNS与PAC之间的数据流向查找其它映射条目。
其中,在步骤B中,在未查找到映射条目的情况下,进一步包括:
如果PPTP数据报文是由PNS发送给PAC的,则查找地址管理方法中所保存的IP映射关系,并根据IP映射关系对PPTP数据报文的IP地址进行替换;以及
如果PPTP数据报文是由PAC发送给PNS的,则以PPTP数据报文中包含的PNS的CALL ID和IP地址来查找映射条目,并对PPTP数据报文的CALL ID和IP地址进行替换。
在PAT下实现PPTP ALG的方法涉及PPTP控制报文和PPTP数据报文的不同处理。
在实际处理过程中,PPTP ALG对PPTP控制报文的处理可以是以下步骤:
第一步,以TCP端口来判断是否是PPTP控制报文;
第二步,查找用于转换IP地址和TCP端口的映射条目;然后以控制报文类型、PNS和PAC之间数据流向、以及控制报文在路由器上NAT出/入接口之间的流向,来判断其组网方式;
第三步,如果是图1所示的组网方式(即,PNS相对于路由器位于私有网络),判断是否需要替换控制报文的CALL ID;否则执行第七步;
第四步,如果不需要替换CALL ID,则执行第六步;
第五步,如果需要替换CALL ID,则查找是否有对应的映射条目;没找到映射条目时,创建该映射条目,并加入到PPTP ALG条目的索引链中;然后替换报文的CALL ID;
第六步,如果是“echo request/echo reply”消息,则通过索引链遍历整个链,更新所有映射条目的使用情况,防止其老化;
第七步:替换控制报文的IP地址和TCP端口;
其中,之所以采用防止老化的处理是因为由PAT规则产生的地址和端口的映射条目,存在老化的问题。如果一个由PAT规则产生的映射条目,在经过一段时间没有被使用到,该映射条目会被删除掉,并释放出所占用的端口资源。PPTP拨号连接成功后,会定时发送“echo request/reply”控制报文,来保证隧道的正常连接。在收到“echo request/reply”后,由于这两个报文不含CALL ID信息,在NAT转换过程中只会使用到用于TCP报文中IP地址和TCP端口转换的映射条目,而无法查找到用于PNS所分配的CALL ID转换的映射条目。这样在隧道中当超过NAT映射条目老化时间的内,如果没有PPTP数据报文通过时,用于PNS所分配的CALL ID转换的映射条目就会被老化掉,而从造成该条目所对应的会话断开。
为了防止这个问题,在创建这些映射条目时,需要为它们建立起索引链。索引链的链头就是用于TCP报文中IP地址和TCP端口转换的映射条目,以后每建立一个会话所对应的用于PNS的CALLID转换的条目,就将条目加入索引链的尾部。这样路由器在处理“echo request/reply”控制报文时,就可以根据这个索引链来遍历所有会话的相关条目,并在上面打上使用标志,来防止这些条目的老化。
另一方面,实际处理过程中,PPTP ALG对PPTP数据报文的处理可以是以下步骤:
第一步,以IP数据包头中协议类型和其它字段判断是否是PPTP数据报文;
第二步,如果是PPTP数据报文,以IP地址和固定的PPTP端口1723查找映射条目;
第三步,如果找到映射条目,则替换PPTP数据报文的IP地址,然后转发结束处理;
第四步,如果没找到条目,则根据PPTP数据报文在PNS和PAC之间流向查找所需要的映射条目。
根据PPTP数据报文在PNS和PAC之间流向的判断如下:
第五步,如果是PNS发给PAC的PPTP数据报文,则找到地址管理方法中所保存的IP映射关系,替换PPTP数据报文的IP地址,然后转发结束处理;
第六步,如果是PAC发给PNS的PPTP数据报文,则以PPTP数据报文中所含的PNS的CALL ID和IP地址来找到相应的映射条目,替换CALL ID和IP地址,然后转发结束处理。
应当理解,对于PPTP数据报文实现的上述处理对组网方式没有类似于PPTP控制报文对组网方式的限制。即,处理可以在图1所示的组网中实现对PPTP数据报文的处理之外,还可以在图2所示的组网中实现对PPTP数据报文的处理。在图2所示的组网中,PNS位于公网上,而PAC位于私网内部,与PAC相连的路由器上配置静态PAT规则,将PAC的1723端口(PPTP专用)映射到某个公网地址的1723端口。
并且,在图2所示的组网中,PNS和PAC建立隧道在经过配置了静态PAT规则的路由器时,是不会出现隧道或会话冲突的,因此只要在处理PPTP数据报文时按照静态PAT规则中的IP地址映射关系对IP地址进行替换即可
下面将结合具体实例对本发明进行描述。
硬件部分由一台以上的主机(充当PNS)、两台路由器、一台服务器(充当PAC)和网线若干等组成,其组网关系图如图4所示。
首先,在路由器R1上启动PAT规则:
(a)启用NAT功能,并设置路由器接口的NAT属性:
(a1)启用NAT功能(ip nat start)
(a2)设置与PNS相连的接口的IP地址和NAT属性(注:PNS的IP地址设置为192.168.1.0网段中的某个地址)
interface fei-_1/1
ip address 192.168.1.1255.255.255.0
ip nat inside(为NAT入接口)
(a3)设置与公网相连的接口的IP地址和NAT属性
interface fei_2/1
ip address 1.2.3.1255.255.255.0
ip nat outside(注:NAT出接口)
(b)配置PAT规则所要用到的公网IP地址池
ip nat pool pool11.2.3.21.2.3.2prefix-length 24
(c)配置PAT规则所要用到的访问控制列表
ip access-list standard  1
permit 192.168.1.00.0.0.255
其次,在路由器R2启用静态PAT功能:
(d)启用NAT功能,并设置路由器接口的NAT属性
(d1)启用NAT功能(ip nat start)
(d2)设置与PAC相连的接口的IP地址和NAT属性
interface fei_1/1
ip address 10.40.10.1255.255.255.0
ip nat inside
(d3)设置与公网相连的接口的IP地址和NAT属性
interface fei_2/1
ip address 1.2.3.10255.255.255.0
ip nat inside
(e)在路由器R2配置静态PAT规则(PAC的IP地址为10.40.10.8)
ip nat inside source static tcp 10.40.10.817231.2.3.81723
最后,在PNS建立PPTP拨号连接,拨号的目的IP地址为1.2.3.8,执行拨号功能后就可以建立VPN了。
图5是PNS位于私网内部,与其相连的路由器上启用PAT规则,PNS主动发起会话连接时,在建立会话过程中PPTP控制报文在PPTP ALG中的处理情况。图5示出了是从建立会话开始到结束会话期间,包括建立会话所用的控制报文、设置连接信息、WAN错误通报、断开拨号等各种报文在PPTP ALG中的处理过程。图5中步骤2)、4)、6)、8)、11)、14)中所带有的符号“’”用于表示该报文被PPTP ALG修改过,并且该PPTP控制报文是经过PPTP ALG替换过CALL ID的报文。
图6是PNS位于私网内部,与其相连的路由器上启用PAT规则,PAC主动发起会话连接时,在建立会话过程中PPTP控制报文在PPTP ALG中的处理情况。图6中步骤2)、5)、7)、9)、12)、15)中所带有的符号“’”用于表示该报文被PPTP ALG修改过,并且该PPTP控制报文是经过PPTP ALG替换过CALL ID的报文。
以上描述可以看出,由于Call ID的作用类似于TCP/UDP协议中的端口号,因此可以将Call ID当作TCP/UDP的端口号来进行PAT转换,从而实现区分会话的目的。
这样,在建立一个PPTP拨号连接的过程中,需要产生两个映射条目:一个用于TCP报文中IP地址和TCP端口转换,为私网IP地址+TCP端口<->公网IP地址+转换后的TCP端口;另一个用于PNS所分配的CALL ID转换,为私网IP地址+PNS的CALL ID<->公网IP地址+转换后的PNS的CALL ID。这两个映射条目所使用公网IP地址必须一致。对于产生用于PNS所分配的CALL ID转换的映射条目,可以当成有另一个TCP报文经过了路由器,该TCP报文的源端口就是PNS的CALL ID;至于映射条目中转换后的源端口,则作为是转换后的CALL ID。
在建立和维护会话的过程中,PPTP的15种控制报文中包含的CALL ID信息并不相同,其中,有的报文不含CALL ID信息,有的只有PAC/PNS其中一个的CALL ID信息,还有一些报文含有两者的CALL ID信息。因此,只有含有PNS的CALL ID信息的报文才需要PPTP ALG处理。在处理这些含有PNS的CALL ID信息的控制报文时,就需要进行两次查找:一次是以IP地址+TCP端口的组合来查找用于TCP报文中IP地址和TCP端口转换的映射条目;另一种是以IP地址+PNS的CALL ID的组合来查找用于PNS的CALLID转换的映射条目。由于在建立PNS的CALL ID映射条目时,是将CALL ID作为TCP端口来处理的,因此这两次的查找使用相同的方法。
另外,PPTP数据报文中所含的CALL ID信息为对端所分配的CALL ID。因此,在处理由PAC发给PNS的数据报文需要替换IP地址和CALL ID,将PNS的CALL ID当作TCP端口,按照查找TCP报文的NAT映射条目的方法即可。在处理由PNS发给PAC的数据报文时只要替换IP地址。由于CALL ID不需要替换,不能按IP地址和TCP端口的方法来查找到所需的条目。这里只需做一些额外处理,在建立会话的过程中,保存IP地址的转换结果,在需要时根据转换前的IP地址查找即可。也可以按哈希查找的方法、以目的IP地址(PAC的IP地址)和PAC的CALL ID为关键值,建立其冲突表、哈希表。在处理由PNS发给PAC的数据报文时,用哈希方法找到相应的条目替换报文的源IP地址(PNS的IP地址)即可。
综上所述,本发明在不需要进行额外的配置的情况下,解决了路由器在启用了动态可重用网络地址转换规则时,无法利用PPTP经由该路由器建立虚拟专用网的问题;并且,不需要为每个PPTP拨号都单独分配一个公网IP地址;此外,只需利用公网IP地址所能提供的端口资源中的一小部分,而且不影响其它类型报文的正常传输,从而节省了要申请的外部公网IP地址,降低了组网的费用。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种在动态可重用网络地址转换下实现点对点隧道协议应用层网关的方法,其特征在于,包括:
根据接收到的报文头中的协议字段确定所述报文的类型,其中,所述报文的类型包括传输控制协议报文和IP数据报文;
判断所述传输控制协议报文是否是点对点隧道协议控制报文;以及判断所述IP数据报文是否是点对点隧道协议数据报文;以及
在判断所述传输控制协议报文是所述点对点隧道协议控制报文的情况下,判断组网方式,并根据组网方式的判断结果确定是否替换所述点对点隧道协议控制报文的呼叫ID;在判断所述IP数据报文是所述点对点隧道协议数据报文的情况下,查找映射条目,并根据查找结果确定是否换所述点对点隧道协议数据报文的呼叫ID。
2.根据权利要求1所述的方法,其特征在于,在判断所述传输控制协议报文是所述点对点隧道协议控制报文的情况下,进一步包括以下处理:
查找用于转换所述点对点隧道协议控制报文的IP地址和TCP端口的映射条目,并根据所述点对点隧道协议控制报文的类型、以及数据流向来判断所述路由器的组网方式;
在所述组网方式为预定方式的情况下,判断是否需要替换所述点对点隧道协议控制报文的呼叫ID;
如果不需要替换所述点对点隧道协议控制报文的呼叫ID,则在所述点对点隧道协议控制报文为预定类型的情况下,通过索引链遍历整个链,更新所述映射条目的使用情况;
如果需要替换所述点对点隧道协议控制报文的呼叫ID,则查找是否存在对应的映射条目;在未找到所述映射条目的情况下,创建映射条目,将所述创建的映射条目加入到点对点隧道协议应用控制层条目的索引链中,并替换所述点对点隧道协议报文的呼叫ID;以及
在所述组网方式不是所述预定方式的情况下,替换所述点对点隧道协议控制报文的IP地址和TCP端口。
3.根据权利要求2所述的方法,其特征在于,所述组网方式的所述预定方式为:所述点对点隧道协议网络服务器位于相对于所述路由器的私有网络。
4.根据权利要求2所述的方法,其特征在于,所述数据流向包括:点对点隧道协议网络服务器与点对点隧道协议接入集中器之间的数据流向、以及所述点对点隧道协议控制报文在路由器上网络地址转换的出/入接口之间的数据流向。
5.根据权利要求2所述的方法,其特征在于,所述预定类型包括:回显请求消息和回显应答消息。
6.根据权利要求1所述的方法,其特征在于,在判断所述IP数据报文是所述点对点隧道协议数据报文的情况下,进一步包括以下处理:
步骤A,以IP地址和点对点隧道协议端口查找映射条目;以及
步骤B,如果查找到所述映射条目,则替换所述点对点隧道协议数据报文地IP地址;否则根据所述点对点隧道协议网络服务器与所述点对点隧道协议接入集中器之间的数据流向查找其它映射条目。
7.根据权利要求6所述的方法,其特征在于,在所述步骤B中,在未查找到所述映射条目的情况下,进一步包括:
如果所述点对点隧道协议数据报文是由所述点对点隧道协议网络服务器发送给所述点对点隧道协议集中接入器的,则查找地址管理方法中所保存的IP映射关系,并根据所述IP映射关系对所述点对点隧道协议数据报文的IP地址进行替换;以及
如果所述点对点隧道协议数据报文是由所述点对点隧道协议集中接入器发送给所述点对点隧道协议网络服务器的,则以所述点对点隧道协议数据报文中包含的所述点对点隧道协议网络服务器的呼叫ID和IP地址来查找映射条目,并对所述点对点隧道协议数据报文的呼叫ID和IP地址进行替换。
8.根据权利要求6所述的方法,其特征在于,所述点对点隧道协议端口为1723端口。
CN2007101642532A 2007-10-17 2007-10-17 在动态可重用网络地址转换下实现点对点隧道协议应用层网关的方法 Expired - Fee Related CN101150513B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101642532A CN101150513B (zh) 2007-10-17 2007-10-17 在动态可重用网络地址转换下实现点对点隧道协议应用层网关的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101642532A CN101150513B (zh) 2007-10-17 2007-10-17 在动态可重用网络地址转换下实现点对点隧道协议应用层网关的方法

Publications (2)

Publication Number Publication Date
CN101150513A true CN101150513A (zh) 2008-03-26
CN101150513B CN101150513B (zh) 2013-03-27

Family

ID=39250862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101642532A Expired - Fee Related CN101150513B (zh) 2007-10-17 2007-10-17 在动态可重用网络地址转换下实现点对点隧道协议应用层网关的方法

Country Status (1)

Country Link
CN (1) CN101150513B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055816A (zh) * 2010-12-28 2011-05-11 华为技术有限公司 一种通信方法、业务服务器、中间设备、终端及通信系统
CN103490950A (zh) * 2013-09-03 2014-01-01 深圳市迈腾电子有限公司 一种路由器pptp会话容量模拟方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1863157A (zh) * 2005-10-28 2006-11-15 华为技术有限公司 穿越nat实现网络通信的方法及装置
CN100571197C (zh) * 2005-11-03 2009-12-16 中兴通讯股份有限公司 一种结合网络地址转换的提供商边缘设备及其使用方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055816A (zh) * 2010-12-28 2011-05-11 华为技术有限公司 一种通信方法、业务服务器、中间设备、终端及通信系统
CN103490950A (zh) * 2013-09-03 2014-01-01 深圳市迈腾电子有限公司 一种路由器pptp会话容量模拟方法
CN103490950B (zh) * 2013-09-03 2017-12-22 深圳市迈腾电子有限公司 一种路由器pptp会话容量模拟方法

Also Published As

Publication number Publication date
CN101150513B (zh) 2013-03-27

Similar Documents

Publication Publication Date Title
US8295285B2 (en) Method and apparatus for communication of data packets between local networks
US7716369B2 (en) Data transmission system with a mechanism enabling any application to run transparently over a network address translation device
EP3425886B1 (en) Dynamic vpn address allocation
CN101019381B (zh) 在访问广域网期间维持为指定站点中的IPv6节点分配的唯一本地地址的机密性
CN102347993B (zh) 一种网络通信的方法和设备
US20050185672A1 (en) IPv6/IPv4 translator
CN101730998B (zh) 通过一系列边界网关的网际协议多媒体载体路径最优化的方法和装置
EP1694034B1 (en) Method to establish a peer-to-peer connection between two user agents located behind symmetric NATs
EP1884102B1 (en) Host identity protocol method and apparatus
EP2082329B1 (en) System and method for redirecting requests
CN101150566B (zh) 异构网络系统中实现网络地址转换协议转换的装置及方法
CN105101176B (zh) 一种漫游场景下的会话绑定方法、装置和系统
CN101325580B (zh) 基于nat-pt的ftp应用层网关的实现方法
CN103262506A (zh) 用于对数据业务进行区分处置的网络地址查找的基于移动接入信息的调整
CN109076082A (zh) 面向身份的网络和协议中的匿名身份
CN100555998C (zh) 一种以路由器接口地址实现端口重定向的方法及其系统
CN102546407A (zh) 报文发送方法及装置
CN101222495A (zh) IPv4网络主机访问IPv6网络主机的方法及路由器
CN101888370B (zh) 防止IPv6地址被欺骗性攻击的装置与方法
CN101150513B (zh) 在动态可重用网络地址转换下实现点对点隧道协议应用层网关的方法
US9509659B2 (en) Connectivity platform
WO2002015014A1 (en) Pseudo addressing
AU2001246378B2 (en) Method for transmitting a data packet from a first network unit to a second network unit in a data network
CN100479457C (zh) 一种实现虚拟私有网络中数据传输的方法
CN101355568B (zh) 一种静态pat支持绑定路由器接口的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130327

Termination date: 20161017

CF01 Termination of patent right due to non-payment of annual fee