CN101136926A - 非对称路由情况下的报文转发方法及网络地址转换网关 - Google Patents
非对称路由情况下的报文转发方法及网络地址转换网关 Download PDFInfo
- Publication number
- CN101136926A CN101136926A CNA2007101758191A CN200710175819A CN101136926A CN 101136926 A CN101136926 A CN 101136926A CN A2007101758191 A CNA2007101758191 A CN A2007101758191A CN 200710175819 A CN200710175819 A CN 200710175819A CN 101136926 A CN101136926 A CN 101136926A
- Authority
- CN
- China
- Prior art keywords
- message
- nat gateway
- nat
- transformational relation
- gateway
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了非对称路由情况下的报文转发方法,适用于包括第一网络地址转换(NAT)网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,该方法包括:在转换关系表备份成功后再发送正向报文,或者在本地查找失败后向备份NAT网关查询转换关系表或将收到的反向报文转发给备份NAT网关,或者根据资源使用范围确定反向报文的处理方,或者将正向报文及转换关系表发送给备份NAT网关处理。另外,本发明还提供了相应的NAT网关。本发明能够避免由于反向报文比备份的转换关系表先到达NAT网关而导致反向报文被错误丢弃的情况发生,从而提高了非对称路由情况下的连接建立成功率。
Description
技术领域
本发明涉及网络通信技术,尤其涉及非对称路由情况下的报文转发方法及网络地址转换(NAT,Network Address Translation)网关。
背景技术
网络地址转换是一种将私网网际协议(IP,Internet Protocol)地址转换为公网IP地址的技术,主要用于实现私有网络访问公有网络的功能,它可以使多台私网计算机共享Internet连接,很好地解决公共IP地址资源紧缺的问题。
支持NAT功能的设备称为NAT网关,图1示出了NAT网关的基本应用示意图。参见图1,NAT网关位于私有网络与公有网络的连接处,当私网主机(Host)192.168.1.3发往公网服务器(Server)10.1.1.2的报文(packet)1到达NAT网关后,NAT网关将该报文的源IP地址192.168.1.3转换为一个可在Internet上选路的公有地址20.1.1.1,然后将转换后的报文1发送到公网服务器,同时在NAT网关的转换关系表中记录这一映射;当公网服务器返回给私网主机192.168.1.3的报文2到达NAT网关后,NAT查找自身记录的转换关系表,将报文2的目的IP地址20.1.1.1替换为私网主机的IP地址192.168.1.3,然后发送到私网主机。上述过程对终端来说是透明的,对公网服务器而言,其认为内部主机的IP地址就是20.1.1.1,而并不知道有192.168.1.3这个地址。因此,NAT“隐藏”了企业的私有网络,为私有网络提供了“隐私”保护。
网络地址端口转换(NAPT,Network Address Port Translation)是NAT的一种变形,它允许多个私网地址映射到同一个公网地址的不同端口上。图2示出了NAT网关的NAPT应用示意图。参见图2,四个带有私网地址的IP报文到达NAT网关,其中,报文1和报文2来自同一个私网地址但具有不同的源端口号,报文3和报文4来自不同的私网地址但具有相同的源端口号;NAT网关将这四个报文的源IP地址都映射到了同一个公网地址的不同端口上,同时在NAT网关的转发关系表中记录这些映射;当回应报文到达时,NAT网关根据自身记录的转换关系表将回应报文的目的IP地址和目的端口号替换为原始私网主机的IP地址和端口号。目前,大部分的NAT网关都支持图1和图2所示的两种应用。
上述图1和图2均是单一NAT网关的应用。使用单一NAT网关,NAT网关本身成为了网络中的关键节点,其一旦失效,就会导致整个私网无法接入公网。为了克服该问题,通常使用双机备份或多机备份技术来提升设备的可靠性。图3示出了NAT网关双机备份的工作方式示意图,其中,NAT网关1(FW1)为主NAT网关,FW2为备NAT网关,当FW1正常时,所有流量都经过FW1,同时FW1将建立的转换关系表项如192.168.1.112(1152)->20.1.2.100(2001)备份到FW2上;当FW1异常无法工作时,所有的流量都切换到FW2上,FW2根据备份的转换关系表完成后续报文的地址转换,保证用户的会话连接不会中断。
在图3所示的双机备份情况下,仅有一个NAT网关工作,而另一个NAT网关闲置。为了提高设备的利用率,可以在备份的基础上进行负载分担。图4示出了NAT网关双机备份+负载分担的工作方式示意图,其中,一部分流量经过FW1,一部分流量经过FW2,两个NAT网关进行负载分担,各自完成自己的NAT转换工作,并互向对方备份转换关系表。一旦其中一个NAT网关出现故障,所有流量就切换到剩下那一个正常的NAT网关上,由于这个正常的NAT网关既有自己的转换关系表,也有对方备份过来的转换关系表,因此全部的流量都可以经过这个设备完成NAT转换功能。
在上述负载分担的工作方式下,经常会出现非对称路由的情况,即正向报文所经过的NAT网关与反向报文所经过的NAT网关不同,它们的路由互不对称。下面以传输控制协议(TCP)连接的建立过程为例,说明非对称路由情况下的报文转发过程。参见图5所示,非对称路由情况下的报文转发过程主要包括以下步骤:
步骤501:FW1接收正向同步(Syn)报文,对该Syn报文进行NAT转换,并建立转换关系表。
步骤502:FW1将转换后的Syn报文发送出去。
步骤503:FW1向FW2备份转换关系表。
步骤504:FW2接收返回的同步确认(SynAck)反向报文,查找自身的转换关系表。
步骤505:FW2根据自身的转换关系表对收到的SynAck报文进行NAT转换,并将转换后的SynAck报文发送出去。
如果实际情况都按照图5所示的顺序进行,则不会产生什么问题。但是,在实际应用中,很可能反向回来的报文要比FW1向FW2同步的备份关系表先到达FW2,此时,FW2就无法查找到合适的转换关系表,无法完成NAT转换功能,而反向报文也会被丢弃,并最终导致连接建立失败。并且,在实际应用中,由于任务调度的复杂性,即使备份的转换关系的消息包先到达FW2,也不一定能够先得到处理,FW2依然可能先调度处理返回的SynAck报文,这同样会导致连接建立失败。
发明内容
有鉴于此,本发明的主要目的在于提供一种非对称路由情况下的报文转发方法及装置,提高非对称路由情况下的连接建立成功率。
为达到上述目的,本发明提供的技术方案如下:
方案一
一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,该方法包括:第一NAT网关对接收到的正向报文进行NAT转换,建立转换关系表,缓存转换后的正向报文,并向第二NAT网关备份转换关系表,在收到第二NAT网关返回的备份成功应答后,将缓存的正向报文发送出去。
一种实现上述方法的NAT网关,包括:报文转发单元以及用于缓存报文的缓存单元,其中,报文转发单元,用于对接收到的正向报文进行NAT转换,将转换后的正向报文送到缓存单元中缓存,并建立转换关系表,向备份NAT网关备份该转换关系表,在收到所述备份NAT网关返回的备份成功应答后,将缓存单元中缓存的正向报文发送出去。
方案二
一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,该方法包括:第一NAT网关收到反向报文后,查找本地转换关系表,如果查找失败,则缓存收到的反向报文,并向第二NAT网关发送查询请求,查询第二NAT网关上是否存在对应的转换关系表项,如果存在,第一NAT网关则根据第二NAT网关返回的对应的转换关系表项对缓存的反向报文进行NAT转换,然后将转换后的反向报文发送出去;如果不存在,第一NAT网关则丢弃缓存的反向报文。
一种实现上述方法的NAT网关,包括:报文转发单元、查询单元以及用于缓存报文的缓存单元,其中,
报文转发单元,用于在收到反向报文且查找本地转换关系表失败后,将收到的反向报文送到缓存单元中缓存,通知查询单元本地查找失败,并根据查询单元发送来的转换关系表项对缓存单元中缓存的反向报文进行NAT转换,然后将转换后的方向报文发送出去;
查询单元,用于在收到本地查找失败通知后,向备份NAT网关发送查询请求,查询备份NAT网关上是否存在对应的转换关系表项,并将收到的转换关系表项返回给报文转发单元。
方案三
一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,该方法包括:第一NAT网关收到反向报文后,查找本地转换关系表,如果查找失败,则将收到的反向报文转发给第二NAT网关;第二NAT网关收到第一NAT网关发送来的反向报文后,查找本地转换关系表,如果查找成功,则根据查找到的转换关系对收到的反向报文进行NAT转换,并将转换后的反向报文发送出去;如果查找失败,则丢弃该反向报文。
一种实现上述方法的NAT网关,包括:报文接收单元和报文转发单元,其中,报文接收单元,用于接收反向报文,并将收到的反向报文发送给报文转发单元;报文转发单元,用于在收到报文接收单元发来的反向报文后,查找本地转换关系表,如果查找失败,则将收到的反向报文转发给备份NAT网关。
方案四
一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,该方法包括:第一NAT网关收到反向报文后,查找本地转换关系表,如果查找失败,则将收到的反向报文转发给第二NAT网关;第二NAT网关收到第一NAT网关发送来的反向报文后,查找本地转换关系表,如果查找成功,则将收到的反向报文以及查找到的转换关系发送给第一NAT网关,第一NAT网关根据收到的转换关系对收到的反向报文进行NAT转换,并将转换后的反向报文发送出去;如果查找失败,则丢弃所述反向报文。
一种实现上述方法的NAT网关,包括:报文接收单元和转换查找单元,其中,报文接收单元,用于接收来自备份NAT网关的反向报文,并将收到的反向报文发送给转换查找单元;转换查找单元,用于在收到报文接收单元发来的反向报文后,查找本地转换关系表,如果查找成功,则将收到的反向报文以及查找到的转换关系发送给所述备份NAT网关;如果查找失败,则丢弃所述反向报文。
方案五
一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,该方法包括:第一NAT网关收到反向报文后,判断该反向报文的目的地址或目的端口号是否在自身所使用的资源范围内,如果在,则根据本地转换关系表处理收到的反向报文;如果所述目的地址或目的端口号不在第一NAT网关所使用的资源范围内,而在第二NAT网关所使用的资源范围内,第一NAT网关则将收到的反向报文转发给第二NAT网关处理。
一种实现上述方法的NAT网关,包括:报文接收单元和判断转发单元,其中,报文接收单元,用于接收反向报文,并将收到的反向报文发送给判断转发单元;判断转发单元,用于在收到报文转发单元发来的反向报文后,判断该报文的目的地址或目的端口号是否在该NAT网关所使用的资源范围内,如果在,则根据本地转换关系表处理收到的反向报文;如果所述目的地址或目的端口号不在该NAT网关所使用的资源范围内,而在备份NAT网关所使用的资源范围内,则将收到的反向报文转发给所述备份NAT网关处理。
方案六
一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,该方法包括:第一NAT网关对收到的正向报文进行NAT转换,建立转换关系表,并将建立的转换关系表及转换后的正向报文发送给第二NAT网关;第二NAT网关记录第一NAT网关发送来的转换关系表,并将收到的转换后的正向报文发送出去。
一种实现上述方法的NAT网关,包括:NAT转换单元和报文转发单元,其中,NAT转换单元,用于对收到的正向报文进行NAT转换,建立转换关系表,并将建立的转换关系表及转换后的正向报文发送给报文转发单元;报文转发单元,用于将收到的转换关系表及转换后的正向报文发送给备份NAT网关。
其中,所述报文转发单元还用于接收备份NAT网关发来的转换关系表及转换后的正向报文,在本地记录收到的转换关系表,并将收到的转换后的正向报文发送出去。
由此可见,本发明通过在转换关系表备份成功后再发送正向报文,或者在本地查找失败后向备份NAT网关查询转换关系表或将收到的反向报文转发给备份NAT网关,或者根据资源使用范围确定反向报文处理方,或者将正向报文及转换关系表发送给备份NAT网关处理的方式,使得即使在非对称路由的情况下,反向报文也能够得到合适的处理,不会由于反向报文比备份的转换关系表先到达NAT网关而导致反向报文被错误丢弃,从而提高了非对称路由情况下的连接建立成功率。
附图说明
图1为NAT网关的基本应用示意图。
图2为NAT网关的NAPT应用示意图。
图3为NAT网关双机备份的工作方式示意图。
图4为NAT网关双机备份+负载分担的工作方式示意图。
图5为非对称路由情况下的报文转发过程示意图。
图6a为本发明实施例一中的报文转发过程示意图。
图6b为本发明实施例一中的NAT网关结构示意图。
图7a为本发明实施例二中的报文转发过程示意图。
图7b为本发明实施例二中的NAT网关结构示意图。
图8a为本发明实施例三中的报文转发过程示意图。
图8b为本发明实施例三中的NAT网关结构示意图。
图9a为本发明实施例四中的报文转发过程示意图。
图9b为本发明实施例四中的NAT网关结构示意图。
图10a为本发明实施例五中的报文转发过程示意图。
图10b为本发明实施例五中的NAT网关结构示意图。
图11a为本发明实施例六中的报文转发过程示意图。
图11b为本发明实施例六中的NAT网关结构示意图。
具体实施方式
为了解决现有技术中的问题,提高链接建立的成功率,本发明提供了几种非对称路由情况下的报文转发方法,本发明所提供的方法能够避免由于反向报文比备份的转换关系表先到达NAT网关而导致反向报文被错误丢弃的情况发生。
为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明作进一步详细说明。
需要说明的是,本发明不仅适用于只转换IP地址而不改变端口号的基本NAT应用场景,也适用于NAPT应用场景。在以下实施例中,均以NAPT应用场景为例进行说明,对于基本NAT应用场景,其解决原理与NAPT应用场景下一致。
实施例一
图6a示出了本发明实施例一中的报文转发过程示意图,其中,FW1和FW2为互为备份的两个NAT网关。参见图6a所示,本实施例中的报文转发过程主要包括以下步骤:
步骤601:FW1接收正向Syn报文,对该Syn报文进行NAT转换,建立转换关系表,并将转换后的Syn报文缓存起来。
步骤602:FW1向FW2备份转换关系表。
步骤603:备份成功后,FW2向FW1返回备份成功应答,确认已经备份成功。
步骤604:收到备份成功应答后,FW1再从缓存中取出转换后的Syn报文,并发送出去。
在备份成功后才将正向报文发送出去的做法,可以保证备份的转换关系表优先得到处理,这样,即使返回的SynAck报文被路由到FW2上,FW2也可以找到合适的转换关系表。
步骤605:FW2接收反向返回的SynAck报文。
步骤606:FW2查找自身保存的转换关系表即本地转换关系表中是否存在与该SynAck报文的目的IP地址及目的端口号对应的表项内容,如果查找成功,即存在对应的表项内容后,FW2则根据查找到的表项内容对该SynAck报文进行NAT转换,并将转换后的SynAck报文发送出去;如果查找失败,即不存在对应的表项内容,FW2则丢弃该SynAck报文。
相应地,本实施例还提供了一种NAT网关,其结构参见图6b所示,包括:报文转发单元以及用于缓存报文的缓存单元,其中,
报文转发单元,用于对接收到的正向报文进行NAT转换,将转换后的正向报文送到缓存单元中缓存,并建立转换关系表,向备份NAT网关备份该转换关系表,在收到备份NAT网关返回的备份成功应答后,将缓存单元中缓存的正向报文发送出去。
实施例二
图7a示出了本发明实施例二中的报文转发过程示意图。参见图7a所示,该过程主要包括以下步骤:
步骤701:FW1接收正向Syn报文,对该Syn报文进行NAT转换,并建立转换关系表。
步骤702:FW1将转换后的Syn报文发送出去。
步骤703:FW1向FW2备份转换关系表。
步骤704:FW2接收反向返回的SynAck报文,查找自身保存的转换关系表中是否存在与该SynAck报文的目的IP地址及目的端口号对应的表项内容,如果存在,则根据查找到的表项内容对该SynAck报文进行NAT转换,并将转换后的SynAck报文发送出去,然后跳出本流程;如果不存在,则执行步骤705。
步骤705:FW2将收到的SynAck报文缓存起来,并向FW1发送携带所述目的IP地址及目的端口号的查询请求。
步骤706:FW1收到来自FW2的查询请求后,查找自身保存的转换关系表中是否存在与该查询请求中携带的目的IP地址及目的端口号对应的表项内容,如果存在,则将查找到的表项内容发给FW2;否则,向FW2返回查询失败响应或者不作任何响应。
步骤707:FW2收到FW1返回的表项内容后,从缓存中取出SynAck报文,并根据该表项内容进行NAT转换,然后将转换后的SynAck报文发送出去;如果FW2收到的是查询失败响应或者没有收到任何响应,FW2则丢弃缓存的SynAck报文。
相应地,本实施例还提供了一种NAT网关,其结构参见图7b所示,包括:报文转发单元、查询单元以及用于缓存报文的缓存单元,其中,
报文转发单元,用于在收到反向报文且查找本地转换关系表失败后,将收到的反向报文送到缓存单元中缓存,通知查询单元本地查找失败,并根据查询单元发送来的转换关系表项对缓存单元中缓存的反向报文进行NAT转换,然后将转换后的方向报文发送出去;
查询单元,用于在收到本地查找失败通知后,向备份NAT网关发送查询请求,查询备份NAT网关上是否存在对应的转换关系表项,并将收到的转换关系表项返回给报文转发单元。
实施例三
图8a示出了本发明实施例三中的报文转发过程示意图。参见图8a所示,该过程主要包括以下步骤:
步骤801:FW1接收正向Syn报文,对该Syn报文进行NAT转换,并建立转换关系表。
步骤802:FW1将转换后的Syn报文发送出去。
步骤803:FW1向FW2备份转换关系表。
步骤804:FW2接收反向返回的SynAck报文,查找自身保存的转换关系表中是否存在与该SynAck报文的目的IP地址及目的端口号对应的表项内容,如果存在,则根据查找到的表项内容对该SynAck报文进行NAT转换,并将转换后的SynAck报文发送出去,然后跳出本流程;如果不存在,则执行步骤805。
步骤805:FW2将收到的SynAck报文转发给FW1。
步骤806:FW1收到FW2发送来的SynAck报文后,查找自身保存的转换关系表中是否存在与该SynAck报文的目的IP地址及目的端口号对应的表项内容,如果存在,则根据查找到的表项内容对该SynAck报文进行NAT转换,并将转换后的SynAck报文发送出去;如果不存在,则丢弃该SynAck报文。
在实施例三中,NAT网关无需对收到的报文进行缓存,从而节省了缓存资源。
相应地,本实施例还提供了一种NAT网关,其结构参见图8b所示,包括:报文接收单元和报文转发单元,其中,
报文接收单元,用于接收反向报文,并将收到的反向报文发送给报文转发单元;
报文转发单元,用于在收到报文接收单元发来的反向报文后,查找本地转换关系表,如果查找失败,则将收到的反向报文转发给备份NAT网关。
实施例四
图9a示出了本发明实施例四中的报文转发过程示意图。参见图9a所示,该过程主要包括以下步骤:
步骤901:FW1接收正向Syn报文,对该Syn报文进行NAT转换,并建立转换关系表。
步骤902:FW1将转换后的Syn报文发送出去。
步骤903:FW1向FW2备份转换关系表。
步骤904:FW2接收反向返回的SynAck报文,查找自身保存的转换关系表中是否存在与该SynAck报文的目的IP地址及目的端口号对应的表项内容,如果存在,则根据查找到的表项内容对该SynAck报文进行NAT转换,并将转换后的SynAck报文发送出去,然后跳出本流程;如果不存在,则执行步骤905。
步骤905:FW2将收到的SynAck报文转发给FW1。
步骤906:FW1收到FW2发送来的SynAck报文后,查找自身保存的转换关系表中是否存在与该SynAck报文的目的IP地址及目的端口号对应的表项内容,如果存在,则将收到的SynAck报文以及查找到的转换关系返回给FW2,然后执行步骤907;如果不存在,则丢弃收到的SynAck报文,并结束本流程。
步骤907:FW2收到FW1返回的SynAck报文及转换关系后,在自身的转换关系表中记录所述转换关系,并根据该转换关系对所述SynAck报文进行NAT转换,然后将转换后的SynAck报文发送出去。
在实施例四中,NAT网关同样无需对收到的报文进行缓存,节省了缓存资源。并且,FW1和FW2之间的交互过程对外界是透明的,该方案不会对整个网络的拓扑关系产生任何影响。
相应地,本实施例还提供了一种NAT网关,其结构参见图9b所示,包括:报文接收单元和转换查找单元,其中,
报文接收单元,用于接收来自备份NAT网关的反向报文,并将收到的反向报文发送给转换查找单元;
转换查找单元,用于在收到报文接收单元发来的反向报文后,查找本地转换关系表,如果查找成功,则将收到的反向报文以及查找到的转换关系发送给所述备份NAT网关;如果查找失败,则丢弃所述反向报文。
实施例五
图10a示出了本发明实施例五中的报文转发过程示意图,本实施例主要是针对FW1和FW2独立使用各自资源的情况而提出的。比如,将FW1和FW2在做NAT转换时可使用的所有公网端口号划分为两部分,其中,一部分为奇数端口号,供FW1使用;另一部分为偶数端口号,供FW2使用。这样,FW1转换后的所有正向Syn报文的源端口号都是奇数,FW2转换后的所有正向Syn报文的源端口号都是偶数。
上述端口划分之后的报文转发过程如图10a所示,主要包括以下步骤:
步骤1001:FW1接收正向Syn报文,对该Syn报文进行NAT转换,并建立转换关系表。
步骤1002:FW1将转换后的Syn报文发送出去。
步骤1003:FW1向FW2备份转换关系表。
步骤1004:FW2接收反向返回的SynAck报文,判断该报文的目的端口号(反向报文的目的端口号就是经转换处理后的正向报文的源端口号)是否为偶数,如果是偶数,FW2则根据自身保存的转换关系表处理SynAck报文,然后跳出本流程;如果是奇数,则执行步骤1 005。
步骤1005:FW2将收到的SynAck报文转发给FW1。
步骤1006:FW1根据自身保存的转发关系表处理SynAck报文。
其中,步骤1004中FW2根据自身保存的转换关系表处理SynAck报文是指,FW2查找自身保存的转换关系表中是否存在与收到的SynAck报文的目的IP地址及目的端口号对应的表项内容,如果存在,则根据查找到的表项内容对该SynAck报文进行NAT转换,并将转换后的SynAck报文发送出去;如果不存在,则丢弃该SynAck报文。
步骤1006的具体处理过程与上述步骤1004中FW2根据自身保存的转换关系表处理SynAck报文的处理过程一致,即如果存在对应的表项内容,就根据对应的表项内容进行NAT转换并发送;否则,丢弃报文,这里不再赘述。
需要说明的是,对于只转换IP地址而不改变端口号的基本NAT应用,以及其它的资源划分方法,本实施例同样适用。比如,将FW1和FW2在做NAT转换时可使用的所有公网IP地址(A0~A2)按照顺序平均划分为两部分(A0~A1)、(A1+1~A2),其中,(A0~A1)供FW1使用;(A1+1~A2)供FW2使用。在步骤1004中,当FW2收到反向SynAck报文时,其首先判断该反向报文的目的IP地址是否在(A1+1~A2)范围内,如果在(A1+1~A2)范围内,FW2则根据自身保存的转换关系表处理收到的SynAck报文;如果所述目的IP地址在(A0~A1)范围内,FW2则将收到的SynAck报文发送给FW1处理。
在实施例五中,只需进行一次转换关系查找,避免了无效的转换关系查找过程,提高了报文转发效率。并且,只在一台NAT网关上进行一次转换关系查找,能够降低反向SynAck Flood攻击的影响。
相应地,本实施例还提供了一种NAT网关,其结构参见图1 0b所示,包括:报文接收单元和判断转发单元,其中,
报文接收单元,用于接收反向报文,并将收到的反向报文发送给判断转发单元;
判断转发单元,用于在收到报文转发单元发来的反向报文后,判断该报文的目的地址或目的端口号是否在该NAT网关所使用的资源范围内,如果在,则根据本地转换关系表处理收到的反向报文;如果所述目的地址或目的端口号不在该NAT网关所使用的资源范围内,而在备份NAT网关所使用的资源范围内,则将收到的反向报文转发给所述备份NAT网关处理。
实施例六
图11a示出了本发明实施例六中的报文转发过程示意图。参见图11a所示,该过程主要包括以下步骤:
步骤1101:FW1接收正向Syn报文,对该Syn报文进行NAT转换,并建立转换关系表。
步骤1102:FW1将转换后的Syn报文及建立的转换关系一同打包发送给FW2。
步骤1103:FW2收到后,在自身的转换关系表中记录所收到的转换关系,并将收到的Syn报文发送出去。
步骤1104:FW2接收反向SynAck报文。
步骤1105:FW2根据自身保存的转换关系表处理收到的SynAck报文,即FW2查找自身保存的转换关系表中是否存在与该SynAck报文的目的IP地址及目的端口号对应的表项内容,如果存在,则根据查找到的表项内容对该SynAck报文进行NAT转换,并将转换后的SynAck报文发送出去;如果不存在,则丢弃该SynAck报文。这里,由于在步骤1103中FW2已经记录了相应的转换关系,因此,FW2一定会查找成功。
在实施例六中,报文转发过程和转换关系备份过程被合二为一,使得备份信息不再消耗额外的CPU处理资源,提高了NAT网关的工作效率。
相应地,本实施例还提供了一种NAT网关,其结构参见图11b所示,包括:NAT转换单元和报文转发单元,其中,
NAT转换单元,用于对收到的正向报文进行NAT转换,建立转换关系表,并将建立的转换关系表及转换后的正向报文发送给报文转发单元;
报文转发单元,用于将收到的转换关系表及转换后的正向报文发送给备份NAT网关。
其中,所述报文转发单元还用于接收备份NAT网关发来的转换关系表及转换后的正向报文,在本地记录收到的转换关系表,并将收到的转换后的正向报文发送出去。
最后需要说明的是,本发明不仅适用于双机备份的情况,同时也适用于多机备份的情况。并且,不仅对两个互为备份的独立设备有效,对分布式设备的多个业务板之间的备份加负载分担的方案同样有效。另外,本发明不仅适用于NAT网关设备,同时还适用于防火墙、路由器、入侵防御系统(IPS)等所有支持基于会话(以源IP、目的IP、协议号、源端口、目的端口IP五元组为标识)的业务的设备。
以上所述对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种非对称路由情况下的报文转发方法,适用于包括第一网络地址转换NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,其特征在于,该方法包括:
第一NAT网关对接收到的正向报文进行NAT转换,建立转换关系表,缓存转换后的正向报文,并向第二NAT网关备份转换关系表,在收到第二NAT网关返回的备份成功应答后,将缓存的正向报文发送出去。
2.一种实现权利要求1所述方法的NAT网关,其特征在于,包括:报文转发单元以及用于缓存报文的缓存单元,其中,
报文转发单元,用于对接收到的正向报文进行NAT转换,将转换后的正向报文送到缓存单元中缓存,并建立转换关系表,向备份NAT网关备份该转换关系表,在收到所述备份NAT网关返回的备份成功应答后,将缓存单元中缓存的正向报文发送出去。
3.一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,其特征在于,该方法包括:
第一NAT网关收到反向报文后,查找本地转换关系表,如果查找失败,则缓存收到的反向报文,并向第二NAT网关发送查询请求,查询第二NAT网关上是否存在对应的转换关系表项,如果存在,第一NAT网关则根据第二NAT网关返回的对应的转换关系表项对缓存的反向报文进行NAT转换,然后将转换后的反向报文发送出去;如果不存在,第一NAT网关则丢弃缓存的反向报文。
4.一种实现权利要求3所述方法的NAT网关,其特征在于,包括:报文转发单元、查询单元以及用于缓存报文的缓存单元,其中,
报文转发单元,用于在收到反向报文且查找本地转换关系表失败后,将收到的反向报文送到缓存单元中缓存,通知查询单元本地查找失败,并根据查询单元发送来的转换关系表项对缓存单元中缓存的反向报文进行NAT转换,然后将转换后的方向报文发送出去;
查询单元,用于在收到本地查找失败通知后,向备份NAT网关发送查询请求,查询备份NAT网关上是否存在对应的转换关系表项,并将收到的转换关系表项返回给报文转发单元。
5.一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,其特征在于,该方法包括:
第一NAT网关收到反向报文后,查找本地转换关系表,如果查找失败,则将收到的反向报文转发给第二NAT网关;
第二NAT网关收到第一NAT网关发送来的反向报文后,查找本地转换关系表,如果查找成功,则根据查找到的转换关系对收到的反向报文进行NAT转换,并将转换后的反向报文发送出去;如果查找失败,则丢弃该反向报文。
6.一种实现权利要求5所述方法的NAT网关,其特征在于,包括:报文接收单元和报文转发单元,其中,
报文接收单元,用于接收反向报文,并将收到的反向报文发送给报文转发单元;
报文转发单元,用于在收到报文接收单元发来的反向报文后,查找本地转换关系表,如果查找失败,则将收到的反向报文转发给备份NAT网关。
7.一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,其特征在于,该方法包括:
第一NAT网关收到反向报文后,查找本地转换关系表,如果查找失败,则将收到的反向报文转发给第二NAT网关;
第二NAT网关收到第一NAT网关发送来的反向报文后,查找本地转换关系表,如果查找成功,则将收到的反向报文以及查找到的转换关系发送给第一NAT网关,第一NAT网关根据收到的转换关系对收到的反向报文进行NAT转换,并将转换后的反向报文发送出去;如果查找失败,则丢弃所述反向报文。
8.一种实现权利要求7所述方法的NAT网关,其特征在于,包括:报文接收单元和转换查找单元,其中,
报文接收单元,用于接收来自备份NAT网关的反向报文,并将收到的反向报文发送给转换查找单元;
转换查找单元,用于在收到报文接收单元发来的反向报文后,查找本地转换关系表,如果查找成功,则将收到的反向报文以及查找到的转换关系发送给所述备份NAT网关;如果查找失败,则丢弃所述反向报文。
9.一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,其特征在于,该方法包括:
第一NAT网关收到反向报文后,判断该反向报文的目的地址或目的端口号是否在自身所使用的资源范围内,如果在,则根据本地转换关系表处理收到的反向报文;如果所述目的地址或目的端口号不在第一NAT网关所使用的资源范围内,而在第二NAT网关所使用的资源范围内,第一NAT网关则将收到的反向报文转发给第二NAT网关处理。
10.一种实现权利要求9所述方法的NAT网关,其特征在于,包括:报文接收单元和判断转发单元,其中,
报文接收单元,用于接收反向报文,并将收到的反向报文发送给判断转发单元;
判断转发单元,用于在收到报文转发单元发来的反向报文后,判断该报文的目的地址或目的端口号是否在该NAT网关所使用的资源范围内,如果在,则根据本地转换关系表处理收到的反向报文;如果所述目的地址或目的端口号不在该NAT网关所使用的资源范围内,而在备份NAT网关所使用的资源范围内,则将收到的反向报文转发给所述备份NAT网关处理。
11.一种非对称路由情况下的报文转发方法,适用于包括第一NAT网关和第二NAT网关的网络环境,所述第一NAT网关和第二NAT网关互为备份且进行负载分担,其特征在于,该方法包括:
第一NAT网关对收到的正向报文进行NAT转换,建立转换关系表,并将建立的转换关系表及转换后的正向报文发送给第二NAT网关;
第二NAT网关记录第一NAT网关发送来的转换关系表,并将收到的转换后的正向报文发送出去。
12.一种实现权利要求11所述方法的NAT网关,其特征在于,包括:NAT转换单元和报文转发单元,其中,
NAT转换单元,用于对收到的正向报文进行NAT转换,建立转换关系表,并将建立的转换关系表及转换后的正向报文发送给报文转发单元;
报文转发单元,用于将收到的转换关系表及转换后的正向报文发送给备份NAT网关。
13.根据权利要求12所述的NAT网关,其特征在于,所述报文转发单元还用于接收备份NAT网关发来的转换关系表及转换后的正向报文,在本地记录收到的转换关系表,并将收到的转换后的正向报文发送出去。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101758191A CN101136926B (zh) | 2007-10-12 | 2007-10-12 | 非对称路由情况下的报文转发方法及网络地址转换网关 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101758191A CN101136926B (zh) | 2007-10-12 | 2007-10-12 | 非对称路由情况下的报文转发方法及网络地址转换网关 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101136926A true CN101136926A (zh) | 2008-03-05 |
CN101136926B CN101136926B (zh) | 2011-08-31 |
Family
ID=39160752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101758191A Active CN101136926B (zh) | 2007-10-12 | 2007-10-12 | 非对称路由情况下的报文转发方法及网络地址转换网关 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101136926B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009146615A1 (zh) * | 2008-06-02 | 2009-12-10 | 成都市华为赛门铁克科技有限公司 | 网络地址转换业务的处理方法和系统及处理器 |
WO2010102465A1 (zh) * | 2009-03-13 | 2010-09-16 | 华为技术有限公司 | 一种实现nat设备冗余备份的方法、装置和系统 |
US8149840B2 (en) | 2008-06-02 | 2012-04-03 | Huawei Technologies Co., Ltd. | Method, system and processor for processing network address translation service |
CN101702657B (zh) * | 2009-12-04 | 2012-04-18 | 杭州华三通信技术有限公司 | 一种nat业务的热备份方法和设备 |
CN103188154A (zh) * | 2013-04-19 | 2013-07-03 | 杭州华三通信技术有限公司 | 一种网络地址转换的方法和板卡 |
CN103442093A (zh) * | 2013-07-22 | 2013-12-11 | 汉柏科技有限公司 | 实现网络地址转换的方法 |
WO2016095561A1 (zh) * | 2014-12-18 | 2016-06-23 | 华为技术有限公司 | 一种地址分配方法、cgn设备及cgn双主系统 |
CN106612242A (zh) * | 2016-11-09 | 2017-05-03 | 新华三技术有限公司 | 一种流量转发方法及装置 |
CN107547659A (zh) * | 2017-09-29 | 2018-01-05 | 新华三技术有限公司 | 报文安全转发方法及装置 |
CN107733808A (zh) * | 2017-11-20 | 2018-02-23 | 新华三技术有限公司 | 一种流量传输方法及装置 |
CN107743098A (zh) * | 2017-11-23 | 2018-02-27 | 新华三技术有限公司 | Cgn板间负载分担的方法、装置和实现装置 |
CN108197298A (zh) * | 2018-01-23 | 2018-06-22 | 北京知行信科技有限公司 | 一种基于自然语言处理的智能购物交互方法及系统 |
CN108881040A (zh) * | 2018-06-29 | 2018-11-23 | 新华三信息安全技术有限公司 | 一种报文处理方法和装置 |
CN110365807A (zh) * | 2019-06-11 | 2019-10-22 | 北京邮电大学 | 一种基于地址翻译的网络会话流量对准方法 |
CN114079980A (zh) * | 2020-08-06 | 2022-02-22 | 北京佰才邦技术股份有限公司 | 一种切换方法及HaloB设备 |
WO2022116848A1 (zh) * | 2020-12-01 | 2022-06-09 | 武汉绿色网络信息服务有限责任公司 | 报文传输方法、装置、计算机设备及存储介质 |
CN114793221A (zh) * | 2022-03-21 | 2022-07-26 | 新华三信息安全技术有限公司 | Nat关联表的处理方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7042876B1 (en) * | 2000-09-12 | 2006-05-09 | Cisco Technology, Inc. | Stateful network address translation protocol implemented over a data network |
US7280557B1 (en) * | 2002-06-28 | 2007-10-09 | Cisco Technology, Inc. | Mechanisms for providing stateful NAT support in redundant and asymetric routing environments |
CN100334866C (zh) * | 2003-03-21 | 2007-08-29 | 华为技术有限公司 | 一种实现网关动态负载分担和备份的方法 |
-
2007
- 2007-10-12 CN CN2007101758191A patent/CN101136926B/zh active Active
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009146615A1 (zh) * | 2008-06-02 | 2009-12-10 | 成都市华为赛门铁克科技有限公司 | 网络地址转换业务的处理方法和系统及处理器 |
US8149840B2 (en) | 2008-06-02 | 2012-04-03 | Huawei Technologies Co., Ltd. | Method, system and processor for processing network address translation service |
WO2010102465A1 (zh) * | 2009-03-13 | 2010-09-16 | 华为技术有限公司 | 一种实现nat设备冗余备份的方法、装置和系统 |
CN101702657B (zh) * | 2009-12-04 | 2012-04-18 | 杭州华三通信技术有限公司 | 一种nat业务的热备份方法和设备 |
CN103188154A (zh) * | 2013-04-19 | 2013-07-03 | 杭州华三通信技术有限公司 | 一种网络地址转换的方法和板卡 |
CN103188154B (zh) * | 2013-04-19 | 2016-03-02 | 杭州华三通信技术有限公司 | 一种网络地址转换的方法和板卡 |
CN103442093A (zh) * | 2013-07-22 | 2013-12-11 | 汉柏科技有限公司 | 实现网络地址转换的方法 |
CN105791448B (zh) * | 2014-12-18 | 2019-10-25 | 华为技术有限公司 | 一种地址分配方法、cgn设备及cgn双主系统 |
US10320738B2 (en) | 2014-12-18 | 2019-06-11 | Huawei Technologies Co., Ltd. | Address allocation method, CGN device, and CGN dual-active system |
EP3169044A4 (en) * | 2014-12-18 | 2017-08-16 | Huawei Technologies Co., Ltd. | Address allocation method, cgn device and cgn double-master system |
CN105791448A (zh) * | 2014-12-18 | 2016-07-20 | 华为技术有限公司 | 一种地址分配方法、cgn设备及cgn双主系统 |
WO2016095561A1 (zh) * | 2014-12-18 | 2016-06-23 | 华为技术有限公司 | 一种地址分配方法、cgn设备及cgn双主系统 |
CN106612242A (zh) * | 2016-11-09 | 2017-05-03 | 新华三技术有限公司 | 一种流量转发方法及装置 |
CN107547659A (zh) * | 2017-09-29 | 2018-01-05 | 新华三技术有限公司 | 报文安全转发方法及装置 |
CN107547659B (zh) * | 2017-09-29 | 2020-08-11 | 新华三技术有限公司 | 报文安全转发方法及装置 |
CN107733808A (zh) * | 2017-11-20 | 2018-02-23 | 新华三技术有限公司 | 一种流量传输方法及装置 |
CN107733808B (zh) * | 2017-11-20 | 2021-10-12 | 新华三技术有限公司 | 一种流量传输方法及装置 |
CN107743098A (zh) * | 2017-11-23 | 2018-02-27 | 新华三技术有限公司 | Cgn板间负载分担的方法、装置和实现装置 |
CN108197298A (zh) * | 2018-01-23 | 2018-06-22 | 北京知行信科技有限公司 | 一种基于自然语言处理的智能购物交互方法及系统 |
CN108881040A (zh) * | 2018-06-29 | 2018-11-23 | 新华三信息安全技术有限公司 | 一种报文处理方法和装置 |
CN110365807A (zh) * | 2019-06-11 | 2019-10-22 | 北京邮电大学 | 一种基于地址翻译的网络会话流量对准方法 |
CN114079980A (zh) * | 2020-08-06 | 2022-02-22 | 北京佰才邦技术股份有限公司 | 一种切换方法及HaloB设备 |
CN114079980B (zh) * | 2020-08-06 | 2023-11-03 | 北京佰才邦技术股份有限公司 | 一种切换方法及基站设备 |
WO2022116848A1 (zh) * | 2020-12-01 | 2022-06-09 | 武汉绿色网络信息服务有限责任公司 | 报文传输方法、装置、计算机设备及存储介质 |
CN114793221A (zh) * | 2022-03-21 | 2022-07-26 | 新华三信息安全技术有限公司 | Nat关联表的处理方法及装置 |
CN114793221B (zh) * | 2022-03-21 | 2024-02-09 | 新华三信息安全技术有限公司 | Nat关联表的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101136926B (zh) | 2011-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101136926B (zh) | 非对称路由情况下的报文转发方法及网络地址转换网关 | |
JP6721166B2 (ja) | 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法 | |
TWI393401B (zh) | 用以管理多播路由之系統、裝置、方法及具有電腦程式收錄其中之記憶體 | |
CN101296238B (zh) | 一种保持安全套接层会话持续性的方法及设备 | |
CN101594358B (zh) | 三层交换方法、装置、系统和宿主机 | |
CN102148767A (zh) | 一种基于nat的数据路由方法及其装置 | |
CN102223365B (zh) | 基于ssl vpn网关集群的用户接入方法及其装置 | |
CN101964799B (zh) | 点到网隧道方式下地址冲突的解决方法 | |
CN1909507B (zh) | 一种报文转发方法和系统 | |
US20120303809A1 (en) | Offloading load balancing packet modification | |
JP3688149B2 (ja) | パケット中継装置及びパケット中継方法 | |
JP2008536369A (ja) | 接続転送 | |
CN102355417A (zh) | 一种数据中心二层互联方法和装置 | |
JPH11112577A (ja) | Lanシステム間相互接続方式及びネットワークサービスシステム | |
CN103546572B (zh) | 一种多云存储联网系统和方法 | |
CN104168184A (zh) | 报文转发方法及设备 | |
CN102170380A (zh) | 内网访问外网的方法和设备 | |
US9137271B2 (en) | System for switching between communication devices, switching method, and switching program | |
CN101827039B (zh) | 一种负载分担的方法和设备 | |
CN102255932A (zh) | 负载均衡方法和负载均衡器 | |
CN107872368B (zh) | 一种网络节点集群中网关可达性的检测方法、装置及终端 | |
CN104618243A (zh) | 路由方法、装置及系统、网关调度方法及装置 | |
CN101335681B (zh) | 获取穿越资源的方法、对等网络节点和对等网络 | |
CN104202420A (zh) | 一种支持物联网中间件集群扩展的方法和装置 | |
CN103347099B (zh) | 一种数据交互的方法、装置及系统 |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |