报文发送方法、nat表项建立方法及nat设备的制造方法_2

文档序号:9380476阅读:来源:国知局
网设备分配的外部端口范围和公网IP地址,在接收到内网设备发往外网的正向报文后,将该正向报文的源地址替换为公网IP地址后发送到外网。
[0060]或者,
[0061]步骤13,接收外网发往内网设备的反向报文;
[0062]具体的,当外网向内网设备发送反向报文时,首先将反向报文发送到NAT设备上,NAT设备则接收该反向报文。
[0063]步骤14,根据NAT表项包含的内网设备的私网IP地址、外部端口范围和公网IP地址,将外网发往内网设备的反向报文的目的公网IP地址替换为内网设备的私网IP地址后发送。
[0064]具体的,NAT设备会在内网设备上线时为内网设备建立NAT表项,在NAT表项中包含了该内网设备的私网IP地址、为该内网设备分配的外部端口范围和公网IP地址,在接收到外网发往内网设备的反向报文后,将该反向报文的目的公网IP地址替换为内网设备的私网IP地址后发送给内网设备。
[0065]本发明的实施例还提供了一种报文发送方法,如图2所示,具体可以包括:
[0066]步骤21,接收用户设备发往外网的正向报文。
[0067]具体的,当用户设备向外网发送正向报文时,首先将该正向报文发送到连接的内网设备上,内网设备则接收该正向报文。
[0068]步骤22,将正向报文的源端口号替换为外部端口范围,以及将源地址替换为内网设备的私网IP地址后发送。
[0069]具体的,在接收到内网设备发往外网的正向报文后,内网设备将该正向报文的源端口号替换为NAT设备分配的外部端口范围,以及将源地址替换为该内网设备的私网IP地址后发送给NAT设备。
[0070]下面以一个用户设备通过内网设备和NAT设备与外网进行报文传输的过程对本实施例作进一步说明,具体的信令流程可以参考图3,涉及的设备包括用户设备、内网设备和NAT设备,其中内网设备可以是CPE (Customer Premises Equipment,用户前端设备),NAT设备可以是CGN (Carrier-Grade NAT,运营级NAT)。其中,当CPE是桥接型时,用户设备需要支持其中CPE的功能,即此时,内网设备为用户设备本身;若在CPE与CGN之间采用隧道方式的场景,则CGN需要做隧道的封装和解封装。如图4所示,具体的过程可以包括:
[0071]步骤41,内网设备获取该内网设备的私网IP地址;
[0072]具体的,当内网设备(如:CPE)上线时,可以通过DHCP (Dynamic HostConfigurat1n Protocol,动态主机配置协议)获取该内网设备所在私网的IP地址,也可以使用PPPoE的方式获取所在私网的IP地址。获取到所在私网的IP地址后,向NAT设备(如:CGN)发送上线通知。
[0073]步骤42,内网设备向NAT设备发送用于获取经过NAT的外部端口范围的请求消息;
[0074]具体的,内网设备获取该内网设备的私网IP地址后,向NAT设备发送一个请求消息,该请求消息携带该内网设备的私网IP地址,以使NAT设备可以获取该内网设备的私网IP地址,该请求消息可以是基于PCP (Pinhole Control Protocol,端口映射控制协议)的请求消息,具体可以为Pinhole Request消息,也可以是基于DHCP的请求消息,具体可以为DHCP discover消息。该请求消息用于与NAT设备协商并获得一个外部端口范围,该外部端口范围用于内网设备发往NAT设备的外部端口范围和NAT设备发往外网的外部端口范围,该内网设备发往NAT设备的外部端口范围和NAT设备发往外网的外部端口范围相同。
[0075]进一步地,由于运营商级的NAT设备(CGN)往往是有NAT公网池的,用户设备在进行NAT后的公网地址是在该池中随机选取,不能保证单个用户设备在进行NAT后的公网地址是同一个IP地址,而现网中存在很多应用需要建立多个连接,多个连接在做NAT后的公网地址需要是同一个IP地址,如果不是同一个地址会出现连接不能建立。因此内网设备可以进一步协商与该内网设备连接的用户设备发送的报文经过NAT后的公网IP地址,这样在该用户设备在后续连接也能够使用同一个IP地址,避免了不能建立连接的情况出现。
[0076]步骤43,根据接收的内网设备发送的请求消息,分配内网设备发往NAT设备的外部端口范围和NAT设备发往外网的外部端口范围,内网设备发往NAT设备的外部端口范围和NAT设备发往外网的外部端口范围相同,并向内网设备发送包括外部端口范围的响应消息;
[0077]具体的,NAT设备在接收到内网设备发送的请求消息后,会根据用户设备的情况分配内网设备发往NAT设备的外部端口范围和NAT设备发往外网的外部端口范围(可以分配不连续的外部端口范围,如2000?3000和4000?5000等,由于当内网设备访问外网地址时,一般都会建立100?300个链接,每个链接都会在NAT设备上建立一个表项,而通过分配相同的内网设备发往NAT设备的外部端口范围和NAT设备发往外网的外部端口范围,即内网设备访问外网时只在内网设备每次上线时,NAT设备建立一个表项,后续发送报文建立链接时,不需再建立表项,从外部端口范围中选取外部端口发送,减少了 NAT设备中建立NAT表项的数量,而且在NAT设备老化的时候可以同步内网设备和NAT设备。),并将分配的外部端口范围以响应消息的形式发送给内网设备,具体可以为Pinhole Response消息或DHCP offer消息。如此时NAT设备能够分配的外部端口范围已经用完,则可以向内网设备返回错误响应消息。另外,如果后续用户数增加,申请的外部端口范围不够,可动态协商增加外部端口沮围。
[0078]NAT设备也会分配一个对应内网设备的公网IP地址,并在一定情况下把该公网IP地址携带在在响应消息中一并发送给内网设备,该一定情况可以为内网设备在请求消息中进一步请求协商了公网IP地址。把转换后的公网IP地址告知内网设备,除了可以使该内网设备连接的用户设备在后续连接能够使用同一个IP地址,避免了不能建立连接的情况出现,还可以有效利用内网设备现有的ALG(Applicat1n Level Gateway,应用层网关)功能相对较强的优势,使NAT设备不需要相应的ALG。
[0079]步骤44,NAT设备根据外部端口范围建立NAT表项;
[0080]具体的,当NAT设备为内网设备分配完内网设备发往NAT设备的外部端口范围和NAT设备发往外网的外部端口范围,以及相应的公网IP地址后,会在NAT设备中建立相应的NAT表项,该NAT表项包括内网设备的私网IP地址、内网设备发往NAT设备的外部端口范围、公网IP地址、NAT设备发往外网的外部端口范围。其中,内网设备发往NAT设备的外部端口范围和NAT设备发往外网的外部端口范围相同。
[0081 ] 步骤45,内网设备从NAT设备获取响应消息,响应消息包括经过NAT后的外部端口范围;
[0082]具体的,内网设备接收NAT设备发送的响应消息后会保存相应的外部端口范围。如果在步骤42中申请了公网IP地址,则同时保存该公网IP地址。
[0083]步骤46,内网设备接收用户设备发往外网的正向报文,并将该正向报文的源端口号替换为外部端口范围,以及将源地址替换为内网设备的私网IP地址后发送;
[0084]具体的,当用户设备需要向外网发送正向报文时,会先将该正向报文发送到内网设备,该正向报文包括了源地址、目的地址、源端口号和目的端口号。内网设备接收到用户设备向外网发送的正向报文后,将源端口号替换为外部端口范围、将源地址替换为内网设备的私网IP地址后,将正向报文从在该外部端口范围内的某个端口发送给NAT设备。
[0085]步骤47,NAT设备接收内网设备发往外网的正向报文,并根据网络地址转换NAT表项包含的内网设备的私网IP地址、外部端口范围和公网IP地址,将该正向报文的源地址替换为公网IP地址后发送;
[0086]具体的,NAT设备接收内网设备发往外网的正向报文后,NAT设备查找保存的NAT表项,找到与该正向报文的内网设备的私网IP地址和外部端口范围匹配的表项,将源地址替换为匹配表项的公网IP地址后,将正向报文从在该外部端口范围内的某个端口发送到外网。
[0087]步骤48,NAT设备接收外网发往内网设备的反向报文,并根据网络地址转换NAT表项包含的内网设备的私网IP地址、外部端口范围和公网IP地址,将外网发往内网设备的反向报文的目的公网IP地址替换为内网设备的私网IP地址后发送。
[0088]具体的,当外网通过NAT设备向内网设备发送反向报文时,NAT设备接收外网发往内网设备的反向报文,该反向报文包括了源地址、目的地址、源端口号和目的端口号,该目的地址是公网IP地址。NAT设备查找保存的NAT表项,找到与该目的公网IP地址,及目的端口号在范围内的外部端口范围相匹配的表项,将目的公网IP地址替换为匹配表项的内网设备的私网IP地址后将反向报文发送到内网设备。
[0089]本实施例通过根据网络地址转换NAT表项包含的内网设备的私网IP地址、外部端口范围和公网IP地址,在NAT设备上将正向报文的源地址替换为公网IP地址、将反向报文的目的公网IP地址替换为内网设备的私网IP地址,即用户访问外网时只在内网设备每次上线时,NAT设备建立一个表项,后续发送报文建立链接时,不需再建立表项,减少了 NAT设备中建立NAT表项的数量,从而使NAT设备可以支持更多的用户,
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1