数据发送方法及装置、路由器与流程

文档序号:15455189发布日期:2018-09-15 00:55阅读:180来源:国知局
本发明涉及通信领域,具体而言,涉及一种数据发送方法及装置、路由器。
背景技术
::在当前英特网(internet)通信中,网络设备往往都处于状态防火墙保护之下。一般情况下状态防火墙都开启nat功能,nat设备的存在会导致某些网络应用失效,比如网络协议安全(internetprotocolsecurity,简称ipsec)的认证头协议(authenticationheader,简称ah)协议——ah协议保护外层ip首部信息(如源ip和目的ip地址)完整性,但是网络地址转换(networkaddresstranslation,简称nat)会修改ip源ip地址,因此到达对端ah协议校验ip报文完整性就会失败。针对上述技术问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种数据发送方法及装置、路由器,以至少解决相关技术中状态防火墙都开启nat的情况下导致端到端的透明性被破坏的问题。根据本发明的一个实施例,提供了一种数据发送方法,包括:接收指定设备发送的指定数据;根据路由器中的连接跟踪conntrack条目确定指定数据在路由器中的第一出口设备;其中,conntrack条目中记录有路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息;通过第一出口设备将指定数据发送出去。可选地,指定设备为与路由器连接的局域网lan侧设备或与路由器连接的广域网wan侧设备。可选地,在接收指定设备发送的指定数据之前,方法还包括:在接收到指定设备发送的请求报文之后,将路由器中数据发起方向的入口设备信息记录在conntrack条目中;在接收到与请求报文对应的响应报文之后,将路由器中数据响应方向的入口设备信息记录在conntrack条目中。可选地,在将路由器中数据响应方向的入口设备信息记录在conntrack条目中之后,方法还包括:根据响应报文查找conntrack条目,确定数据发起方向的入口设备信息和数据响应方向的入口设备信息;根据确定的数据发起方向的入口设备信息和数据响应方向的入口设备信息确定响应报文在路由器中的第二出口设备;通过第二出口设备将响应报文发送出去。可选地,在将路由器中数据发起方向的入口设备信息记录在conntrack条目中之后,方法还包括:判断请求报文中携带的源ip地址或目的ip地址是否是公共publicip地址;在判断结果为是的情况下,在不做网络地址转换nat操作的情况下直接将请求报文发送出去。可选地,在接收到指定设备发送的请求报文之前,方法还包括:在路由器中预先将publicip地址分配给指定设备或指定设备的对端设备,其中,对端设备用于响应指定设备发送的请求报文。可选地,在指定设备为局域网lan侧设备的情况下,请求报文中携带源ip地址,在指定设备为广域网wan侧设备的情况下,请求报文中携带目的ip地址。可选地,在指定设备为lan侧设备的情况下,在不做nat操作的情况下直接将请求报文发送出去包括:根据路由器中存储的路由表条目查找请求报文的目的ip地址;在不做nat操作的情况下直接将请求报文发送到与请求报文的目的ip地址对应的wan侧设备。可选地,在指定设备为wan侧设备的情况下,在不做nat操作的情况下直接将请求报文发送出去包括:根据路由器中存储的nat表,查找用于标记请求报文的标记值;在查找到的标记值为指定值的情况下,在不做nat操作的情况下直接将请求报文发送至与目的ip地址对应的lan侧设备。根据本发明的一个实施例,提供了一种数据发送装置,包括:接收模块,用于接收指定设备发送的指定数据;确定模块,用于根据路由器中的连接跟踪conntrack条目确定指定数据在路由器中的第一出口设备;其中,conntrack条目中记录有路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息;发送模块,用于通过第一出口设备将指定数据发送出去。可选地,指定设备为与路由器连接的局域网lan侧设备或与路由器连接的广域网wan侧设备。可选地,装置还包括:记录模块,用于在接收到指定设备发送的请求报文之后,将路由器中数据发起方向的入口设备信息记录在conntrack条目中;以及在接收到与请求报文对应的响应报文之后,将路由器中数据响应方向的入口设备信息记录在conntrack条目中。可选地,装置还包括:判断模块,用于判断请求报文中携带的源ip地址或目的ip地址是否是公共publicip地址;发送模块,用于在判断结果为是的情况下,在不做网络地址转换nat操作的情况下直接将请求报文发送出去。可选地,装置还包括:分配模块,用于在路由器中预先将publicip地址分配给指定设备或指定设备的对端设备,其中,对端设备用于响应指定设备发送的请求报文。根据本发明的一个实施例,提供了一种路由器,包括:接收数据接口,用于接收指定设备发送的指定数据;处理器,用于根据路由器中的连接跟踪conntrack条目确定指定数据在路由器中的第一出口设备;其中,conntrack条目中记录有路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息;发送数据接口,用于通过第一出口设备将指定数据发送出去。可选地,指定设备为与路由器连接的局域网lan侧设备或与路由器连接的广域网wan侧设备。可选地,处理器,用于在接收到指定设备发送的请求报文之后,将路由器中数据发起方向的入口设备信息记录在conntrack条目中;以及在接收到与请求报文对应的响应报文之后,将路由器中数据响应方向的入口设备信息记录在conntrack条目中。可选地,处理器,还用于判断请求报文中携带的源ip地址或目的ip地址是否是公共publicip地址;发送数据接口,用于在判断结果为是的情况下,在不做网络地址转换nat操作的情况下直接将请求报文发送出去。可选地,处理器,还用于在路由器中预先将publicip地址分配给指定设备或指定设备的对端设备,其中,对端设备用于响应指定设备发送的请求报文。根据本发明的又一个实施例,还提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如下操作:接收指定设备发送的指定数据;根据路由器中的连接跟踪conntrack条目确定指定数据在路由器中的第一出口设备;其中,conntrack条目中记录有路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息;通过第一出口设备将指定数据发送出去。根据本发明的又一个实施例,还提供了一种处理器,该处理器用于运行程序,其中,所述程序运行时执行如下操作:接收指定设备发送的指定数据;根据路由器中的连接跟踪conntrack条目确定指定数据在路由器中的第一出口设备;其中,conntrack条目中记录有路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息;通过第一出口设备将指定数据发送出去。通过本发明,通过路由器中的第一出口设备将接收到的指定数据发送出去,其中,该第一出口设备是由路由器中的连接跟踪conntrack条目所记录的路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息来确定的,即通过连接跟踪条目确定路由器中的第一出口设备后,直接通过第一出口设备将该指定数据发送出去,而不再做nat操作,因而可以保证端到端的透明性,进而解决了相关技术中状态防火墙都开启nat的情况下导致端到端的透明性被破坏的问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是本发明实施例的一种数据发送方法的移动终端的硬件结构框图;图2是根据本发明实施例的数据发送方法的流程图;图3是相关技术中提供的应用场景1中的组网示意图;图4是根据本发明优选实施例提供的应用场景1中的组网示意图;图5是相关技术中的应用场景2的场景组网示意图;图6是根据本发明优选实施例提供的应用场景2的场景组网示意图;图7是相关技术中的应用场景3的场景组网示意图;图8是根据本发明优选实施例提供的应用场景3的场景组网示意图;图9是根据本发明实施例的数据发送装置的结构框图;图10是根据本发明实施例的路由器的结构框图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。实施例1本申请实施例1所提供的方法实施例可以在路由器的运算装置中执行。图1是本发明实施例的一种数据发送方法的移动终端的硬件结构框图。如图1所示,路由器10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,路由器10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据发送方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至路由器10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括路由器10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。在本实施例中提供了一种运行于上述路由器的数据发送方法,图2是根据本发明实施例的数据发送方法的流程图,如图2所示,该流程包括如下步骤:步骤s202,接收指定设备发送的指定数据;步骤s204,根据路由器中的连接跟踪conntrack条目确定指定数据在路由器中的第一出口设备;其中,conntrack条目中记录有路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息;步骤s206,通过第一出口设备将指定数据发送出去。通过上述步骤,通过路由器中的第一出口设备将接收到的指定数据发送出去,其中,该第一出口设备是由路由器中的连接跟踪(conntrack)条目所记录的路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息来确定的,即通过连接跟踪条目确定路由器中的第一出口设备后,直接通过第一出口设备将该指定数据发送出去,而不再做nat操作,因而可以保证端到端的透明性,进而解决了相关技术中状态防火墙都开启nat的情况下导致端到端的透明性被破坏的问题。需要说明的是,上述指定设备可以为与路由器连接的局域网lan侧设备或可以为与路由器连接的广域网wan侧设备,但并不限于此。在本发明的一个实施例中,在上述步骤s202之前,需要请求报文和响应报文都已经过了上述路由器,具体的,上述方法还可以包括:在接收到指定设备发送的请求报文之后,将路由器中数据发起方向的入口设备信息记录在conntrack条目中;在接收到与请求报文对应的响应报文之后,将路由器中数据响应方向的入口设备信息记录在conntrack条目中。需要说明的是,上述conntrack条目是在接收到指定设备发送的请求报文之后,在状态防火墙入口prerouting链创建的一条conntrack条目,创建的conntrack条目用于记录数据的一些信息,比如数据发起方向的入口设备信息,数据响应方向的入口设备信息,但并不限于此。需要说明的是,在将路由器中数据响应方向的入口设备信息记录在conntrack条目中之后,上述方法还可以包括:根据响应报文查找conntrack条目,确定数据发起方向的入口设备信息和数据响应方向的入口设备信息;根据确定的数据发起方向的入口设备信息和数据响应方向的入口设备信息确定响应报文在路由器中的第二出口设备;通过第二出口设备将响应报文发送出去。需要说明的是,上述第二出口设备和上述第一出口设备可以是同一个出口设备,但并不限于此,需要说明的是,该出口设备或者上述入口设备是路由器中的虚拟设备,比如bro等,但并不限于此。在本发明的一个实施例中,在将路由器中数据发起方向的入口设备信息记录在conntrack条目中之后,上述方法还可以包括:判断请求报文中携带的源ip地址或目的ip地址是否是公共publicip地址;在判断结果为是的情况下,在不做网络地址转换nat操作的情况下直接将请求报文发送出去。需要说明的是,在接收到指定设备发送的请求报文之前,上述方法还可以包括:在路由器中预先将publicip地址分配给指定设备或指定设备的对端设备,其中,对端设备用于响应指定设备发送的请求报文。需要说明的是,在上述指定设备为局域网lan侧设备的情况下,上述请求报文中携带源ip地址,在上述指定设备为广域网wan侧设备的情况下,上述请求报文中携带目的ip地址。需要说明的是,在上述指定设备为lan侧设备的情况下,上述对端设备可以为wan侧设备,在上述指定设备为wan侧设备的情况下,上述对端设备可以为lan侧设备。在本发明的一个实施例中,在上述指定设备为lan侧设备的情况下,在不做nat操作的情况下直接将请求报文发送出去可以表现为:根据路由器中存储的路由表条目查找请求报文的目的ip地址;在不做nat操作的情况下直接将请求报文发送到与请求报文的目的ip地址对应的wan侧设备。需要说明的是,上述路由表条目可以是存储有报文的目的ip地址,和/或源ip地址,但并不限于此。在本发明的另一个实施例中,在指定设备为wan侧设备的情况下,在不做nat操作的情况下直接将请求报文发送出去可以表现为:根据路由器中存储的nat表,查找用于标记请求报文的标记值;在查找到的标记值为指定值的情况下,在不做nat操作的情况下直接将请求报文发送至与目的ip地址对应的lan侧设备。需要说明的是,上述步骤的执行主体可以是路由器,但并不限于此。上述方法还可以应用于网络应用的nat穿越场景,lan侧向wan侧提供服务访问,网络拓展等场景下,但并不限于此。为了更好地理解本发明实施例,以下结合优选的实施例对本发明做进一步解释。需要说明的是,下述实施例中的专利路由器可以是与上述实施例1中的路由器完成的功能相同。nat机制破坏了ip层面端到端的透明性,本发明优选实施例将下级路由器至专利路由器的数据流不启用nat功能来保证端到端的透明性。有效地解决部分网络应用的nat穿越的问题、提供内部服务器需要对外提供访问的业务一种新的实现方式。在多级路由设备场景下,本发明优选实施例还提供一种新的网络拓展方式。本发明优选实施例提供的方法包括:当从下级指定设备发出的数据流达到专利路由器时,则对这类数据流统一不做snat(sourcenetworkaddresstranslation)操作,直接转发至专利路由器的wan侧;对于下行数据流,专利路由器wan侧到达数据流目的ip地址为本机ip地址且不是访问本地服务,则不做dnat(destinationnetworkaddresstranslation)操作而直接将其转发至下级路由设备上。步骤1:在专利路由器上配置——选择将publicip地址分配给lan侧设备(以mac地址来标识)。步骤2:lan侧该设置通过dhcp协议来获取地址,通常情况下需要release和renew一下以便获取到该publicip信息。比如在windows系统上执行ipconfig/release和ipconfig/renew命令。该设备获取到包括publicip地址、掩码和dns信息,其中网关信息是通过publicip按照一定如下方法计算出来的:gateway=publicip&255.255.255.0+1;如果gateway恰好等于publicip,那么gateway=gateway+1;gateway是一个虚拟ip地址——在lan侧设备至专利路由器之间并无实际物理设备使用该ip地址,但是lan侧设备需要将报文全部送至该网络设备之上,因此在专利路由器上需要启用arp代理功能。专利路由器的lan侧接口启动虚拟网关的作用——从lan侧设备接收和向其发送ip报文。经过步骤1和步骤2之后,lan侧设备就可以通过专利路由器开展网络业务。下面分为lan侧主动访问internet和wan侧主动访问两种访问模式来描述专利路由器数据流处理的原理。lan侧主动访问internet:(1)当lan侧请求报文到达专利路由器时,在状态防火墙入口prerouting链创建一条新conntrack条目(记录数据流三层和四层信息),并记录数据发起方向的入口设备;当报文到达路由模块时,路由模块根据路由表条目查找到该报文需要送至wan侧;在状态防火墙出口postrouting不再需要执行snat操作,直接发送出去。(2)当wan侧响应报文达到专利路由器时,在状态防火墙入口prerouting链根据报文信息查找到conntrack条目,并记录数据响应方向的入口设备;当报文到达路由模块时,根据conntrack条目的发起方向和响应方向的设备,设置路由出口设备;路由查找直接送至lan侧设备。(3)当请求报文和响应报文都经过专利路由器之后,则conntrack条目信息保存完整,那么后面数据流则根据conntrack条目的发起方向和响应方向的设备,设置路由出口设备;路由查找直接送至lan或wan侧设备。wan侧主动访问lan侧服务:(1)当wan侧请求报文到达专利路由器时,在状态防火墙入口prerouting链创建一条新conntrack条目,并记录该数据流发起方向的入口设备;在nat表中,目的ip地址为publicip的数据mark设置为特定值;在查找路由时,如果报文的mark为该特定值,则将其送至lan侧设备。(2)当lan侧响应报文达到专利路由器时,在状态防火墙入口prerouting链根据报文信息查找到conntrack条目,并记录数据流响应方向的入口设备;当报文到达路由模块时,根据conntrack条目的发起方向和响应方向的设备,设置路由出口设备;路由查找直接送至wan侧设备。(3)与lan侧主动访问internet相同,当请求报文和响应报文都经过专利路由器之后,那么后面数据流则根据conntrack条目的发起方向和响应方向的设备,设置路由出口设备;路由查找直接送至lan或wan侧设备。以下结合应用场景解释本申请优选实施例:应用场景1——网络应用的nat穿越场景(以ipsecah协议为例)在普通路由器启用nat的情况下,ipsecah协议是无法正常工作的(参考rfc3715),图3是相关技术中提供的应用场景1中的组网示意图,如图3所示:一方面是标准ike协议不支持服务器和客户端之间存在nat设备;另一方面是,ah协议保护外层ip首部信息(如源ip和目的ip地址)完整性,但是nat会修改ip源ip地址,因此到达对端ah协议校验ip报文完整性就会失败。在专利路由器中,ipsecah协议可以正常工作。在这种情况下,解决如下两个问题:(1)ike协商问题——ipsec客户端和服务器之间ike检测不到nat设备,因此可以ike协商成功;(2)ah功能异常——ipsec客户端发出的报文(ip报文头部)经过中间路由器时不会被修改(nat设备会修改报文源ip地址),到达服务器端ah能够校验通过。图4是根据本发明优选实施例提供的应用场景1中的组网示意图,如图4所示:该场景部署步骤如下:步骤1:在专利路由器上配置——选择将publicip地址分配给lan侧设备(以mac地址来标识)。步骤2:lan侧该设置通过dhcp协议来获取地址,通常情况下需要release和renew一下以便获取到该publicip信息。比如在windows系统上执行ipconfig/release和ipconfig/renew命令。步骤3:客户端配置ipsec参数(选择ah协议),则客户端和服务器端ah协议能够保护报文完整性。应用场景2——lan侧向wan侧提供服务访问(以web服务为例)在普通路由器启用nat的情况下,图5是相关技术中的应用场景2的场景组网示意图,如图5所示:在这种情况下,需要在nat路由器上面配置iptables规则:(1)允许wan侧主动访问80端口的访问数据流不会被丢弃。(2)数据流需要做目的地址转换并送至路由器lan侧web服务器之上。图6是根据本发明优选实施例提供的应用场景2的场景组网示意图,如图6所示:该场景部署步骤如下:步骤1:在专利路由器上配置——选择将publicip地址分配给lan侧设备(以mac地址来标识)。步骤2:lan侧该设置通过dhcp协议来获取地址,通常情况下需要release和renew一下以便获取到该publicip信息。比如在windows系统上执行ipconfig/release和ipconfig/renew命令。步骤3:wan侧用户可以直接访问lan侧web服务器。应用场景3——网络拓展在普通路由器启用nat的情况下,图7是相关技术中的应用场景3的场景组网示意图,如图7所示:在配置下级路由器过程中,不能配置其lan侧dhcp地址池不能与上级路由器的lan侧地址池冲突。在专利路由器中,不再需要特别注意下级路由器的lan侧dhcp地址池是否与上级路由器的lan侧地址池冲突。图8是根据本发明优选实施例提供的应用场景3的场景组网示意图,如图8所示:该场景部署步骤如下:步骤1:在专利路由器上配置——选择将publicip地址分配给lan侧设备(以mac地址来标识)。步骤2:lan侧该设置通过dhcp协议来获取地址,通常情况下需要release和renew一下以便获取到该publicip信息。比如在windows系统上执行ipconfig/release和ipconfig/renew命令。步骤3:下级路由器的lan侧设备即可访问internet。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例2在本实施例中还提供了一种数据发送装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图9是根据本发明实施例的数据发送装置的结构框图,如图9所示,该装置包括:接收模块92,用于接收指定设备发送的指定数据;确定模块94,与上述接收模块92连接,用于根据路由器中的连接跟踪conntrack条目确定指定数据在路由器中的第一出口设备;其中,conntrack条目中记录有路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息;发送模块96,与上述确定模块94连接,用于通过第一出口设备将指定数据发送出去。通过上述装置,上述发送模块96通过路由器中的第一出口设备将接收到的指定数据发送出去,其中,该第一出口设备是上述确定模块94由路由器中的连接跟踪conntrack条目所记录的路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息来确定的,即通过连接跟踪条目确定路由器中的第一出口设备后,直接通过第一出口设备将该指定数据发送出去,而不再做nat操作,因而可以保证端到端的透明性,进而解决了相关技术中状态防火墙都开启nat的情况下导致端到端的透明性被破坏的问题。需要说明的是,上述指定设备可以为与路由器连接的局域网lan侧设备或可以为与路由器连接的广域网wan侧设备,但并不限于此。在本发明的一个实施例中,上述装置还可以包括:记录模块,与上述接收模块92连接,用于在接收到指定设备发送的请求报文之后,将路由器中数据发起方向的入口设备信息记录在conntrack条目中;以及在接收到与请求报文对应的响应报文之后,将路由器中数据响应方向的入口设备信息记录在conntrack条目中。需要说明的是,上述conntrack条目是在接收到指定设备发送的请求报文之后,在状态防火墙入口prerouting链创建的一条conntrack条目,创建的conntrack条目用于记录数据的一些信息,比如数据发起方向的入口设备信息,数据响应方向的入口设备信息,但并不限于此。在本发明的一个实施例中,上述确定模块94还可以用于根据响应报文查找conntrack条目,确定数据发起方向的入口设备信息和数据响应方向的入口设备信息;根据确定的数据发起方向的入口设备信息和数据响应方向的入口设备信息确定响应报文在路由器中的第二出口设备;上述发送模块92还可以用于通过第二出口设备将响应报文发送出去。需要说明的是,上述第二出口设备和上述第一出口设备可以是同一个出口设备,但并不限于此,需要说明的是,该出口设备或者上述入口设备是路由器中的虚拟设备,比如bro等,但并不限于此。在本发明的一个实施例中,上述装置还可以包括:判断模块,与上述记录模块连接,用于判断请求报文中携带的源ip地址或目的ip地址是否是公共publicip地址;上述发送模块96,还可以用于在判断结果为是的情况下,在不做网络地址转换nat操作的情况下直接将请求报文发送出去。在本发明的一个实施例中,上述装置还可以包括:分配模块,与上述接收模块92连接,用于在路由器中预先将publicip地址分配给指定设备或指定设备的对端设备,其中,对端设备用于响应指定设备发送的请求报文。需要说明的是,在上述指定设备为局域网lan侧设备的情况下,上述请求报文中携带源ip地址,在上述指定设备为广域网wan侧设备的情况下,上述请求报文中携带目的ip地址。需要说明的是,在上述指定设备为lan侧设备的情况下,上述对端设备可以为wan侧设备,在上述指定设备为wan侧设备的情况下,上述对端设备可以为lan侧设备。在本发明的一个实施例中,在上述指定设备为lan侧设备的情况下,上述发送模块96还可以用于根据路由器中存储的路由表条目查找请求报文的目的ip地址;在不做nat操作的情况下直接将请求报文发送到与请求报文的目的ip地址对应的wan侧设备。需要说明的是,上述路由表条目可以是存储有报文的目的ip地址,和/或源ip地址,但并不限于此。在本发明的另一个实施例中,在指定设备为wan侧设备的情况下,上述发送模块96还可以用于根据路由器中存储的nat表,查找用于标记请求报文的标记值;在查找到的标记值为指定值的情况下,在不做nat操作的情况下直接将请求报文发送至与目的ip地址对应的lan侧设备。需要说明的是,上述装置可以位于路由器中,但并不限于此。需要说明的是,本实施例中的路由器也可以为上述实施例1中的专利路由器,但并不尽然。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。实施例3根据本发明的一个实施例,图10是根据本发明实施例的路由器的结构框图,如图10所示,该装置包括:接收数据接口1002,用于接收指定设备发送的指定数据;处理器1004,与上述接收数据接口1002连接,用于根据路由器中的连接跟踪conntrack条目确定指定数据在路由器中的第一出口设备;其中,conntrack条目中记录有路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息;发送数据接口1006,与上述处理器1004连接,用于通过第一出口设备将指定数据发送出去。通过上述路由器,上述发送数据接口1006通过路由器中的第一出口设备将接收到的指定数据发送出去,其中,该第一出口设备是上述处理器1004由路由器中的连接跟踪conntrack条目所记录的路由器中数据发起方向的入口设备信息和路由器中数据响应方向的入口设备信息来确定的,即通过连接跟踪条目确定路由器中的第一出口设备后,直接通过第一出口设备将该指定数据发送出去,而不再做nat操作,因而可以保证端到端的透明性,进而解决了相关技术中状态防火墙都开启nat的情况下导致端到端的透明性被破坏的问题。需要说明的是,上述指定设备可以为与路由器连接的局域网lan侧设备或可以为与路由器连接的广域网wan侧设备,但并不限于此。在本发明的一个实施例中,上述处理器1004,用于在接收到指定设备发送的请求报文之后,将路由器中数据发起方向的入口设备信息记录在conntrack条目中;以及在接收到与请求报文对应的响应报文之后,将路由器中数据响应方向的入口设备信息记录在conntrack条目中。需要说明的是,上述conntrack条目是在接收到指定设备发送的请求报文之后,在状态防火墙入口prerouting链创建的一条conntrack条目,创建的conntrack条目用于记录数据的一些信息,比如数据发起方向的入口设备信息,数据响应方向的入口设备信息,但并不限于此。在本发明的一个实施例中,上述处理器1004还可以用于根据响应报文查找conntrack条目,确定数据发起方向的入口设备信息和数据响应方向的入口设备信息;根据确定的数据发起方向的入口设备信息和数据响应方向的入口设备信息确定响应报文在路由器中的第二出口设备;上述发送数据接口1006还可以用于通过第二出口设备将响应报文发送出去。需要说明的是,上述第二出口设备和上述第一出口设备可以是同一个出口设备,但并不限于此,需要说明的是,该出口设备或者上述入口设备是路由器中的虚拟设备,比如bro等,但并不限于此。在本发明的一个实施例中,上述处理器1004,还用于判断请求报文中携带的源ip地址或目的ip地址是否是公共publicip地址;发送数据接口1006,用于在判断结果为是的情况下,在不做网络地址转换nat操作的情况下直接将请求报文发送出去。在本发明的一个实施例中,上述处理器1004,还用于在路由器中预先将publicip地址分配给指定设备或指定设备的对端设备,其中,对端设备用于响应指定设备发送的请求报文。需要说明的是,在上述指定设备为局域网lan侧设备的情况下,上述请求报文中携带源ip地址,在上述指定设备为广域网wan侧设备的情况下,上述请求报文中携带目的ip地址。需要说明的是,在上述指定设备为lan侧设备的情况下,上述对端设备可以为wan侧设备,在上述指定设备为wan侧设备的情况下,上述对端设备可以为lan侧设备。在本发明的一个实施例中,在上述指定设备为lan侧设备的情况下,上述发送数据接口1006还可以用于根据路由器中存储的路由表条目查找请求报文的目的ip地址;在不做nat操作的情况下直接将请求报文发送到与请求报文的目的ip地址对应的wan侧设备。需要说明的是,上述路由表条目可以是存储有报文的目的ip地址,和/或源ip地址,但并不限于此。在本发明的另一个实施例中,在指定设备为wan侧设备的情况下,上述发送数据接口1006还可以用于根据路由器中存储的nat表,查找用于标记请求报文的标记值;在查找到的标记值为指定值的情况下,在不做nat操作的情况下直接将请求报文发送至与目的ip地址对应的lan侧设备。实施例4本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行实施例1中的方法的步骤的程序代码。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行实施例1中的方法的步骤。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1