一种数据报文的路由方法和设备与流程

文档序号:11409347阅读:309来源:国知局
一种数据报文的路由方法和设备与流程
本发明涉及通信技术领域,尤其涉及一种数据报文的路由方法和设备。

背景技术:
为了对GGSN/PGW(网关GPRS支持节点/演进的分组核心网络设备)的Gi口的数据进行增值业务处理(如:对数据进行内容优化、加速的增值业务),可以在GGSN/PGW的Gi口串联增值业务服务器,如图1所示,为在Gi口串联4个增值业务服务器的系统架构示意图。所述增值业务服务器也可以称之为SE(ServiceEnabler,业务使能器),如视频优化器、业务流压缩器、数据缓存器、深度报文探测器、HTTP头增强器等。在图1所示的系统架构下,Gi口与各SE之间串联,业务流要流经每个SE,但是,在实际路由过程中,不是所有的业务流都需要经过每个SE,有鉴于此,可以对业务流的传输路径进行优化,使不同类别的业务流按照各自的路由规则进行路由。如:某些类别的业务流需流经所有的SE,某些类别的业务流需流经部分SE,甚至某些类别的业务流可以不流经SE。为了优化业务流流经SE的路径,使不同类别的业务流可按照各自的路由规则进行路由,目前业界提出了图2所示的基于业务的路由控制系统,所述路由控制系统包括:STC(ServiceTrafficClassifier,业务流分类器)、SPC(ServicePathController,业务路径控制器)、Switch(可编程交换机)和SE,其中:所述路由控制系统中包括的Switch和SE的数量可以为至少一个,STC和SE直接连接到Switch上,每个Switch上可以连接至少一个SE,Switch之间可直接互联或通过标准的交换机网络互联。这里的Switch是指:流表项可以由外部控制器通过外部开放接口进行编程控制的交换机,例如:Openflow交换机。所述STC用于识别业务流的应用类别,如视频应用、P2P应用、FTP下载应用、Web浏览应用等,并通过Sts接口向SPC上报该业务流的信息与对应的业务路由规则。另外,不同的业务流可能具有相同的业务路由规则,可以将具有相同业务路由规则的业务流视为对应同一业务链的业务流,因此,STC也可以向SPC上报业务链的信息与对应的业务路由规则。若SPC接收到的是业务流的信息与对应的业务路由规则,则可以直接确定所述业务流的信息对应的业务流的业务路由规则;若SPC接收到的是业务链的信息与对应的业务路由规则,则可以确定根据该业务链的信息确定对应的业务链,进而确定对应该业务链的各条业务流的业务路由规则。所述业务流的信息是用于标识该业务流的信息,例如:业务流五元组信息(源IP地址、目的IP地址、协议类型、源端口号、目的端口号)。所述业务链的信息是用于标识具有相同业务路由规则的业务流所共同对应的业务链的信息,例如,具有相同业务路由规则的各业务流中的数据报文进行隧道封装时使用相同的隧道标识,则可将所述隧道标识作为业务链的信息。所述业务路由规则中包括业务流在多个节点间的路由路径,所述业务路由规则可以包括至少一条路由路径,其中,每条路由路径表示业务流从一个节点流向另一个节点的路由过程。以所述节点是SE为例,所述业务路由规则中的各条路由路径集合在一起可以是:按照业务流的路由顺序依次排列的SE信息,其中,所述SE信息可以是SE的名称、标识、IP地址、MAC地址等能够唯一标识该SE的信息。SPC接收到STC发送的业务流的信息与对应的业务路由规则或业务链的信息与对应的业务路由规则后,可根据资源拓扑信息(即Switch、SE和STC之间的拓扑信息)确定该业务流按照依次排列的SE路由时所经过的路径(即路由时所经过的Switch端口和SE),并为该路径上的每个Switch生成与业务路由规则适配的至少一条转发规则,所述转发规则中包括业务流从一个节点到相邻的另一个节点的路由路径。SPC将生成的所述转发规则下发至业务流路由时所经过的Switch,具体地,SPC可通过流表项等形式将所述转发规则下发至Switch。Switch在接收到业务流时,可根据业务流的信息(如业务流五元组信息)或业务链的信息确定对应的至少一条转发规则,并按照该转发规则对业务流中的数据报文进行路由处理。当对应不同业务链的业务流需要通过与Switch的不同端口相连的多个SE进行业务处理时,在目前的处理方式下,网络开销较大。

技术实现要素:
本发明实施例描述了一种数据报文的路由方法和设备,用以解决现有技术中网络开销较大的问题。第一方面,提供一种数据报文的路由方法,包括:Swtich接收业务使能器SE发送的数据报文;所述Switch根据从所述SE接收到的数据报文所属的业务流,获取所述业务流对应的业务链的转发规则;所述Switch根据所述转发规则对从所述SE接收到的数据报文进行路由。结合第一方面,在第一种可能的实现方式下,所述Switch根据从所述SE接收到的数据报文所属的业务流,获取所述业务流对应的业务链的转发规则,包括:所述Switch根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,获取所述业务链的转发规则。结合第一方面的第一种可能实现方式,在第二种可能的实现方式下,还包括:所述Switch根据所述转发规则生成流表项,所述流表项的匹配域包括所述业务链的信息,所述流表项的指令域包括所述转发规则;所述Switch根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,获取所述业务链的转发规则,包括:所述Switch根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,封装从所述SE接收到的数据报文,以使封装后的所述的数据报文包括所述业务链的信息;所述Switch根据封装后的所述数据报文获取对应的所述流表项的指令域的信息;或者,所述Switch根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,获得所述业务链的信息;所述Switch根据所述获得的业务链的信息获取对应的所述流表项的指令域的信息。结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式下,所述业务流和所述业务链的对应关系是所述Switch根据接收到的数据报文中包括的所述业务流的信息和所述业务链的信息建立的。结合第一方面的第三种可能实现方式,在第四种可能的实现方式下,还包括:所述Switch接收网络设备发送的数据报文,其中所述网络设备发送的数据报文包括所述业务流的信息和所述业务链的信息;所述Switch根据所述业务流的信息和所述业务链的信息建立所述业务流和所述业务链的对应关系。结合第一方面,在第五种可能的实现方式下,所述Switch根据从所述SE接收到的数据报文所属的业务流,获取所述业务流对应的业务链的转发规则,包括:所述Switch根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的转发规则的对应关系,获取所述业务链的转发规则。结合第一方面的第五种可能实现方式,在第六种可能的实现方式下,所述业务流和所述业务链的转发规则的对应关系是所述Switch根据接收到数据报文中包括的所述业务流的信息和所述业务链的信息建立的。结合第一方面的第六种可能实现方式,在第七种可能的实现方式下,还包括:所述Switch接收网络设备发送的数据报文,其中所述网络设备发送的数据报文包括所述业务流的信息和所述业务链的信息;所述Switch根据所述业务流的信息和所述业务链的信息,以及所述业务链与所述业务链的转发规则的对应关系,建立所述业务流和所述业务链的转发规则的对应关系。结合第一方面的第七种可能实现方式,在第八种可能的实现方式下,所述Switch根据所述业务流的信息和所述业务链的信息,以及所述业务链与所述业务链的转发规则的对应关系,建立所述业务流和所述业务链的转发规则的对应关系,包括:所述Switch根据所述业务流的信息和所述业务链的信息,以及所述业务链与所述业务链的转发规则的对应关系,生成流表项,其中所述流表项的匹配域包括所述业务流的信息,所述指令域包括所述转发规则。结合第一方面的第八种可能实现方式,在第九种可能的实现方式下,所述Switch根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的转发规则的对应关系,获取所述业务链的转发规则,包括:所述Switch根据从所述SE接收到的数据报文所属的业务流,获取对应的所述流表项的指令域的信息。结合第一方面的第一至第九种任一可能的实现方式,在第十种可能的实现方式下,还包括:所述Switch接收业务路径控制器SPC下发的所述业务链的转发规则。结合第一方面的第四种可能实现方式或第七种可能实现方式,在第十一种可能的实现方式下,还包括:所述Switch接收所述SPC下发的指示信息,所述指示信息用于指示所述Switch建立所述对应关系;或者,所述Swtich根据配置信息确定建立所述对应关系。结合第一方面的第十一种可能实现方式,在第十二种可能的实现方式下,还包括:所述Switch向SPC上报所述Switch具有建立所述对应关系的能力;或者,所述Switch根据配置信息确定所述Swtich具有建立所述对应关系的能力。第二方面,提供一种数据报文的路由设备,包括:报文接收单元,用于接收业务使能器SE发送的数据报文;转发规则获取单元,用于根据从所述SE接收到的数据报文所属的业务流,获取所述业务流对应的业务链的转发规则;路由单元,用于根据所述转发规则对从所述SE接收到的数据报文进行路由。结合第二方面,在第一种可能的实现方式下,所述转发规则获取单元,具体用于根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,获取所述业务链的转发规则。结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式下,还包括:流表项生成单元,用于根据所述转发规则生成流表项,所述流表项的匹配域包括所述业务链的信息,所述流表项的指令域包括所述转发规则;所述转发规则获取单元,具体用于根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,封装从所述SE接收到的数据报文,以使封装后的所述的数据报文包括所述业务链的信息,并根据封装后的所述数据报文获取对应的所述流表项生成单元生成的所述流表项的指令域的信息;或者,根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,获得所述业务链的信息,并根据所述获得的业务链的信息获取对应的所述流表项生成单元生成的所述流表项的指令域的信息。结合第二方面或第二方面的第一种可能的实现方式,在第三种可能的实现方式下,还包括:对应关系建立单元,用于根据接收到的数据报文中包括的所述业务流的信息和所述业务链的信息建立所述业务流和所述业务链的对应关系。结合第二方面的第三种可能的实现方式,在第四种可能的实现方式下,所述报文接收单元,还用于接收网络设备发送的数据报文,其中所述网络设备发送的数据报文包括所述业务流的信息和所述业务链的信息;所述对应关系建立单元,具体用于根据所述报文接收单元接收到的数据报文中包括的所述业务流的信息和所述业务链的信息建立所述业务流和所述业务链的对应关系。结合第二方面,在第五种可能的实现方式下,所述转发规则获取单元,具体用于根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的转发规则的对应关系,获取所述业务链的转发规则。结合第二方面的第五种可能的实现方式,在第六种可能的实现方式下,还包括:对应关系建立单元,用于根据接收到数据报文中包括的所述业务流的信息和所述业务链的信息建立所述业务流和所述业务链的转发规则的对应关系。结合第二方面的第六种可能的实现方式,在第七种可能的实现方式下,所述报文接收单元,还用于接收网络设备发送的数据报文,其中所述网络设备发送的数据报文包括所述业务流的信息和所述业务链的信息;所述对应关系建立单元,具体用于根据所述报文接收单元接收到的数据报文中的所述业务流的信息和所述业务链的信息,以及所述业务链与所述业务链的转发规则的对应关系,建立所述业务流和所述业务链的转发规则的对应关系。结合第二方面的第七种可能的实现方式,在第八种可能的实现方式下,所述对应关系建立单元,具体用于根据所述报文接收单元接收到的数据报文中的业务流的信息和所述业务链的信息,以及所述业务链与所述业务链的转发规则的对应关系,生成流表项,其中所述流表项的匹配域包括所述业务流的信息,所述指令域包括所述转发规则。结合第二方面的第八种可能的实现方式,在第九种可能的实现方式下,所述转发规则获取单元,具体用于根据从所述SE接收到的数据报文所属的业务流,获取对应的所述流表项的指令域的信息。结合第二方面或第二方面的第一至第九种任一可能的实现方式,在第十种可能的实现方式下,还包括:转发规则接收单元,用于接收业务路径控制器SPC下发的所述业务链的转发规则。结合第二方面的第四种可能的实现方式或第七种可能的实现方式,在第十一种可能的实现方式下,还包括:触发单元,用于在接收所述SPC下发的指示信息时,所述指示信息用于指示所述Switch建立所述对应关系,或者,根据配置信息确定建立所述对应关系时,触发所述对应关系建立单元。结合第二方面的第十一种可能的实现方式,在第十二种可能的实现方式下,还包括:上报单元,用于向SPC上报自身具有建立所述对应关系的能力。第三方面,提供一种数据报文的路由设备,包括:通信接口,用于与外部网络设备进行交互;处理器,用于通过所述通信接口接收SE发送的数据报文,并根据从所述SE接收到的数据报文所属的业务流,获取所述业务流对应的业务链的转发规则,以及根据所述转发规则对从所述SE接收到的数据报文进行路由。结合第三方面,在第一种可能的实现方式下,所述处理器用于根据从所述SE接收到的数据报文所属的业务流,获取所述业务流对应的业务链的转发规则,包括:所述处理器用于根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,获取所述业务链的转发规则。结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式下,所述处理器,还用于根据所述转发规则生成流表项,所述流表项的匹配域包括所述业务链的信息,所述流表项的指令域包括所述转发规则,所述处理器具体用于根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,获取所述业务链的转发规则,包括:所述处理器用于根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,封装从所述SE接收到的数据报文,以使封装后的所述的数据报文包括所述业务链的信息,并根据封装后的所述数据报文获取对应的所述流表项的指令域的信息;或者,根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,获得所述业务链的信息,并根据所述获得的业务链的信息获取对应的所述流表项的指令域的信息。结合第三方面或第三方面的第一种可能的实现方式,在第三种可能的实现方式下,所述业务流和所述业务链的对应关系是所述Switch根据接收到的数据报文中包括的所述业务流的信息和所述业务链的信息建立的。。结合第三方面的第三种可能的实现方式,在第四种可能的实现方式下,所述处理器,还用于通过所述通信接口接收网络设备发送的数据报文,其中所述网络设备发送的数据报文包括所述业务流的信息和所述业务链的信息;所述处理器,还用于根据通过所述通信接口接收到的数据报文中包括的所述业务流的信息和所述业务链的信息建立所述业务流和所述业务链的对应关系。结合第三方面,在第五种可能的实现方式下,所述处理器具体根据从所述SE接收到的数据报文所属的业务流,获取所述业务流对应的业务链的转发规则,包括:所述处理器用于根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的转发规则的对应关系,获取所述业务链的转发规则。结合第三方面的第五种可能的实现方式,在第六种可能的实现方式下,所述业务流和所述业务链的转发规则的对应关系是所述Switch根据接收到数据报文中包括的所述业务流的信息和所述业务链的信息建立的。结合第三方面的第六种可能的实现方式,在第七种可能的实现方式下,所述处理器还用于通过通信接口接收网络设备发送的数据报文,其中所述网络设备发送的数据报文包括所述业务流的信息和所述业务链的信息;所述处理器,还用于根据通过所述通信接口接收到的数据报文中的所述业务流的信息和所述业务链的信息,以及所述业务链与所述业务链的转发规则的对应关系,建立所述业务流和所述业务链的转发规则的对应关系。结合第三方面的第七种可能的实现方式,在第八种可能的实现方式下,所述处理器根据所述业务流的信息和所述业务链的信息,以及所述业务链与所述业务链的转发规则的对应关系,建立所述业务流和所述业务链的转发规则的对应关系,包括:所述处理器用于根据通过所述通信接口接收到的数据报文中的业务流的信息和所述业务链的信息,以及所述业务链与所述业务链的转发规则的对应关系,生成流表项,其中所述流表项的匹配域包括所述业务流的信息,所述指令域包括所述转发规则。结合第三方面的第八种可能的实现方式,在第九种可能的实现方式下,所述处理器用于根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的转发规则的对应关系,获取所述业务链的转发规则,包括:所述处理器用于根据从所述SE接收到的数据报文所属的业务流,获取对应的所述流表项的指令域的信息。结合第三方面或第三方面的第一至第九种任一可能的实现方式,在第十种可能的实现方式下,所述处理器还用于通过所述通信接口接收SPC下发的所述业务链的转发规则。结合第三方面的第四种可能的实现方式或第七种可能的实现方式,在第十一种可能的实现方式下,所述处理器,还用于在接收所述SPC下发的指示信息时,所述指示信息用于指示所述Switch建立所述对应关系,或者,根据配置信息确定建立所述对应关系时,建立业务流与业务链的对应关系或业务流与业务链的转发规则之间的对应关系。结合第三方面的第十一种可能的实现方式,在第十二种可能的实现方式下,所述处理器还用于通过所述通信接口向SPC上报自身具有建立所述对应关系的能力。通过本发明实施例的方案,当Switch从SE接收到经过业务处理的业务流时,Switch可根据从SE接收到的所述业务流确定对应业务链的转发规则,并按照该转发规则对接收到的来自SE的数据报文进行路由。相比现有技术中SPC需针对每个业务流向Switch下发转发规则的情况,采用本发明实施例的技术方案,SPC只需针对每个业务链向Switch下发转发规则,减少了SPC和Switch之间的信令交互,节约了网络开销。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为

背景技术:
中在Gi口串联4个增值业务服务器的系统架构示意图;图2为

背景技术:
中基于业务的路由控制系统示意图;图3为在数据报文中封装有业务链的信息的结构示意图;图4为本发明实施例一中数据报文的路由方法步骤示意图;图5为本发明实施例二中数据报文的路由方法步骤示意图;图6为本发明实施例三中两对应不同业务链的业务流的路由示意图;图7为本发明实施例三中流入Switch的数据报文的格式示意图;图8为本发明实施例三中对流入Switch的数据报文按照业务链a的转发规则一处理后的格式示意图;图9为本发明实施例六中Switch内部署逻辑模块的示意图;图10(a)和图10(b)为本发明实施例七中数据报文的路由设备结构示意图;图11为本发明实施例八中数据报文的路由设备结构示意图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。在实际网络部署时,可能出现多个业务流(即各自的五元组内容不同的业务流)按照同一转发规则进行路由的情况,例如:FTP下载应用的业务流的转发规则为:业务流经过SE1处理后,再经由Switch发送至Internet;Web浏览应用的业务流的转发规则也为:业务流经过SE1处理后,再经由Switch发送至Internet,此时,两种不同应用类别的业务流在图2所示的路由控制系统中的路由路径是一样的,因此,STC可以向SPC发送业务链的信息和对应的业务路由规则。例如:STC对上述FTP下载应用的业务流和Web浏览应用的业务流识别后,确定这两种业务流的业务路由规则相同,STC可以向SPC发送业务链的信息(如所述两种业务流中的数据报文进行隧道封装时所使用的相同的隧道标识)与对应的业务路由规则。SPC根据接收到的业务链的信息和对应的业务路由规则,生成与该业务路由规则适配的且与该业务链的信息关联的转发规则,并下发至Switch。在业务流开始路由时,STC对FTP下载应用的业务流和Web浏览应用的业务流中的各数据报文进行隧道封装,将相同的隧道标识封装在各数据报文的外层。以隧道标识为VxLANID为例,经过封装后的业务流中数据报文结构如图3所示,其中VxLANHeader字段中存储的是VxLANID。当封装有所述隧道标识的数据报文到达Switch后,Switch根据SPC预先下发的与该隧道标识关联的转发规则对FTP下载应用的业务流和Web浏览应用的业务流进行路由。相较于SPC根据STC发送的业务流的信息和对应的业务路由规则的做法,SPC接收STC发送的业务链的信息和对应的业务路由规则的优点是:对于转发规则相同的多个业务流而言,SPC可向Switch下发多个转发规则相同的业务流对应业务链的转发规则,Switch可根据该转发规则对对应相同业务链的各条业务流进行处理,相较于SPC为每个业务流分别向Switch下发对应的转发规则的情况,可减少SPC和Switch之间的信令交互,同时,Switch上存储的规则也减少了,节约Switch上的存储空间。具体地到本发明实施例的方案,当封装有隧道标识的数据报文到达Switch时,Switch将所述数据报文解封装并去掉所述隧道标识后,根据对应的转发规则将解封装后的数据报文发送给SE,SE对所述数据报文处理后再发回给Switch,由于SE是第三方的业务使能器,不具有感知数据报文所属业务流对应的业务链的能力,因此,Switch接收到的SE发回的数据报文中不包含隧道标识,为了实现对SE发回的数据报文的正确路由,在本发明实施例的方案中,Switch根据SE发回的数据报文所属的业务流,获取所述业务流对应业务链的转发规则,进而利用该转发规则对SE发回的数据报文进行路由,实现了Switch根据SPC下发的业务链的信息和对应的转发规则,对SE发回的不包含业务链的信息的数据报文的正确路由,除了减少了STC和SPC之间、SPC和Switch之间的信令交互外,本发明实施例的方案更具有通用性和灵活性。下面结合附图对本发明优选的实施方式进行详细说明。实施例一:如图4所示,为本发明实施例一中数据报文的路由方法步骤示意图,所述方法主要包括以下步骤:步骤101:Switch接收SE发送的数据报文。在本发明实施例一的方案中,Switch可以接收SE或是其他网络设备发送的数据报文,当Switch接收到SE发送的数据报文时,由于SE是第三方的业务使能器,不具有感知数据报文所属业务流对应的业务链的能力,因此,Switch接收到的SE发送的数据报文中不包含业务链的信息。步骤102:Switch根据从所述SE接收到的数据报文所属的业务流,获取所述业务流对应的业务链的转发规则。在本步骤102的方案中,Switch可以根据预先保存的业务流和业务链的对应关系,确定从所述SE接收到的数据报文所属的业务流对应的业务链,进而确定该业务链的转发规则;或者,Switch可以个根据预先保存的业务流和业务链的转发规则的对应关系,确定从所述SE接收到的数据报文所属的业务流对应的业务链的转发规则。步骤103:Switch根据获取的所述转发规则对从所述SE接收到的数据报文进行路由。通过本发明实施例一的方案,Switch从SE接收到的不包含业务链的信息的数据报文时,仍可以根据所述数据报文所属的业务流获取对应的业务链的转发规则对接收到的数据报文进行路由,实现了Switch根据SPC下发的业务链的信息和对应的转发规则,对SE发送的不包含业务链的信息的数据报文的正确路由,除了减少了STC和SPC之间、SPC和Switch之间的信令交互外,还更具有通用性和灵活性。下面通过具体实施例对本发明实施例一的方案进行详细描述。如图5所示,为本发明实施例二中数据报文的路由方法步骤示意图,所述方法主要包括以下步骤:步骤201:Switch接收SPC下发的业务链的至少一条转发规则,所述业务链的转发规则用于指示对应该业务链的至少两条业务流共同使用的路由路径。本步骤201可以是实现本发明实施例的优选步骤,Switch获得业务链的转发规则的方式不限于本步骤201描述的方式。一条转发规则中定义的路由路径举例为:业务流a从某一端口到达Switch后,Switch能够根据转发规则中定义的路由路径将业务流路由至一个SE中或是路由至其他网络设备中。所述SPC可以通过可编程接口(如OpenFlow协议接口)向所述Switch下发所述转发规则。所述SPC向Switch下发的转发规则可以以流表项或其他形式描述,本发明实施例并不对转发规则的描述形式做限定。所述转发规则中还可以包含业务链的信息,在本实施例的方案中,业务链的信息包括但不限于隧道标识(如VLANID、VxLANID、GREKey等)、业务标识(如ServiceID)或其他表示至少两条转发规则相同的业务流对应的业务链的信息,本发明实施例并不对业务链的信息做限定。所述业务链的信息可以由SPC生成后包含在转发规则中发送给Switch,也可以由其他网络设备(如STC)生成后发送给SPC,再由SPC将所述业务链的信息包含在转发规则中发送给Switch,本发明实施例并不对生成业务链的信息的设备做限定。当Switch接收到SPC下发的转发规则后,Switch将在本地保存所述转发规则,一种可选的保存方式为:当Switch接收SPC针对一业务链下发的至少一条转发规则后,可针对每条转发规则分别生成流表项,以流表项的形式来保存接收到的转发规则。所述流表项中定义了匹配域和指令域,其中:所述匹配域中包括业务链的信息,所述指令域中包括:所针对的转发规则。当Switch接收网络设备发送的数据报文时,所述数据报文中包括业务流的信息和业务链的信息,Switch可将接收到的所述数据报文中包括的业务链的信息与流表项中的匹配域的信息进行比较,查询出匹配域中的业务链的信息与接收到的所述数据报文中的业务链的信息相同的流表项,进而获取该流表项中的指令域,确定其中的转发规则。步骤202:Switch接收网络设备发送的包括有业务链的信息和业务流的信息的数据报文时,建立业务流和业务链的对应关系,或是建立业务流和业务链的转发规则的对应关系。本步骤202是本发明实施例的优选步骤,Switch可以根据网络设备发送的包括有业务链的信息和业务流的信息的数据报文来建立上述两种对应关系中的至少一种对应关系,但本实施例的方案也不限于Switch通过其他方式确定所述对应关系,例如,上述两种对应关系中的至少一种对应关系可以由SPC向Switch下发。以Switch根据本步骤202接收到的数据报文中的业务流的信息和业务链的信息来分别建立上述两种对应关系为例,对本步骤202的实现方式进行详细说明。Switch在本步骤202中接收到的数据报文中的业务流的信息可以是任何能够标识该业务流的信息,如:业务流的五元组(包括经编排后的五元组)、五元组中一部分内容(如:源IP地址和目的IP地址)、经编排后的五元组中一部分内容或业务流中数据报文所使用的VLAN标签等,本发明实施例并不对业务流的信息的表现形式做限定。以业务流的信息为业务流的五元组、业务链的信息为隧道标识为例,Switch在本步骤202中建立上述两种对应关系分别描述如下:一、Switch建立业务流和业务链的对应关系。具体地,Switch针对业务流的五元组与业务链的隧道标识生成流表项形式的对应关系。或者,Switch生成一个设定表,如链表或Hash表,Switch将所述业务流的五元组与业务链的隧道标识作为元素插入所述设定表中,来表示业务流的五元组和业务链的隧道标识之间的对应关系。二、Switch建立业务流和业务链的转发规则的对应关系。具体地,Switch将本步骤202接收到的数据报文中的业务链的信息作为查询条件,对步骤201中的流表项中的匹配域进行查询,进而获取查询出的流表项中的指令域的信息,即获取所述业务链的信息对应业务链的转发规则。Switch针对业务流的五元组与该业务流对应业务链的转发规则生成流表项,其中:匹配域中包含所述业务流的五元组,指令域中包含获取的所述业务链的转发规则。本发明实施例并不对Switch建立的所述对应关系的表现形式做限定。可选的,在本步骤202中,Switch可通过以下方式确定是否要建立业上述两种对应关系中的至少一种对应关系:方式一:由SPC下发给Switch的转发规则中包含的指示消息来确定Switch是否需要执行建立上述至少一种对应关系的操作,一种可行的实现手段为:SPC在下发给Switch的转发规则中包含建立上述至少一种对应关系的指示信息,如SPC在flowmodification消息中的Instruction字段中包含所述指示信息,指示Switch在本步骤202接收到包含业务流的信息和业务链的信息的数据报文时,建立上述至少一种对应关系。方式二:由Switch根据本地存储的配置信息确定是否需要执行建立上述至少一种对应关系的操作,一种可行的实现手段为:Switch在本地存储配置信息,所述配置信息中记录业务流的信息,如VLAN标签、VxLANID、源MAC地址、目的MAC地址、源IP地址、目的IP地址、端口号。当Switch接收到包含业务流的信息和业务链的信息的数据报文时,Switch根据配置信息中记录的信息,获取所述数据报文的业务流的信息,例如,VLAN标签、VxLANID、源MAC地址、目的MAC地址、源IP地址、目的IP地址、端口号中的至少一个信息,并将获取的业务流的信息与配置信息中的内容进行比较,若匹配(包括获取的业务流的信息与配置信息中的内容相同、获取的业务流的信息属于配置信息中的内容表示的范围等),则Switch确定需要执行建立上述至少一种对应关系的操作。例如,Switch内存储的配置信息中记录了VLAN标签集合,当在本步骤202接收到包含有业务流的信息和业务链的信息的数据报文时,Switch获取所述数据报文的VLAN标签,若获取的所述数据报文的VLAN标签包含在配置信息中的VLAN标签集合中,则确定需要执行建立上述至少一种对应关系的操作。可选的,SPC需要获知Switch是否具有建立上述至少一种对应关系的能力,在确定Switch具有建立上述至少一种对应关系的能力时,执行本发明实施例的方案。一种可选的实现方式为:SPC和Switch之间具有能力协商机制,使SPC能够获知Switch是否具有建立上述至少一种对应关系的能力。例如:Switch可以通过能力上报的方式告知SPC自身是否具有建立上述至少一种对应关系的能力,以SPC和Switch之间使用Openflow协议为例,Switch可将自身是否具有建立上述至少一种对应关系的能力信息携带在Featurelist信元上通知给SPC。另一种可选的实现方式为:在SPC的配置信息中记录具有建立上述至少一种对应关系能力的Switch信息,如在配置信息中记录具有建立上述至少一种对应关系能力的Switch地址信息,SPC根据配置信息中记录的内容可获知Switch是否具有建立上述至少一种对应关系的能力。步骤203:Switch根据网络设备发送的所述数据报文中的业务链的信息确定业务链的转发规则,并根据该转发规则对接收到的数据报文进行路由。以步骤201中Switch以流表项的形式来保存SPC下发的转发规则为例,在本步骤203中,Switch从接收到的数据报文中提取出业务链的信息,并将提取出的业务链的信息与步骤201中的流表项的匹配域进行比较,查询出匹配域中的内容与本步骤的数据报文中的业务链的信息相同的流表项,并从查询出的所述流表项中获取指令域中的转发规则。Switch可对接收到的数据报文进行解封装、去掉数据包头中的业务链的信息,再按照查询出的流表项中指令域中的转发规则,对接收到的所述数据报文进行路由。步骤204:Switch在接收到SE发送的数据报文时,根据已建立的所述对应关系,获取从SE接收到的数据报文中的业务流的信息对应的业务链的转发规则,并根据确定的所述转发规则对从SE接收到的数据报文进行路由。需要说明的是,在步骤202中Switch建立所述对应关系的过程以及本步骤204中Switch利用所述对应关系对来自SE的数据报文的处理过程可以是独立的两个过程,Switch在创建对应关系后,可将所述对应关系应用在所属业务流为所述对应关系中的业务流的数据报文的处理过程中。在步骤203中,Switch对接收到的数据报文进行解封装、去掉业务链的信息后,可将解封装后的数据报文路由至SE,当SE对接收到的数据报文处理完毕后,又将该数据报文发回至Switch,此时,Switch接收到的数据报文内没有包含业务链的信息。在本实施例中,步骤202至步骤204处理的数据报文是属于同一业务流的数据报文,即:步骤202处理的数据报文与步骤204中处理的数据报文中包含相同的业务流标识,其所属业务流对应的业务链也相同。如果在步骤202中建立的是业务流的信息与业务链的信息的对应关系,则本步骤204中可根据从SE接收到的数据报文中的业务流的信息确定对应的业务链的信息,再以确定出的业务链的信息为查找条件,从步骤201中生成的流表项查询出匹配域的内容与确定出的业务链的信息相同的流表项,进而按照查询出的流表项中的指令域中的转发规则对从SE接收到的数据报文进行路由。如果在步骤202中建立的是业务流的信息与业务流对应的业务链的转发规则的对应关系,则本步骤204中可根据从SE接收到的数据报文中的业务流的信息直接确定出对应的业务链的转发规则后,对从SE接收到的数据报文进行路由。通过本发明实施例二的方案,利用业务流和业务链的对应关系或业务流与业务链的转发规则的对应关系,可使Switch接收到SE发回的数据报文内没有包含业务链的信息时,也可根据所述对应关系确定出对SE发回的数据报文进行路由的转发规则,以减少在STC和SPC之间、SPC和Switch之间的信令交互,解决网元信令负荷较重的问题。在本实施例二的方案中,SPC向Switch下发的业务链的转发规则以及Switch建立的对应关系可以有多种表现形式,下面分别通过实施例三、实施例四、实施例五和实施例六来分别加以描述。实施例三:在本发明实施例三的方案中,Switch根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,封装从所述SE接收到的数据报文,以使封装后的所述的数据报文包括所述业务链的信息,进而Switch可以根据封装后的所述数据报文获取对应的所述流表项的指令域的信息来对数据报文进行路由;或者,Switch根据从所述SE接收到的数据报文所属的业务流,以及所述业务流和所述业务链的对应关系,获得所述业务链的信息,并根据所述获得的业务链的信息获取对应的所述流表项的指令域的信息,来对数据报文进行路由。下面以Switch处理两条对应不同业务链的业务流为例来进行说明,在本实施例三中,Switch建立的对应关系是根据业务流的信息和业务链的信息建立的业务流和业务链之间的对应关系。如图6所示,为Switch对两条对应不同业务链的业务流的数据报文进行路由处理的示意图。作如下假设:1)、业务流a对应业务链a,业务链a的转发规则为:业务流a在Switch上流经SE1和SE2后,再由Switch发送至外部网络设备(如Internet中的网元)。2)、业务流b对应业务链b,业务链b的转发规则为:业务流b在Switch上流经SE1后,再由Switch发送至外部网络设备。3)、业务链的信息是隧道标识,其中,业务链a的隧道标识为TunnelIDA,业务链b的隧道标识为TunnelIDB。4)、端口1、端口2和端口3是Switch上的3个输入端口;端口4、端口5和端口6是Switch上的3个输出端口。基于图6的内容以及上述假设,本发明实施例三中Switch对数据报文进行路由处理的过程描述如下:第一步:SPC通过可编程接口向Switch下发业务链a的转发规则a和业务链b的转发规则b。一条业务链可有至少一条转发规则,在本实施例三中,业务链a的转发规则共有三条,分别为业务流a从端口1、端口2和端口3输入至Switch时所使用的转发规则;业务链b的转发规则共有两条,分别为业务流b从端口1和端口2输入至Switch时所使用的转发规则。Switch接收到转发规则后可以以流表项的形式保存(本实施例三以流表项的形式举例),若流入Switch的业务流中数据报文格式如图7所示,则Switch中保存的流表项形式的转发规则描述如下:业务链a的转发规则一(业务链a的流表项1):匹配域(MatchField):业务链a标识(TunnelIDA)和端口号1(IngressPort1);指令域(Instruction):对业务流中的数据报文解封装、去掉TunnelIDA,并将解封装后的数据报文通过端口4发送给SE1。Instruction举例为:DecapTunnelIDA(去掉数据报文的外层隧道封装);InnerMACDA—>SE1MAC(把数据报文的内层目的MAC地址修改为SE1的MAC地址);Output—>port4(输出端口为端口4)。若Switch按照业务链a的转发规则一对业务流a进行处理后,业务流中数据报文的格式将会如图8所示。业务链a的转发规则二(业务链a的流表项2):MatchField:TunnelIDA和IngressPort2;Instruction:对业务流中的数据报文解封装、去掉TunnelIDA,并将解封装后的数据报文通过端口5发送给SE2。Instruction举例为:DecapTunnelIDA(去掉数据报文的外层隧道封装);InnerMACDA—>SE2MAC(把数据报文的内层目的MAC地址修改为SE2的MAC地址);Output—>port5(输出端口为端口5)。若Switch按照业务链a的转发规则二对业务流a进行处理后,业务流中数据报文的格式也会如图8所示,与业务流a经过转发规则一处理后的区别在于:InnerMACDA中的MAC地址不同。业务链a的转发规则三(业务链a的流表项3):MatchField:TunnelIDA和IngressPort3;Instruction:对业务流中的数据报文解封装、去掉TunnelIDA,并将解封装后的数据报文通过端口6发送给外部网络设备。所述外部网络设备可以是与本Switch之间能够进行层二(以下以MAC层为例)通信的网络设备(如业务服务器),也可以是与本Switch之间无法进行层二通信的网络设备,针对这两种情况,Instruction举例为:外部网络设备可以与本Switch之间进行MAC层通信的情况:DecapTunnelIDA;(去掉数据报文的外层隧道封装)InnerMACDA—>外部网络设备MAC(把数据报文的内层目的MAC地址修改为外部网络设备的MAC地址);Output—>port6(输出端口为端口6)。在外部网络设备可以与本Switch间进行MAC层通信的情况下,若Switch按照业务链a的转发规则三对业务流a进行处理后,业务流中数据报文的格式也会如图8所示,与业务流a经过转发规则一、转发规则二处理后的区别在于:InnerMACDA中的MAC地址不同。外部网络设备无法与本Switch之间进行MAC层通信的情况:OuterMACSA—>本Switch隧道端点的MAC地址;OuterMACDA—>外部网络设备隧道端点的MAC地址;OuterIPSA—>本Switch隧道端点的IP地址;OuterIPDA—>外部网络设备隧道端点的IP地址;En...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1