具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供的技术方案应用于选择多ISP网络接入的数据中心网络,该数据中心网络中包含多个出口路由器,针对每一出口路由器,则执行图2所示的以下步骤:
步骤201,出口路由器接收到来自ISP网络侧的第一报文后,如果确定已建立的IP流转发表中不存在包含该第一报文源IP地址的表项,则在所述IP流转发表中增加包含以下内容的表项:该第一报文的源IP地址、接收到该第一报文的接口、以及所述ISP网络侧中向该接口发送该第一报文的路由器,并依据该报文的目的IP地址转发该第一报文。
步骤202,出口路由器接收到来自数据中心网络侧的第二报文后,在所述IP流转发表中查找到包含该第二报文目的IP地址的表项,将查找到的表项中的接口作为发送该第二报文的出接口,将查找到的表项中的路由器作为下一跳,通过该出接口向该下一跳转发该第二报文。
上述的第一报文为ISP网络侧下用户终端发送的请求报文,而第二报文为数据中心网络侧响应该请求报文的响应报文。下面对本发明提供的上述方法进行详细描述。图3为本发明实施例提供的详细方法流程图。本实施例可应用于选择多ISP网络接入的数据中心网络,该数据中心网络可包含至少一个出口路由器。在出口路由器与每一ISP网络侧连接的接口、以及在出口路由器与数据中心网络内部资源连接的接口上配置使能IP流转发表的标记,只有存在该标记的接口所属的出口路由器才能执行本发明提供的报文传输方法。也就是说,通过所述标记能够与现有路由器执行的现有报文传输处理进行区分。当然,作为本发明实施例的一种扩展,也可以不另外在接口上配置使能IP流转发表的标记,默认所有的出口路由器执行本发明提供的报文传输方法。
如图3所示,该流程方法包括以下步骤:
步骤301,当出接口路由器接收到来自ISP网络侧的请求报文后,判断接收到该请求报文的接口是否存在使能了IP流转发表的标记,如果是,执行步骤302。
如果默认所有的出口路由器执行本发明提供的报文传输方法,则可省略步骤301,直接执行步骤302。
优选地,作为本发明实施例的一种扩展,当步骤301的判断结果为否时,可按照背景技术以图1为例描述的出口路由器处理请求报文的流程。
步骤302,将该请求报文的源IP地址作为关键词,在IP流转发表中查找包含该关键词的表项,如果未查找到,则执行步骤303,如果查找到,则执行步骤304。
步骤303,在IP流转发表中增加包含以下内容的表项:该请求报文的源IP地址、接收到该请求报文的接口、以及所述ISP网络侧中向该接口发送该请求报文的路由器,具体如图4所示。之后执行步骤305。
步骤304,比较实际接收到该请求报文的接口、以及ISP网络侧中向该接口发送该请求报文的路由器是否与该查找到的表项中的接口、路由器一致,如果一致,则执行步骤305,如果不一致,则更新表项中不一致的接口和/或路由器,比如,若实际接收到请求报文的接口与表项中的接口不一致,则将表项中的接口更新为该实际接收到请求报文的接口,若ISP网络侧中向该接口发送该请求报文的路由器与表项中的路由器不一致,则将表项中的路由器更新为该ISP网络侧中向该接口发送该请求报文的路由器,之后执行步骤305。
本步骤304中,之所以会出现实际接收到请求报文的接口、ISP网络侧中向该接口发送该请求报文的路由器与表项中的接口、路由器不一致,主要是由于ISP网络侧中路由器主备倒换所致。比如,之前与该请求报文具有相同源IP地址和目的IP地址的报文,是经过ISP网络侧的路由器1到达至出口路由器的接口1,因此,会在IP流转发表中记录该源IP地址、接口1和路由器1。在出口路由器接收上述请求报文之前,如果路由器1由于故障而被倒换至路由器2,则该请求报文会经过ISP网络侧的路由器2发送至出口路由器的接口1(此种情况为该路由器也连接出口路由器的接口1)或者其他接口,即出现了上述不一致的情况。
步骤305,将该请求报文的目的IP地址作为关键词,在IP流转发表中查找包含该关键词的表项,如果查找到,通过该查找到的表项中的接口向该表项中的路由器发送该请求报文。
具体地,步骤305中通过该查找到的表项中的接口向该表项中的路由器发送该请求报文为:将查找到的表项中的接口作为转发该请求报文的出接口,将该查找到的表项中的路由器作为下一跳完成该请求报文的转发。其中,本发明中,针对来自ISP网络侧的请求报文执行步骤303所示的在IP流转发表增加表项的操作,而针对来自数据中心网络侧内部资源的报文则不执行在IP流转发表增加表项的操作,具体见下述步骤307。因此,此处以请求报文的目的IP地址作为关键词肯定不会在IP流转发表查找到包含该关键词的表项,即出口路由器接收到来自ISP网络侧的请求报文后,只能按照出口路由器的现有方式处理该请求报文,直至传输至数据中心网络侧。
优选地,作为本发明实施例的一种扩展,当步骤305查找不到包含该关键词的表项时,可按照背景技术以图1为例描述的出口路由器处理请求报文的流程。
当数据中心网络侧接收到请求报文后,会针对该请求报文发送响应报文,当出口路由器接收到响应报文后,执行步骤306。
步骤306,出口路由器判断接收到该响应报文的接口是否存在使能了IP流转发表的标记,如果是,则执行步骤307。
如果默认所有的出口路由器执行本发明提供的报文传输方法,则可省略步骤306,直接执行步骤307。
优选地,作为本发明实施例的一种扩展,当步骤306查找不到时,可按照背景技术以图1为例描述的出口路由器处理响应报文的流程。
步骤307,将该响应报文的目的IP地址作为关键词,在IP流转发表中查找包含该关键词的表项,如果查找到,则执行步骤308。
可以看出,针对响应报文,本发明不执行以响应报文的源IP地址为关键词来确定是否需要在IP流转发表中增加或更新表项(简称IP流转发表学习操作)。也即,针对来自数据中心网络侧的报文,本发明禁止IP流转发表学习操作。
由于响应报文的目的IP地址为上述请求报文的源IP地址,基于上述步骤302至步骤304的描述可以得到本步骤307肯定会在IP流转发表中查找包含该响应报文中目的IP地址的表项。
优选地,作为本发明实施例的一种扩展,当步骤307查找不到时,可按照背景技术以图1为例描述的出口路由器处理响应报文的流程。
步骤308,通过该查找到的表项中的接口向该表项中的路由器发送该响应报文,当该表项中的路由器接收到响应报文后,对该响应报文进行uRPF检查,检查通过,继续转发该响应报文,否则,丢弃该响应报文。
具体地,该步骤308为:将查找到的表项中的接口作为转发该响应报文的出接口,将该查找到的表项中的路由器作为下一跳完成该响应报文的转发。基于步骤302至步骤304的描述可以知道,该表项中的路由器为ISP网络侧的路由器。
基于步骤302至步骤304的描述可以知道,该响应报文响应的请求报文是该表项中的路由器(也即ISP网络侧的某一路由器)通过某一接口(记为ISP接口1)向该表项中接口发送的,而步骤308中,该响应报文是通过该表项中接口向该路由器发送的,其必然会到达该路由器的ISP接口1,因此,该路由器在针对该响应报文进行uRPF检查时,必然会通过uRPF检查,实现了成功访问数据中心网络的目的。下面通过一个具体实施例对图3所示的方法进行举例描述:
参见图5,图5为本发明实施例方法应用的数据中心组网结构图。在图5中,该数据中心网络侧包含一个出口路由器(多个出口路由器的原理类似),并且该数据中心网络选择双ISP网络(简称ISP A网络和ISP B网络)接入,即该出口路由器分别与ISP A网络和ISP B网络连接。在出口路由器与每一ISP网络侧连接的接口、以及该出口路由器与数据中心网络内部资源连接的接口上配置使能IP流转发表的标记。假如ISP A网络侧下的用户终端A(IP地址为1.1.1.1)访问数据中心网络侧的数据中心服务器A(IP地址为2.2.2.2),则,
用户终端A向ISP A网络发送请求报文,请求报文的源IP地址为1.1.1.1,目的IP地址为2.2.2.2。针对该请求报文,可通过图5所示的路径1传输至数据中心服务器A,具体为:
当ISP A网络中的路由器(记为路由器A)接收到用户终端A发送的请求报文后,发现该请求报文的目的IP地址2.2.2.2属于ISP网络的网段,认为由ISP B网络传输该请求报文为最优路由,继而将请求报文转发至ISP B网络。当ISP B网络中的路由器(记为路由器B)接收到请求报文后,依据该请求报文的目的IP地址2.2.2.2向数据中心网络侧发送该请求报文。当数据中心网络侧的出口路由器通过接口A接收到请求报文后,如果该接口A存在使能了IP流转发表的标记,则出口路由器先在IP流转发表中查找包含源IP地址1.1.1.1的表项,以用户终端A首次向数据中心服务器A发送请求报文为例,则不会在IP流转发表查找到包含源IP地址1.1.1.1的表项,如此,在IP流转发表中增加包含以下内容的表项:源IP地址1.1.1.1、接口A、ISPB网络侧的路由器B。之后在IP流转发表中继续查找包含目的IP地址2.2.2.2的表项,根据步骤307的描述的“针对数据中心网络侧的报文,禁止IP流转发表学习操作”可以知道,在IP流转发表中肯定查找不到包含目的IP地址2.2.2.2的表项,如此,直接按照现有三层报文转发处理,直至发送至数据中心服务器A。
至此,通过图5所示的路径1完成用户终端A向数据中心服务器A发送请求报文的操作。当数据中心服务器A接收到请求报文后,会向用户终端A发送对应的响应报文,该响应报文的源IP地址为2.2.2.2,目的IP地址为1.1.1.1。针对该响应报文,可通过图5所示的路径2传输至用户终端A,具体为:
当出口路由器通过接口B接收到响应报文后,如果该接口B存在使能了IP流转发表的标记,则出口路由器先在IP流转发表中查找包含目的IP地址1.1.1.1的表项,由于该目的IP地址1.1.1.1实质为请求报文的源IP地址,根据上面描述可以知道IP流转发表中肯定会存在包含该目的IP地址1.1.1.1的表项。如此,出口路由器将该表项中的接口(根据上面描述可以知道该表项中的接口为接口A)作为出接口,将该表项中的路由器(根据上面描述可以知道该表项中的路由器为路由器B)作为下一跳,向该下一跳发送该响应报文。由于该响应报文对应的请求报文是由路由器B通过与出口路由器中接口A对应的接口(记为第一ISP接口)发送至接口A的,而该响应报文是由该出口路由器中接口A向该路由器B发送的,因此,可以直接得到该路由器B肯定是通过该第一ISP接口接收到响应报文的,即实现了同一访问限定在ISP网络侧中路由器的同一ISP接口上。如此,路由器B针对接收的响应报文进行uRPF检查,肯定会通过检查,实现成功访问数据中心网络的目的。
需要说明的是,为满足数据中心网络对外提供连续被访问的能力,可为所述IP流转发表中的每一表项设置老化时间,其中,表项的老化时间用于表示在老化时间到达时,该表项中的IP地址不再发送报文。当表项被设置的老化时间到达时,删除该表项。
至此,完成本发明方法的描述。下面对本发明提供的出口路由器进行描述:
参见图6,图6为本发明实施例提供的出口路由器的结构示意图。如图6所示,该出口路由器包括:
第一报文收发单元,用于接收到来自ISP网络侧的第一报文;
第一报文处理单元,用于在确定已建立的IP流转发表中不存在包含该第一报文源IP地址的表项,则在所述IP流转发表中增加包含以下内容的表项:该第一报文的源IP地址、接收到该第一报文的接口、以及所述ISP网络侧中向该接口发送该第一报文的路由器,并依据该报文的目的IP地址转发该第一报文;
第二报文收发单元,用于接收到来自数据中心网络侧的第二报文;
第二报文处理单元,用于在所述IP流转发表中查找到包含该第二报文目的IP地址的表项,将查找到的表项中的接口作为发送该第二报文的出接口,将查找到的表项中的路由器作为下一跳,通过该出接口向该下一跳转发该第二报文。
其中,所述第一报文处理单元还用于在确定IP流转发表中存在包含该第一报文源IP地址的表项时,比较实际接收到该第一报文的接口、ISP网络侧中向该接口发送该第一报文的路由器是否与该查找到的表项中的接口、路由器一致,如果均一致,则依据该第一报文的目的IP地址转发该第一报文,否则,更新表项中不一致的接口和/或路由器,之后,依据该第一报文的目的IP地址转发该第一报文。
优选地,所述第一报文处理单元依据第一报文的目的IP地址转发该第一报文包括:在IP流转发表中查找包含该第一报文目的IP地址的表项,如果查找到,则通过该查找到的表项中的接口向该第一表项中的路由器转发该第一报文。
本实施例中,所述第一报文处理单元在确定IP流转发表中是否存在包含第一报文源IP地址的表项之前,进一步判断当前接收到第一报文的接口是否存在使能了IP流转发表的标记,如果是,则继续执行确定IP流转发表中是否存在包含第一报文源IP地址表项的操作;
所述第二报文处理单元用于在IP流转发表中查找包含第二报文目的IP地址的表项之前,进一步判断当前接收到第二报文的接口是否存在使能了IP流转发表的标记,如果是,则继续执行在IP流转发表中查找包含第二报文目的IP地址的表项的操作。
如图6所示,所述出口路由器进一步包括:检测单元;
其中,所述检测单元用于检测为所述IP流转发表中的每一表项设置的老化时间,当表项被设置的老化时间到达时,从所述IP流转发表中删除该表项。
至此,完成本发明实施例提供的出口路由器描述。
由以上技术方案可以看出,本发明中,通过在出口路由器上建立IP流转发表。针对来自ISP网络侧的报文,执行IP流转发表的学习,而针对来自数据网络侧的报文,直接根据以前学习的IP流转发表查询对应的出接口和下一跳进行报文转发,这能够实现同一访问限定在同一个ISP接口,实现了成功访问数据中心网络的目的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。