一种适用于多出口网络的地址转换方法及设备的制作方法

文档序号:7770566阅读:135来源:国知局
一种适用于多出口网络的地址转换方法及设备的制作方法
【专利摘要】本发明公开了一种适用于多出口网络的地址转换方法和设备,网关设备从公网接口收到公网用户发送来的连接首报文,根据连接首报文的目的地址,判断连接首报文匹配地址转换配置,查询转发表,并在判断查询到的转发表项中的转发出接口是地址转换配置中的私网接口时,将连接首报文目的地址转换为配置中的私网地址,将所述连接首报文源地址转换为私网接口的接口地址,建立会话表项,将网络地址转换后的连接首报文从私网接口转发出去;网关设备从私网接口收到私网设备发送来的回应报文,查询会话表项,将所述回应报文目的地址转换为所述公网用户的IP地址,将回应报文源地址转换为公网地址,并根据转换后的回应报文目的地址,查询转发表进行报文转发。
【专利说明】—种适用于多出口网络的地址转换方法及设备
【技术领域】
[0001]本发明涉及网络通信技术,特别是一种适用于多出口网络的地址转换方法和设备。
【背景技术】
[0002]网络地址转换(NAT, Network Address Translation),是一种通过转换报文源/目的地址实现私网与公网互通的技术。由于NAT技术会破坏网络互联协议(IP,InternetProtocol)通信的端到端模型,给用户在实际组网中带来许多限制,由此,产生了多种类型的NAT,以满足实际通信中各种各样的用户需求。比如NAT server就是一种能满足公网用户主动访问私网设备的NAT技术。
[0003]NAT server的用法:NAT server为私网设备分配固定公网地址。企业向公网的域名解析服务器(DNS, Domain Name Service)注册域名时,域名对应的IP地址为公网地址,当公网某主机通过DNS解析到地址后,会发起目的地址为公网地址的报文,NAT设备收到该报文后,发现报文目的地址为NAT server配置的公网地址,于是将报文目的地址转换为对应的私网地址,使公网主机访问到真实的私网设备。
[0004]然而,企业在使用NAT server时,常会遇到多出口的难题,如图1所示:该企业有两个网关设备,分别接入了运营商网络A和运营商网络B。在A网关设备上,NAT server的公网地址属于运营商网络A ;在B网关设备上,NAT server的公网地址属于运营商网络B。由于用户往往使用的DNS服务器属于第三方(既不位于运营商网络A的网络也不位于运营商网络B的网络),位于运营商网络A网络的用户在解析服务器的域名时,可能会解析到B网关设备上的公网地址,具体通信过程为:
[0005]用户C通过DNS解析到的服务器地址为B网关设备上的公网地址,遂以B网关设备上的公网地址为目的地址,发起连接请求(如图中标号I的虚线箭头);
[0006]B网关设备收到报文后,进行目的地址转换,然后将报文转发给私网设备(如图中标号2的虚线箭头);
[0007]私网设备发出回应报文(如图中标号3的虚线箭头),值得注意的是,由于私网设备回应报文目的地址为用户C的地址,而用户C位于运营商网络A的网络内,私网设备的回应报文会被内部网络内的中间设备转发到A网关设备,而不是B网关设备(因为路由上,A网关设备更靠近用户C)。这时A网关设备可能会对收到的报文有两种处理:
[0008]一是检查到这个报文并不属于某个连接的首包,认定它属于非正常连接的报文,丢弃;二是不检查报文是否属正常连接,将报文的源地址转换为运营商网络A网络的公网地址,将报文转发给用户C。然而,用户C收到此报文后,由于报文源地址并不是用户C之前访问的目的地址(B网关设备上的公网地址),该报文会被用户C丢弃。
[0009]因此,网关设备A对报文的两种处理都会导致用户C访问私网设备失败。
[0010]现有的一种最优实现方法为双机热备份,这种方法的基本原理为:在A网关设备和B网关设备之间,连接一根“心跳线”,当A网关设备或B网关设备对报文进行过NAT转换时,立即在本网关设备记录一条会话表项,会话表项里记录着地址转换对应关系,两个网关设备利用心跳线通过特殊的“心跳协议”实时同步各自生成的会话表项,使两个网关设备维护相同的会话表,这样,如果某条连接的首报文由B网关设备转换过目的地址,而该报文的回应报文被转发到了 A网关设备,A网关设备可根据设备上的会话表项里记录的地址转换对应关系,将报文源地址转换为B网关设备上的公网地址,即能顺利完成通信。
[0011]双机热备份的方法存在明显的缺点:双机热备技术属于高级高可靠性(HA,HighAvailability)技术,支持双机热备的产品比较昂贵,且对两台设备的CPU、软件版本的兼容性有较高要求(实际上,同一家设备供应商的不同系列产品之间常常都无法满足其要求)。因此,对于已经使用了两台不同产品的企业来说,升级时需要购买新设备替换掉旧设备,网络升级成本太高。
[0012]此外,如果企业的网络有三个或更多的出口,则网关设备之间必须一对多备份,企业可能不得不购买更高端的产品作为网关设备,网络升级成本更加昂贵。

【发明内容】

[0013]有鉴于此,本发明提出了一种适用于多出口网络的地址转换方法及设备,在公网接口和私网接口都能进行NAT处理,NAT处理流程中,在转换首报文目的地址的同时,还转换首报文的源地址,使经过NAT转换的连接的回应报文还能被引流到原始的NAT设备进行相反的地址转换,从而解决多出口的难题,对于企业来说,网络升级代价很小。
[0014]本发明提出的技术方案为:
[0015]一种适用于多出口网络的地址转换方法,该方法应用于网关设备,所述网关设备为私网设备连接的多个网关设备中的一个,不同网关设备分别接入不同运营商网络,各网关设备之间在私网建立路由邻居,并通过该路由邻居关系刷新各自的转发表,该方法包括以下步骤:
[0016]网关设备从公网接口收到公网用户发送来的连接首报文,所述连接首报文的源地址为所述公网用户的IP地址,所述连接首报文的目的地址为公网用户主动访问私网设备时通过域名解析服务器DNS解析到的公网地址;
[0017]所述网关设备根据所述连接首报文的目的地址,判断所述连接首报文匹配地址转换配置时,根据所述源地址查询转发表,并在判断查询到的转发表项中的转发出接口是地址转换配置中的私网接口时,将所述连接首报文目的地址转换为配置中的私网地址,将所述连接首报文源地址转换为私网接口的接口地址,建立会话表项,将网络地址转换后的连接首报文从私网接口转发出去;
[0018]所述网关设备从私网接口收到私网设备发送来的回应报文时,查询得到所述会话表项,将所述回应报文目的地址转换为所述公网用户的IP地址,将所述回应报文源地址转换为所述公网地址,并根据转换后的所述回应报文的目的地址,查询转发表进行报文转发。
[0019]上述方案中,在判断查询到的转发表项中的转发出接口是地址转换配置中的私网接口之前,还包括:
[0020]判断所述连接首报文的源地址是否与所述网关设备上的公网地址属于同一网段,是则不再判断查询的转发表项中的转发出接口是否是地址转换配置中的私网接口,直接将所述连接首报文目的地址转换为配置中的私网地址,连接首报文的源地址不变,建立会话表项,将网络地址转换后的连接首报文从私网接口转发出去。
[0021]上述方案中,网关设备查询到的转发表项中的转发出接口不是地址转换配置中的私网接口时,该方法进一步包括:
[0022]网关设备将所述连接首报文目的地址转换为配置中的私网地址,不转换所述连接首报文的源地址,建立会话表项。
[0023]上述方案中,网关设备从私网接口收到的回应报文携带的目的地址不是本私网接口地址时,该方法进一步包括:
[0024]网关设备根据该回应报文的目的地址查询转发表,根据查询到的转发表项转发所述回应报文。
[0025]上述方案中,网关设备从私网接口收到的回应报文携带的目的地址是本私网接口地址,且找不到会话表项时,该方法进一步包括:
[0026]结束地址转换处理,发送所述回应报文给网关设备本机。
[0027]一种网关设备,所述网关设备为私网设备连接的多个网关设备中的一个,所述网关设备与其它网关设备分别接入不同运营商网络,各网关设备之间在私网建立路由邻居,并通过该路由邻居关系刷新各自的转发表,该设备包括:
[0028]收发模块,用于接收公网用户发送来的连接首报文,所述连接首报文的源地址为所述公网用户的IP地址,所述连接首报文的目的地址为公网用户主动访问私网设备时通过域名解析服务器DNS解析到的公网地址;还用于将网络地址转换后的连接首报文从私网接口转发出去;还用于接收私网设备发送来的回应报文;
[0029]处理模块,用于根据所述连接首报文的目的地址,判断所述连接首报文匹配地址转换配置时,根据所述源地址查询转发表,并在判断查询到的转发表项中的转发出接口是地址转换配置中的私网接口时,将所述连接首报文目的地址转换为配置中的私网地址,将所述连接首报文源地址转换为私网接口的接口地址,建立会话表项;还用于查询得到所述会话表项,将所述回应报文目的地址转换为所述公网用户的IP地址,将所述回应报文源地址转换为所述公网地址,并根据转换后的所述回应报文的目的地址,查询转发表进行报文转发。
[0030]上述方案中,在判断查询到的转发表项中的转发出接口是地址转换配置中的私网接口之前,
[0031]所述处理模块还用于,判断所述连接首报文的源地址是否与所述网关设备上的公网地址属于同一网段,是则不再判断查询的转发表项中的转发出接口是否是地址转换配置中的私网接口,直接将所述连接首报文目的地址转换为配置中的私网地址,连接首报文的源地址不变,建立会话表项;
[0032]所述收发模块还用于,将网络地址转换后的连接首报文从私网接口转发出去。
[0033]上述方案中,网关设备查询到的转发表项中的转发出接口不是地址转换配置中的私网接口时,
[0034]所述处理模块还用于,将所述连接首报文目的地址转换为配置中的私网地址,不转换所述连接首报文的源地址,建立会话表项。
[0035]上述方案中,网关设备从私网接口收到的回应报文携带的目的地址不是本私网接口地址时,[0036]所述处理单元还用于,根据该回应报文的目的地址查询转发表,根据查询到的转发表项转发所述回应报文。
[0037]上述方案中,网关设备从私网接口收到的回应报文携带的目的地址是本私网接口地址,且找不到会话表项时,
[0038]所述处理单元进一步用于,结束地址转换处理;
[0039]所述收发模块进一步用于,发送所述回应报文给网关设备本机。
[0040]综上所述,本发明公开的技术方案不需要在两个网关设备之间建立热备份关系即能解决多出口的难题,不限制两台网关设备的产品类型,对于企业来说,网络升级代价很小。
【专利附图】

【附图说明】
[0041]图1为现有技术双出口组网示意图。
[0042]图2为实施例一的双出口组网示意图。
[0043]图3为实施例一的流程图。
[0044]图4为实施例一报文交互流程图。
[0045]图5为本发明设备结构图。
【具体实施方式】
[0046]为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步的详细描述。
[0047]本发明的技术方案是:网关设备从公网接口收到公网用户发送来的连接首报文,所述连接首报文的源地址为所述公网用户的IP地址,所述连接首报文的目的地址为公网用户主动访问私网设备时通过域名解析服务器DNS解析到的公网地址;
[0048]所述网关设备根据所述连接首报文的目的地址,判断所述连接首报文匹配地址转换配置时,根据所述源地址查询转发表,并在判断查询到的转发表项中的转发出接口是地址转换配置中的私网接口时,将所述连接首报文目的地址转换为配置中的私网地址,将所述连接首报文源地址转换为私网接口的接口地址,建立会话表项,将网络地址转换后的连接首报文从私网接口转发出去;
[0049]所述网关设备从私网接口收到私网设备发送来的回应报文时,查询得到所述会话表项,将所述回应报文目的地址转换为所述公网用户的IP地址,将所述回应报文源地址转换为所述公网地址,并根据转换后的所述回应报文的目的地址,查询转发表进行报文转发。
[0050]一般地,路由器的报文处理流程都是“入接口业务处理一IP转发一出接口业务处理”,当向网关设备接口下发NAT配置时,网关设备在该接口的业务处理队列里注册NAT业务,该接口收到报文时会进入NAT处理流程。
[0051]普通的NAT server必须在配置中指定公网接口、公网地址、私网地址,本发明中的地址转换方法除需在配置中指定这三个参数外,还必须指定私网接口,且配置同时向公网接口和私网接口注册NAT业务,使两个接口收到报文时均会进入NAT处理流程。这里NAT处理流程包括两方面内容:对接收报文进行地址转换和不对接收报文进行地址转换,其中,网关设备接收到的报文匹配地址转换配置时则对其进行地址转换,如果网关设备接收到的报文不匹配地址转换配置,则直接转发报文,不进行地址转换,这两种处理方式均属于NAT处理。下面详述公网接口和私网接口对NAT的处理。
[0052]公网接口 NAT处理流程:
[0053]入方向处理:
[0054]网关设备从公网接口收到公网用户发送来的连接首报文,所述公网用户位于非所述公网接口连接的运营商网络;所述连接首报文携带的源地址为所述公网用户的IP地址,所述连接首报文携带的目的地址为公网用户主动访问私网设备时通过域名解析服务器DNS解析到的公网地址;网关设备判断所述连接首报文匹配地址转换配置。
[0055]网关设备根据所述源地址查询转发表,判断查询到的转发表项中的转发出接口是否是地址转换配置中的私网接口,若是则将所述连接首报文目的地址转换为配置中的私网地址,将所述连接首报文源地址转换为私网接口的接口地址,建立会话表项,将网络地址转换后的连接首报文从私网接口转发出去;否则将报文目的地址转换为配置中的私网地址,不转换报文源地址,建立会话表项,网关设备根据地址转换后的连接首报文携带的目的地址查询转发表,根据查询到的转发表项转发地址转换后的连接首报文。
[0056]出方向处理:网关设备从私网接口收到回应报文,若回应报文已进行过地址转换,不再能匹配上配置或会话,网关设备直接从接口转发报文,无特殊处理。
[0057]私网接口 NAT处理流程:
[0058]入方向处理:
[0059]网关设备从私网接口收到回应报文,判断回应报文携带的目的地址是否为本私网接口地址,如果是则查询会话表项,若能找到会话表项,则将所述回应报文目的地址转换为所述公网用户的IP地址,将所述回应报文源地址转换为所述公网地址,网关设备根据回应报文携带的目的地址查询转发表,根据查询到的转发表项转发所述网络地址转换后的回应报文;如果找不到会话表项,结束地址转换处理,上送所述回应报文给网关设备本机。
[0060]出方向处理:
[0061]网关设备无论从公网接口收到连接首报文还是从私网接口收到回应报文,均已进行过地址转换,报文已不会再匹配上配置或会话,网关设备直接从接口发出报文,无特殊处理。
[0062]方法实施例一
[0063]本实施例以双出口组网、私网设备以私网服务器为例,如图2所示,某企业有一台放置在私网的服务器对外提供服务,其私网地址是192.168.2.2,该企业有两个网关设备A和B,分别接入运营商网络A和B,两个网关设备之间在私网接口建立开放式最短路径优先OSPF (Open Shortest Path First)邻居(实际应用中不限于使用何种路由协议),并通过该路由邻居关系刷新转发表,使得:B网关设备的转发表中,目的地址为运营商网络A网络内地址的转发下一跳地址为A网关设备的私网接口地址;相反地,A网关设备的转发表中,目的地址为运营商网络B网络内地址的转发下一跳地址为B网关设备的私网接口地址。网关设备B上去往目的网段167.2.3.0/24的优选路由的下一跳地址为192.168.1.2。私网服务器在网关设备A上配置公网地址167.1.1.2,在网关设备B上配置公网地址221.1.1.2。运营商网络A网络内用户C使用的DNS服务器为第三方DNS server。
[0064]本实施例中网关设备A和网关设备B的私网接口配置OSPF对等体,并且根据公网的配置引入外部路由(比如:网关设备A和网关设备B在公网使用边界网关协议(BGP,Border Gateway ProtocoI)学习路由,贝U需配置OSPF引入BGP路由),则网关设备A和网关设备B能互相学习到路由。一般来说,由于网关设备A是直接接入了运营商网络A,网关设备A上去往运营商网络A网络内的用户C目的网段的路由会具有更小的cost值(相比网关设备B上)。网关设备B通过OSPF邻居从网关设备A学习到去往用户C目的网段的路由将成为网关设备B上的优选路由,该路由目的网段为用户C所在网段,下一跳为网关设备A的私网接口地址,出接口为网关设备B的私网接口。网关设备B会根据此路由下发转发信息库(FIB, Forward Information Base)表项。
[0065]一般地,NAT设备(本发明为网关设备)都会维护一个NAT会话表,NAT会话表记录着地址转换关系,用于指导NAT设备对一条连接的后续报文进行地址转换。NAT会话表至少包含原始报文的源、目的地址和发生地址转换后的源、目的地址。
[0066]转发表用于指导三层转发,所有三层网络设备均实现转发表,一般地,转发表至少包含目的网段、转发出接口、下一跳地址等信息。一种最简形式的转发表如表1所示:
[0067]表1
[0068]
【权利要求】
1.一种适用于多出口网络的地址转换方法,其特征在于,该方法应用于网关设备,所述网关设备为私网设备连接的多个网关设备中的一个,不同网关设备分别接入不同运营商网络,各网关设备之间在私网建立路由邻居,并通过该路由邻居关系刷新各自的转发表,该方法包括以下步骤: 网关设备从公网接口收到公网用户发送来的连接首报文,所述连接首报文的源地址为所述公网用户的IP地址,所述连接首报文的目的地址为公网用户主动访问私网设备时通过域名解析服务器DNS解析到的公网地址; 所述网关设备根据所述连接首报文的目的地址,判断所述连接首报文匹配地址转换配置时,根据所述源地址查询转发表,并在判断查询到的转发表项中的转发出接口是地址转换配置中的私网接口时,将所述连接首报文目的地址转换为配置中的私网地址,将所述连接首报文源地址转换为私网接口的接口地址,建立会话表项,将网络地址转换后的连接首报文从私网接口转发出去; 所述网关设备从私网接口收到私网设备发送来的回应报文时,查询得到所述会话表项,将所述回应报文目的地址转换为所述公网用户的IP地址,将所述回应报文源地址转换为所述公网地址,并根据转换后的所述回应报文的目的地址,查询转发表进行报文转发。
2.根据权利要求1所述的方法,其特征在于,在判断查询到的转发表项中的转发出接口是地址转换配置中的私网接口之前,还包括: 判断所述连接首报文的源地址是否与所述网关设备上的公网地址属于同一网段,是则不再判断查询的转发表项中的转发出接口是否是地址转换配置中的私网接口,直接将所述连接首报文目的地址转换为配置中的私网地址,连接首报文的源地址不变,建立会话表项,将网络地址转换后的连接首报文从私网接口转发出去。
3.根据权利要求1所述的方法,其特征在于,网关设备查询到的转发表项中的转发出接口不是地址转换配置中的私网接口时,该方法进一步包括: 网关设备将所述连接首报文目的地址转换为配置中的私网地址,不转换所述连接首报文的源地址,建立会话表项。
4.根据权利要求1所述的方法,其特征在于,网关设备从私网接口收到的回应报文携带的目的地址不是本私网接口地址时,该方法进一步包括: 网关设备根据该回应报文的目的地址查询转发表,根据查询到的转发表项转发所述回应报文。
5.根据权利要求1所述的方法,其特征在于,网关设备从私网接口收到的回应报文携带的目的地址是本私网接口地址,且找不到会话表项时,该方法进一步包括: 结束地址转换处理,发送所述回应报文给网关设备本机。
6. 一种网关设备,其特征在于,所述网关设备为私网设备连接的多个网关设备中的一个,所述网关设备与其它网关设备分别接入不同运营商网络,各网关设备之间在私网建立路由邻居,并通过该路由邻居关系刷新各自的转发表,该设备包括: 收发模块,用于接收公网用户发送来的连接首报文,所述连接首报文的源地址为所述公网用户的IP地址,所述连接首报文的目的地址为公网用户主动访问私网设备时通过域名解析服务器DNS解析到的公网地址;还用于将网络地址转换后的连接首报文从私网接口转发出去;还用于接收私网设备发送来的回应报文;处理模块,用于根据所述连接首报文的目的地址,判断所述连接首报文匹配地址转换配置时,根据所述源地址查询转发表,并在判断查询到的转发表项中的转发出接口是地址转换配置中的私网接口时,将所述连接首报文目的地址转换为配置中的私网地址,将所述连接首报文源地址转换为私网接口的接口地址,建立会话表项;还用于查询得到所述会话表项,将所述回应报文目的地址转换为所述公网用户的IP地址,将所述回应报文源地址转换为所述公网地址,并根据转换后的所述回应报文的目的地址,查询转发表进行报文转发。
7.根据权利要求6所述的设备,其特征在于,在判断查询到的转发表项中的转发出接口是地址转换配置中的私网接口之前, 所述处理模块还用于,判断所述连接首报文的源地址是否与所述网关设备上的公网地址属于同一网段,是则不再判断查询的转发表项中的转发出接口是否是地址转换配置中的私网接口,直接将所述连接首报文目的地址转换为配置中的私网地址,连接首报文的源地址不变,建立会话表项; 所述收发模块还用于,将网络地址转换后的连接首报文从私网接口转发出去。
8.根据权利要求6所述的设备,其特征在于,网关设备查询到的转发表项中的转发出接口不是地址转换配置中的私网接口时, 所述处理模块还用于,将所述连接首报文目的地址转换为配置中的私网地址,不转换所述连接首报文的源地址,建立会话表项。
9.根据权利要求6所述的设备,其特征在于,网关设备从私网接口收到的回应报文携带的目的地址不是本私网接口地址时, 所述处理单元还用于,根据该回应报文的目的地址查询转发表,根据查询到的转发表项转发所述回应报文。
10.根据权利要求6所述.的设备,其特征在于,网关设备从私网接口收到的回应报文携带的目的地址是本私网接口地址,且找不到会话表项时, 所述处理单元进一步用于,结束地址转换处理; 所述收发模块进一步用于,发送所述回应报文给网关设备本机。
【文档编号】H04L29/12GK103475750SQ201310420978
【公开日】2013年12月25日 申请日期:2013年9月16日 优先权日:2013年9月16日
【发明者】郗二军 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1