一种基于nat的报文转发方法和设备的制作方法

文档序号:7552711阅读:134来源:国知局
专利名称:一种基于nat的报文转发方法和设备的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种基于NAT的报文转发方法和设备。
背景技术
NAT (Network Address Translation,网络地址转换)是将IP数据报文头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用IP地址空间的枯竭。图1描述了一种基本的NAT应用,其地址转换的基本过程包括:(I)内网用户主机Host (192.168.1.3)向外网服务器Server (1.1.1.2)发送的IP数据报文通过NAT设备。(2) NAT设备查看IP数据报文的报头内容,发现该报文是发往外网的,将其源IP地址字段的私网地址192.168.1.3转换成一个可在Internet上选路的公网地址20.1.1.1,并将该报文发送给外网服务器,并在NAT设备的网络地址转换表中记录这一地址转换前后的映射关系。(3)外网服务器给内网用户发送的应答报文(其初始目的IP地址为20.11.1)到达NAT设备后,NAT设备查看报头内容,然后查找网络地址转换表的记录,用对应的内网私有地址192.168.1.3替换初始的目的IP地址。上述的NAT过程对终端(如图1中的Host和Server)来说是透明的。对外网服务器而言,它认为内网用户主机的IP地址就是20.1.1.1,并不知道有192.168.1.3这个地址。地址转换的优点在于,在为内部网络主机提供了“隐私”保护的前提下,实现了内部网络的主机通过该功能访问外部网络的资源。通常情况下,NAT设备上连接到用户内部网络的接口称为NAT内部接口,连接到外部网络(如Internet)的接口称为NAT外部接口。在实际应用中,NAT设备上可能存在多个NAT外部接口,并且形成等价路由。如图2所示,当用户从用户内部网络访问外部网络时,NAT设备有可能有多个外部接口形成等价路由。此种情况下,如果外部接口连接的单板不是做NAT转换的单板,则经过NAT转换后的报文经过该外部接口所在的单板后,会再次进行路由查找,由于外部接口的路由是等价路由,因此按照等价路由负载分担的算法,比如HASH(哈希)算法,从等价路由中选择一路由,并从对应的外部接口将报文转发出去,这样,对于该用户的网络访问过程,在NAT设备上将无法保证从外网-> 内网的请求报文的入接口,与从内网_>外网的应答报文的出接口保持一致。因此,亟需一种技术,能够保证在这种情况下,在NAT设备上实现从外部接口进来的报文经过NAT转换后仍然从该外部接口转发出去
发明内容
本发明实施例提供了一种基于NAT的报文转发方法和设备,用于在NAT设备的外部接口有等价路由存在的情况下,实现从外部接口进来的报文返回的时候也从该外部接口发送出去。本发明实施例提供的一种基于NAT的报文转发方法,该方法包括:NAT设备的NAT模块从内部接口接收报文并进行NAT转换,根据地址转换表查询对应的外部接口,查询所述外部接口所在的ARP表中的IP地址,将查询到的IP地址转换MAC地址并用该MAC地址替换该报文的源MAC地址,将该报文发送给连接外部接口的硬件转发模块;连接外部接口的硬件转发模块根据NAT模块发来的报文的源MAC地址匹配策略路由,根据匹配到的策略路由所重定向到的目的IP地址查询对应的ARP表项中的出接口,将该报文的源MAC地址更新为所述出接口的MAC地址,从所述出接口转发该报文。其中,所述策略路由的配置过程包括:所述NAT设备的路由协议模块向连接外部接口的硬件转发模块配置路由时,查询路由的下一跳IP地址的属性,若路由的下一跳IP地址为指向外部接口学习过来的直连路由,则将所述下一跳IP地址转换为MAC地址,并根据转换后的MAC地址在所述硬件转发模块中配置策略路由,所述策略路由用于将源MAC地址与所述转换后的MAC地址匹配的报文重定向到所述下一跳IP地址。或者,所述策略路由的配置过程包括:所述NAT设备的ARP模块从外部接口学习到ARP表项后,将所述ARP表项中的IP地址转换为MAC地址,并根据转换后的MAC地址在连接外部接口的硬件转发模块中配置策略路由,所述策略路由用于将源MAC地址与所述转换后的MAC地址匹配的报文重定向到所述ARP表项中的IP地址。本发明实施例提供的一种NAT设备,包括:NAT模块,用于对从本设备内部接口接收到的报文进行NAT转换后,根据地址转换表查询对应的外部接口,查询所述外部接口所在的ARP表项中的IP地址,将查询到的IP地址转换为MAC地址并用该MAC地址替换该报文的源MAC地址,将该报文发送给连接外部接口的硬件转发模块;硬件转发模块,用于根据NAT模块发来的报文的源MAC地址匹配策略路由,根据匹配到的策略路由所重定向到的目的IP地址查询对应的ARP表项中的出接口,将该报文的源MAC地址更新为所述出接口的MAC地址,从所述出接口转发该报文。进一步的,该设备还包括:路由协议模块,用于在向连接外部接口的硬件转发模块配置路由时,查询路由的下一跳IP地址的属性,若路由的下一跳IP地址为指向外部接口学习过来的直连路由,则将所述下一跳IP地址转换为MAC地址,并根据转换后的MAC地址在所述硬件转发模块中配置策略路由,所述策略路由用于将源MAC地址与所述转换后的MAC地址匹配的报文重定向到所述下一跳IP地址。进一步的,该设备还包括:ARP模块,用于从外部接口学习到ARP表项后,将所述ARP表项中的IP地址转换为MAC地址,并根据转换后的MAC地址在连接外部接口的硬件转发模块中配置策略路由,所述策略路由用于将源MAC地址与所述转换后的MAC地址匹配的报文重定向到所述ARP表项中的IP地址。本发明的上述实施例中,NAT设备中的NAT模块在从本设备内部接口接收到报文并进行NAT转换后,根据地址转换表查询对应的外部接口,根据ARP表查询该外部接口对应的IP地址,将该IP地址转换MAC地址并用该MAC地址替换该报文的源MAC地址,将该报文发送给连接外部接口的硬件转发模块,以使连接外部接口的硬件转发模块根据NAT模块发来的报文的源MAC地址匹配策略路由,根据匹配到的策略路由所重定向到的目的IP地址查询对应的ARP表项中的出接口,从该出接口转发该报文,从而实现从外部接口进来的报文经过NAT转换后仍然从该外部接口转发出去。


图1为现有技术中NAT转换的示意图;图2为现有技术中NAT设备上存在多个外部接口的示意图;图3为本发明实施例中的基于NAT的报文转发示意图;图4A、图4B、图4C分别为本发明实施例提供的NAT设备的结构示意图。
具体实施例方式下面结合符合对本发明实施例进行详细描述。实施例一NAT设备的路由协议模块在连接外部接口的单板上的硬件转发模块中配置路由时,查询该路由引用的下一跳的属性,如果该路由的下一跳是指向NAT设备外部接口学习过来的外部接口直连路由,则将该下一跳IP地址转换为MAC地址形式,并根据该MAC地址向硬件转发模块配置一条策略路由,用以将源MAC地址与该MAC地址匹配的报文重定向到该下一跳IP地址。当NAT设备从内部网络接收到报文后,根据匹配的地址转换表项确定对应的外部接口,查询该外部接口所在ARP表项中的IP地址,将该IP地址转换为MAC地址形式并替换报文中的源MAC地址,并将报文发送给连接外部接口的单板;连接外部接口的单板上的硬件转发模块根据该报文的源MAC地址匹配该硬件转发模块上的策略路由,并根据匹配的策略路由所重定向到的目的IP地址查询ARP表项,从查询到的ARP表项中的出接口转发该报文。本发明实施例中所涉及的NAT设备可以是集中式NAT设备,也可以是分布式架构的NAT设备。下面以图3所示的架构为例,对本实施例的具体实现过程进行详细描述。如图3所示,NAT设备的外部接口 port I和port2是NAT设备连接外部网络(公网)的接口。port I对应的路由和port2对应的路由为等价路由。portl 连接设备 I,设备 I 的 IP 地址为 1.1.1.1,MAC 地址为 χχ-χχ-χχ-χχ-χχ-χχ,port2 连接设备 2,设备 2 的 IP 地址为 2.2.2.2, MAC 地址为 yy-yy-yy-yy-yy-yy,portO 为NAT设备连接用户内部网络(私网)的内部接口。portl、port2所连接的单板不做NAT转换,该单板上的ASIC (ApplicationSpecific Integrated Circuit,特定用途集成电路)芯片上配置硬件转发表项,负责转发报文。当NAT设备从portl收到发往用户内部网络的报文时,portl所连接的单板学习到表I所示的ARP表项,并生成对应的直连路由:1.1.1.1/32->1.1.1.1。NAT设备对该报文进行NAT转换,生成如表2所示的地址转换表项,并将转换后的报文通过portO发送到用户内部网络。表I
权利要求
1.一种基于网络地址转换NAT的报文转发方法,其特征在于,该方法包括: NAT设备的NAT模块从内部接口接收报文并进行NAT转换,根据地址转换表查询对应的外部接口,查询所述外部接口所在的ARP表中的IP地址,将查询到的IP地址转换MAC地址并用该MAC地址替换该报文的源MAC地址,将该报文发送给连接外部接口的硬件转发模块; 连接外部接口的硬件转发模块根据NAT模块发来的报文的源MAC地址匹配策略路由,根据匹配到的策略路由所重定向到的目的IP地址查询对应的ARP表项中的出接口,将该报文的源MAC地址更新为所述出接口的MAC地址,从所述出接口转发该报文。
2.如权利要求1所述的方法,其特征在于,所述策略路由的配置过程包括: 所述NAT设备的路由协议模块向连接外部接口的硬件转发模块配置路由时,查询路由的下一跳IP地址的属性,若路由的下一跳IP地址为指向外部接口学习过来的直连路由,则将所述下一跳IP地址转换为MAC地址,并根据转换后的MAC地址在所述硬件转发模块中配置策略路由,所述策略路由用于将源MAC地址与所述转换后的MAC地址匹配的报文重定向到所述下一跳IP地址。
3.如权利要求2所述的方法,其特征在于,所述路由协议模块将所述下一跳IP地址转换为MAC地址时所使用的规则,与所述NAT模块将IP地址转换为MAC地址时所使用的规则相同。
4.如权利要求1所述的方法,其特征在于,所述策略路由的配置过程包括: 所述NAT设备的ARP模块从外部接口学习到ARP表项后,将所述ARP表项中的IP地址转换为MAC地址,并根据转换后的MAC地址在连接外部接口的硬件转发模块中配置策略路由,所述策略路由用于将源M AC地址与所述转换后的MAC地址匹配的报文重定向到所述ARP表项中的IP地址。
5.如权利要求4所述的方法,其特征在于,所述ARP模块将所述ARP表项中的IP地址转换为MAC地址时所使用的规则,与所述NAT模块将IP地址转换为MAC地址时所使用的规则相同。
6.—种NAT设备,其特征在于,包括: NAT模块,用于对从本设备内部接口接收到的报文进行NAT转换后,根据地址转换表查询对应的外部接口,查询所述外部接口所在的ARP表项中的IP地址,将查询到的IP地址转换为MAC地址并用该MAC地址替换该报文的源MAC地址,将该报文发送给连接外部接口的硬件转发模块; 硬件转发模块,用于根据NAT模块发来的报文的源MAC地址匹配策略路由,根据匹配到的策略路由所重定向到的目的IP地址查询对应的ARP表项中的出接口,将该报文的源MAC地址更新为所述出接口的MAC地址,从所述出接口转发该报文。
7.如权利要求6所述的设备,其特征在于,还包括: 路由协议模块,用于在向连接外部接口的硬件转发模块配置路由时,查询路由的下一跳IP地址的属性,若路由的下一跳IP地址为指向外部接口学习过来的直连路由,则将所述下一跳IP地址转换为MAC地址,并根据转换后的MAC地址在所述硬件转发模块中配置策略路由,所述策略路由用于将源MAC地址与所述转换后的MAC地址匹配的报文重定向到所述下一跳IP地址。
8.如权利要求7所述的设备,其特征在于,所述路由协议模块将所述下一跳IP地址转换为MAC地址时所使用的规则,与所述NAT模块将IP地址转换为MAC地址时所使用的规则相同。
9.如权利要求6所述的设备,其特征在于,还包括: ARP模块,用于从外部接口学习到ARP表项后,将所述ARP表项中的IP地址转换为MAC地址,并根据转换后的MAC地址在连接外部接口的硬件转发模块中配置策略路由,所述策略路由用于将源MAC地址与所述转换后的MAC地址匹配的报文重定向到所述ARP表项中的IP地址。
10.如权利要求9所述的设备,其特征在于,所述ARP模块将所述ARP表项中的IP地址转换为MAC地址时所使用的 规则,与所述NAT模块将IP地址转换为MAC地址时所使用的规则相同。
全文摘要
本发明公开了NAT的报文转发方法和设备。该方法包括NAT设备的路由协议模块向连接外部接口的硬件转发模块配置路由时,对于下一跳属性为指向外部接口学习过来的直连路由的路由,将该下一跳IP地址封装为MAC地址,并在硬件转发模块中配置策略路由,用于将源MAC地址与所述MAC地址匹配的报文重定向到该下一跳IP地址对应的外部接口;当所述NAT设备的NAT模块从内部接口接收到报文并进行NAT转换后,先后根据地址转换表和ARP表匹配到外部接口对应的IP地址,将该IP地址转换为MAC地址并替换报文的源MAC地址,发送给连接外部接口的硬件转发模块;硬件转发模块根据报文的源MAC地址匹配策略路由,根据匹配到的策略路由将该报文重定向到指定的外部接口进行转发。
文档编号H04L29/12GK103152269SQ20131006053
公开日2013年6月12日 申请日期2013年2月26日 优先权日2013年2月26日
发明者覃志祥, 顾锦枫 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1