发明内容
本发明提供了报文转发方法和装置,以实现根据业务选择合适的线路进行转发。
本发明提供的技术方案包括:
一种报文转发方法,该方法应用于网络站点,包括:
生成两个相互独立的公网路由表和私网路由表,所述公网路由表记录了作为公网路由的专用线路路由,所述私网路由表记录了作为私网路由的非专用线路路由;
确定当前接收的数据报文是通过公网路由转发还是通过私网路由转发;
在确定通过公网路由转发时,依据所述数据报文的目的IP地址在所述公网路由表中查找用于转发所述数据报文的公网路由,利用查找到的公网路由转发所述数据报文,结束当前流程;
在确定通过私网路由转发时,依据所述数据报文的目的IP地址在所述私网路由表中查找用于转发所述数据报文的私网路由,如果查找到,则利用查找到的私网路由转发所述数据报文,结束当前流程。
一种报文转发装置,该装置应用于网络站点,包括:
路由表生成单元,用于生成两个相互独立的公网路由表和私网路由表,所述公网路由表记录了作为公网路由的专用线路路由,所述私网路由表记录了作为私网路由的非专用线路路由;
报文处理单元,用于确定当前接收的数据报文是通过公网路由转发还是通过私网路由转发;
在确定通过公网路由转发时,依据所述数据报文的目的IP地址在所述公网路由表中查找用于转发所述数据报文的公网路由,利用查找到的公网路由转发所述数据报文,结束当前流程;
在确定通过私网路由转发时,依据所述数据报文的目的IP地址在所述私网路由表中查找用于转发所述数据报文的私网路由,如果查找到,则利用查找到的私网路由转发所述数据报文,结束当前流程。
由以上技术方案可以看出,本发明中,通过生成两个相互独立的公网路由表和私网路由表,所述公网路由表记录了作为公网路由的专用线路路由,所述私网路由表记录了作为私网路由的非专用线路路由,使得:站点在接收数据报文时,确定当前接收的数据报文是通过公网路由转发还是通过私网路由转发,如果是前者,则依据所述数据报文的目的IP地址在所述公网路由表中查找用于转发所述数据报文的公网路由,利用查找到的公网路由转发所述数据报文,结束当前流程;如果是后者,依据所述数据报文的目的IP地址在所述私网路由表中查找用于转发所述数据报文的私网路由,如果查找到,则利用查找到的私网路由转发所述数据报文,结束当前流程,即实现了根据业务选择合适的线路进行转发。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在本发明提供的方法中,每一站点依据路由协议生成以下两个路由表:公网路由表和私网路由表,其中,公网路由表包含的路由为专用线路上的路由,称为公网路由,而私网路由表包含的路由为非专用线路上的路由,称为私网路由。
本发明中,公网路由表和私网路由表两者相互独立,其可通过虚拟专用网(VPN)路由转发(VRF)进行区分。所谓VRF,其与VPN一一对应,主要是针对其对应的VPN中的路由转发,如此,可以得到:公网路由表通过与专用线路相关联的VRF进行标识,其记录的公网路由为与专用线路相关联的VPN的路由,而私网路由表通过与非专用线路相关联的VRF标识,其记录的私网路由为与非专用线路相关联的VPN的路由。
基于此,本发明中,每一站点在学习到路由时,如果该学习到的路由是与专用线路相关联的VPN的路由,则将该学习到的路由作为公网路由记录至公网路由表,而如果该学习到的路由是与非专用线路相关联的VPN的路由,则将该学习到的路由作为私网路由记录至私网路由表。其中,与专用线路相关联的VPN、以及与非专用线路相关联的VPN都是预先配置在站点上的。
另外,在网络中,全网中的站点相互之间通过至少一条专用线路连接是必不可少的,而并非每一站点都租用非线路与其他站点连接,比如,图1所示的站点1与站点3,这两个站点之间仅存在两条专用线路连接,并没有非专用线路连接,如此,就可以知道,每一站点中的公网路由表记录了到达全网中每一站点的公网路由(记为全网路由),而私网路由表,相对而言,依赖于该站点是否有非专用线路连接而定,记录了其连接的非专用线路对应的私网路由(记为部分路由)。比如,图1中的站点1,其没有通过非专用线路与站点3至站点5连接,仅在与站点2之间采用了非专用线路,因此,站点1的私网路由表中,其不存在至站点3至站点5的路由,仅存在至站点2的路由。
基于上面描述的公网路由表和私网路由表,则,本发明提供的第一种方法包括图2所示的流程。
第一种方法:
参见图2,图2为本发明实施例提供的第一种方法流程图。如图2所示,该流程可包括以下步骤:
步骤201,接收数据报文。
步骤202,确定当前接收的数据报文是通过公网路由转发还是通过私网路由转发,如果是前者,则执行步骤203,如果是后者,则执行步骤204。
这里,步骤202中的识别可依赖于访问控制列表(ACL)中的报文类型规则,其中,该报文类型规则为:如果数据报文携带的优先级大于设定优先级,则确定数据报文通过公网路由转发,否则,确定数据报文通过私网路由转发。基于此,执行到本步骤202时,就先解析所述数据报文携带的优先级,利用该解析的优先级匹配所述报文类型规则,以确定步骤201接收的数据报文是通过公网路由转发还是通过私网路由转发。
优选地,本发明中,通过公网路由转发的数据报文称为第一类报文,其可为一些实时性比较高、比较重要的业务报文,比如语音、视频等,为保证该类报文的服务质量,常通过专用线路传输该类报文。而通过私网路由转发的数据报文称为第二类报文,其相对第一类报文而言,可为一些实时性不是很高、不是很重要的业务报文,由于该类报文实时性要求、重要程度不高,为节省成本,没有必要利用专用线路传输,可通过非专用线路传输。
步骤203,依据所述数据报文的目的IP地址在公网路由表中查找用于转发所述数据报文的公网路由,利用查找到的公网路由转发所述数据报文,结束当前流程。
本发明中,公网路由表的路由至少包含:出端口、目的IP地址。如此,执行到本步骤203时,就以所述数据报文的目的IP地址为关键字在所述公网路由表中查找,如果查找到,则通过该关键字对应的出端口转发所述数据报文。这里,由于公网路由表的公网路由实质为专用链路上的路由,因此,在公网路由表中查找到的出端接口肯定为专用链路上的端口,即实现了通过专用链路传输上述第一类数据报文的目的。
步骤204,依据所述数据报文的目的IP地址在私网路由表中查找用于转发所述数据报文的私网路由,如果查找到,则利用查找到的私网路由转发所述数据报文,结束当前流程,如果未查找到,则返回步骤203。
本发明中,私网路由表的路由至少包含:出接口、目的IP地址。如此,执行到本步骤204时,就以所述数据报文的目的IP地址为关键字在所述私网路由表中查找,如果查找到,则通过该关键字对应的出端口转发所述数据报文;而如果查找不到,则返回步骤203。由于私网路由表的私网路由为非专用链路上的路由,因此,在私网路由表中查找到的出端口肯定为非专用链路上的端口,即实现了通过非专用线路传输上述第二类数据报文的目的。
其中,本步骤204之所以在私网路由表中查找不到用于转发所述数据报文的路由时,还返回步骤203,主要是因为:基于上面描述,公网路由表包含了全网路由,而私网路由表中只能包含全网中的部分路由,因此,本步骤204在私网路由表中查找不到的路由肯定能够在公网路由表找到,通过公网路由表中找到的路由转发该数据报文,以保证数据报文继续转发,避免业务中断。
至此,完成图2所示的流程。
从图2所示的流程可以看出,本发明在站点接收到通过私网路由转发的数据报文即属于上述第二类报文的数据报文时,如果私网路由表中不存在用于转发该数据报文的私网路由,则就以所述数据报文的目的IP地址为关键字在所述公网路由表中查找,如果查找到,则通过该关键字对应的出端口转发所述数据报文。由于私网路由表的私网路由为非专用链路上的路由,公网路由表的公网路由为专用链路上的路由,因此,可以得到本发明在站点接收到属于本应通过非专用线路转发的数据报文时,如果该站点当前不存在到达所述数据报文目的IP地址的非专用线路,则就以专用线路转发所述数据报文,由于站点之间的专用线路是必不可少的,因此,能够保证所述数据报文继续转发,避免业务中断。
作为本发明实施例的一种扩展,本发明还提供了另外一种方法(记为第二种方法),下面进行描述:
第二种方法:
尽管本发明中的公网路由表和私网路由表两者相互独立,但是,为了保证站点的私网路由表在不存在用于转发数据报文(该数据报文属于上述第二类报文)的私网路由时还能继续保证该数据报文转发,本第二种方法就需要将该站点生成的公网路由表和私网路由表相互关联。本发明中,将公网路由表和私网路由表相互关联的一种优选方式为:将公网路由表中的所有公网路由全部导入至私网路由表。由于公网路由表包含了全网路由,因此,将公网路由表中的所有公网路由导入私网路由表,就能保证私网路由表包含了全网路由,实现了站点在其私网路由表不存在用于转发数据报文(该数据报文属于第二类报文)的私网路由时还能继续保证该数据报文转发。下面通过一个实施例进行描述:
仍以图1为例,在图1中由于站点1和站点3之间不存在非专用线路,因此,站点1的私网路由表中就不存在站点1至站点3的私网路由即非专用线路路由,如果不执行该第二种方法,则当站点1接收到目的IP地址为站点3下连的服务端的IP地址、且属于上述第二类报文的数据报文时,由于站点1的私网路由表中不存在站点1至站点3的私网路由即非专用线路路由,就导致该数据报文无法转发。而通过本方法2,由于已将站点1的公网路由表中的路由导入至私网路由表,如此,尽管站点1的私网路由表中不存在站点1至站点3的私网路由即非专用线路路由,但是,站点1可以依据私网路由表中新导入的、且至所述数据报文目的IP地址的公网路由转发该数据报文,由于公网路由表中的路由为专用线路路由,因此,该至所述数据报文目的IP地址的路由为专用线路路由,则实现了:尽管该接收的数据报文属于第二类报文,应该通过私网路由即非专用线路路由转发,但是,由于站点1不存在该私网路由,只能通过公网路由转发,这保证了数据报文继续转发,避免业务中断。
但是,第二种方法中,将公网路由表中的公网路由全部导入到私网路由表中,只能用在公网路由比较少、并且网络结构相对稳定且比较简单的情况,而如果公网路由比较多,则将公网路由导入到存放私网路由的私网路由表中,则必然会导致私网路由表中的路由数目急剧变大,同时,在公网路由发生变化时,还需要同步更新对应的公网路由并导入至私网路由表,这导致私网路由表的维护非常复杂。还有,在公网路由表中的公网路由导入到存放私网路由的私网路由表中之后,还可能存在以下情况:出现到达同一目的IP地址的公网路由和私网路由,这样,会增加路由选择的难度,并且,处理这些目的IP地址相同的公网路由和私网路由会占用cpu大量的资源。
以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述:
参见图3,图3为本发明实施例提供的报文转发装置结构图。该装置应用于网络站点,如图3所示,该装置可包括:
路由表生成单元,用于生成两个相互独立的公网路由表和私网路由表,所述公网路由表记录了作为公网路由的专用线路路由,所述私网路由表记录了作为私网路由的非专用线路路由;
报文处理单元,用于确定当前接收的数据报文是通过公网路由转发还是通过私网路由转发;
在确定通过公网路由转发时,依据所述数据报文的目的IP地址在所述公网路由表中查找用于转发所述数据报文的公网路由,利用查找到的公网路由转发所述数据报文,结束当前流程;
在确定通过私网路由转发时,依据所述数据报文的目的IP地址在所述私网路由表中查找用于转发所述数据报文的私网路由,如果查找到,则利用查找到的私网路由转发所述数据报文,结束当前流程。
优选地,所述报文处理单元进一步在在未查找到用于转发所述数据报文的私网路由时,依据所述数据报文的目的IP地址在所述公网路由表中查找用于转发所述数据报文的公网路由,利用查找到的公网路由转发所述数据报文,结束当前流程。
本发明中,所述报文处理单元通过以下子单元确定当前接收的数据报文是通过公网路由转发还是通过私网路由转发:
解析子单元,用于解析所述数据报文携带的优先级;
确定子单元,用于利用所述优先级和访问控制列表ACL中的报文类型规则确定所述数据报文是通过公网路由转发还是通过私网路由转发;其中,所述报文类型规则为:如果数据报文携带的优先级大于设定优先级,则确定数据报文通过公网路由转发,否则,确定数据报文通过私网路由转发。
优选地,本发明中,所述公网路由表和私网路由表通过虚拟专用网VPN路由转发VRF区分,其中,所述公网路由表的标识为与专用线路相关联的VRF,其记录的公网路由为与专用线路相关联的VPN的路由,所述私网路由表的标识为与非专用线路相关联的VRF,其记录的私网路由为与非专用线路相关联的VPN的路由。
其中,所述网络站点通过专用线路与全网中的其他站点相连,以及,所述网络站点有选择性地通过非专用线路与全网中的至少一个站点相连。
由以上技术方案可以看出,本发明中,通过生成上述的公网路由表和私网路由表,使得:站点在接收数据报文时,确定当前接收的数据报文是通过公网路由转发还是通过私网路由转发,如果是前者,则依据所述数据报文的目的IP地址在所述公网路由表中查找用于转发所述数据报文的公网路由,利用查找到的公网路由转发所述数据报文,结束当前流程;如果是后者,依据所述数据报文的目的IP地址在所述私网路由表中查找用于转发所述数据报文的私网路由,如果查找到,则利用查找到的私网路由转发所述数据报文,结束当前流程,即实现了根据业务选择合适的线路进行转发;
进一步地,本发明中,在接收到属于第二类报文的数据报文时,则优先从私网路由表中选择用于转发所述数据报文的路由进行转发,而如果在私网路由表中选择不出用于转发所述数据报文的路由时,则再从用于转发第一类报文的公网路由表中查找用于转发所述数据报文的路由,以保证数据报文持续转发,避免业务中断。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。