策略路由实现方法、装置及网络设备的制作方法

文档序号:7896854阅读:363来源:国知局
专利名称:策略路由实现方法、装置及网络设备的制作方法
技术领域
本发明涉及网络通信技术,尤其涉及一种策略路由实现方法、装置及网络设备。
技术背景
策略路由是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。基于 策略路由,用户不仅可以根据报文的目的地址选择转发路径,还可以根据报文的源地址、端 口以及长度等信息选择转发路径。策略路由允许报文按照用户指定的策略进行转发,例如 用户可以指定某个网络发出的报文只能转发到特定端口 ;又例如对于服务质量(Quality of Service ;简称为=Qos)需求或虚拟专用网络(Virtual Private Network ;简称为=VPN) 拓扑结构等因有特殊需求而要求某些报文只能通过特定的路径进行转发时,也可以使用策 略路由来实现。
随着策略路由的出现和局域网络的发展,无论是企业内部网络、网吧局域网还是 各大高校的校园网络等都有了新的需求,即要求其网络出口设备能够保证某种应用的带 宽,即为该应用提供一条专用路由。例如在网吧的局域网中,由于点对点(Peer-to-Peer; 简称为P2P)下载会占用大量的带宽,在下载过程中会影响玩游戏的用户,如果基于P2P应 用的下载用户能够单独走一条路由,而玩游戏的用户走另一条专用路由,就可以极大的降 低相互之间的影响。又例如对于需要对某些应用进行监控的局域网而言,如果能够让需要 监控的应用专走一条路由,这样由于抓到的报文都属于该应用,能够极大的方便网络管理 员对该应用进行监控、流量管理等,保证局域网的安全。
但是,现有技术中策略路由多是根据抽象的目的网际协议(InternetProtocol ; 简称为IP)地址、端口等信息来配置策略的,无法满足上述基于应用实现策略路由的需 求。基于此,现有技术出现了基于应用识别的策略路由方法,网络设备上预先根据应用类型 配置了多条路由控制策略,根据接收到的第一个报文对应用进行识别,然后根据应用类型 查找相应路由控制策略,根据路由控制策略转发报文。现有基于应用识别的策略路由方法 仅适用于通过单个报文就能识别出来的应用,其中,由于单个报文的特征码特别少,通常也 是根据接收第一个报文的端口来识别的;而在采用传输控制协议(Transmission Control Protocol ;简称为TCP)的网络中的大多数应用往往无法通过单个报文进行识别,因此,现 有基于应用识别的策略路由应用范围受限,无法彻底解决基于应用实现策略路由的问题。发明内容
本发明提供一种策略路由实现方法、装置及网络设备,用以克服现有技术在基于 应用识别实现策略路由时受必须在第一个报文时识别出应用类型限制的缺陷,实现基于应 用的策略路由。
本发明提供一种策略路由实现方法,包括
存储客户端发送的至少一个报文,并在根据基本路由信息将所述至少一个报文转 发给服务器的过程中,根据所述至少一个报文识别所述至少一个报文对应的应用类型,所述基本路由信息包括第一转发接口;
根据所述应用类型查询预先存储的策略路由表,获取策略路由信息,所述策略路 由信息包括第二转发接口 ;
根据所述基本路由信息,向所述服务器发送连接断开请求报文,以使所述客户端 与所述服务器断开连接;
根据所述策略路由信息,向所述服务器发送所述至少一个报文中的第一报文,以 使所述客户端与所述服务器建立连接。
本发明提供一种策略路由实现装置,包括
存储模块,用于存储客户端发送的至少一个报文;
第一转发模块,用于根据基本路由信息将所述至少一个报文转发给服务器,所述 基本路由信息包括第一转发接口;
识别模块,用于在所述第一转发模块将所述至少一个报文转发给所述服务器的过 程中,根据所述至少一个报文识别所述至少一个报文对应的应用类型;
获取模块,用于根据所述应用类型查询预先存储的策略路由表,获取策略路由信 息,所述策略路由信息包括第二转发接口 ;
第一发送模块,用根据所述基本路由信息,向所述服务器发送连接断开请求报文, 以使所述客户端与所述服务器断开连接;
第二发送模块,用于根据所述策略路由信息,向所述服务器发送所述至少一个报 文中的第一报文,以使所述客户端与所述服务器建立连接。
本发明提供一种网络设备,包括本发明提供的任一策略路由实现装置。
本发明的策略路由实现方法、装置及网络设备,策略路由实现装置在接收到客户 端的报文,在识别出报文的应用类型之前存储报文,并根据基本路由信息转发报文;在识别 出报文的应用类型时,获取策略路由信息,然后根据基本路由信息向服务器发送请求报文 以使客户端与服务器断开连接,并根据策略路由信息重新向服务器发送所存储的客户端的 报文,使客户端与服务器重新建立连接,以使客户端后续发送的报文可以根据新建立的连 接所对应的策略路由信息进行转发,实现了基于应用识别的策略路由。在本发明技术方案 中,采用识别出应用类型之前存储报文的手段,解决了现有技术受必须根据第一个报文识 别出报文的应用类型的限制的问题,可用于实现根据任何应用进行的策略路由。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。
图1为本发明实施例一提供的策略路由实现方法的流程图2为本发明实施例所基于的网络系统的结构示意图3为本发明实施例二提供的策略路由信息实现方法的流程图4A为本发明实施例三提供的策略路由实现方法的流程图4B为本发明实施例三提供的路由策略实现方法中客户端、路由设备以及服务器之间的交互流程图5为本发明实施例四提供的策略路由实现装置的结构示意图6为本发明实施例五提供的策略路由实现装置的结构示意图7为本发明实施例六提供的策略路由实现装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的策略路由实现方法的流程图。如图1所示,本实施 例的方法包括
步骤11、存储客户端发送的至少一个报文,并在根据基本路由信息将至少一个报 文转发给服务器的过程中,根据至少一个报文识别至少一个报文对应的应用类型,所述基 本路由信息包括第一转发接口;
具体的,客户端向路由设备发送报文,路由设备接收客户端发送的报文,并存储接 收到的报文;路由设备根据报文携带的地址信息,例如源IP地址、目的IP地址等,查询其上 存储的基本路由表,获取目的IP地址对应的基本路由信息。其中,路由设备上的基本路由 表中存储的基本路由信息是根据IP地址、端口号等信息进行地址学习生成的;每条基本路 由信息一般包括源IP地址、目的IP地址、转发接口(即下一跳路由)等信息;其中基本路 由信息中的转发接口即为第一转发接口。
路由设备通过基本路由信息中的转发接口将报文转发给目的地址对应的服务器; 其中,目的地址对应的网络设备并不限于服务器。
其中,路由设备在将报文转发给服务器的过程中,对该转发过程中存储的报文进 行应用识别,识别报文所属应用的应用类型。对于目前存在的各种应用,路由设备一般在20 个报文内就可识别出报文所属应用的应用类型;因此,在本实施例中,至少一个报文的数量 通常为不大于20。
步骤12、根据应用类型查询预先存储的策略路由表,获取策略路由信息,所述策略 路由信息包括第二转发接口;
当路由设备识别出报文所属应用的应用类型(例如该应用属于迅雷下载)时,就 需要根据应用进行路由选择,即选择基于应用的策略路由。具体的,路由设备根据识别出 来的应用类型查询其上预先存储的策略路由表,获取与该应用类型对应的策略路由信息。 路由设备上预先根据需求配置了各种应用对应的策略路由信息,并以策略路由表的形式存 储。每条策略路由信息中一般包括源IP地址、目的IP地址、端口号、协议类型以及转发接 口等信息;其中转发接口(即第二转发接口)主要指示该应用所对应的下一跳路由,是策略 路由信息与基本路由信息的区别所在,但策略路由信息与基本路由信息中的转发接口是可 以相同的。
其中,并不是每个应用都有相应的策略路由信息,每个应用对应的策略路由信息 是根据需要配置的,因此,本实施例的路由设备查询策略路由表可能存在未获取到策略路由信息的情况,对于该情况,路由设备将按照基本路由信息对客户端的报文继续进行转发。 由于本实施例重点要说明策略路由的实现过程,因此,以路由设备获取到策略路由信息为 例,进行后续说明。
步骤13、根据基本路由信息,向服务器发送连接断开请求报文,以使客户端与服务 器断开连接;
当路由设备获取到该应用类型对应的策略路由信息时,路由设备通过基本路由信 息中的转发接口向服务器发送连接断开请求报文;该连接请求报文用于使客户端与服务器 断开连接,且由路由设备来发送,因此,满足上述要求的连接断开请求报文一般是指由路由 设备根据客户端的报文所构造的源地址为客户端地址、目的地址为服务器地址的报文,且 该报文经由基本路由信息中的转发接口发送给服务器。
其中,当服务器接收到该连接断开请求报文时,服务器将会按照正常流程对该报 文进行处理,例如可以通过路由设备向客户端发送该连接断开请求报文的连接断开响应报 文。此时,路由设备接收到连接响应报文时,丢弃该连接断开响应报文,而不发送给客户端。 由于该连接断开请求报文并非由客户端真正发起,而是由路由设备冒充客户端发起,即在 该步骤中,客户端并不知道其与服务器已经断开连接,该操作是由路由设备执行的。
步骤14、根据策略路由信息,向服务器发送至少一个报文中的第一报文,以使客户 端与服务器建立连接。
当路由设备通过冒充客户端向服务器发送连接断开请求报文使客户端与服务器 断开原来的连接之后,路由设备通过策略路由信息中的转发接口向服务器发送所存储的客 户端的第一报文;其中,所述客户端的第一报文是指客户端发送的用于与服务器建立连接 的报文,该第一报文所包括的报文数量可以是一个也可以是多个,具体可视所采用的通信 协议而定;例如当采用TCP协议时,由于客户端与服务器需要三次握手建立连接,此时客户 端的第一报文包括客户端发送的SYN报文和对服务器发送的SYN报文和ACK报文进行响应 的报文。因此,在该步骤中,路由设备在客户端与服务器通过第一转发接口建立的连接已经 断开的情况下,将所存储的客户端请求与服务器建立连接用的报文通过第二转发接口发送 给服务器,可以使服务器与客户端通过第二转发接口重新建立连接。
其中,对于服务器而言,由于其与客户端之间原来的连接已经断开,在再次接收到 客户端的请求建立连接的报文时,会认为是客户端重新请求建立新的连接,因此,服务器会 正常处理该请求建立连接的报文,例如会通过路由设备向客户端返回该报文的响应报文, 以与客户端建立连接。当路由设备接收到服务器返回的响应报文时,可以将该响应报文发 送给客户端。
其中,对于客户端而言,整个连接断开和重新建立的过程是透明的,其认为与服务 器之间的连接一直存在。其中,客户端对于再次接收到服务器对其发送的请求建立连接的 报文做出的响应报文时,会认为是服务器因错误而重新发送的,通常会丢弃而不予处理。
通过上述步骤客户端与服务器之间通过第二转发接口建立了新的连接,对于所存 储的至少一个报文中的其他报文以及客户端后续发送的报文将重新按照新的转发路径被 转发到服务器,即根据报文所属应用对应的策略路由被转发。
在此说明,在本实施例中以路由设备为执行主体,其中,路由设备并不限于路由 器、交换机等专门用于进行选路的设备,任何具有路由功能的设备均可作为本实施例的执行主体,并执行本实施例的方法流程。
本实施例的策略路由实现方法,路由设备在识别出报文所属应用的应用类型之 前,存储报文并按照基本路由信息转发报文,未对报文转发造成延时或丢弃,保证了报文转 发的实时性;而在识别出应用类型时,路由设备通过冒充客户端发送连接断开请求报文与 服务器断开原来连接,并基于策略路由信息中的转发接口向服务器发送客户端的请求建立 连接的报文,以使客户端重新与服务器建立连接,实现了策略路由,然后根据所建立的策略 路由转发客户端的报文。与现有技术相比,本实施例的方法并不受必须根据第一个报文识 别出应用类型的限制,适用于任何应用,真正实现了基于应用的策略路由,扩展了策略路由 的应用范围。
在此需要说明,在上述实施例中,步骤13和步骤14中,路由设备冒充客户端与服 务器断开连接和建立连接的操作可根据所使用的具体网络协议有所变更;例如当采用TCP 协议时,服务器会对客户端的报文做出响应,并返回响应报文,在这种情况下,在步骤13中 路由设备需要对响应报文进行丢弃的处理操作,在步骤14中路由设备可以将之前已经发 送给服务器的报文的响应报文丢弃也可以转发给客户端;又例如当采用用户数据包协议 (UserDatagram Protocol ;简称为UDP)时,由于服务器不需要对客户端的报文做出响应, 不会返回响应报文,在这种情况下,在步骤13和在步骤14中,路由设备均不需要进行响应 报文的处理操作。
图2为本发明实施例所基于的网络系统的结构示意图。如图2所示,该网络系统包 括客户端21、路由设备22和服务器23。其中,客户端21通常为局域网中的各种计算机, 路由设备22主要是指处于局域网边缘的网络出口设备,具有路由交换和转发功能,例如可 以为交换机或路由器等;而服务器23主要是指处于客户端21所在局域网外部的设备,可以 向客户端21提供服务等。为便于描述,后续将客户端21所在的局域网称为内网。其中,假 设图2所示网络系统所采用的网络协议为TCP协议。结合图2所示系统,对上述实施例各 步骤做进一步说明。
其中,步骤11中路由设备根据基本路由信息将至少一个报文转发给服务器的一 种具体实施方式
包括步骤111、路由设备通过第一转发接口将至少一个报文中的第一个 报文转发给服务器,并根据所述至少一个报文中的第一个报文和第一转发接口建立会话路 由信息,所述会话路由信息包括客户端的地址信息、服务器的地址信息和第一转发接口 ;步 骤112、路由设备根据会话路由信息将至少一个报文中的其他报文转发给服务器。通过建立 会话路由信息,可以节约查找基本路由信息的操作,根据会话路由信息直接转发报文可以 提高报文转发的速率。
进一步,步骤13的一种实施方式具体包括步骤131、路由设备根据会话路由信 息,构造源地址为客户端地址信息的连接断开请求报文;步骤132、路由设备通过第一转发 接口向服务器发送连接断开请求报文;步骤133、路由设备接收服务器根据连接断开请求 报文返回的、包含客户端地址信息的连接断开响应报文,并丢弃连接断开响应报文,以使客 户端与服务器断开连接。但对于客户端来说,由于未收到服务器发送的连接断开响应报文, 因此,认为与服务器的连接依然存在。
再进一步,步骤14的一种具体实施方式
包括步骤141、路由设备通过策略路由信 息中的第二转发接口,向服务器发送至少一个报文中的第一报文;步骤142、路由设备接收服务器根据至少一个报文中的第一报文返回的第一响应报文,并将第一响应报文转发给客 户端,以使客户端与服务器建立连接;步骤143、客户端接收第一响应报文并丢弃。由于客 户端已经接收到一次第一响应报文,因此,认为该第一响应报文是由服务器根据重发机制 重新发送的,因此,不予理睬。
其中,第一响应报文是指服务器对客户端发送的请求建立连接的报文做出的响应 报文。在TCP协议下,服务器每接收到一个请求建立连接的报文,就会返回一个响应报文。
在上述实施例基础上,当客户端与服务器重新建立连接之后,通过新建连接进行 报文转发就实现了策略路由。由于路由设备建立了客户端和服务器之间报文转发的便捷通 道即会话路由信息,因此,在新的连接建立之前,路由设备需要根据策略路由信息,更新会 话路由信息,即将会话路由信息中的转发接口由原来路由所走的第一转发接口更新为第二 转发接口,以保证新的连接建立之后,报文可以通过会话路由信息进行快速转发而又不出 错误。
基于上述,当客户端与服务器之间建立新的连接之后,为了保证一条TCP流的完 整性,路由设备需要将所存储的至少一个报文中的其他报文发送给服务器;具体的,路由设 备根据更新后的会话路由信息,将至少一个报文中的其他报文依次转发给服务器;路由设 备接收服务器根据至少一个报文中的其他报文依次返回的第二响应报文,并将第二响应报 文依次转发给客户端;客户端认为第二响应报文是由服务器根据重发机制重新发送的响应 报文,因此,丢弃,不予理睬。其中,第二响应报文是指服务器对客户端发送的请求建立连接 的报文(即第一报文)之外的其他报文做出的响应报文。其中,基于TCP协议,路由设备依 次将其他报文发送给服务器,而服务器每收到一个报文就返回响应报文,路由设备每收到 响应报文时就转发给客户端。其中,路由设备发送其他报文的时间间隔或频率与客户端发 送报文的时间间隔或频率越接近越好,最为优选的发送方式是在收到服务器返回的响应报 文之后发送所存储的客户端的下一个报文。在此说明,上述方法方式主要是针对TCP协议, 对于其他协议并不限于此。
由于策略路由信息通常是根据应用需求预先配置在路由设备上的,并不排除策略 路由信息与基本路由信息相同的情况,因此,路由设备在获取策略路由信息之后,可以先判 断策略路由信息是否与基本路由信息相同,主要是指判断策略路由信息中的转发接口与基 本路由信息中的转发接口是否相同。当判断结果为否时,在执行后续冒充客户端与服务器 断开连接以及重新与客户端建立连接的操作;当判断结果为是时,可以不执行冒充客户端 与服务器断开连接以及重新与客户端建立连接的操作,而继续根据会话路由信息转发后续 报文。该实施方式可以节约在判断结果为是时路由设备仍进行转发路径替换操作造成的资 源浪费。
下面将结合实际应用场景对上述各实施方式,从整体上做进一步说明。
图3为本发明实施例二提供的策略路由信息实现方法的流程图。本实施例将基于 图2所示的网络系统实现,且该网络系统中所采用的网络协议以TCP协议为例。本实施例 基于实施例一实现,如图3所示,本实施例的方法包括
步骤31、客户端开启应用程序,并向路由设备发送TCP流的第一个TCP报文;
步骤32、路由设备接收第一个TCP报文并存储,同时查询基本路由表获取基本路 由信息,通过基本路由信息中的转发接口(即第一转发接口)将第一个TCP报文转发给服务器,并根据TCP流的五元组(即第一个TCP报文的五元组)和转发接口建立会话路由信 息,并存储该会话路由信息作为该TCP流中后续TCP报文的转发依据;其中会话路由信息中 包括源地址、源端口、目的地址、目的端口、协议号和转发接口等信息,其中,源地址为客户 端的IP地址、源端口号为客户端的端口号、目的地址为服务器的IP地址、目的端口为服务 器的端口号、协议号为TCP协议的协议号、转发接口为第一转发接口。
步骤33、路由设备开启一片缓存池,对客户端发送的第一个TCP报文进行缓存,但 不缓存服务器的响应报文,同时对第一个TCP报文进行应用识别;
步骤34、路由设备接收客户端发送的后续TCP报文并存储到缓存池中,同时根据 会话路由信息直接转发后续TCP报文给服务器(同理不缓存服务器的响应报文),并对所有 缓存的TCP报文进行应用识别;对于TCP流,路由设备一般可在20个TCP报文以内识别出 该TCP流的应用类型,因此,假设路由设备在20个TCP报文以内识别出了 TCP流的应用类 型,例如识别出该TCP流为迅雷下载。对于识别出应用类型之后的报文可以不再进行存储。
步骤35、路由设备根据识别出的应用类型查找预先存储的策略路由表,并判断是 否存在该应用类型对应的策略路由信息;若存在,则执行步骤36,若不存在,则执行步骤 43。
步骤36、路由设备获取策略路由信息,并将策略路由信息与会话路由信息进行比 较,判断策略路由信息与会话路由信息是否一致;若判断结果为不一致,则执行步骤37 ;反 之,则执行步骤43。
步骤37、路由设备根据会话路由信息,构造源地址为客户端的IP地址,目的地址 为服务器的IP地址的连接断开请求报文,并通过会话路由信息中的转发接口将连接断开 请求报文发送给服务器,以在客户端不知情的情况下断开客户端与服务器之间的连接,并 执行步骤38 ;
步骤38、路由设备接收服务器根据连接断开请求报文返回的、目的地址为客户端 的IP地址的连接断开响应报文,并丢弃,同时路由设备冒充客户端生成的源地址为客户端 IP地址的、目的地址为服务器IP地址的报文,并通过基本路由信息中的转发接口发送给服 务器;服务器在收到该连接断开确认报文时,确认与客户端的连接已经断开。
步骤39、路由设备根据策略路由信息更新会话路由信息,将会话路由信息中的转 发接口由基本路由信息中的转发接口替换为策略路由信息中的转发接口 ;
步骤40、路由设备通过策略路由信息中的转发接口,将存储的客户端的第一个 TCP报文(即SYN (Synchronize)报文)转发给服务器,并接收服务器根据该第一个TCP报 文返回的响应报文(即SYN报文和ACK(ACKnowIedge)报文),同时将响应报文转发给客户 端,以使客户端向服务器请求建立新的连接;其中,路由设备比较接收到的报文的序号,把 多余的响应报文丢弃。
步骤41、路由设备将后续建立连接用的TCP报文通过策略路由信息中的转发接口 依次发送给服务器,接收服务器依次返回的相应响应报文,并转发给客户端,以使客户端与 服务器建立新的连接;对于客户端通常会将后续多余的响应报文丢弃。
步骤42、路由设备根据会话路由信息转发所存储的TCP流的其他TCP报文以及后 续接收到的TCP流的TCP报文;同时,接收服务器返回的响应报文,并将响应报文转发给客 户端,以实现基于策略路由对报文进行转发,并执行步骤44。其中,对于客户端而言仍会将多余响应报文丢弃。
步骤43、删除所存储的TCP报文,并根据会话路由信息将后续接收的TCP报文转发 给服务器,接收服务器返回的响应报文,并转发给客户端,并执行步骤44。
步骤44、接收客户端发送的连接断开请求报文,并将该连接请求断开报文转发给 服务器,同时接收服务器返回的连接断开响应报文,确认该TCP连接断开,删除相应的会话路由信息。
本实施例的策略路由实现方法,路由设备在识别出TCP报文所属应用的应用类型 之前,存储TCP报文并按照基本路由信息转发TCP报文,未对TCP报文转发造成延时或丢 弃,保证了 TCP报文转发的实时性;而在识别出应用类型时,路由设备通过冒充客户端发送 连接断开请求报文与服务器断开原来连接,并基于策略路由信息中的转发接口向服务器发 送客户端的请求建立连接的报文,以使客户端重新与服务器建立连接,实现了策略路由,然 后根据所建立的策略路由转发客户端的TCP报文。与现有技术相比,本实施例的方法并不 受必须根据第一个TCP报文识别出应用类型的限制,适用于任何应用,真正实现了基于应 用的策略路由,扩展了策略路由的应用范围。
图4A为本发明实施例三提供的策略路由实现方法的流程图;图4B为本发明实 施例三提供的路由策略实现方法中客户端、路由设备以及服务器之间的交互流程图。本 实施例基于上述实施例,其相同之处不再赘述,本实施例基于以下场景实现假设基本路 由信息中的转发接口为路由设备上的接口 Gigbi^thernet 0/1,且在路由设备上预先配 置的策略路由信息为迅雷-接口 GigbitKhernet 0/2,即用户配置了迅雷应用走接口 GigbitEthernet 0/2。如图4A和图4B所示,本实施例的方法包括
步骤51、客户端开启迅雷下载时,路由设备查找基本路由表,选择接口 GigbitEthernet 0/1转发报文,并根据报文的五元组和该接口 GigbitKhernet 0/1生成 一条会话路由信息存入会话路由表中,即插入会话路由信息(客户端的地址IP1,客户端的 端口 portl,服务器的地址IP2,服务器的端口 port2,协议号0x06,GigbitEthernet 0/1);
步骤52、路由设备缓存客户端发给服务器的TCP报文,同时进行应用识别;
步骤53、路由设备识别出该TCP流的具体应用为迅雷后,查找策略路由表获知 应该走接口 Gigbi^thernet 0/2 ;路由设备更新会话路由表的会话路由信息为(客户端 的地址IP1,客户端的端口 portl,服务器的地址IP2,服务器的端口 port2,协议号0x06, GigbitEthernet 0/2);
步骤M、路由设备从接口 GigbitKhernet 0/1发送FIN报文,该FIN报文头部信 息为(客户端的地址IP1,客户端的端口 portl,服务器的地址IP2,服务器的端口 port2,协 议号0x06),并接收服务器的ACK报文和FIN报文;其中,服务器发送的ACK报文和FIN报 文的目的IP地址是客户端的IP地址;路由设备根据目的IP地址判断出服务器发送的ACK 报文和FIN报文后丢弃,不转发给客户端,同时向服务器发送ACK报文。
步骤55、服务器收路由设备发送的ACK报文,并认为与客户端的连接已经断开;但 客户端并未收到FIN报文,仍认为与服务器保持着连接;
步骤56、路由设备将缓存的客户端的TCP报文从接口 GigbitEnthernet 0/2转 发出去;这时服务器与路由设备建立新的TCP连接;同时,服务器返回响应报文,路由设备 将响应报文发送给客户端;客户端接收响应报文并进行序列号比较,把多余的响应报文丢弃;
后续客户端发送给服务器的TCP报文均根据会话路由信息(客户端的地址IP1,客 户端的端口 port 1,服务器的地址IP2,服务器的端口 port2,协议号0x06,GigbitEthernet 0/2)进行转发。
步骤57、当下载完成时,路由设备会检测到客户端发送的FIN报文和服务器发 送的FIN报文,并且在两端进行响应之后,还会接收到响应FIN报文的ACK报文,此时路 由设备获知该TCP连接已经拆除,于是删除会话路由表中的会话路由信息(客户端的 地址IP1,客户端的端口 portl,服务器的地址IP2,服务器的端口 port2,协议号0x06, GigbitEthernet 0/2),结束操作。
其中,客户端与服务器之间通过TCP握手机制建立连接以及结束连接的过程可参 见现有技术,在本实施例并未做详细介绍。
本实施例的策略路由实现方法,路由设备通过冒充客户端与服务器断开连接,并 在新的转发接口上重新建立连接,通过该方法,路由设备可以将在一个路径上的TCP流转 到新的路径上,在实现基于应用的策略路由时,保证了原来的TCP网络应用不被打断;另 外,采用本实施例方法实现策略路由之后,客户端能够基于应用进行路由选择,能够保证某 种应用的带宽和安全性;同时,为流量控制、监视和管理提供了方便。
图5为本发明实施例四提供的策略路由实现装置的结构示意图。如图5所示,本 实施例的装置包括存储模块61、第一转发模块62、识别模块63、获取模块64、第一发送模 块65和第二发送模块66。
其中,存储模块61,用于存储客户端发送的至少一个报文;第一转发模块62,与存 储模块61和服务器连接,用于根据基本路由信息将至少一个报文转发给服务器,所述基本 路由信息包括第一转发接口 ;识别模块63,与存储模块61和第一转发模块62连接,用于在 第一转发模块62将至少一个报文转发给服务器的过程中,根据至少一个报文识别至少一 个报文对应的应用类型;获取模块64,与识别模块63连接,用于根据应用类型查询预先存 储的策略路由表,获取策略路由信息,所述策略路由信息包括第二转发接口 ;第一发送模块 65,与服务器连接,用根据基本路由信息,向服务器发送连接断开请求报文,以使客户端与 服务器断开连接;第二发送模块66,与服务器和获取模块64连接,用于根据策略路由信息, 向服务器发送至少一个报文中的第一报文,以使客户端与所述服务器建立连接。第一报文 是指客户端向服务器请求建立连接的报文,可以为一个报文也可以为多个报文,具体视所 采用的通信协议而定。
上述各功能模块可用于执行上述方法实施例提供的策略路由实现方法的流程,其 具体工作原理详见方法实施例的描述,在此不再赘述。
本实施例的策略路由实现装置,在识别出报文所属应用的应用类型之前,存储报 文并按照基本路由信息转发报文,未对报文转发造成延时或丢弃,保证了报文转发的实时 性;而在识别出应用类型时,路由设备通过冒充客户端发送连接断开请求报文与服务器断 开原来连接,并基于策略路由信息中的转发接口向服务器发送客户端的请求建立连接的报 文,以使客户端重新与服务器建立连接,实现了策略路由,然后根据所建立的策略路由转发 客户端的报文。与现有技术相比,基于本实施例的策略路由装置实现策略路由时并不受必 须根据第一个报文识别出应用类型的限制,适用于任何应用,真正实现了基于应用的策略路由,扩展了策略路由的应用范围。
图6为本发明实施例五提供的策略路由实现装置的结构示意图。本实施例基于上 述实施例实现,如图6所示,本实施例装置中的第一转发模块62包括第一转发单元621、 建立单元622和第二转发单元623。
其中,第一转发单元621,与存储模块61和服务器连接,用于通过第一转发接口将 至少一个报文中的第一个报文转发给服务器;建立单元622,与第一转发单元621连接,用 于根据至少一个报文中的第一个报文建立会话路由信息,所述会话路由信息包括客户端的 地址信息、服务器的地址信息和第一转发接口 ;第二转发单元623,与建立单元622和服务 器连接,用于根据会话路由信息将至少一个报文中的其他报文转发给服务器。
上述各功能单元可用执行上述方法实施例提供的策略路由实现方法中具体将至 少一个报文转发给服务器的相应流程,其具体工作原理详见方法实施例的描述,在此不再 赘述。
进一步,第一发送模块65包括构造单元651、第一发送单元652和第一接收单元 653。
其中,构造单元651,与建立单元622连接,用于根据会话路由信息,构造包括客户 端地址信息的连接断开请求报文;第一发送单元652,与构造单元651和服务器连接,用于 通过第一转发接口向服务器发送连接断开请求报文;第一接收单元653,与服务器连接,用 于接收服务器根据连接断开请求报文返回的、包括客户端地址的连接断开响应报文,并丢 弃连接断开响应报文,以使客户端与服务器断开连接。
上述各功能单元可用执行上述方法实施例提供的策略路由实现方法中冒充客户 端与服务器断开连接的相应流程,其具体工作原理详见方法实施例的描述,在此不再赘述。
进一步,本实施例的第二发送模块66包括第二发送单元661和第二接收单元 662。
其中,第二发送单元661,与服务器和获取模块64连接,用于通过策略路由信息中 的第二转发接口,向服务器发送至少一个报文中的第一报文;第二接收单元662,与服务器 连接,用于接收服务器根据至少一个报文中的第一报文返回的第一响应报文,以使客户端 与服务器建立连接。
进一步,本实施例第二发送模块66另一种实现结构还可以包括第三转发单元 663。该第三转发单元663,与第二接收单元662连接,用于将第一响应报文转发给客户端, 以使客户端与服务器建立连接;当采用TCP协议时,通过该第三转发单元663可以在客户端 与服务器之间建立新的连接之后保证一条TCP流的完整性。
上述各功能单元可用执行上述方法实施例提供的策略路由实现方法中冒充客户 端与服务器重新建立连接的相应流程,其具体工作原理详见方法实施例的描述,在此不再 赘述。
本实施例的策略路由实现装置,通过上述功能单元可具体用于TCP网络应用,通 过本实施例的策略路由实现装置可以将在一个路径上的TCP流转到新的路径上,在实现基 于应用的策略路由时,保证了原来的TCP网络应用不被打断;另外,采用本实施例装置实现 策略路由之后,客户端能够基于应用进行路由选择,能够保证某种应用的带宽和安全性;同 时,为流量控制、监视和管理提供了方便。
图7为本发明实施例六提供的策略路由实现装置的结构示意图。本实施例基于上 述实施例实现,如图7所示,本实施例的策略路由实现装置还包括更新模块71,与第二发 送模块66 (具体是指第二接收单元662或第三转发单元66 和获取模块64连接,用于在 客户端与服务器建立连接之前,根据策略路由信息,将会话路由信息中的第一转发接口更 新为第二转发接口。
进一步,本实施例的策略路由实现装置还包括第二转发模块72和接收模块73。
其中,第二转发模块72,与更新模块71和服务器连接,用于在客户端与服务器之 间重新建立连接之后,根据更新后的会话路由信息,将至少一个报文中的其他报文(即第 一报文之外的报文)转发服务器;接收模块73,与服务器连接,用于接收服务器根据至少一 个报文中的其他报文返回的第二响应报文。
进一步,本实施例的策略路由实现装置的另一种实现结构还包括第三转发模块 74。该第三转发模块74,与接收模块73连接,用于将第二响应报文转发给客户端。
其中,在采用TCP协议时,本实施例的策略路由实现装置通过上述功能模块可以 在客户端与服务器之间新连接建立之后,保证一条TCP流的完整性。上述各功能模块可用 执行上述方法实施例提供的策略路由实现方法中根据更新后的会话路由信息转发客户端 报文的相应流程,其具体工作原理详见方法实施例的描述,在此不再赘述。
进一步,本实施例的策略路由实现装置还包括判断模块75和触发模块76。
其中,判断模块75,用于在获取模块64获取策略路由信息之后,判断策略路由信 息与基本路由信息是否相同;触发模块76,用于在判断模块75的判断结果为否时,触发第 一发送模65块执行根据基本路由信息,向服务器发送连接断开请求报文,以使客户端与服 务器断开连接的操作。
本实施例的策略路由实现装置,可以将在一个路径上的TCP流转到新的路径上, 在保证网络应用不被打断的基础上实现基于应用的策略路由;采用本实施例装置实现策略 路由之后,客户端能够基于应用进行路由选择,能够保证某种应用的带宽和安全性;同时, 为流量控制、监视和管理提供了方便。
本发明实施例七提供一种网络设备,包括策略路由实现装置。本实施例的网络设 备可以是任何具有路由功能的设备,例如路由器或交换机等,主要用于进行路由选择和报 文转发。其中,策略路由实现装置可采用上述实施例提供的策略路由实现装置,其结构和工 作原理分别参见上述装置实施例和方法实施例,在此不再赘述。
本实施例的网络设备包括上述实施例提供的策略路由实现装置,可用于执行上述 方法实施例提供的策略路由实现方法的流程,同样可实现基于应用的策略路由,采用本实 施例网络设备实现策略路由之后,客户端能够基于应用进行路由选择,能够保证某种应用 的带宽和安全性;同时,为流量控制、监视和管理提供了方便。
本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然CN 102035745 A说明书12/12 页可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
1.一种策略路由实现方法,其特征在于,包括存储客户端发送的至少一个报文,并在根据基本路由信息将所述至少一个报文转发给 服务器的过程中,根据所述至少一个报文识别所述至少一个报文对应的应用类型,所述基 本路由信息包括第一转发接口;根据所述应用类型查询预先存储的策略路由表,获取策略路由信息,所述策略路由信 息包括第二转发接口;根据所述基本路由信息,向所述服务器发送连接断开请求报文,以使所述客户端与所 述服务器断开连接;根据所述策略路由信息,向所述服务器发送所述至少一个报文中的第一报文,以使所 述客户端与所述服务器建立连接。
2.根据权利要求1所述的策略路由实现方法,其特征在于,根据所述基本路由信息将 所述至少一个报文转发给所述服务器包括通过所述第一转发接口将所述至少一个报文中的第一个报文转发给所述服务器,并根 据所述至少一个报文中的第一个报文和所述第一转发接口建立会话路由信息,所述会话路 由信息包括所述客户端的地址信息、所述服务器的地址信息和所述第一转发接口 ;根据所述会话路由信息将所述至少一个报文中的其他报文转发给所述服务器。
3.根据权利要求2所述的策略路由实现方法,其特征在于,根据所述基本路由信息,向 所述服务器发送连接断开请求报文,以使所述客户端与所述服务器断开连接包括根据所述会话路由信息,构造源地址为所述客户端地址信息的所述连接断开请求报文;通过所述第一转发接口向所述服务器发送所述连接断开请求报文;接收所述服务器根据所述连接断开请求报文返回的、包含所述客户端地址信息的连接 断开响应报文,并丢弃所述连接断开响应报文,以使所述客户端与所述服务器断开连接。
4.根据权利要求2所述的策略路由实现方法,其特征在于,根据所述策略路由信息,向 所述服务器发送所述至少一个报文中的第一报文,以使所述客户端与所述服务器建立连接 包括通过所述策略路由信息中的所述第二转发接口,向所述服务器发送所述至少一个报文 中的第一报文;接收所述服务器根据所述至少一个报文中的第一报文返回的第一响应报文,以使所述 客户端与所述服务器建立连接。
5.根据权利要求2所述的策略路由实现方法,其特征在于,在根据所述策略路由信息, 向所述服务器发送所述至少一个报文中的第一报文,以使所述客户端与所述服务器建立连 接之前还包括根据所述策略路由信息,将所述会话路由信息中的所述第一转发接口更新为所述第二 转发接口。
6.根据权利要求5所述的策略路由实现方法,其特征在于,在根据所述策略路由信息, 向所述服务器发送所述至少一个报文中的第一报文,以使所述客户端与所述服务器建立连 接之后还包括根据所述会话路由信息,将所述至少一个报文中的其他报文依次转发给所述服务器;接收所述服务器根据所述至少一个报文中的其他报文依次返回的第二响应报文。
7.根据权利要求1-6任一项所述的策略路由实现方法,其特征在于,在获取所述策略 路由信息之后还包括判断所述策略路由信息与所述基本路由信息是否相同;当判断结果为否,执行根据所述基本路由信息,向所述服务器发送连接断开请求报文, 以使所述客户端与所述服务器断开连接的操作。
8.一种策略路由实现装置,其特征在于,包括 存储模块,用于存储客户端发送的至少一个报文;第一转发模块,用于根据基本路由信息将所述至少一个报文转发给服务器,所述基本 路由信息包括第一转发接口;识别模块,用于在所述第一转发模块将所述至少一个报文转发给所述服务器的过程 中,根据所述至少一个报文识别所述至少一个报文对应的应用类型;获取模块,用于根据所述应用类型查询预先存储的策略路由表,获取策略路由信息,所 述策略路由信息包括第二转发接口;第一发送模块,用根据所述基本路由信息,向所述服务器发送连接断开请求报文,以使 所述客户端与所述服务器断开连接;第二发送模块,用于根据所述策略路由信息,向所述服务器发送所述至少一个报文中 的第一报文,以使所述客户端与所述服务器建立连接。
9.根据权利要求8所述的策略路由实现装置,其特征在于,所述第一转发模块包括 第一转发单元,用于通过所述第一转发接口将所述至少一个报文中的第一个报文转发给所述服务器;建立单元,用于根据所述至少一个报文中的第一个报文和所述第一转发接口建立会话 路由信息,所述会话路由信息包括所述客户端的地址信息、所述服务器的地址信息和所述 第一转发接口;第二转发单元,用于根据所述会话路由信息将所述至少一个报文中的其他报文转发给 所述服务器。
10.根据权利要求9所述的策略路由实现装置,其特征在于,所述第一发送模块包括 构造单元,用于根据所述会话路由信息,构造包括所述客户端地址信息的所述连接断开请求报文;第一发送单元,用于通过所述第一转发接口向所述服务器发送所述连接断开请求报文;第一接收单元,用于接收所述服务器根据所述连接断开请求报文返回的、包括所述客 户端地址的连接断开响应报文,并丢弃所述连接断开响应报文,以使所述客户端与所述服 务器断开连接。
11.根据权利要求9所述的策略路由实现装置,其特征在于,所述第二发送模块包括 第二发送单元,用于通过所述策略路由信息中的所述第二转发接口,向所述服务器发送所述至少一个报文中的第一报文;第二接收单元,用于接收所述服务器根据所述至少一个报文中的第一报文返回的第一 响应报文,以使所述客户端与所述服务器建立连接。
12.根据权利要求9所述的策略路由实现装置,其特征在于,还包括更新模块,用于在所述第二发送模块根据所述策略路由信息,向所述服务器发送所述 至少一个报文中的第一报文,以使所述客户端与所述服务器建立连接之前,根据所述策略 路由信息,将所述会话路由信息中的所述第一转发接口更新为所述第二转发接口。
13.根据权利要求12所述的策略路由实现装置,其特征在于,还包括第二转发模块,用于在所述第二发送模块根据所述策略路由信息,向所述服务器发送 所述至少一个报文中的第一报文,以使所述客户端与所述服务器建立连接之后,根据所述 会话路由信息,将所述至少一个报文中的其他报文依次转发所述服务器;接收模块,用于接收所述服务器根据所述至少一个报文中的其他报文依次返回的第二 响应报文。
14.根据权利要求8-13任一项所述的策略路由实现装置,其特征在于,还包括判断模块,用于在所述获取模块获取所述策略路由信息之后,判断所述策略路由信息 与所述基本路由信息是否相同;触发模块,用于在所述判断模块的判断结果为否时,触发所述第一发送模块执行根据 所述基本路由信息,向所述服务器发送连接断开请求报文,以使所述客户端与所述服务器 断开连接的操作。
15.一种包括权利要求8-14任一项所述的策略路由实现装置的网络设备。
全文摘要
本发明提供一种策略路由实现方法、装置及网络设备。该实现方法包括存储客户端发送的至少一个报文,并在根据基本路由信息将至少一个报文转发给服务器的过程中,根据至少一个报文识别至少一个报文对应的应用类型,基本路由信息包括第一转发接口;根据应用类型查询预先存储的策略路由表,获取策略路由信息,策略路由信息包括第二转发接口;根据基本路由信息,向服务器发送连接断开请求报文,以使客户端与服务器断开连接;根据策略路由信息,向服务器发送至少一个报文中的第一个报文,以使客户端与服务器建立连接。采用本发明技术方案,可实现根据任何应用进行的策略路由。
文档编号H04L12/56GK102035745SQ20101060337
公开日2011年4月27日 申请日期2010年12月23日 优先权日2010年12月23日
发明者姚辉, 杨红飞, 林川 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1