一种报文处理的方法、报文设备和系统转让专利

申请号 : CN201380036284.3

文献号 : CN104488237B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 闫长江

申请人 : 华为技术有限公司

摘要 :

本发明实施例公开报文处理的方法,包括:业务分发节点接收控制器发来的业务路由信息,所述业务路由信息包括:流标识,业务标识和下一跳地址,所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例;所述业务分发节点接收第一报文;所述业务分发节点根据所述第一报文获取第一流标识,根据所述第一流标识查找所述业务路由信息,获取匹配的业务标识和匹配的下一跳地址;所述业务分发节点向拥有所述匹配的下一跳地址的第一业务节点实例发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的,实现了对报文流的业务处理。

权利要求 :

1.一种报文处理方法,其特征在于,所述方法包括:

业务分发节点接收控制器发来的业务路由信息,所述业务路由信息包括:流标识,业务标识和下一跳地址,其中所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例;

所述业务分发节点接收第一报文;

所述业务分发节点根据所述第一报文获取第一流标识,根据所述第一流标识查找所述业务路由信息,获取匹配的业务标识和匹配的下一跳地址;

所述业务分发节点向拥有所述匹配的下一跳地址的第一业务节点实例发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的。

2.根据权利要求1所述的方法,其特征在于,所述下一跳地址为下一跳MAC地址或下一跳IP地址。

3.一种报文处理方法,其特征在于,所述方法包括:

第一业务节点实例接收控制器发送的业务路由信息,所述业务路由信息包括:业务标识和下一跳地址;其中所述业务标识用于标识处理报文流的业务节点实例的序列;

所述第一业务节点实例接收第一报文,其中所述第一报文携带所述第一报文匹配的业务标识;

所述第一业务节点实例处理所述第一报文形成第二报文,其中所述第二报文携带所述第一报文匹配的业务标识;

所述第一业务节点实例根据所述第一报文匹配的业务标识查找所述业务路由信息,获取第一下一跳地址,第一下一跳地址为与所述第一报文匹配的业务标识匹配的下一跳地址;

如果所述第一下一跳地址为可达的地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送所述第二报文。

4.根据权利要求3所述的方法,其特征在于,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳IP地址的设备发送所述第二报文包括:所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;

所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第一以太报文;

所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第一以太报文。

5.根据权利要求3所述的方法,其特征在于,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳IP地址的设备发送所述第二报文包括:所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;

所述第一业务节点实例用所述第一MAC地址替换所述第二报文中的目的MAC地址形成第二以太报文;

所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第二以太报文。

6.根据权利要求3所述的方法,其特征在于,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第二报文包括:所述第一业务节点实例将所述第一下一跳MAC地址作为目的

MAC地址对所述第二报文进行以太网封装形成第三以太报文;

所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文。

7.根据权利要求3所述的方法,其特征在于,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第二报文包括:所述第一业务节点实例用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第四以太报文;

所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文。

8.根据权利要求3所述的方法,其特征在于,所述方法还包括:

如果所述第一下一跳地址为不可达的IP地址,则所述第一业务节点实例根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为所述目的IP地址在所述路由表中匹配的下一跳IP地址;

所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第三报文,所述第三报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的。

9.根据权利要求8所述的方法,其特征在于,所述第一报文为第一IP报文,所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第三报文包括:所述第一业务节点实例根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;

所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第三报文进行以太网封装形成第五以太报文;

所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第五以太报文。

10.根据权利要求8所述的方法,其特征在于,所述第一报文为第一以太报文,所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第三报文包括:所述第一业务节点实例根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;

所述第一业务节点实例用所述第一MAC地址替换所述第三报文中的目的MAC地址形成第六以太报文;

所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第六以太报文。

11.根据权利要求3所述的方法,其特征在于,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述方法还包括:如果所述第一下一跳MAC地址为不可达的MAC地址,则所述第一业务节点实例根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;

所述第一业务节点实例查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;

所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第七以太报文,所述第七以太报文不携带所述第一报文匹配的业务标识;

所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第七以太报文。

12.根据权利要求3所述的方法,其特征在于,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述所述方法还包括:如果所述第一下一跳MAC地址为不可达的MAC地址,则所述第一业务节点实例根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;

所述第一业务节点实例查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;

所述第一业务节点实例用所述第一MAC地址替换所述第二报文中的MAC地址形成第八以太报文,所述第八以太报文不携带所述第一报文匹配的业务标识;所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第八以太报文。

13.根据权利要求3所述的方法,其特征在于,所述业务路由信息还包括控制标志信息,所述控制标志信息用于标识所述报文流是否已经到达最后一个业务节点实例并需要经过正常路由转发;所述方法还包括:所述第一业务节点实例查找所述业务路由信息时,获取匹配的控制标志信息;

如果所述匹配的控制标志信息标识为所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送所述第二报文,包括:所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文,所述第四报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的。

14.根据权利要求13所述的方法,其特征在于,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;

所述第一业务节点实例将所述第二MAC地址作为目的MAC地址对所述第四报文进行以太网封装形成第九以太报文;

所述第一业务节点实例向拥有所述第二MAC地址的设备发送所述第九以太报文。

15.根据权利要求13所述的方法,其特征在于,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;

所述第一业务节点实例用所述第二MAC地址替换所述第四报文中的目的MAC地址形成第十以太报文;

所述第一业务节点实例向拥有所述第二MAC地址的设备发送所述第十以太报文。

16.根据权利要求13所述的方法,其特征在于,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:所述第一业务节点实例将所述第一下一跳MAC地址作为目的地址对所述第四报文进行以太网封装形成第十一以太报文;

所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文。

17.根据权利要求13所述的方法,其特征在于,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:所述第一业务节点实例用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第十二以太报文;

所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文。

18.一种业务分发节点,其特征在于,所述业务分发节点包括接收单元,处理单元和发送单元:所述接收单元,用于接收控制器发来的业务路由信息,所述业务路由信息包括:流标识,业务标识和下一跳地址,其中所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例;

所述接收单元,还用于接收第一报文;

所述处理单元,用于根据所述第一报文获取第一流标识,根据所述第一流标识查找所述业务路由信息,获取匹配的业务标识和匹配的下一跳地址;触发所述发送单元向拥有所述匹配的下一跳地址的第一业务节点实例发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的;

所述发送单元,用于向拥有所述匹配的下一跳地址的第一业务节点实例发送所述第二报文。

19.一种业务节点实例,其特征在于,所述业务节点实例包括:接收单元,处理单元和发送单元;

所述接收单元,用于接收控制器发送的业务路由信息,所述业务路由信息包括:业务标识和下一跳地址;其中所述业务标识用于标识处理报文流的业务节点实例的序列;

所述接收单元,还用于接收第一报文,其中所述第一报文携带所述第一报文匹配的业务标识;

所述处理单元,用于处理所述第一报文形成第二报文,其中所述第二报文携带所述第一报文匹配的业务标识;根据所述第一报文匹配的业务标识查找所述业务路由信息,获取第一下一跳地址,第一下一跳地址为与所述第一报文匹配的业务标识匹配的下一跳地址;

如果所述第一下一跳地址为可达的地址,触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文;

所述发送单元,用于向拥有所述第一下一跳地址的设备发送所述第二报文。

20.根据权利要求19所述的业务节点实例,其特征在于,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址;所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;

所述处理单元将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第一以太报文;

所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第一以太报文;

相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:所述发送单元用于向拥有所述第一MAC地址的设备发送所述第一以太报文。

21.根据权利要求19所述的业务节点实例,其特征在于,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;

所述处理单元用所述第一MAC地址替换所述第二报文中的目的MAC地址形成第二以太报文;

所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第二以太报文;

相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:所述发送单元用于向拥有所述第一MAC地址的设备发送所述第二以太报文。

22.根据权利要求19所述的业务节点实例,其特征在于,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:所述处理单元将所述第一下一跳MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第三以太报文;

所述处理单元触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文;

相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:所述发送单元用于向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文。

23.根据权利要求19所述的业务节点实例,其特征在于,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:所述处理单元用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第四以太报文;

所述处理单元触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文;

相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:所述发送单元用于向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文。

24.根据权利要求19所述的业务节点实例,其特征在于,所述处理单元还用于:如果所述第一下一跳地址为不可达的IP地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为所述目的IP地址在所述路由表中匹配的下一跳IP地址;触发所述发送单元向拥有所述第二下一跳IP地址的设备发送第三报文,所述第三报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的;

相应地,所述发送单元还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文。

25.根据权利要求24所述的业务节点实例,其特征在于,所述第一报文为第一IP报文,所述处理单元触发所述发送单元向拥有所述第二下一跳IP地址的设备发送第三报文包括:所述处理单元根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;

所述处理单元将所述第一MAC地址作为目的MAC地址对所述第三报文进行以太网封装形成第五以太报文;

所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第五以太报文;

相应地,所述发送单元还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文包括:所述发送单元还用于向拥有所述第一MAC地址的设备发送所述第五以太报文。

26.根据权利要求24所述的业务节点实例,其特征在于,所述第一报文为第一以太报文,所述处理单元触发所述发送单元向拥有所述第二下一跳IP地址的设备发送第三报文包括:所述处理单元根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;

所述处理单元用所述第一MAC地址替换所述第三报文中的目的MAC地址形成第六以太报文;

所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第六以太报文;

相应地,所述发送单元还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文包括:所述发送单元向拥有所述第一MAC地址的设备发送所述第六以太报文。

27.根据权利要求19所述的业务节点实例,其特征在于,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元还用于:如果所述第一下一跳MAC地址为不可达的MAC地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第七以太报文,所述第七以太报文不携带所述第一报文匹配的业务标识;触发所述发送单元向拥有所述第一MAC地址的设备发送所述第七以太报文;

相应地,所述发送单元还用于向拥有所述第一MAC地址的设备发送所述第七以太报文。

28.根据权利要求19所述的业务节点实例,其特征在于,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元还用于:如果所述第一下一跳MAC地址为不可达的MAC地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;用所述第一MAC地址替换所述第二报文中的MAC地址形成第八以太报文,所述第八以太报文不携带所述第一报文匹配的业务标识;触发所述发送单元向拥有所述第一MAC地址的设备发送所述第八以太报文;

相应地,所述发送单元还用于向拥有所述第一MAC地址的设备发送所述第八以太报文。

29.根据权利要求19所述的业务节点实例,其特征在于,所述业务路由信息还包括控制标志信息,所述控制标志信息用于标识所述报文流是否已经到达最后一个业务节点实例并需要经过正常路由转发;所述处理单元,还用于:查找所述业务路由信息时,获取匹配的控制标志信息;如果所述匹配的控制标志信息标识为所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发,触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文,所述第四报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的;

相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文。

30.根据权利要求29所述的业务节点实例,其特征在于,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;

将所述第二MAC地址作为目的MAC地址对所述第四报文进行以太网封装形成第九以太报文;

触发所述发送单元向拥有所述第二MAC地址的设备发送所述第九以太报文;

相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第二MAC地址的设备发送所述第九以太报文。

31.根据权利要求29所述的业务节点实例,其特征在于,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;用所述第二MAC地址替换所述第四报文中的目的MAC地址形成第十以太报文;触发所述发送单元向拥有所述第二MAC地址的设备发送所述第十以太报文;

相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第二MAC地址的设备发送所述第十以太报文。

32.根据权利要求29所述的业务节点实例,其特征在于,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元将所述第一下一跳MAC地址作为目的地址对所述第四报文进行以太网封装形成第十一以太报文;触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文;

相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文。

33.根据权利要求29所述的业务节点实例,其特征在于,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第十二以太报文;触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文;

相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文。

34.一种报文处理系统,其特征在于,所述系统包括:控制器,业务分发节点,第一业务节点实例;

所述控制器,用于向所述业务分发节点发送第一业务路由信息,所述第一业务路由信息包括:流标识,业务标识和下一跳地址,其中所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例;

所述业务分发节点,用于接收控制器发来的第一业务路由信息;

所述业务分发节点还用于接收第一报文,根据所述第一报文获取第一流标识,根据所述第一流标识查找所述第一业务路由信息,获取匹配的业务标识和匹配的下一跳地址;向拥有所述匹配的下一跳地址的第一业务节点实例发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的;

所述第一业务节点实例,用于接收所述第二报文。

35.根据权利要求34所述的系统,其特征在于,所述控制器,还用于向所述第一业务节点实例发送第二业务路由信息;所述业务分发节点还用于接收所述第二业务路由信息,处理所述第二报文形成第三报文,其中所述第三报文携带所述第一报文匹配的业务标识;根据所述第一报文匹配的业务标识查找所述第二业务路由信息,获取第一下一跳地址,第一下一跳地址为与所述第一报文匹配的业务标识匹配的下一跳地址,如果所述第一下一跳地址为可达的地址,向拥有所述第一下一跳地址的设备发送所述第二报文。

说明书 :

一种报文处理的方法、报文设备和系统

技术领域

[0001] 本发明涉及通讯领域,报文尤其涉及一种报文处理的方法、设备和系统。

背景技术

[0002] 在数据中心网络中,通常需要对报文流进行基于开放系统互连(open systems interconnection,OSI)分层中4层到7层的业务处理,举例来说,业务处理通常包括提供防火墙,网络地址转换(Network Address Translation,NAT),家庭控制等。不同的报文流可能要求提供不同的业务处理,且通常报文流不仅只进行一种业务处理,而是会要求提供多种业务处理,比如某些报文流可能需要进行防火墙和NAT处理,而另外一些报文流可能希望进行防火墙和家庭控制处理,这样,如何实现对报文流的业务处理是需要解决的问题。

发明内容

[0003] 本发明的实施例提供一种报文处理的方法、装置和系统,能实现对报文流的业务处理,尤其是高效实现对报文流的多业务处理。
[0004] 为达到上述目的,本发明的实施例采用如下技术方案:
[0005] 第一方面,本发明实施例提供一种报文处理方法,包括:
[0006] 业务分发节点接收控制器发来的业务路由信息,所述业务路由信息包括:流标识,业务标识和下一跳地址,其中所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例;
[0007] 所述业务分发节点接收第一报文;
[0008] 所述业务分发节点根据所述第一报文获取第一流标识,根据所述第一流标识查找所述业务路由信息,获取匹配的业务标识和匹配的下一跳地址;
[0009] 所述业务分发节点向拥有所述匹配的下一跳地址的第一业务节点实例发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的。
[0010] 结合第一方面,在第一种可能的实现方式中,所述下一跳地址为下一跳MAC地址或下一跳IP地址。
[0011] 第二方面,本发明实施例提供一种报文处理方法,包括:
[0012] 第一业务节点实例接收控制器发送的业务路由信息,所述业务路由信息包括:业务标识和下一跳地址;其中所述业务标识用于标识处理报文流的业务节点实例的序列;
[0013] 所述第一业务节点实例接收业务分发节点发来的第一报文,其中所述第一报文携带所述第一报文匹配的业务标识;
[0014] 所述第一业务节点实例处理所述第一报文形成第二报文,其中所述第二报文携带所述第一报文匹配的业务标识;
[0015] 所述第一业务节点实例根据所述第一报文匹配的业务标识查找所述业务路由信息,获取第一下一跳地址,第一下一跳地址为与所述第一报文匹配的业务标识匹配的下一跳地址;
[0016] 如果所述第一下一跳地址为可达的地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送所述第二报文。
[0017] 结合第二方面,在第一种可能的实现中,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳IP地址的设备发送所述第二报文包括:
[0018] 所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0019] 所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第一以太报文;
[0020] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第一以太报文。
[0021] 结合第二方面,在第二种可能的实现中,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳IP地址的设备发送所述第二报文包括:
[0022] 所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0023] 所述第一业务节点实例用所述第一MAC地址替换所述第二报文中的目的MAC地址形成第二以太报文;
[0024] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第二以太报文。
[0025] 结合第二方面及上述可能的实现方式,在第三种可能的实现方式中,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第二报文包括:
[0026] 所述第一业务节点实例将所述第一下一跳MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第三以太报文;
[0027] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文。
[0028] 结合第二方面以及上述可能的实现方式,在第四种可能的实现方式中,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第二报文包括:
[0029] 所述第一业务节点实例用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第四以太报文;
[0030] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文。
[0031] 结合第二方面以及上述可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
[0032] 如果所述第一下一跳地址为不可达的IP地址,则所述第一业务节点实例根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为所述目的IP地址在所述路由表中匹配的下一跳IP地址;
[0033] 所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第三报文,所述第三报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的。
[0034] 结合第二方面以及上述可能的实现方式,在第六种可能的实现方式中,所述第一报文为第一IP报文,所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第三报文包括:
[0035] 所述第一业务节点实例根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0036] 所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第三报文进行以太网封装形成第五以太报文;
[0037] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第五以太报文。
[0038] 结合第二方面以及上述可能的实现方式,在第七种可能的实现方式中,所述第一报文为第一以太报文,所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第三报文包括:
[0039] 所述第一业务节点实例根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0040] 所述第一业务节点实例用所述第一MAC地址替换所述第三报文中的目的MAC地址形成第六以太报文;
[0041] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第六以太报文。
[0042] 结合第二方面以及上述可能的实现方式,在第八种可能的实现方式中,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述方法还包括:
[0043] 如果所述第一下一跳MAC地址为不可达的MAC地址,则所述第一业务节点实例根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;
[0044] 所述第一业务节点实例查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0045] 所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第七以太报文,所述第七以太报文不携带所述第一报文匹配的业务标识;
[0046] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第七以太报文。
[0047] 结合第二方面以及上述可能的实现方式,在第九种可能的实现方式中,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述所述方法还包括:
[0048] 如果所述第一下一跳MAC地址为不可达的MAC地址,则所述第一业务节点实例根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;
[0049] 所述第一业务节点实例查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0050] 所述第一业务节点实例用所述第一MAC地址替换所述第二报文中的MAC地址形成第八以太报文,所述第八以太报文不携带所述第一报文匹配的业务标识;所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第八以太报文。
[0051] 结合第二方面以及上述可能的实现方式,在第十种可能的实现方式中,所述业务路由信息还包括控制标志信息,所述控制标志信息用于标识所述报文流是否已经到达最后一个业务节点实例并需要经过正常路由转发;所述方法还包括:
[0052] 所述第一业务节点实例查找所述业务路由信息,获取匹配的控制标志信息;
[0053] 如果所述匹配的控制标志信息标识为所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送所述第二报文,包括:所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文,所述第四报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的。
[0054] 结合第二方面以及上述可能的实现方式,在第十一种可能的实现方式中,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:
[0055] 所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0056] 所述第一业务节点实例将所述第二MAC地址作为目的MAC地址对所述第四报文进行以太网封装形成第九以太报文;
[0057] 所述第一业务节点实例向拥有所述第二MAC地址的设备发送所述第九以太报文。
[0058] 结合第二方面以及上述可能的实现方式,在第十二种可能的实现方式中,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:
[0059] 所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0060] 所述第一业务节点实例用所述第二MAC地址替换所述第四报文中的目的MAC地址形成第十以太报文;
[0061] 所述第一业务节点实例向拥有所述第二MAC地址的设备发送所述第十以太报文。
[0062] 结合第二方面以及上述可能的实现方式,在第十三种可能的实现方式中,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:
[0063] 所述第一业务节点实例将所述第一下一跳MAC地址作为目的地址对所述第四报文进行以太网封装形成第十一以太报文;
[0064] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文。
[0065] 结合第二方面以及上述可能的实现方式,在第十四种可能的实现方式中,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:
[0066] 所述第一业务节点实例用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第十二以太报文;
[0067] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文。
[0068] 第三方面,本发明实施例提供一种业务分发节点,所述业务分发节点包括接收单元,处理单元和发送单元:
[0069] 所述接收单元,用于接收控制器发来的业务路由信息,所述业务路由信息包括:流标识,业务标识和下一跳地址,其中所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例;
[0070] 所述接收单元,还用于接收第一报文;
[0071] 所述处理单元,用于根据所述第一报文获取第一流标识,根据所述第一流标识查找所述业务路由信息,获取匹配的业务标识和匹配的下一跳地址;触发所述发送单元向拥有所述匹配的下一跳地址对应的第一业务节点实例发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的;
[0072] 所述发送单元,用于向拥有所述匹配的下一跳地址的第一业务节点实例发送所述第二报文。
[0073] 第四方面,本发明实施例提供一种业务节点实例,所述业务节点实例包括:接收单元,处理单元和发送单元;
[0074] 所述接收单元,用于接收控制器发送的业务路由信息,所述业务路由信息包括:业务标识和下一跳地址;其中所述业务标识用于标识处理所述报文流的业务节点实例的序列;
[0075] 所述接收单元,还用于接收业务分发节点发来的第一报文,其中所述第一报文携带所述第一报文匹配的业务标识;
[0076] 所述处理单元,用于处理所述第一报文形成第二报文,其中所述第二报文携带所述第一报文匹配的业务标识;根据所述第一报文匹配的业务标识查找所述业务路由信息,获取第一下一跳地址,第一下一跳地址为与所述第一报文匹配的业务标识匹配的下一跳地址;如果所述第一下一跳地址为可达的地址,触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文;
[0077] 所述发送单元,用于向拥有所述第一下一跳地址的设备发送所述第二报文。
[0078] 结合第四方面,在第一种可能的实现方式中,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址;所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:
[0079] 所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0080] 所述处理单元将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第一以太报文;
[0081] 所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第一以太报文;
[0082] 相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0083] 所述发送单元用于向拥有所述第一MAC地址的设备发送所述第一以太报文。
[0084] 结合第四方面,在第二种可能的实现方式中,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:
[0085] 所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0086] 所述处理单元用所述第一MAC地址替换所述第二报文中的目的MAC地址形成第二以太报文;
[0087] 所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第二以太报文;
[0088] 相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0089] 所述发送单元用于向拥有所述第一MAC地址的设备发送所述第二以太报文。
[0090] 结合第四方面以及上述可能的实现方式,在第三种可能的实现方式中,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:
[0091] 所述处理单元将所述第一下一跳MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第三以太报文;
[0092] 所述处理单元触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文;
[0093] 相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0094] 所述发送单元用于向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文。
[0095] 结合第四方面以及上述可能的实现方式,在第四种可能的实现方式中,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:
[0096] 所述处理单元用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第四以太报文;
[0097] 所述处理单元触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文;
[0098] 相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0099] 所述发送单元用于向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文。
[0100] 结合第四方面以及上述可能的实现方式,在第五种可能的实现方式中,所述处理单元还用于:如果所述第一下一跳地址为不可达的IP地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为所述目的IP地址在所述路由表中匹配的下一跳IP地址;触发所述发送单元向拥有所述第二下一跳IP地址的设备发送第三报文,所述第三报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的;
[0101] 相应地,所述发送单元还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文。
[0102] 结合第四方面以及上述可能的实现方式,在第六种可能的实现方式中,所述第一报文为第一IP报文,所述处理单元触发所述发送单元向拥有所述第二下一跳IP地址的设备发送第三报文包括:
[0103] 所述处理单元根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0104] 所述处理单元将所述第一MAC地址作为目的MAC地址对所述第三报文进行以太网封装形成第五以太报文;
[0105] 所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第五以太报文;
[0106] 相应地,所述发送单元还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文包括:
[0107] 所述发送单元还用于向拥有所述第一MAC地址的设备发送所述第五以太报文。
[0108] 结合第四方面以及上述可能的实现方式,在第七种可能的实现方式中,所述第一报文为第一以太报文,所述处理单元触发所述发送单元向拥有所述第二下一跳IP地址的设备发送第三报文包括:
[0109] 所述处理单元根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0110] 所述处理单元用所述第一MAC地址替换所述第三报文中的目的MAC地址形成第六以太报文;
[0111] 所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第六以太报文;
[0112] 相应地,所述发送单元还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文包括:
[0113] 所述发送单元向拥有所述第一MAC地址的设备发送所述第六以太报文。
[0114] 结合第四方面以及上述可能的实现方式,在第八种可能的实现方式中,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元还用于:如果所述第一下一跳MAC地址为不可达的MAC地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第七以太报文,所述第七以太报文不携带所述第一报文匹配的业务标识;触发所述发送单元向拥有所述第一MAC地址的设备发送所述第七以太报文;
[0115] 相应地,所述发送单元还用于向拥有所述第一MAC地址的设备发送所述第七以太报文。
[0116] 结合第四方面以及上述可能的实现方式,在第九种可能的实现方式中,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元还用于:如果所述第一下一跳MAC地址为不可达的MAC地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;用所述第一MAC地址替换所述第二报文中的MAC地址形成第八以太报文,所述第八以太报文不携带所述第一报文匹配的业务标识;触发所述发送单元向拥有所述第一MAC地址的设备发送所述第八以太报文;
[0117] 相应地,所述发送单元还用于向拥有所述第一MAC地址的设备发送所述第八以太报文。
[0118] 结合第四方面以及上述可能的实现方式,在第十种可能的实现方式中,所述业务路由信息还包括控制标志信息,所述控制标志信息用于标识所述报文流是否已经到达最后一个业务节点实例并需要经过正常路由转发;所述处理单元,还用于:查找所述业务路由信息时,获取匹配的控制标志信息;如果所述匹配的控制标志信息标识为所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发,触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文,所述第四报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的;
[0119] 相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文。
[0120] 结合第四方面以及上述可能的实现方式,在第十一种可能的实现方式中,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;将所述第二MAC地址作为目的MAC地址对所述第四报文进行以太网封装形成第九以太报文;触发所述发送单元向拥有所述第二MAC地址的设备发送所述第九以太报文;
[0121] 相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第二MAC地址的设备发送所述第九以太报文。
[0122] 结合第四方面以及上述可能的实现方式,在第十二种可能的实现方式中,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;用所述第二MAC地址替换所述第四报文中的目的MAC地址形成第十以太报文;触发所述发送单元向拥有所述第二MAC地址的设备发送所述第十以太报文;
[0123] 相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第二MAC地址的设备发送所述第十以太报文。
[0124] 结合第四方面以及上述可能的实现方式,在第十三种可能的实现方式中,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元将所述第一下一跳MAC地址作为目的地址对所述第四报文进行以太网封装形成第十一以太报文;触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文;
[0125] 相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文。
[0126] 结合第四方面以及上述可能的实现方式,在第十四种可能的实现方式中,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第十二以太报文;触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文;
[0127] 相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文。
[0128] 第五方面,本发明实施例提供一种报文处理系统,所述系统包括:控制器,业务分发节点,第一业务节点实例;
[0129] 所述控制器,用于向所述业务分发节点发送第一业务路由信息,所述第一业务路由信息包括:流标识,业务标识和下一跳地址,其中所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例;
[0130] 所述业务分发节点,用于接收控制器发来的第一业务路由信息;
[0131] 所述业务分发节点还用于接收第一报文,根据所述第一报文获取第一流标识,根据所述第一流标识查找所述第一业务路由信息,获取匹配的业务标识和匹配的下一跳地址;向拥有所述匹配的下一跳地址的第一业务节点实例发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的;
[0132] 所述第一业务节点实例,用于接收所述第二报文。
[0133] 结合第五方面,在第一种可能的实现方式中,所述控制器,还用于向所述第一业务节点实例发送第二业务路由信息;所述业务分发节点还用于接收所述第二业务路由信息,处理所述第二报文形成第三报文,其中所述第三报文携带所述第一报文匹配的业务标识;根据所述第一报文匹配的业务标识查找所述第二业务路由信息,获取第一下一跳地址,第一下一跳地址为与所述第一报文匹配的业务标识匹配的下一跳地址,如果所述第一下一跳地址为可达的地址,向拥有所述第一下一跳地址的设备发送所述第二报文。
[0134] 在本发明实施例提供的报文处理系统中,控制器向业务分发节点和业务节点实例分别发送业务路由信息,所述业务路由信息包括流标识,业务标识和下一跳地址;其中,所述流标识用于识别报文流,所述业务标识用于标识处理所述报文流的业务节点实例的序列这样,业务分发节点和业务节点实例分别根据接收到的业务路由信息来处理报文,实现了控制器对业务分发节点和业务节点实例的统一管理。进一步地,业务分发节点根据业务路由信息对接收到的报文添加业务标识,以使得业务节点实例对所述添加了业务标识的报文处理后,可以根据业务标识查找业务路由信息将处理后的报文转发给下一个业务节点实例或者按照路由表进行正常转发,实现了对报文流的业务处理。

附图说明

[0135] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0136] 图1是本发明实施例提供的报文处理系统图;
[0137] 图2是本发明实施例在数据中心网络的系统示意图;
[0138] 图3是本发明实施例提供的报文处理方法的流程图;
[0139] 图4是本发明实施例提供的报文处理方法的另一流程图;
[0140] 图5为本发明实施例提供的业务分发节点的装置示意图;
[0141] 图6是本发明实施例提供的业务节点实例的装置示意图;
[0142] 图7是本发明实施例提供的另一业务分发节点的装置示意图;
[0143] 图8是本发明实施例提供的另一种业务节点实例的装置示意图。

具体实施方式

[0144] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0145] 实施例一:
[0146] 本发明实施例提供了一种报文处理系统,如图1所示,图1是本发明实施例提供的报文处理系统示意图。该系统包括控制器12,业务分发节点14和业务节点实例,例如图1中的第一业务节点实例16和第二业务节点实例18。
[0147] 控制器12用于发送业务路由信息。具体来说,控制器12用于向业务分发节点14和业务节点实例分别下发业务路由信息。
[0148] 举例来说,控制器12可以基于报文流来分配业务处理策略,控制器12根据报文流对应的业务处理策略,分别下发业务路由信息给业务分发节点14和业务节点实例。为了描述方便,控制器12下发第一业务路由信息给业务分发节点14,其中,第一业务路由信息包括:流标识,业务标识(ID)以及下一跳地址,其中所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例。需要说明的是,所述下一跳地址可以为下一跳IP地址,也可以为下一跳MAC地址。可选地,控制器12可以将业务路由信息以业务路由表的方式下发给业务分发节点和业务节点实例。
[0149] 控制器12下发第二业务路由信息给业务节点实例。第二业务路由信息包括:业务ID以及下一跳地址。其中,具有相同业务ID的报文流通过相同的业务节点实例处理,且通过的业务节点实例处理的顺序相同。举例来说,业务ID=1的报文先由第一业务节点实例16进行处理,再由第二业务节点实例18进行处理。而业务ID=2的报文则先由第二业务节点实例18进行处理,再由第一业务节点实例16进行处理。可选地,如果同一报文流中的两个不同的报文分配了两个不同的业务ID,则意味着虽然所述两个不同的报文所需进行的业务处理相同,例如都是先经过防火墙处理,再经过NAT设备处理,但是所述两个报文却由不同的业务节点实例进行处理,这样可以实现报文处理的负载均衡。可选地,可以对报文流的报文进行细分来实现对同一报文流处理的负载均衡。例如,以相同的源地址和相同的目的地址来标识同一报文流,为了对该同一报文流的报文处理实现负载均衡,可以根据协议号对该同一报文流的报文进行细分,假设为该同一报文流中协议号大于50的报文分配一个业务ID,用于标识该报文先经过防火墙实例1处理,再经过NAT设备实例1处理。为该同一报文流中协议号小于等于50的报文分配另一个业务ID,用于标识该报文先经过防火墙实例2处理,再经过NAT设备实例2处理。这样有助于实现同一报文流处理的负载均衡。可选地,如果不同的报文流,例如报文流1和报文流2需要进行相同的业务处理,例如都是先经过NAT设备处理,再经过防火墙处理,可以为报文流1的报文和报文流2的报文分配相同的业务ID。当然,也可以为报文流1的报文和报文流2的报文分配不同的业务ID,有助于实现负载均衡。
[0150] 业务分发节点14,用于接收第一业务路由信息和第一报文,其中所述第一报文需要进行业务处理。第一报文可以是从用户侧设备发来的,也可以是从网络侧设备发来的,本发明实施例对此不做限定。业务分发节点14根据第一报文获取第一流标识,根据所述第一流标识查找所述第一业务路由信息,获取匹配的业务标识和匹配的下一跳地址,向拥有所述匹配的下一跳地址的第一业务节点实例16发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的。
[0151] 其中,业务分发节点14根据第一报文获取第一流标识,举例来说,可以通过源地址,目的地址,源端口,目的端口,协议号中的至少一种信息来标识报文流,所以流标识可以包括所述第一报文的源地址,目的地址,源端口,目的端口和协议号中的至少一个。举例来说,通过所述第一报文的五元组信息(源地址,目的地址,源端口,目的端口和协议号)来标识报文流。可选地,所述第一流标识可以是所述第一报文的五元组信息,也可以是根据所述第一报文的五元组信息通过一定的算法得到的数值,例如通过哈希(hash)算法所得到的数值。当业务分发节点14接收到第一报文时,如果第一业务路由信息中的流标识是五元组信息,则业务分发节点14从第一报文中获取五元组信息得到所述第一流标识。如果第一业务路由信息中的流标识是基于五元组信息通过特定的算法得到的数值,则业务分发节点14从第一报文中获取所述第一报文的五元组信息,对所述第一报文的五元组信息进行该特定的算法运算得到数值,该得到的数值为所述第一流标识。
[0152] 其中,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的。举例来说,所述第二报文可以为将匹配的业务标识添加到所述第一报文的报文头中形成的,或者也可以为将匹配的业务标识添加到所述第一报文的净荷中形成的。以第一报文为第一以太报文举例来说,所述匹配的业务标识可以添加到所述以太报文新增的报文头选项中,或者,也可以添加到所述以太报文中的IP报文头中,或者,也可以对以太报文头中的现有字段重用,也就是更改现有字段的含义来表示所述以太报文携带业务标识。例如可以对虚拟局域网(Virtual Local Area Network,简称为VLAN)或QINQ(也称Stacked VLAN或Double VLAN)中的VLAN标识(也称VLAN ID),或者多协议标签交换(Multi-protocol Label Switching,简称为MPLS)中的标签(LABEL)进行重用,也可以对源MAC地址的部分或全部进行转义重用。其中,在以太报文中新增的报文头选项的格式如下:在源MAC地址和VLAN之间增加一个类型字段,用以指示该以太报文携带有业务标识(也称业务ID)。业务ID在报文中的格式可以如表一:
[0153]
[0154] 第一业务节点实例16,用于接收控制器12发送的第二业务路由信息,接收业务分发节点14发送的第二报文;所述第一业务节点实例16处理所述第二报文形成第三报文,其中,第一报文匹配的业务标识所述第三报文携带所述第一报文匹配的业务标识;第一报文匹配的业务标识根据所述第一报文匹配的业务标识查找第二业务路由信息,获取第一下一跳地址,第一下一跳地址为与所述第一报文匹配的业务标识匹配的下一跳地址,如果所述第一下一跳地址为可达的地址,向拥有所述第一下一跳地址的设备发送所述第三报文。优选地,第一报文匹配的业务标识所述第三报文携带所述第一报文匹配的业务标识的方式和第二报文携带所述第一报文匹配的业务标识的方式相同。
[0155] 可选地,第一业务节点实例16可以为逻辑功能实体。需要说明的是,通常一个业务节点实例具有一个可达的地址,例如可达的IP地址或MAC地址,这样只要第一业务节点实例具有一个可达的地址,第一业务节点实例为一个物理实体还是逻辑实体,本发明实施例并不做限定。此外,为了方便理解业务节点实例,我们以提供防火墙功能的业务节点实例进行举例说明,通常,我们可以把防火墙功能安装在很多服务器上,例如虚拟机(VM)上。这样安装有防火墙功能的服务器都可以提供防火墙功能的业务处理,并且安装有防火墙功能的服务器都有不同的地址。这样,每个安装有防火墙功能的服务器就可以称之为一个业务节点实例。也就是说,每个业务节点实例包括一个可达的地址,且能单独处理一种业务。在本发明实施例的具体实现时,由控制器12来选择第一业务节点实例16来处理该报文流。例如,控制器12可以根据业务节点实例的处理能力,业务负载状况来选择合适的业务节点实例来处理该报文流。
[0156] 可选地,当所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,第一业务节点实例16向拥有所述第一下一跳IP地址的设备发送所述第三报文包括:所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0157] 所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第三报文进行以太网封装形成第一以太报文;
[0158] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第一以太报文。
[0159] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳IP地址的设备发送所述第三报文包括:
[0160] 所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0161] 所述第一业务节点实例用所述第一MAC地址替换所述第三报文中的目的MAC地址形成第二以太报文;
[0162] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第二以太报文。
[0163] 可选地,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第二报文包括:
[0164] 所述第一业务节点实例将所述第一下一跳MAC地址作为目的MAC地址对所述第三报文进行以太网封装形成第三以太报文;
[0165] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文。
[0166] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第三报文包括:
[0167] 所述第一业务节点实例用所述第一下一跳MAC地址替换所述第三报文中的目的MAC地址形成第四以太报文;
[0168] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文。
[0169] 可选地,如果所述第一下一跳地址为不可达的IP地址,则所述第一业务节点实例根据所述第三报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为所述目的IP地址在所述路由表中匹配的下一跳IP地址;
[0170] 所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第四报文,所述第四报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的。
[0171] 如果第一业务节点实例16处理所述第二报文形成第三报文后,第三报文不需要再进行其他业务处理,可选地,在控制器12下发的第二业务路由信息中,下一跳地址设置为特殊的下一跳,例如可以是0.0.0.0,其中,0.0.0.0用于表明第一业务节点实例16是最后一个处理所述第二报文的业务节点实例,该特殊的下一跳可以是任何不可达的IP地址,只要能表明第一业务节点实例16是最后一个处理所述第二报文的业务节点实例即可,本发明实施例不做具体限定。
[0172] 可选地,所述第一报文为第一IP报文,所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第四报文包括:
[0173] 所述第一业务节点实例根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0174] 所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第四报文进行以太网封装形成第五以太报文;
[0175] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第五以太报文。
[0176] 可选地,所述第一报文为第一以太报文,所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第四报文包括:
[0177] 所述第一业务节点实例根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0178] 所述第一业务节点实例用所述第一MAC地址替换所述第四报文中的目的MAC地址形成第六以太报文;
[0179] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第六以太报文。
[0180] 可选地,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,如果所述第一下一跳MAC地址为不可达的MAC地址,则所述第一业务节点实例根据所述第三报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;
[0181] 所述第一业务节点实例查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0182] 所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第三报文进行以太网封装形成第七以太报文,所述第七以太报文不携带所述第一报文匹配的业务标识;
[0183] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第七以太报文。
[0184] 可选地,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,如果所述第一下一跳MAC地址为不可达的MAC地址,则所述第一业务节点实例根据所述第三报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;
[0185] 所述第一业务节点实例查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0186] 所述第一业务节点实例用所述第一MAC地址替换所述第三报文中的目的MAC地址形成第八以太报文,所述第八以太报文不携带所述第一报文匹配的业务标识;所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第八以太报文。
[0187] 可选地,所述第二业务路由信息还包括控制标志信息,所述控制标志信息用于标识所述报文流是否已经到达最后一个业务节点实例并需要经过正常路由转发;所述第一业务节点实例查找所述第二业务路由信息时,获取匹配的控制标志信息;
[0188] 如果所述匹配的控制标志信息标识为所述第二报文已经到达最后一个业务节点实例并需要经过正常路由转发,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第五报文,所述第五报文为去除所述第三报文中携带的所述第一报文匹配的业务标识形成的。
[0189] 举例来说,在控制器12下发的第二业务路由信息中,也可以通过设置一个控制标志位,来表明所述第二报文已经到达最后一个业务节点实例并需要经过正常路由转发。这样,第一业务节点实例16根据所述第一报文匹配的业务标识查找所述第二业务路由信息,获取匹配的控制标志信息,其中,控制标志信息可以通过一个控制标志位来表示,例如当控制标志位为0时,表明所述第二报文需要经过下一个业务节点实例处理,当控制标志位为1时,表明所述第二报文已经到达最后一个业务节点实例并需要经过正常路由转发。具体通过何种方式来标识控制标志信息,本发明实施例不做具体限定,只要能表明所述第二报文已经到达最后一个业务节点实例处理并需要经过正常路由转发即可。
[0190] 可选地,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第五报文包括:
[0191] 所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0192] 所述第一业务节点实例将所述第二MAC地址作为目的MAC地址对所述第五报文进行以太网封装形成第九以太报文;
[0193] 所述第一业务节点实例向拥有所述第二MAC地址的设备发送所述第九以太报文。
[0194] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第五报文包括:
[0195] 所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0196] 所述第一业务节点实例用所述第二MAC地址替换所述第五报文中的目的MAC地址形成第十以太报文;
[0197] 所述第一业务节点实例向拥有所述第二MAC地址的设备发送所述第十以太报文。
[0198] 可选地,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第五报文包括:
[0199] 所述第一业务节点实例将所述第一下一跳MAC地址作为目的地址对所述第五报文进行以太网封装形成第十一以太报文;
[0200] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文。
[0201] 可选地,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第五报文包括:
[0202] 所述第一业务节点实例用所述第一下一跳MAC地址替换所述第三报文中的目的MAC地址形成第十二以太报文;
[0203] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文。
[0204] 为了便于理解,举例说明,如图2所示,图2是本发明实施例应用于数据中心交换网络的系统示意图。数据中心交换网络20对连接在其上的控制器21,业务分发节点22,业务节点实例进行2层路由。其中,业务节点实例1,业务节点实例2和业务节点实例3均提供防火墙处理。业务节点实例4和业务节点实例5均提供NAT处理。例如:有一个用户的报文流需要进行防火墙和NAT处理。控制器21事先为该用户发来的报文流分配业务处理策略,控制器选择业务节点实例1提供防火墙处理,选择业务节点实例5提供NAT处理,生成业务ID。需要说明的是,业务ID的表述方式不限,以1为例,其中1表明该报文流需要进行防火墙和NAT处理,且表明先通过业务节点实例1进行防火墙处理,然后通过业务节点实例5进行NAT处理。控制器21会为业务分发节点22,业务节点实例1和业务节点实例5分别生成业务路由表。为了方便表述,控制器21为业务分发节点22生成的业务路由表称为第一业务路由表;控制器21为业务节点实例1生成的业务路由表称为第二业务路由表;控制器21为业务节点实例5生成的业务路由表称为第三业务路由表。其中,第一业务路由表包括:流标识,业务标识1和第一下一跳地址,其中流标识为报文流的五元组信息;举例来说,第一下一跳地址为业务节点实例1的IP地址,例如1.1.1.2。第二业务路由表包括业务标识1和第二下一跳地址,举例来说,第二下一跳地址为业务节点实例5的IP地址,例如1.1.1.1。第三业务路由表包括业务标识1和第三下一跳地址。举例来说,第三下一跳地址为特殊下一跳IP地址为0.0.0.0,用于表明业务节点实例5为处理所述报文流的最后一个业务节点实例。这样,第一业务路由表的格式可以如下:
[0205]
[0206] 第二业务路由表的格式可以如下:
[0207]
[0208] 第三业务路由表的格式可以如下:
[0209]
[0210] 这样,业务分发节点22接收该用户发来的第一报文,业务分发节点22获取报文中的五元组信息,根据该五元组信息查找第一业务路由表获得匹配的业务标识和下一跳IP地址,在该实施例中,匹配的业务标识为1,下一跳IP地址为1.1.1.2,则业务分发节点22向拥有下一跳IP地址为1.1.1.2的业务节点实例1发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的。业务节点实例1对所述第二报文进行防火墙处理形成第三报文,其中所述第三报文携带所述第一报文匹配的业务标识。业务节点实例1根据该业务标识查找第二业务路由表获得匹配的下一跳IP地址1.1.1.1,业务节点实例1向拥有所述IP地址为1.1.1.1的业务节点实例5发送所述第三报文。业务节点实例5对所述第三报文进行NAT处理,业务节点实例5根据该业务标识查找第三业务路由表确定匹配的下一跳IP地址0.0.0.0,表明业务节点实例5为处理所述第三报文的最后一个业务节点实例,则业务节点实例5对所述第三报文进行NAT处理形成第四报文,根据所述第四报文的目的IP地址查找路由表,获取第一下一跳IP地址,所述第一下一跳IP地址为所述目的IP地址匹配的下一跳IP地址,业务节点实例5向拥有所述第一下一跳IP地址的设备发送所述第四报文。
[0211] 在本发明实施例提供的报文处理系统中,控制器向业务分发节点和业务节点实例分别发送业务路由信息,所述业务路由信息包括流标识,业务标识和下一跳地址;其中,所述流标识用于识别报文流,所述业务标识用于标识处理所述报文流的业务节点实例的序列这样,业务分发节点和业务节点实例分别根据接收到的业务路由信息来处理报文,实现了控制器对业务分发节点和业务节点实例的统一管理。进一步地,业务分发节点根据业务路由信息对接收到的报文添加业务标识,将添加业务标识的报文发送给业务节点实例,以使得业务节点实例对所述添加了业务标识的报文处理后,可以根据业务标识查找业务路由信息,将处理后的报文流转发给下一个业务节点实例或者按照路由表进行正常转发,实现了对报文流的业务处理。
[0212] 实施例二:
[0213] 本发明实施例提供一种报文处理方法,如图3所示,图3是本发明实施例提供的报文处理方法的流程图。
[0214] 302、业务分发节点接收控制器发来的业务路由信息,所述业务路由信息包括:流标识,业务标识和下一跳地址,其中所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例。
[0215] 可选地,控制器可以基于报文流来分配业务处理策略,控制器根据报文流对应的业务处理策略,下发业务路由信息给业务分发节点。其中,具有相同业务标识ID的报文流通过相同的业务节点实例处理,且通过的业务节点实例处理的顺序相同。进一步地,在本发明实施例的具体实现时,如果同一报文流中的两个不同的报文分配了两个不同的业务ID,则意味着虽然所述两个不同的报文所需进行的业务处理相同,但是所述报文流却由不同的业务节点实例进行处理,这样可以实现报文处理的负载均衡。例如都是先经过防火墙处理,再经过NAT设备处理,但是所述两个报文却由不同的业务节点实例进行处理,这样可以实现报文处理的负载均衡。可选地,可以对报文流的报文进行细分来实现对同一报文流处理的负载均衡。例如,以相同的源地址和相同的目的地址来标识同一报文流,为了对该同一报文流的报文处理实现负载均衡,可以根据协议号对该同一报文流的报文进行细分,假设为该同一报文流中协议号大于50的报文分配一个业务ID,用于标识该报文先经过防火墙实例1处理,再经过NAT设备实例1处理。为该同一报文流中协议号小于等于50的报文分配另一个业务ID,用于标识该报文先经过防火墙实例2处理,再经过NAT设备实例2处理。这样有助于实现同一报文流处理的负载均衡。可选地,如果不同的报文流,例如报文流1和报文流2需要进行相同的业务处理,例如都是先经过NAT设备处理,再经过防火墙处理,可以为报文流1的报文和报文流2的报文分配相同的业务ID。当然,也可以为报文流1的报文和报文流2的报文分配不同的业务ID,有助于实现负载均衡。
[0216] 304、所述业务分发节点接收第一报文。
[0217] 举例来说,通常第一报文可以为IP报文或以太报文,第一报文可以是从用户侧设备发来的,也可以是从网络侧设备发来的,本发明实施例对此不做限定。
[0218] 306、所述业务分发节点根据所述第一报文获取第一流标识,根据第一流标识查找所述业务路由信息,获取匹配的业务标识和匹配的下一跳IP地址;
[0219] 举例来说,可以通过源地址,目的地址,源端口,目的端口,协议号中的至少一种信息来标识报文流,所以流标识可以包括所述第一报文的源地址,目的地址,源端口,目的端口和协议号中的至少一个。举例来说,通过所述第一报文的五元组信息(源地址,目的地址,源端口,目的端口和协议号)来标识报文流。可选地,所述第一流标识可以是所述第一报文的五元组信息,也可以是根据所述第一报文的五元组信息通过一定的算法得到的数值,例如通过哈希(hash)算法所得到的数值。当业务分发节点14接收到第一报文时,如果第一业务路由信息中的流标识是五元组信息,则业务分发节点14从第一报文中获取五元组信息得到所述第一流标识。如果第一业务路由信息中的流标识是五元组信息通过特定的算法得到的数值,则业务分发节点14从第一报文中获取所述第一报文的五元组信息,对所述第一报文的五元组信息进行该特定的算法运算得到的数值,该得到的数值为所述第一流标识。
[0220] 308、所述业务分发节点向拥有所述匹配的下一跳地址的业务节点实例发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的。
[0221] 所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的。举例来说,所述第二报文可以为将匹配的业务标识添加到所述第一报文的报文头中形成的,或者也可以将匹配的业务标识添加到所述第一报文的净荷中形成的。以第一报文为第一以太报文举例来说,所述匹配的业务标识可以添加到所述以太报文新增的报文头选项中,也可以添加到所述以太报文中的IP报文头中,也可以对以太报文头中的现有字段的重用,也就是更改现有字段的含义来表示所述以太报文携带业务标识。例如可以对虚拟局域网(Virtual Local Area Network,简称为VLAN)或QINQ(也称Stacked VLAN或Double VLAN)中的VLAN标识(也称VLAN ID),或者多协议标签交换(Multi-protocol Label Switching,简称为MPLS)中的标签(LABEL)进行重用,也可以对源MAC地址的部分或全部进行转义重用。其中,在以太报文中新增的报文头选项的格式如下:在源MAC地址和VLAN之间增加一个类型字段,用以指示该以太报文携带有业务标识(也称业务ID)。业务ID在报文中的格式可以如表一:
[0222]
[0223] 本发明实施例提供的报文处理方法,业务分发节点接收控制器发送的业务路由信息,所述业务路由信息包括流标识,业务标识和下一跳地址;其中,所述流标识用于识别报文流,所述业务标识用于标识处理所述报文流的业务节点实例的序列,这样,业务分发节点根据将接收到的报文添加业务标识,并将携带所述业务标识的报文发送给业务节点实例,以使得业务节点实例对所述添加了业务标识的报文处理后,可以根据业务标识查找业务路由信息将处理后的报文流转发给下一个业务节点实例或者按照路由表进行正常转发,实现了对报文流的业务处理。
[0224] 实施例三:
[0225] 本发明实施例提供一种报文处理方法,如图4所示,图4是本发明实施例提供的报文处理方法的另一流程图。
[0226] 402、第一业务节点实例接收控制器发送的业务路由信息,所述业务路由信息包括:业务标识和下一跳地址;其中所述业务标识用于标识处理所述报文流的业务节点实例的序列;
[0227] 在本发明实施例的具体实现时,控制器可以基于报文流来分配业务处理策略,控制器根据报文流对应的业务处理策略,下发业务路由信息给业务节点实例。其中,具有相同业务ID的报文流通过相同的业务节点实例处理,且通过的业务节点实例处理的顺序相同。举例来说,业务ID=1的报文先由第一业务节点实例16进行处理,再由第二业务节点实例18进行处理。而业务ID=2的报文则先由第二业务节点实例18进行处理,再由第一业务节点实例16进行处理。可选地,如果同一报文流中的两个不同的报文分配了两个不同的业务ID,则意味着虽然所述两个不同的报文所需进行的业务处理相同,例如都是先经过防火墙处理,再经过NAT设备处理,但是所述两个报文却由不同的业务节点实例进行处理,这样可以实现报文处理的负载均衡。可选地,可以对报文流的报文进行细分来实现对同一报文流处理的负载均衡。例如,以相同的源地址和相同的目的地址来标识同一报文流,为了对该同一报文流的报文处理实现负载均衡,可以根据协议号对该同一报文流的报文进行细分,假设为该同一报文流中协议号大于50的报文分配一个业务ID,用于标识该报文先经过防火墙实例1处理,再经过NAT设备实例1处理。为该同一报文流中协议号小于等于50的报文分配另一个业务ID,用于标识该报文先经过防火墙实例2处理,再经过NAT设备实例2处理。这样有助于实现同一报文流处理的负载均衡。可选地,如果不同的报文流,例如报文流1和报文流2需要进行相同的业务处理,例如都是先经过NAT设备处理,再经过防火墙处理,可以为报文流1的报文和报文流2的报文分配相同的业务ID。当然,也可以为报文流1的报文和报文流2的报文分配不同的业务ID,有助于实现负载均衡。
[0228] 第一业务节点实例可以为逻辑功能实体,需要说明的是,通常一个业务节点实例具有一个可达的地址,例如可达的IP地址或MAC地址,这样只要第一业务节点实例具有一个可达的地址,第一业务节点实例为一个物理实体还是逻辑实体,本发明实施例并不做限定。此外,为了方便理解业务节点实例,我们以提供防火墙功能的业务节点实例进行举例说明,通常,我们可以把防火墙功能安装在很多服务器上,例如虚拟机VM上。这样安装有防火墙功能的服务器都可以提供防火墙功能的业务处理,并且安装有防火墙功能的服务器都有不同的地址。这样,每个安装有防火墙功能的服务器就可以称之为一个业务节点实例。也就是说,每个业务节点实例包括一个可达的地址,且能单独处理一种业务。在本发明实施例的具体实现时,由控制器来确定选择第一业务节点实例来处理该报文流。例如,控制器可以根据业务节点实例的处理能力,业务负载状况来选择合适的业务节点实例来处理该报文流。
[0229] 404、所述第一业务节点实例接收第一报文,其中所述第一报文携带所述第一报文匹配的业务标识;
[0230] 举例来说,所述第一业务节点实例可以接收业务分发节点发来的第一报文,也可以是接收其他业务节点实例发来的第一报文。
[0231] 举例来说,业务分发节点可以将所述第一报文匹配的业务标识携带在所述第一报文的报文头中,也可以将匹配的业务标识携带在所述第一报文的净荷中。。以第一报文为第一以太报文举例来说,所述匹配的业务标识可以添加到所述以太报文新增的报文头选项中,也可以添加到所述以太报文中的IP报文头中,也可以对以太报文头中的现有字段的重用,也就是更改现有字段的含义来表示所述以太报文携带业务标识。例如可以对虚拟局域网(Virtual Local Area Network,简称为VLAN)或QINQ(也称Stacked VLAN或Double VLAN)中的VLAN标识(也称VLAN ID),或者多协议标签交换(Multi-protocol Label Switching,简称为MPLS)中的标签(LABEL)进行重用,也可以对源MAC地址的部分或全部进行转义重用。其中,在以太报文中新增的报文头选项的格式如下:在源MAC地址和VLAN之间增加一个类型字段,用以指示该以太报文携带有业务标识(也称业务ID)。业务ID在报文中的格式可以如表一:
[0232]
[0233] 406、所述第一业务节点实例处理所述第一报文形成第二报文,其中所述第二报文携带所述第一报文匹配的业务标识;
[0234] 优选地,所述第二报文携带所述第一报文匹配的业务标识的方式和第一报文携带所述第一报文匹配的业务标识的方式相同。其中第一业务节点实例如何处理所述第一报文属于现有技术,例如,第一业务节点实例对所述第一报文进行NAT处理,或进行防火墙处理,本发明不再赘述。
[0235] 408、所述第一业务节点实例根据所述第一报文匹配的业务标识查找所述业务路由信息,获取第一下一跳地址,第一下一跳地址为与所述第一报文匹配的业务标识匹配的下一跳地址。
[0236] 410、如果所述第一下一跳地址为可达的地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送所述第二报文。
[0237] 可选地,当所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,第一业务节点实例16向拥有所述第一下一跳IP地址的设备发送所述第二报文包括:所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0238] 所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第一以太报文;
[0239] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第一以太报文。
[0240] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳IP地址的设备发送所述第二报文包括:
[0241] 所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0242] 所述第一业务节点实例用所述第一MAC地址替换所述第二报文中的目的MAC地址形成第二以太报文;
[0243] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第二以太报文。
[0244] 可选地,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第三报文包括:
[0245] 所述第一业务节点实例将所述第一下一跳MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第三以太报文;
[0246] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文。
[0247] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第二报文包括:
[0248] 所述第一业务节点实例用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第四以太报文;
[0249] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文。
[0250] 可选地,如果所述第一下一跳地址为不可达的IP地址,则所述第一业务节点实例根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为所述目的IP地址在所述路由表中匹配的下一跳IP地址;
[0251] 所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第三报文,所述第三报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的。
[0252] 如果第一业务节点实例16处理所述第一报文形成第二报文后,第三报文不需要再进行其他业务处理,可选地,在控制器12下发的第二业务路由信息中,下一跳地址设置为特殊的下一跳,例如可以是0.0.0.0,其中,0.0.0.0用于表明第一业务节点实例16是最后一个处理所述第一报文的业务节点实例,该特殊的下一跳可以是任何不可达的IP地址,只要能表明第一业务节点实例16是最后一个处理所述第一报文的业务节点实例即可,本发明实施例不做具体限定。
[0253] 可选地,所述第一报文为第一IP报文,所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第三报文包括:
[0254] 所述第一业务节点实例根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0255] 所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第三报文进行以太网封装形成第五以太报文;
[0256] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第五以太报文。
[0257] 可选地,所述第一报文为第一以太报文,所述第一业务节点实例向拥有所述第二下一跳IP地址的设备发送第三报文包括:
[0258] 所述第一业务节点实例根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0259] 所述第一业务节点实例用所述第一MAC地址替换所述第三报文中的目的MAC地址形成第六以太报文;
[0260] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第六以太报文。
[0261] 可选地,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,如果所述第一下一跳MAC地址为不可达的MAC地址,则所述第一业务节点实例根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;
[0262] 所述第一业务节点实例查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0263] 所述第一业务节点实例将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第七以太报文,所述第七以太报文不携带所述第一报文匹配的业务标识;
[0264] 所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第七以太报文。
[0265] 可选地,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,如果所述第一下一跳MAC地址为不可达的MAC地址,则所述第一业务节点实例根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;
[0266] 所述第一业务节点实例查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0267] 所述第一业务节点实例用所述第一MAC地址替换所述第二报文中的MAC地址形成第八以太报文,所述第八以太报文不携带所述第一报文匹配的业务标识;所述第一业务节点实例向拥有所述第一MAC地址的设备发送所述第八以太报文。
[0268] 可选地,所述业务路由信息还包括控制标志信息,所述控制标志信息用于标识所述报文流是否已经到达最后一个业务节点实例并需要经过正常路由转发;所述第一业务节点实例查找所述业务路由信息时,获取匹配的控制标志信息;
[0269] 如果所述匹配的控制标志信息标识为所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文,所述第四报文为去除所述第三报文中携带的所述第一报文匹配的业务标识形成的。
[0270] 举例来说,在控制器12下发的第二业务路由信息中,也可以通过设置一个控制标志位,来表明所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发。这样,第一业务节点实例16根据所述第一报文匹配的业务标识查找所述业务路由信息,获取匹配的控制标志信息,其中,控制标志信息可以通过一个控制标志位来表示,例如当控制标志位为0时,表明所述第一报文需要经过下一个业务节点实例处理,当控制标志位为1时,表明所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发。具体通过何种方式来标识控制标志信息,本发明实施例不做具体限定,只要能表明所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发即可。
[0271] 可选地,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:
[0272] 所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0273] 所述第一业务节点实例将所述第二MAC地址作为目的MAC地址对所述第四报文进行以太网封装形成第九以太报文;
[0274] 所述第一业务节点实例向拥有所述第二MAC地址的设备发送所述第九以太报文。
[0275] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:
[0276] 所述第一业务节点实例根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0277] 所述第一业务节点实例用所述第二MAC地址替换所述第四报文中的目的MAC地址形成第十以太报文;
[0278] 所述第一业务节点实例向拥有所述第二MAC地址的设备发送所述第十以太报文。
[0279] 可选地,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:
[0280] 所述第一业务节点实例将所述第一下一跳MAC地址作为目的地址对所述第四报文进行以太网封装形成第十一以太报文;
[0281] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文。
[0282] 可选地,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述第一业务节点实例向拥有所述第一下一跳地址的设备发送第四报文包括:
[0283] 所述第一业务节点实例用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第十二以太报文;
[0284] 所述第一业务节点实例向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文。
[0285] 本发明实施例提供的报文处理方法,业务节点实例携带业务标识的报文,处理所述报文,并根据所述业务标识查找业务路由信息将处理后的报文转发给下一个业务节点实例或者按照路由表进行正常转发,实现了对报文流的业务处理。
[0286] 实施例四:
[0287] 本发明实施例提供一种业务分发节点,如图5所示,图5为本发明实施例提供的业务分发节点的装置示意图。
[0288] 一种业务分发节点,包括:输入电路51,处理器52和输出电路53;
[0289] 所述输入电路51,用于接收控制器发来的业务路由信息和接收报文;其中,所述业务路由信息包括:流标识,业务标识和下一跳地址,所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例;
[0290] 可选地,控制器可以基于报文流来分配业务处理策略,控制器根据报文流对应的业务处理策略,下发业务路由信息给业务分发节点。其中,具有相同业务标识ID的报文流通过相同的业务节点实例处理,且通过的业务节点实例处理的顺序相同。进一步地,在本发明实施例的具体实现时,如果同一报文流中的两个不同的报文分配了两个不同的业务ID,则意味着虽然所述两个不同的报文所需进行的业务处理相同,但是所述报文流却由不同的业务节点实例进行处理,这样可以实现报文处理的负载均衡。例如都是先经过防火墙处理,再经过NAT设备处理,但是所述两个报文却由不同的业务节点实例进行处理,这样可以实现报文处理的负载均衡。可选地,可以对报文流的报文进行细分来实现对同一报文流处理的负载均衡。例如,以相同的源地址和相同的目的地址来标识同一报文流,为了对该同一报文流的报文处理实现负载均衡,可以根据协议号对该同一报文流的报文进行细分,假设为该同一报文流中协议号大于50的报文分配一个业务ID,用于标识该报文先经过防火墙实例1处理,再经过NAT设备实例1处理。为该同一报文流中协议号小于等于50的报文分配另一个业务ID,用于标识该报文先经过防火墙实例2处理,再经过NAT设备实例2处理。这样有助于实现同一报文流处理的负载均衡。可选地,如果不同的报文流,例如报文流1和报文流2需要进行相同的业务处理,例如都是先经过NAT设备处理,再经过防火墙处理,可以为报文流1的报文和报文流2的报文分配相同的业务ID。当然,也可以为报文流1的报文和报文流2的报文分配不同的业务ID,有助于实现负载均衡。
[0291] 所述输入电路51,还用于接收第一报文;
[0292] 举例来说,通常第一报文可以为IP报文或以太报文,第一报文可以是从用户侧设备发来的,也可以是从网络侧设备发来的,本发明实施例对此不做限定。
[0293] 所述处理器52,用于根据所述第一报文获取第一流标识,根据所述第一流标识查找所述业务路由信息,获取匹配的业务标识和匹配的下一跳地址;触发所述输出电路向拥有所述匹配的下一跳地址对应的第一业务节点实例发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的;
[0294] 举例来说,可以通过源地址,目的地址,源端口,目的端口,协议号中的至少一种信息来标识报文流,所以流标识可以包括所述第一报文的源地址,目的地址,源端口,目的端口和协议号中的至少一个。举例来说,通过所述第一报文的五元组信息(源地址,目的地址,源端口,目的端口和协议号)来标识报文流。可选地,所述第一流标识可以是所述第一报文的五元组信息,也可以是根据所述第一报文的五元组信息通过一定的算法得到的数值,例如通过哈希(hash)算法所得到的数值。当业务分发节点14接收到第一报文时,如果第一业务路由信息中的流标识是五元组信息,则业务分发节点14从第一报文中获取五元组信息得到所述第一流标识。如果第一业务路由信息中的流标识是五元组信息通过特定的算法得到的数值,则业务分发节点14从第一报文中获取所述第一报文的五元组信息,对所述第一报文的五元组信息进行该特定的算法运算得到的数值,该得到的数值为所述第一流标识。
[0295] 输出电路53,用于向拥有所述匹配的下一跳地址的第一业务节点实例发送所述第二报文。
[0296] 所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的。举例来说,所述第二报文可以为将匹配的业务标识添加到所述第一报文的报文头中形成的,或者也可以将匹配的业务标识添加到所述第一报文的净荷中形成的。以第一报文为第一以太报文举例来说,所述匹配的业务标识可以添加到所述以太报文新增的报文头选项中,也可以添加到所述以太报文中的IP报文头中,也可以对以太报文头中的现有字段的重用,也就是更改现有字段的含义来表示所述以太报文携带业务标识。例如可以对虚拟局域网(Virtual Local Area Network,简称为VLAN)或QINQ(也称Stacked VLAN或Double VLAN)中的VLAN标识(也称VLAN ID),或者多协议标签交换(Multi-protocol Label Switching,简称为MPLS)中的标签(LABEL)进行重用,也可以对源MAC地址的部分或全部进行转义重用。其中,在以太报文中新增的报文头选项的格式如下:在源MAC地址和VLAN之间增加一个类型字段,用以指示该以太报文携带有业务标识(也称业务ID)。业务ID在报文中的格式可以如表一:
[0297]
[0298] 本发明实施例提供的业务分发节点,业务分发节点根据业务路由信息对接收到的报文添加业务标识,以使得业务节点实例对所述添加了业务标识的报文处理后,可以根据业务标识查找业务路由信息对处理后的报文流转发给下一个业务节点实例或者按照路由表进行正常转发,实现了对报文流的业务处理。
[0299] 实施例五
[0300] 本发明实施例提供一种业务节点实例,如图6所示,图6是本发明实施例提供的业务节点实例的装置示意图。
[0301] 一种业务节点实例,包括输入电路61,处理器62和输出电路63;
[0302] 所述输入电路61,用于接收控制器发送的业务路由信息,所述业务路由信息包括:业务标识和下一跳地址;其中所述业务标识用于标识处理所述报文流的业务节点实例的序列;
[0303] 在本发明实施例的具体实现时,控制器可以基于报文流来分配业务处理策略,控制器根据报文流对应的业务处理策略,下发业务路由信息给业务节点实例。其中,具有相同业务ID的报文流通过相同的业务节点实例处理,且通过的业务节点实例处理的顺序相同。举例来说,业务ID=1的报文先由第一业务节点实例16进行处理,再由第二业务节点实例18进行处理。而业务ID=2的报文则先由第二业务节点实例18进行处理,再由第一业务节点实例16进行处理。可选地,如果同一报文流中的两个不同的报文分配了两个不同的业务ID,则意味着虽然所述两个不同的报文所需进行的业务处理相同,例如都是先经过防火墙处理,再经过NAT设备处理,但是所述两个报文却由不同的业务节点实例进行处理,这样可以实现报文处理的负载均衡。可选地,可以对报文流的报文进行细分来实现对同一报文流处理的负载均衡。例如,以相同的源地址和相同的目的地址来标识同一报文流,为了对该同一报文流的报文处理实现负载均衡,可以根据协议号对该同一报文流的报文进行细分,假设为该同一报文流中协议号大于50的报文分配一个业务ID,用于标识该报文先经过防火墙实例1处理,再经过NAT设备实例1处理。为该同一报文流中协议号小于等于50的报文分配另一个业务ID,用于标识该报文先经过防火墙实例2处理,再经过NAT设备实例2处理。这样有助于实现同一报文流处理的负载均衡。可选地,如果不同的报文流,例如报文流1和报文流2需要进行相同的业务处理,例如都是先经过NAT设备处理,再经过防火墙处理,可以为报文流1的报文和报文流2的报文分配相同的业务ID。当然,也可以为报文流1的报文和报文流2的报文分配不同的业务ID,有助于实现负载均衡。
[0304] 第一业务节点实例可以为逻辑功能实体,需要说明的是,通常一个业务节点实例具有一个可达的地址,例如可达的IP地址或MAC地址,这样只要第一业务节点实例具有一个可达的地址,第一业务节点实例为一个物理实体还是逻辑实体,本发明实施例并不做限定。此外,为了方便理解业务节点实例,我们以提供防火墙功能的业务节点实例进行举例说明,通常,我们可以把防火墙功能安装在很多服务器上,例如虚拟机VM上。这样安装有防火墙功能的服务器都可以提供防火墙功能的业务处理,并且安装有防火墙功能的服务器都有不同的地址。这样,每个安装有防火墙功能的服务器就可以称之为一个业务节点实例。也就是说,每个业务节点实例包括一个可达的地址,且能单独处理一种业务。在本发明实施例的具体实现时,由控制器来确定选择第一业务节点实例来处理该报文流。例如,控制器可以根据业务节点实例的处理能力,业务负载状况来选择合适的业务节点实例来处理该报文流。
[0305] 所述输入电路61,还用于接收发来的第一报文,其中所述第一报文携带所述第一报文匹配的业务标识;
[0306] 举例来说,所述输入电路61还用于接收业务分发节点发来的第一报文或者接收其他业务节点实例发来的第一报文;
[0307] 举例来说,业务分发节点可以将所述第一报文匹配的业务标识携带在所述第一报文的报文头中,也可以将匹配的业务标识携带在所述第一报文的净荷中。以第一报文为第一以太报文举例来说,所述匹配的业务标识可以添加到所述以太报文新增的报文头选项中,也可以添加到所述以太报文中的IP报文头中,也可以对以太报文头中的现有字段的重用,也就是更改现有字段的含义来表示所述以太报文携带业务标识。例如可以对虚拟局域网(Virtual Local Area Network,简称为VLAN)或QINQ(也称Stacked VLAN或Double VLAN)中的VLAN标识(也称VLAN ID),或者多协议标签交换(Multi-protocol Label Switching,简称为MPLS)中的标签(LABEL)进行重用,也可以对源MAC地址的部分或全部进行转义重用。其中,在以太报文中新增的报文头选项的格式如下:在源MAC地址和VLAN之间增加一个类型字段,用以指示该以太报文携带有业务标识(也称业务ID)。业务ID在报文中的格式可以如表一:
[0308]
[0309] 所述处理器62,用于处理所述第一报文形成第二报文,其中所述第二报文携带所述第一报文匹配的业务标识;根据所述第一报文匹配的业务标识查找所述业务路由信息,获取第一下一跳地址,第一下一跳地址为与所述第一报文匹配的业务标识匹配的下一跳地址;如果所述第一下一跳地址为可达的地址,触发所述输出电路向拥有所述第一下一跳地址的设备发送第二报文;
[0310] 优选地,所述第二报文携带所述第一报文匹配的业务标识的方式和第一报文携带所述第一报文匹配的业务标识的方式相同。其中第一业务节点实例如何处理所述第一报文属于现有技术,例如,第一业务节点实例对所述第一报文进行NAT处理,或进行防火墙处理,本发明不再赘述。
[0311] 所述输出电路63,用于向拥有所述第一下一跳地址的设备发送所述第二报文。
[0312] 可选地,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址;所述处理器触发所述输出电路向拥有所述第一下一跳地址的设备发送第二报文包括:
[0313] 所述处理器根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0314] 所述处理器将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第一以太报文;
[0315] 所述处理器触发所述输出电路向拥有所述第一MAC地址的设备发送所述第一以太报文;
[0316] 相应地,所述输出电路用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0317] 所述输出电路用于向拥有所述第一MAC地址的设备发送所述第一以太报文。
[0318] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述处理器触发所述输出电路向拥有所述第一下一跳地址的设备发送第二报文包括:
[0319] 所述处理器根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0320] 所述处理器用所述第一MAC地址替换所述第二报文中的目的MAC地址形成第二以太报文;
[0321] 所述处理器触发所述输出电路向拥有所述第一MAC地址的设备发送所述第二以太报文;
[0322] 相应地,所述输出电路用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0323] 所述输出电路用于向拥有所述第一MAC地址的设备发送所述第二以太报文。
[0324] 可选地,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理器触发所述输出电路向拥有所述第一下一跳地址的设备发送第二报文包括:
[0325] 所述处理器将所述第一下一跳MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第三以太报文;
[0326] 所述处理器触发所述输出电路向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文;
[0327] 相应地,所述输出电路用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0328] 所述输出电路用于向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文。
[0329] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理器触发所述输出电路向拥有所述第一下一跳地址的设备发送第二报文包括:
[0330] 所述处理器用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第四以太报文;
[0331] 所述处理器触发所述输出电路向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文;
[0332] 相应地,所述输出电路用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0333] 所述输出电路用于向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文。
[0334] 可选地,所述处理器还用于:如果所述第一下一跳地址为不可达的IP地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为所述目的IP地址在所述路由表中匹配的下一跳IP地址;触发所述输出电路向拥有所述第二下一跳IP地址的设备发送第三报文,所述第三报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的;
[0335] 相应地,所述输出电路还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文。
[0336] 如果第一业务节点实例16处理所述第一报文形成第二报文后,第三报文不需要再进行其他业务处理,可选地,在控制器12下发的第二业务路由信息中,下一跳地址设置为特殊的下一跳,例如可以是0.0.0.0,其中,0.0.0.0用于表明第一业务节点实例16是最后一个处理所述第一报文的业务节点实例,该特殊的下一跳可以是任何不可达的IP地址,只要能表明第一业务节点实例16是最后一个处理所述第一报文的业务节点实例即可,本发明实施例不做具体限定。
[0337] 可选地,所述第一报文为第一IP报文,所述处理器触发所述输出电路向拥有所述第二下一跳IP地址的设备发送第三报文包括:
[0338] 所述处理器根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0339] 所述处理器将所述第一MAC地址作为目的MAC地址对所述第三报文进行以太网封装形成第五以太报文;
[0340] 所述处理器触发所述输出电路向拥有所述第一MAC地址的设备发送所述第五以太报文;
[0341] 相应地,所述输出电路还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文包括:
[0342] 所述输出电路还用于向拥有所述第一MAC地址的设备发送所述第五以太报文。
[0343] 可选地,所述第一报文为第一以太报文,所述处理器触发所述输出电路向拥有所述第二下一跳IP地址的设备发送第三报文包括:
[0344] 所述处理器根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0345] 所述处理器用所述第一MAC地址替换所述第三报文中的目的MAC地址形成第六以太报文;
[0346] 所述处理器触发所述输出电路向拥有所述第一MAC地址的设备发送所述第六以太报文;
[0347] 相应地,所述输出电路还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文包括:
[0348] 所述输出电路向拥有所述第一MAC地址的设备发送所述第六以太报文。
[0349] 可选地,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理器还用于:如果所述第一下一跳MAC地址为不可达的MAC地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第七以太报文,所述第七以太报文不携带所述第一报文匹配的业务标识;触发所述输出电路向拥有所述第一MAC地址的设备发送所述第七以太报文;
[0350] 相应地,所述输出电路还用于向拥有所述第一MAC地址的设备发送所述第七以太报文。
[0351] 可选地,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理器还用于:如果所述第一下一跳MAC地址为不可达的MAC地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;用所述第一MAC地址替换所述第二报文中的MAC地址形成第八以太报文,所述第八以太报文不携带所述第一报文匹配的业务标识;触发所述输出电路向拥有所述第一MAC地址的设备发送所述第八以太报文;
[0352] 相应地,所述输出电路还用于向拥有所述第一MAC地址的设备发送所述第八以太报文。
[0353] 可选地,所述业务路由信息还包括控制标志信息,所述控制标志信息用于标识所述报文流是否已经到达最后一个业务节点实例并需要经过正常路由转发;所述处理器,还用于:查找所述业务路由信息时,获取匹配的控制标志信息;如果所述匹配的控制标志信息标识为所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发,触发所述输出电路向拥有所述第一下一跳地址的设备发送第四报文,所述第四报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的;
[0354] 举例来说,在控制器12下发的第二业务路由信息中,也可以通过设置一个控制标志位,来表明所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发。这样,第一业务节点实例16根据所述第一报文匹配的业务标识查找所述第二业务路由信息,获取匹配的控制标志信息,其中,控制标志信息可以通过一个控制标志位来表示,例如当控制标志位为0时,表明所述第一报文需要经过下一个业务节点实例处理,当控制标志位为1时,表明所述第一报文已经经过最后一个业务节点实例并需要经过正常路由转发。具体通过何种方式来标识控制标志信息,本发明实施例不做具体限定,只要能表明所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发即可。
[0355] 相应地,所述输出电路还用于向拥有所述第一下一跳地址的设备发送第四报文。
[0356] 可选地,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,所述处理器触发所述输出电路向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理器根据所述第一下一跳IP地址查找ARP表以获取第二MAC,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;将所述第二MAC地址作为目的MAC地址对所述第四报文进行以太网封装形成第九以太报文;触发所述输出电路向拥有所述第二MAC地址的设备发送所述第九以太报文;
[0357] 相应地,所述输出电路还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述输出电路还用于向拥有所述第二MAC地址的设备发送所述第九以太报文。
[0358] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述处理器触发所述输出电路向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理器根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;用所述第二MAC地址替换所述第四报文中的目的MAC地址形成第十以太报文;触发所述输出电路向拥有所述第二MAC地址的设备发送所述第十以太报文;
[0359] 相应地,所述输出电路还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述输出电路还用于向拥有所述第二MAC地址的设备发送所述第十以太报文。
[0360] 可选地,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理器触发所述输出电路向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理器将所述第一下一跳MAC地址作为目的地址对所述第四报文进行以太网封装形成第十一以太报文;触发所述输出电路向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文;
[0361] 相应地,所述输出电路还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述输出电路还用于向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文。
[0362] 可选地,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理器触发所述输出电路向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理器用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第十二以太报文;触发所述输出电路向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文;
[0363] 相应地,所述输出电路还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述输出电路还用于向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文。
[0364] 本发明实施例提供的业务节点实例,接收携带业务标识的报文,处理所述报文,并根据所述业务标识查找业务路由信息将处理后的报文转发给下一个业务节点实例或者按照路由表进行正常转发,实现了对报文流的业务处理。
[0365] 实施例六
[0366] 本发明实施例提供一种业务分发节点,如图7所示,图7是本发明实施例提供的另一业务分发节点的装置示意图。
[0367] 一种业务分发节点包括:
[0368] 接收单元71,用于接收控制器发来的业务路由信息,所述业务路由信息包括:流标识,业务标识和下一跳地址,其中所述流标识用于识别报文流;所述业务标识用于标识处理所述报文流的业务节点实例的序列,所述下一跳地址用于标识处理所述报文流的业务节点实例;
[0369] 可选地,控制器可以基于报文流来分配业务处理策略,控制器根据报文流对应的业务处理策略,下发业务路由信息给业务分发节点。其中,具有相同业务标识ID的报文流通过相同的业务节点实例处理,且通过的业务节点实例处理的顺序相同。进一步地,在本发明实施例的具体实现时,如果同一报文流中的两个不同的报文分配了两个不同的业务ID,则意味着虽然所述两个不同的报文所需进行的业务处理相同,但是所述报文流却由不同的业务节点实例进行处理,这样可以实现报文处理的负载均衡。例如都是先经过防火墙处理,再经过NAT设备处理,但是所述两个报文却由不同的业务节点实例进行处理,这样可以实现报文处理的负载均衡。可选地,可以对报文流的报文进行细分来实现对同一报文流处理的负载均衡。例如,以相同的源地址和相同的目的地址来标识同一报文流,为了对该同一报文流的报文处理实现负载均衡,可以根据协议号对该同一报文流的报文进行细分,假设为该同一报文流中协议号大于50的报文分配一个业务ID,用于标识该报文先经过防火墙实例1处理,再经过NAT设备实例1处理。为该同一报文流中协议号小于等于50的报文分配另一个业务ID,用于标识该报文先经过防火墙实例2处理,再经过NAT设备实例2处理。这样有助于实现同一报文流处理的负载均衡。可选地,如果不同的报文流,例如报文流1和报文流2需要进行相同的业务处理,例如都是先经过NAT设备处理,再经过防火墙处理,可以为报文流1的报文和报文流2的报文分配相同的业务ID。当然,也可以为报文流1的报文和报文流2的报文分配不同的业务ID,有助于实现负载均衡。
[0370] 所述接收单元,还用于接收第一报文;
[0371] 举例来说,通常第一报文可以为IP报文或以太报文,第一报文可以是从用户侧设备发来的,也可以是从网络侧设备发来的,本发明实施例对此不做限定。
[0372] 处理单元72,用于根据所述第一报文获取第一流标识,根据所述第一流标识查找所述业务路由信息,获取匹配的业务标识和匹配的下一跳地址;触发所述发送单元向拥有所述匹配的下一跳地址对应的第一业务节点实例发送第二报文,所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的;
[0373] 举例来说,可以通过源地址,目的地址,源端口,目的端口,协议号中的至少一种信息来标识报文流,所以流标识可以包括所述第一报文的源地址,目的地址,源端口,目的端口和协议号中的至少一个。举例来说,通过所述第一报文的五元组信息(源地址,目的地址,源端口,目的端口和协议号)来标识报文流。可选地,所述第一流标识可以是所述第一报文的五元组信息,也可以是根据所述第一报文的五元组信息通过一定的算法得到的数值,例如通过哈希(hash)算法所得到的数值。当业务分发节点14接收到第一报文时,如果第一业务路由信息中的流标识是五元组信息,则业务分发节点14从第一报文中获取五元组信息得到所述第一流标识。如果第一业务路由信息中的流标识是五元组信息通过特定的算法得到的数值,则业务分发节点14从第一报文中获取所述第一报文的五元组信息,对所述第一报文的五元组信息进行该特定的算法运算得到的数值,该得到的数值为所述第一流标识。
[0374] 发送单元73,用于向拥有所述匹配的下一跳地址的第一业务节点实例发送所述第二报文。
[0375] 所述第二报文为将所述匹配的业务标识添加到所述第一报文中形成的。举例来说,所述第二报文可以为将匹配的业务标识添加到所述第一报文的报文头中形成的,或者也可以将匹配的业务标识添加到所述第一报文的净荷中形成的。以第一报文为第一以太报文举例来说,所述匹配的业务标识可以添加到所述以太报文新增的报文头选项中,也可以添加到所述以太报文中的IP报文头中,也可以对以太报文头中的现有字段的重用,也就是更改现有字段的含义来表示所述以太报文携带业务标识。例如可以对虚拟局域网(Virtual Local Area Network,简称为VLAN)或QINQ(也称Stacked VLAN或Double VLAN)中的VLAN标识(也称VLAN ID),或者多协议标签交换(Multi-protocol Label Switching,简称为MPLS)中的标签(LABEL)进行重用,也可以对源MAC地址的部分或全部进行转义重用。其中,在以太报文中新增的报文头选项的格式如下:在源MAC地址和VLAN之间增加一个类型字段,用以指示该以太报文携带有业务标识(也称业务ID)。业务ID在报文中的格式可以如表一:
[0376]
[0377] 本发明实施例提供的业务分发节点,业务分发节点根据业务路由信息对接收到的报文添加业务标识,并将添加了所述业务标识的报文发送给业务节点实例,以使得业务节点实例处理所述添加了业务标识的报文后,可以根据所述业务标识查找业务路由信息将处理后的报文流转发给下一个业务节点实例或者按照路由表进行正常转发,实现了对报文流的业务处理。
[0378] 实施例七
[0379] 本发明实施例提供一种业务节点实例,如图8所示,图8是本发明实施例提供的另一种业务节点实例的装置示意图。
[0380] 一种业务节点实例包括接收单元81,处理单元82和输出单元83;
[0381] 所述接收单元81,用于接收控制器发送的业务路由信息,所述业务路由信息包括:业务标识和下一跳地址;其中所述业务标识用于标识处理所述报文流的业务节点实例的序列;
[0382] 在本发明实施例的具体实现时,控制器可以基于报文流来分配业务处理策略,控制器根据报文流对应的业务处理策略,下发业务路由信息给业务节点实例。其中,具有相同业务ID的报文流通过相同的业务节点实例处理,且通过的业务节点实例处理的顺序相同。举例来说,业务ID=1的报文先由第一业务节点实例16进行处理,再由第二业务节点实例18进行处理。而业务ID=2的报文则先由第二业务节点实例18进行处理,再由第一业务节点实例16进行处理。可选地,如果同一报文流中的两个不同的报文分配了两个不同的业务ID,则意味着虽然所述两个不同的报文所需进行的业务处理相同,例如都是先经过防火墙处理,再经过NAT设备处理,但是所述两个报文却由不同的业务节点实例进行处理,这样可以实现报文处理的负载均衡。可选地,可以对报文流的报文进行细分来实现对同一报文流处理的负载均衡。例如,以相同的源地址和相同的目的地址来标识同一报文流,为了对该同一报文流的报文处理实现负载均衡,可以根据协议号对该同一报文流的报文进行细分,假设为该同一报文流中协议号大于50的报文分配一个业务ID,用于标识该报文先经过防火墙实例1处理,再经过NAT设备实例1处理。为该同一报文流中协议号小于等于50的报文分配另一个业务ID,用于标识该报文先经过防火墙实例2处理,再经过NAT设备实例2处理。这样有助于实现同一报文流处理的负载均衡。可选地,如果不同的报文流,例如报文流1和报文流2需要进行相同的业务处理,例如都是先经过NAT设备处理,再经过防火墙处理,可以为报文流1的报文和报文流2的报文分配相同的业务ID。当然,也可以为报文流1的报文和报文流2的报文分配不同的业务ID,有助于实现负载均衡。
[0383] 第一业务节点实例可以为逻辑功能实体,需要说明的是,通常一个业务节点实例具有一个可达的地址,例如可达的IP地址或MAC地址,这样只要第一业务节点实例具有一个可达的地址,第一业务节点实例为一个物理实体还是逻辑实体,本发明实施例并不做限定。此外,为了方便理解业务节点实例,我们以提供防火墙功能的业务节点实例进行举例说明,通常,我们可以把防火墙功能安装在很多服务器上,例如虚拟机VM上。这样安装有防火墙功能的服务器都可以提供防火墙功能的业务处理,并且安装有防火墙功能的服务器都有不同的地址。这样,每个安装有防火墙功能的服务器就可以称之为一个业务节点实例。也就是说,每个业务节点实例包括一个可达的地址,且能单独处理一种业务。在本发明实施例的具体实现时,由控制器来确定选择第一业务节点实例来处理该报文流。例如,控制器可以根据业务节点实例的处理能力,业务负载状况来选择合适的业务节点实例来处理该报文流。
[0384] 所述接收单元,还用于接收发来的第一报文,其中所述第一报文携带所述第一报文匹配的业务标识;
[0385] 举例来说,所述接收单元,还用于接收业务分发节点发来的第一报文或者接收其他业务节点实例发来的第一报文。
[0386] 举例来说,业务分发节点可以将所述第一报文匹配的业务标识携带在所述第一报文的报文头中,也可以将匹配的业务标识携带在所述第一报文的净荷中。以第一报文为第一以太报文举例来说,所述匹配的业务标识可以添加到所述以太报文新增的报文头选项中,也可以添加到所述以太报文中的IP报文头中,也可以对以太报文头中的现有字段的重用,也就是更改现有字段的含义来表示所述以太报文携带业务标识。例如可以对虚拟局域网(Virtual Local Area Network,简称为VLAN)或QINQ(也称Stacked VLAN或Double VLAN)中的VLAN标识(也称VLAN ID),或者多协议标签交换(Multi-protocol Label Switching,简称为MPLS)中的标签(LABEL)进行重用,也可以对源MAC地址的部分或全部进行转义重用。其中,在以太报文中新增的报文头选项的格式如下:在源MAC地址和VLAN之间增加一个类型字段,用以指示该以太报文携带有业务标识(也称业务ID)。业务ID在报文中的格式可以如表一:
[0387]
[0388] 所述处理单元,用于处理所述第一报文形成第二报文,其中所述第二报文携带所述第一报文匹配的业务标识;根据所述第一报文匹配的业务标识查找所述业务路由信息,获取第一下一跳地址,第一下一跳地址为与所述第一报文匹配的业务标识匹配的下一跳地址;触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文;
[0389] 优选地,所述第二报文携带所述第一报文匹配的业务标识的方式和第一报文携带所述第一报文匹配的业务标识的方式相同。其中第一业务节点实例如何处理所述第一报文属于现有技术,例如,第一业务节点实例对所述第一报文进行NAT处理,或进行防火墙处理,本发明不再赘述。
[0390] 所述发送单元,用于向拥有所述第一下一跳地址的设备发送所述第二报文。
[0391] 可选地,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址;所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:
[0392] 所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0393] 所述处理单元将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第一以太报文;
[0394] 所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第一以太报文;
[0395] 相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0396] 所述发送单元用于向拥有所述第一MAC地址的设备发送所述第一以太报文。
[0397] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:
[0398] 所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第一下一跳IP地址匹配的MAC地址;
[0399] 所述处理单元用所述第一MAC地址替换所述第二报文中的目的MAC地址形成第二以太报文;
[0400] 所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第二以太报文;
[0401] 相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0402] 所述发送单元用于向拥有所述第一MAC地址的设备发送所述第二以太报文。
[0403] 可选地,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:
[0404] 所述处理单元将所述第一下一跳MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第三以太报文;
[0405] 所述处理单元触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文;
[0406] 相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0407] 所述发送单元用于向拥有所述第一下一跳MAC地址的设备发送所述第三以太报文。
[0408] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第二报文包括:
[0409] 所述处理单元用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第四以太报文;
[0410] 所述处理单元触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文;
[0411] 相应地,所述发送单元用于向拥有所述第一下一跳地址的设备发送所述第二报文包括:
[0412] 所述发送单元用于向拥有所述第一下一跳MAC地址的设备发送所述第四以太报文。
[0413] 可选地,所述处理单元还用于:如果所述第一下一跳地址为不可达的IP地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为所述目的IP地址在所述路由表中匹配的下一跳IP地址;触发所述发送单元向拥有所述第二下一跳IP地址的设备发送第三报文,所述第三报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的;
[0414] 相应地,所述发送单元还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文。
[0415] 如果第一业务节点实例16处理所述第一报文形成第二报文后,第三报文不需要再进行其他业务处理,可选地,在控制器12下发的第二业务路由信息中,下一跳地址设置为特殊的下一跳,例如可以是0.0.0.0,其中,0.0.0.0用于表明第一业务节点实例16是最后一个处理所述第一报文的业务节点实例,该特殊的下一跳可以是任何不可达的IP地址,只要能表明第一业务节点实例16是最后一个处理所述第一报文的业务节点实例即可,本发明实施例不做具体限定。
[0416] 可选地,所述第一报文为第一IP报文,所述处理单元触发所述发送单元向拥有所述第二下一跳IP地址的设备发送第三报文包括:
[0417] 所述处理单元根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0418] 所述处理单元将所述第一MAC地址作为目的MAC地址对所述第三报文进行以太网封装形成第五以太报文;
[0419] 所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第五以太报文;
[0420] 相应地,所述发送单元还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文包括:
[0421] 所述发送单元还用于向拥有所述第一MAC地址的设备发送所述第五以太报文。
[0422] 可选地,所述第一报文为第一以太报文,所述处理单元触发所述发送单元向拥有所述第二下一跳IP地址的设备发送第三报文包括:
[0423] 所述处理单元根据所述第二下一跳IP地址查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;
[0424] 所述处理单元用所述第一MAC地址替换所述第三报文中的目的MAC地址形成第六以太报文;
[0425] 所述处理单元触发所述发送单元向拥有所述第一MAC地址的设备发送所述第六以太报文;
[0426] 相应地,所述发送单元还用于向拥有所述第二下一跳IP地址的设备发送所述第三报文包括:
[0427] 所述发送单元向拥有所述第一MAC地址的设备发送所述第六以太报文。
[0428] 可选地,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元还用于:如果所述第一下一跳MAC地址为不可达的MAC地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;将所述第一MAC地址作为目的MAC地址对所述第二报文进行以太网封装形成第七以太报文,所述第七以太报文不携带所述第一报文匹配的业务标识;触发所述发送单元向拥有所述第一MAC地址的设备发送所述第七以太报文;
[0429] 相应地,所述发送单元还用于向拥有所述第一MAC地址的设备发送所述第七以太报文。
[0430] 可选地,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元还用于:如果所述第一下一跳MAC地址为不可达的MAC地址,则根据所述第二报文中的目的IP地址查找路由表,获取第二下一跳IP地址,所述第二下一跳IP地址为与所述目的IP地址匹配的下一跳IP地址;查找ARP表以获取第一MAC地址,所述第一MAC地址为与所述第二下一跳IP地址匹配的MAC地址;用所述第一MAC地址替换所述第二报文中的MAC地址形成第八以太报文,所述第八以太报文不携带所述第一报文匹配的业务标识;触发所述发送单元向拥有所述第一MAC地址的设备发送所述第八以太报文;
[0431] 相应地,所述发送单元还用于向拥有所述第一MAC地址的设备发送所述第八以太报文。
[0432] 可选地,所述业务路由信息还包括控制标志信息,所述控制标志信息用于标识所述报文流是否已经到达最后一个业务节点实例并需要经过正常路由转发;所述处理单元,还用于:查找所述业务路由信息时,获取匹配的控制标志信息;如果所述匹配的控制标志信息标识为所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发,触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文,所述第四报文为去除所述第二报文中携带的所述第一报文匹配的业务标识形成的;
[0433] 举例来说,在控制器12下发的第二业务路由信息中,也可以通过设置一个控制标志位,来表明所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发。这样,第一业务节点实例16根据所述第一报文匹配的业务标识查找所述第二业务路由信息,获取匹配的控制标志信息,其中,控制标志信息可以通过一个控制标志位来表示,例如当控制标志位为0时,表明所述第一报文需要经过下一个业务节点实例处理,当控制标志位为1时,表明所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发。具体通过何种方式来标识控制标志信息,本发明实施例不做具体限定,只要能表明所述第一报文已经到达最后一个业务节点实例并需要经过正常路由转发即可。
[0434] 相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文。
[0435] 可选地,所述第一报文为第一IP报文,所述第一下一跳地址为第一下一跳IP地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;将所述第二MAC地址作为目的MAC地址对所述第四报文进行以太网封装形成第九以太报文;触发所述发送单元向拥有所述第二MAC地址的设备发送所述第九以太报文;
[0436] 相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第二MAC地址的设备发送所述第九以太报文。
[0437] 可选地,所述第一报文为第一以太报文,所述第一下一跳地址为第一下一跳IP地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元根据所述第一下一跳IP地址查找ARP表以获取第二MAC地址,所述第二MAC地址为与所述第一下一跳IP地址匹配的MAC地址;用所述第二MAC地址替换所述第四报文中的目的MAC地址形成第十以太报文;触发所述发送单元向拥有所述第二MAC地址的设备发送所述第十以太报文;
[0438] 相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第二MAC地址的设备发送所述第十以太报文。
[0439] 可选地,所述第一报文为IP报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元将所述第一下一跳MAC地址作为目的地址对所述第四报文进行以太网封装形成第十一以太报文;触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文;
[0440] 相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第一下一跳MAC地址的设备发送所述第十一以太报文。
[0441] 可选地,所述第一报文为以太报文,所述第一下一跳地址为第一下一跳MAC地址,所述处理单元触发所述发送单元向拥有所述第一下一跳地址的设备发送第四报文包括:所述处理单元用所述第一下一跳MAC地址替换所述第二报文中的目的MAC地址形成第十二以太报文;触发所述发送单元向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文;
[0442] 相应地,所述发送单元还用于向拥有所述第一下一跳地址的设备发送第四报文包括:所述发送单元还用于向拥有所述第一下一跳MAC地址的设备发送所述第十二以太报文。
[0443] 本发明实施例提供的业务节点实例,接收携带业务标识的报文,处理所述报文,并根据所述业务标识查找业务路由信息将处理后的报文转发给下一个业务节点实例或者按照路由表进行正常转发,实现了对报文流的业务处理。
[0444] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0445] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。