软件定义网络中数据转发的方法、设备和系统转让专利

申请号 : CN201480083892.4

文献号 : CN107005462B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 左少夫

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

摘要 :

本发明提供一种软件定义网络(SDN)中数据转发的方法、设备和系统,SDN控制设备根据网络拓扑信息下发主动流表项,主动流表项与业务无关,只与网络拓扑信息相关,主动流表项下发后,即可以被数据的转发反复使用。当接收到数据之后,SDN控制设备会向部分交换设备下发被动流表项,被动流表项与业务相关,但是只向部分交换设备下发。减少了SDN控制设备向部分交换设备下发的流表项,从而减少了流表项对SDN控制设备和交换设备资源的占用。

权利要求 :

1.一种实现数据转发的软件定义网络SDN系统,所述SDN系统包括SDN控制设备和n个交换设备,其中第一交换设备是与所述数据的源端相连的交换设备,第n交换设备是与所述数据的目的端相连的交换设备,其中,n≥3,其特征在于:所述第一交换设备用于向所述SDN控制设备请求转发规则,所述请求中携带所述数据的特征信息;

所述第一交换设备还用于接收所述SDN控制设备返回的第一转发规则,所述第一转发规则包括第一交换设备至第n交换设备的路径信息,根据所述第一转发规则,将所述数据和所述第一交换设备至第n交换设备的路径信息发送给与所述第一交换设备相连的第二交换设备;

所述第二交换设备用于接收所述第一交换设备发送的所述数据和所述第一交换设备至第n交换设备的路径信息,根据所述第一交换设备至第n交换设备的路径信息中第三交换设备的路标,查询所述第二交换设备保存的第二转发规则,获得所述第三交换设备在所述第二交换设备上的端口,通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据,所述第三交换设备是与第二交换设备相连的交换设备;

其中,

所述第一交换设备至第n交换设备的路径信息包括在数据转发路径上所述第三交换设备至所述第n交换设备的路标;且所述第二转发规则的匹配域为所述第三交换设备的路标。

2.根据权利要求1所述的SDN系统,当n≥4时,其特征在于:

所述第二交换设备还用于向所述第三交换设备发送第二交换设备至第n交换设备的路径信息,所述第二交换设备至第n交换设备的路径信息包括在所述数据转发路径上第四交换设备至所述第n交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。

3.根据权利要求2所述的SDN系统,其特征在于,第i交换设备用于接收第i-1交换设备发送的第i-1交换设备至第n交换设备的路径信息和所述数据,所述第i-1交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+1交换设备至所述第n交换设备的路标,i为整数且大于等于3,并且i小于n;

所述第i交换设备还用于根据所述第i+1交换设备的路标,查询所述第i交换设备保存的第i转发规则,根据所述第i转发规则,确定所述第i+1交换设备在所述第i交换设备的端口,将所述数据通过所述第i+1交换设备在所述第i交换设备的端口转发给所述第i+1交换设备。

4.根据权利要求3所述的SDN系统,其特征在于,如果第i+1交换设备不是所述第n交换设备,所述第i交换设备还用于根据所述第i转发规则,向所述第i+1交换设备发送第i交换设备至第n交换设备的路径信息,所述第i交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+2交换设备至所述第n交换设备的路标,所述第i+2交换设备是与所述第i+1交换设备相连的交换设备。

5.根据权利要求4所述的SDN系统,其特征在于,所述第i交换设备用于根据所述第i转发规则,向所述第i+1交换设备发送所述第i交换设备至第n交换设备的路径信息具体包括:所述第i交换设备用于根据所述第i转发规则,从所述第i-1交换设备至第n交换设备的路径信息中剥离所述第i+1交换设备的路标,从而得到所述第i+2交换设备至所述第n交换设备的路标,向所述第i+1交换设备发送所述第i+2交换设备至所述第n交换设备的路标。

6.根据权利要求1至5任一所述的SDN系统,其特征在于:

所述第一交换设备用于将在所述数据转发路径上所述第三交换设备至所述第n交换设备的路标依次压入协议栈中,所述第n交换设备的路标压入栈底,所述第三交换设备的路标压入栈顶,以使所述协议栈携带所述第一交换设备至第n交换设备的路径信息。

7.根据权利要求6所述的SDN系统,其特征在于:所述协议栈包括多协议标签交换MPLS栈,所述MPLS栈的一个MPLS头携带一个交换设备的路标。

8.根据权利要求1至5任一所述的SDN系统,其特征在于:

所述第二交换设备用于根据所述第三交换设备的路标识别所述数据的下一跳交换设备为所述第三交换设备,所述第三交换设备的路标包括以下至少之一:所述第三交换设备的设备标识、所述第三交换设备在所述第二交换设备上的端口标识、或者所述第三交换设备与所述第二交换设备之间的链路标识。

9.根据权利要求1至5任一所述的SDN系统,其特征在于:

所述第一交换设备还用于根据所述第一转发规则,将租户标识发送给与所述第一交换设备相连的第二交换设备,以通过所述第二交换设备发送给所述第n交换设备;

所述第n交换设备用于根据所述租户标识和所述数据的特征信息确定所述数据的目的端,然后将所述数据发送给所述目的端。

10.一种实现数据转发的方法,所述方法应用于软件定义网络SDN系统,所述SDN系统包括SDN控制设备和n个交换设备,其中第一交换设备是与所述数据的源端相连的交换设备,第n交换设备是与所述数据的目的端相连的交换设备,其中,n≥3,其特征在于:所述第一交换设备向所述SDN控制设备请求转发规则,所述请求中携带所述数据的特征信息;

所述第一交换设备接收所述SDN控制设备返回的第一转发规则,所述第一转发规则包括第一交换设备至第n交换设备的路径信息,根据所述第一转发规则,将所述数据和所述第一交换设备至第n交换设备的路径信息发送给与所述第一交换设备相连的第二交换设备;

所述第二交换设备接收所述第一交换设备发送的所述数据和所述第一交换设备至第n交换设备的路径信息,根据所述第一交换设备至第n交换设备的路径信息中第三交换设备的路标,查询所述第二交换设备保存的第二转发规则,获得所述第三交换设备在所述第二交换设备上的端口,通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据,所述第三交换设备是与第二交换设备相连的交换设备,其中:所述第一交换设备至第n交换设备的路径信息包括在数据转发路径上所述第三交换设备至所述第n交换设备的路标;且所述第二转发规则的匹配域为所述第三交换设备的路标。

11.根据权利要求10所述的方法,当n≥4时,其特征在于:

所述第二交换设备向所述第三交换设备发送第二交换设备至第n交换设备的路径信息,所述第二交换设备至第n交换设备的路径信息包括在所述数据转发路径上第四交换设备至所述第n交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。

12.根据权利要求11所述的方法,其特征在于,第i交换设备接收第i-1交换设备发送的第i-1交换设备至第n交换设备的路径信息和所述数据,所述第i-1交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+1交换设备至所述第n交换设备的路标,i为整数且大于等于3,并且i小于n;

所述第i交换设备根据所述第i+1交换设备的路标,查询所述第i交换设备保存的第i转发规则,根据所述第i转发规则,确定所述第i+1交换设备在所述第i交换设备的端口,将所述数据通过所述第i+1交换设备在所述第i交换设备的端口转发给所述第i+1交换设备。

13.根据权利要求12所述的方法,其特征在于,如果第i+1交换设备不是所述第n交换设备,所述第i交换设备根据所述第i转发规则,向所述第i+1交换设备发送第i交换设备至第n交换设备的路径信息,所述第i交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+2交换设备至所述第n交换设备的路标,所述第i+2交换设备是与所述第i+1交换设备相连的交换设备。

14.根据权利要求13所述的方法,其特征在于,所述第i交换设备根据所述第i转发规则,向所述第i+1交换设备发送所述第i交换设备至第n交换设备的路径信息具体包括:所述第i交换设备根据所述第i转发规则,从所述第i-1交换设备至第n交换设备的路径信息中剥离所述第i+1交换设备的路标,从而得到所述第i+2交换设备至所述第n交换设备的路标,向所述第i+1交换设备发送所述第i+2交换设备至所述第n交换设备的路标。

15.根据权利要求10至14任一所述的方法,其特征在于:

所述第一交换设备将在所述数据转发路径上所述第三交换设备至所述第n交换设备的路标依次压入协议栈中,所述第n交换设备的路标压入栈底,所述第三交换设备的路标压入栈顶,以使所述协议栈携带所述第一交换设备至第n交换设备的路径信息。

16.根据权利要求15所述的方法,其特征在于:所述协议栈包括多协议标签交换MPLS栈,所述MPLS栈的一个MPLS头携带一个交换设备的路标。

17.根据权利要求10至14任一所述的方法,其特征在于:

所述第二交换设备根据所述第三交换设备的路标识别所述数据的下一跳交换设备为所述第三交换设备,所述第三交换设备的路标包括以下至少之一:所述第三交换设备的设备标识、所述第三交换设备在所述第二交换设备上的端口标识、或者所述第三交换设备与所述第二交换设备之间的链路标识。

18.根据权利要求10至14任一所述的方法,其特征在于:

所述第一交换设备还根据所述第一转发规则,将租户标识发送给与所述第一交换设备相连的第二交换设备,以通过所述第二交换设备发送给所述第n交换设备;

所述第n交换设备根据所述租户标识和所述数据的特征信息确定所述数据的目的端,然后将所述数据发送给所述目的端。

19.一种实现数据转发的方法,所述方法应用于软件定义网络SDN系统,所述SDN系统包括SDN控制设备和n个交换设备,其中第一交换设备是与所述数据的源端相连的交换设备,第n交换设备是与所述数据的目的端相连的交换设备,其中,n≥3,其特征在于:所述SDN控制设备从所述第一交换设备接收转发规则的请求,所述请求中携带所述数据的特征信息;

所述SDN控制设备,根据所述数据的特征信息,向所述第一交换设备返回第一转发规则,所述第一转发规则用于指示所述第一交换设备根据所述第一转发规则,将所述数据和所述第一交换设备至第n交换设备的路径信息发送给与所述第一交换设备相连的第二交换设备;

所述SDN控制设备还根据所述数据的特征信息,向所述第n交换设备返回第n转发规则,以使所述第n交换设备将所述数据转发给所述目的端;

其中,所述第一交换设备至第n交换设备的路径信息包括在所述数据转发路径上第三交换设备至所述第n交换设备的路标;且第二转发规则的匹配域为所述第三交换设备的路标。

20.根据权利要求19所述的方法,其特征在于:

所述SDN控制设备根据所述SDN系统的网络拓扑信息,向所述第二交换设备下发第二转发规则,所述第二转发规则用于指示所述第二交换设备,通过所述第一交换设备至第n交换设备的路径信息中第三交换设备的路标,获得所述第三交换设备在所述第二交换设备上的端口,通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据,所述第三交换设备是与第二交换设备相连的交换设备。

21.根据权利要求20所述的方法,其特征在于:

所述SDN控制设备具体根据所述数据的特征信息和所述SDN系统的网络拓扑信息,选择数据转发路径。

22.根据权利要求21所述的方法,其特征在于:

所述SDN控制设备根据所述SDN系统的网络拓扑信息,向第i交换设备下发第i转发规则,所述第i转发规则用于指示所述第i交换设备,通过第i-1交换设备至第n交换设备的路径信息中第i+1交换设备的路标,获得所述第i+1交换设备在所述第i交换设备的端口,将所述数据通过所述第i+1交换设备在所述第i交换设备的端口转发给所述第i+1交换设备,i为整数且大于等于3,并且i小于n。

23.根据权利要求22所述的方法,其特征在于,所述第i-1交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+1交换设备至所述第n交换设备的路标;

如果第i+1交换设备不是所述第n交换设备,所述第i转发规则还用于指示所述第i交换设备剥离所述第i+1交换设备的路标,向所述第i+1交换设备发送第i交换设备至第n交换设备的路径信息,所述第i交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+2交换设备至所述第n交换设备的路标,所述第i+2交换设备是与所述第i+1交换设备相连的交换设备。

24.根据权利要求20至23任一所述的方法,其特征在于:

所述第三交换设备的路标包括以下至少之一:所述第三交换设备的设备标识、所述第三交换设备在所述第二交换设备上的端口标识、或者所述第三交换设备与所述第二交换设备之间的链路标识。

25.根据权利要求19至23任一所述的方法,其特征在于:

所述第一转发规则还指示所述第一交换设备将租户标识发送给与所述第二交换设备,以通过所述第二交换设备发送给所述第n交换设备;

所述第i转发规则还指示第n交换设备根据所述租户标识和所述数据的特征信息确定所述目的端。

26.一种实现数据转发的软件定义网络SDN系统,所述SDN系统包括SDN控制设备和至少两个服务设备,所述至少两个服务设备包括第一服务设备和第二服务设备,所述第一服务设备与第一交换设备相连,所述第二服务设备与第二交换设备相连,其特征在于:所述第一交换设备用于接收数据和所述第一服务设备的标识;

所述第一交换设备用于根据从所述SDN控制设备接收的第一转发规则,删除所述第一服务设备的标识,将所述数据发送给所述第一服务设备处理,接收所述第一服务设备处理的数据;

所述第一交换设备还用于根据从所述SDN控制设备接收的第二转发规则,执行如下之一:

当所述第一交换设备与所述第二交换设备相连时,所述第一交换设备用于将所述第一服务设备处理的数据和所述第二服务设备的标识,发送给所述第二交换设备;

当所述第一交换设备与所述第二交换设备不相连时,所述第一交换设备用于将所述第一服务设备处理的数据和所述第二服务设备的标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第三交换设备是所述第一交换设备相连的交换设备;

其中,所述第一交换设备至所述第二交换设备的路径信息包括在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。

27.根据权利要求26所述的SDN系统,其特征在于,

当所述第二服务设备为目的服务设备时,所述第二交换设备用于根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据;

当所述第二服务设备不为目的服务设备时,所述第二交换设备用于根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据,接收所述第二服务设备处理的数据。

28.根据权利要求26所述的SDN系统,其特征在于:所述第三交换设备用于根据所述第四交换设备的路标,查询所述第三交换设备保存的第四转发规则,根据所述第四转发规则,确定所述第四交换设备在所述第三交换设备的端口,将所述第一服务设备处理的数据通过所述第四交换设备在所述第三交换设备的端口转发给所述第四交换设备。

29.根据权利要求28所述的SDN系统,其特征在于:如果所述第四交换设备不是所述第二交换设备,所述第三交换设备还用于根据所述第四转发规则,向所述第四交换设备发送第三交换设备至第二交换设备的路径信息。

30.根据权利要求29所述的SDN系统,其特征在于:所述第三交换设备还用于根据所述第四转发规则,向所述第四交换设备发送第三交换设备至第二交换设备的路径信息具体包括:所述第三交换设备根据所述第四转发规则,从所述第一交换设备至第二交换设备的路径信息中剥离所述第四交换设备的路标,从而得到所述三交换设备至第二交换设备的路径信息,向所述第四交换设备发送所述第三交换设备至第二交换设备的路径信息。

31.根据权利要求27至30任一所述的SDN系统,其特征在于:

所述第一交换设备将在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标、以及所述第二服务设备的标识依次压入协议栈中,所述第二服务设备的标识压入栈底,所述第二交换设备的路标压入所述栈底的上一层,所述第四交换设备的路标压入栈顶。

32.根据权利要求27至30任一所述的SDN系统,其特征在于:

所述第三交换设备用于根据所述第四交换设备的路标识别所述数据的下一跳交换设备为所述第四交换设备,所述第四交换设备的路标包括以下至少之一:所述第四交换设备的设备标识、所述第四交换设备在所述第三交换设备上的出端口标识、或者所述第四交换设备与所述第三交换设备之间的链路标识。

33.一种实现数据转发的方法,所述方法应用于软件定义网络SDN系统,所述SDN系统包括SDN控制设备和至少两个服务设备,所述至少两个服务设备包括第一服务设备和第二服务设备,所述第一服务设备与第一交换设备相连,所述第二服务设备与第二交换设备相连,其特征在于:所述第一交换设备接收数据和所述第一服务设备的标识;

所述第一交换设备根据从所述SDN控制设备接收的第一转发规则,删除所述第一服务设备的标识,将所述数据发送给所述第一服务设备处理,接收所述第一服务设备处理的数据;

所述第一交换设备根据从所述SDN控制设备接收的第二转发规则,执行如下之一:

当所述第一交换设备与所述第二交换设备相连时,所述第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,发送给所述第二交换设备;

当所述第一交换设备与所述第二交换设备不相连时,所述第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第三交换设备为所述第一交换设备相连的交换设备;

其中,所述第一交换设备至所述第二交换设备的路径信息包括在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。

34.根据权利要求33所述的方法,其特征在于,当所述第二服务设备为目的服务设备时,所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据;或当所述第二服务设备不为目的服务设备时,所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据,接收所述第二服务设备处理的数据。

35.根据权利要求33所述的方法,其特征在于:

所述第三交换设备根据所述第四交换设备的路标,查询所述第三交换设备保存的第四转发规则,根据所述第四转发规则,确定所述第四交换设备在所述第三交换设备的端口,将所述第一服务设备处理的数据通过所述第四交换设备在所述第三交换设备的端口转发给所述第四交换设备。

36.根据权利要求35所述的方法,其特征在于:

如果所述第四交换设备不是所述第二交换设备,所述第三交换设备还根据所述第四转发规则,向所述第四交换设备发送第三交换设备至第二交换设备的路径信息。

37.根据权利要求36所述的方法,其特征在于:所述第三交换设备还根据所述第四转发规则,向所述第四交换设备发送第三交换设备至第二交换设备的路径信息具体包括:所述第三交换设备根据所述第四转发规则,从所述第一交换设备至第二交换设备的路径信息中剥离所述第四交换设备的路标,从而得到所述三交换设备至第二交换设备的路径信息,向所述第四交换设备发送所述第三交换设备至第二交换设备的路径信息。

38.根据权利要求33至37任一所述的方法,其特征在于:

所述第一交换设备将在所述第一服务设备处理的数据的转发路径上第五交换设备至所述第二交换设备的路标、以及所述第二服务设备的标识依次压入协议栈中,所述第二服务设备的标识压入栈底,所述第二交换设备的路标压入所述栈底的上一层,所述第五交换设备的路标压入栈顶。

39.根据权利要求33至37任一所述的方法,其特征在于:

所述第三交换设备用于根据第五交换设备的路标识别所述数据的下一跳交换设备为所述第五交换设备,所述第五交换设备的路标包括以下至少之一:所述第五交换设备的设备标识、所述第五交换设备在所述第三交换设备上的出端口标识、或者所述第五交换设备与所述第三交换设备之间的链路标识。

40.一种实现数据转发的方法,所述方法应用于软件定义网络SDN系统,所述SDN系统包括SDN控制设备和至少两个服务设备,所述至少两个服务设备包括第一服务设备和第二服务设备,所述第一服务设备与第一交换设备相连,所述第二服务设备与第二交换设备相连,其特征在于:所述SDN控制设备用于根据所述SDN系统的网络拓扑信息,向所述第一交换设备返回第一转发规则,所述第一转发规则用于指示所述第一交换设备删除所述第一服务设备的标识,将数据发送给所述第一服务设备处理;

所述SDN控制设备用于接收转发规则的请求,根据所述请求中携带的特征信息,向所述第一交换设备返回第二转发规则,当所述第一交换设备与所述第二交换设备相连时,所述第二转发规则用于指示第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,发送给所述第二交换设备;

当所述第一交换设备与所述第二交换设备不相连时,所述第二转发规则用于指示所述第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第三交换设备为所述第一交换设备相连的交换设备;

其中,所述第一交换设备至所述第二交换设备的路径信息包括在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。

41.根据权利要求40所述的方法,其特征在于,

所述SDN控制设备还用于根据所述SDN系统的网络拓扑信息,向所述第二交换设备返回第三转发规则,当所述第二服务设备为目的服务设备时,所述第三转发规则用于指示所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据;或当所述第二服务设备不为目的服务设备时,所述第三转发规则用于指示所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据,接收所述第二服务设备处理的数据。

42.根据权利要求40所述的方法,其特征在于:

所述SDN控制设备还用于根据所述SDN系统的网络拓扑信息,向所述第三交换设备返回第四转发规则,第四转发规则用于指示所述第三交换设备根据所述第四交换设备的路标,确定所述第四交换设备在所述第三交换设备的端口,将所述第一服务设备处理的数据通过所述第四交换设备在所述第三交换设备的端口转发给所述第四交换设备。

43.根据权利要求42所述的方法,其特征在于:

如果所述第四交换设备不是所述第二交换设备,所述第四转发规则还用于指示所述第三交换设备向所述第四交换设备发送第三交换设备至第二交换设备的路径信息。

44.根据权利要求43所述的方法,其特征在于:所述第四转发规则具体指示所述第三交换设备从所述第一交换设备至第二交换设备的路径信息中剥离所述第四交换设备的路标,从而得到所述三交换设备至第二交换设备的路径信息,向所述第四交换设备发送所述第三交换设备至第二交换设备的路径信息。

45.根据权利要求40至44任一所述的方法,其特征在于:

所述第四交换设备的路标包括以下至少之一:所述第四交换设备的设备标识、所述第四交换设备在所述第三交换设备上的出端口标识、或者所述第四交换设备与所述第三交换设备之间的链路标识。

46.一种软件定义网络SDN控制设备,所述SDN控制设备应用于SDN系统,所述SDN系统还包括n个交换设备,其中第一交换设备是与数据的源端相连的交换设备,第n交换设备是与所述数据的目的端相连的交换设备,n≥3,其特征在于,所述SDN控制设备包括网络通信单元和转发规则管理单元:所述网络通信单元,用于从所述第一交换设备接收转发规则的请求,所述请求中携带所述数据的特征信息,并将所述请求发送给所述转发规则管理单元;

所述转发规则管理单元,用于根据所述数据的特征信息,确定第一转发规则和第n转发规则,所述第一转发规则用于指示所述第一交换设备根据所述第一转发规则,将所述数据和所述第一交换设备至第n交换设备的路径信息发送给与所述第一交换设备相连的第二交换设备;所述第n转发规则用于指示所述第n交换设备将所述数据转发给所述目的端;

所述网络通信单元,还用于向所述第一交换设备返回所述第一转发规则,向所述第n交换设备返回所述第n转发规则;

其中,第i-1交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+1交换设备至所述第n交换设备的路标。

47.根据权利要求46所述的设备,其特征在于,所述SDN控制设备还包括拓扑管理单元:所述拓扑管理单元用于收集所述SDN系统的网络拓扑信息,并将所述网络拓扑信息发送给所述转发规则管理单元;

所述转发规则管理单元还用于根据所述网络拓扑信息,确定第二转发规则,所述第二转发规则用于指示所述第二交换设备,通过所述第一交换设备至第n交换设备的路径信息中第三交换设备的路标,获得所述第三交换设备在所述第二交换设备上的端口,通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据,所述第三交换设备是与第二交换设备相连的交换设备;

所述网络通信单元,还用于向所述第二交换设备返回所述第二转发规则。

48.根据权利要求47所述的设备,其特征在于,

所述转发规则管理单元还用于根据所述SDN系统的网络拓扑信息,确定第i转发规则,所述第i转发规则用于指示所述第i交换设备,通过第i-1交换设备至第n交换设备的路径信息中第i+1交换设备的路标,获得所述第i+1交换设备在所述第i交换设备的端口,将所述数据通过所述第i+1交换设备在所述第i交换设备的端口转发给所述第i+1交换设备,i为整数且大于等于3,并且i小于n。

49.根据权利要求48所述的设备,其特征在于,如果第i+1交换设备不是所述第n交换设备,所述第i转发规则还用于指示所述第i交换设备剥离所述第i+1交换设备的路标,向所述第i+1交换设备发送第i交换设备至第n交换设备的路径信息,所述第i交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+2交换设备至所述第n交换设备的路标,所述第i+2交换设备是与所述第i+1交换设备相连的交换设备;

所述网络通信单元,还用于向所述第i交换设备下发所述第i转发规则。

50.一种软件定义网络SDN控制设备,所述SDN控制设备应用于SDN系统,所述SDN系统还包括至少两个服务设备,所述至少两个服务设备包括第一服务设备和第二服务设备,所述第一服务设备与第一交换设备相连,所述第二服务设备与第二交换设备相连,其特征在于,所述SDN控制设备包括网络通信单元、转发规则管理单元和拓扑管理单元:所述拓扑管理单元用于收集所述SDN系统的网络拓扑信息,并将所述网络拓扑信息发送给转发规则管理单元;

所述网络通信单元用于接收转发规则的请求,所述请求中携带特征信息,并将所述请求发送给所述转发规则管理单元;

所述转发规则管理单元用于根据所述SDN系统的网络拓扑信息,确定第一转发规则,所述第一转发规则用于指示所述第一交换设备删除所述第一服务设备的标识,将数据发送给所述第一服务设备;

所述转发规则管理单元还用于根据所述请求中携带的特征信息,确定第二转发规则,当所述第一交换设备与所述第二交换设备相连时,所述第二转发规则用于指示第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,发送给所述第二交换设备;或当所述第一交换设备与所述第二交换设备不相连时,所述第二转发规则用于指示所述第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第三交换设备为所述第一交换设备相连的交换设备;

所述网络通信单元还用于向所述第一交换设备返回所述第一转发规则和所述第二转发规则;

其中,所述第一交换设备至所述第二交换设备的路径信息包括在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标。

51.根据权利要求50所述的设备,其特征在于,

所述转发规则管理单元还用于根据所述SDN系统的网络拓扑信息,确定第三转发规则,当所述第二服务设备为目的服务设备时,所述第三转发规则用于指示所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据;或当所述第二服务设备不为目的服务设备时,所述第三转发规则用于指示所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据,接收所述第二服务设备处理的数据;

所述网络通信单元还用于向所述第二交换设备返回所述第三转发规则。

52.根据权利要求51所述的设备,其特征在于,

所述转发规则管理单元还用于根据所述SDN系统的网络拓扑信息,确定第四转发规则,第四转发规则用于指示所述第三交换设备根据第四交换设备的路标,确定所述第四交换设备在所述第三交换设备的端口,将所述第一服务设备处理的数据通过所述第四交换设备在所述第三交换设备的端口转发给所述第四交换设备;

所述网络通信单元还用于向所述第三交换设备返回所述第四转发规则。

53.根据权利要求52所述的设备,其特征在于,

如果所述第四交换设备不是所述第二交换设备,所述第四转发规则还用于指示所述第三交换设备向所述第四交换设备发送第三交换设备至第二交换设备的路径信息。

54.根据权利要求53所述的设备,其特征在于,

所述第四转发规则具体指示所述第三交换设备从所述第一交换设备至第二交换设备的路径信息中剥离所述第四交换设备的路标,从而得到所述三交换设备至第二交换设备的路径信息,向所述第四交换设备发送所述第三交换设备至第二交换设备的路径信息。

55.一种实现数据转发的软件定义网络SDN系统,所述SDN系统包括SDN控制设备和第一交换设备,所述数据的源端和所述数据的多个目的端组成组播组,所述数据从所述源端到达目的端经过所述第一交换设备,所述第一交换设备表示所述组播组中汇集点所在的交换设备,其特征在于:所述第一交换设备用于接收所述数据和所述组播组的标识;

根据从所述SDN系统的SDN控制设备接收的转发规则,所述第一交换设备用于执行如下之一:当所述第一交换设备与所述目的端相连时,所述第一交换设备用于删除所述组播组标识,向所述目的端转发所述数据;

当所述第一交换设备与第二交换设备相连时,所述第一交换设备用于将所述数据和所述组播组标识,转发给所述第二交换设备,所述第二交换设备为所述目的端相连的交换设备或者所述组播组中另一汇集点所在的交换设备;

当所述第一交换设备与所述目的端、以及与第二交换设备不相连时,所述第一交换设备用于将所述数据、所述组播组标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第二交换设备为所述目的端相连的交换设备或者所述组播组中另一汇集点所在的交换设备,所述第三交换设备为所述第一交换设备相连的交换设备;

其中,所述第一交换设备至所述第二交换设备的路径信息包括在数据转发路径上第四交换设备至所述第二交换设备的路标。

56.根据权利要求55所述的SDN系统,其特征在于:

所述第四交换设备是在所述数据转发路径上与所述第三交换设备相连的交换设备。

57.根据权利要求56所述的SDN系统,其特征在于:

所述第一交换设备用于将所述数据转发路径上所述第四交换设备至所述第二交换设备的路标、以及所述组播组标识依次压入协议栈中,所述组播组标识压入所述协议栈的栈底,所述第二交换设备的路标压入所述栈底的上一层,所述第四交换设备的路标压入栈顶,以使所述协议栈携带所述路径信息和所述组播组标识。

58.根据权利要求56所述的SDN系统,其特征在于:

所述第三交换设备用于根据所述第四交换设备的路标识别所述数据的下一跳交换设备为所述第四交换设备,所述第四交换设备的路标包括以下至少之一:所述第四交换设备的设备标识、所述第四交换设备在所述第三交换设备上的出端口标识、或者所述第四交换设备与所述第三交换设备之间的链路标识。

59.根据权利要求57所述的SDN系统,其特征在于:

所述第三交换设备用于根据所述第四交换设备的路标识别所述数据的下一跳交换设备为所述第四交换设备,所述第四交换设备的路标包括以下至少之一:所述第四交换设备的设备标识、所述第四交换设备在所述第三交换设备上的出端口标识、或者所述第四交换设备与所述第三交换设备之间的链路标识。

60.根据权利要求55至59任一所述的SDN系统,其特征在于,所述第一交换设备还用于根据所述转发规则,复制所述数据,当所述第一交换设备与所述另一目的端、以及与第五交换设备不相连时,所述第一交换设备将所述数据、所述组播组标识,以及所述第一交换设备至第五交换设备的路径信息发送给第六交换设备,所述第六交换设备与所述第一交换设备相连,所述第五交换设备是与所述另一目的端相连的交换设备或其他汇集点所在的交换设备。

61.一种软件定义网络SDN控制设备,其特征在于,所述SDN控制设备包括处理器,存储器,通信端口;

所述通信端口,用于与SDN系统中的交换设备通信;

所述存储器用于存储程序;

所述处理器用于执行所述程序,实现权利要求19-25任一所述的方法。

62.一种软件定义网络SDN控制设备,其特征在于,所述SDN控制设备包括处理器,存储器,通信端口;

所述通信端口,用于与SDN系统中的交换设备通信;

所述存储器用于存储程序;

所述处理器用于执行所述程序,实现权利要求40-45任一所述的方法。

说明书 :

软件定义网络中数据转发的方法、设备和系统

技术领域

[0001] 本发明涉及信息技术领域,特别涉及软件定义网络(Software  Defined Networking,SDN)中数据转发的方法、设备和系统。

背景技术

[0002] 随着技术的不断发展,数据中心(Data Center,DC)的建设面临着各种严峻的挑战,如何提升DC资源利用率,如何降低DC能耗与成本等都成为关注的问题。
[0003] 虚拟化为新一代数据中心的构建与发展指明了方向。虚拟化技术帮助数据中心整合硬件资源,建立虚拟资源池,实现资源全局共享,根据业务按需分配,从而提升系统资源的综合利用率,节约设备能耗。
[0004] 数据中心虚拟化要求网络虚拟化。传统网络模式在数据中心虚拟化网络中显得捉襟见肘。SDN将网络设备控制面与数据面分离的理念与虚拟化网络不谋而合。
[0005] SDN可以采用OpenFlow协议将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制。OpenFlow协议随着一系列版本演进,不断规范,趋于成熟,并形成标准。OpenFlow协议支持按任意字段组合查询流表项,并提出了多级流表项的概念。流表项的大小、数量已经成为现有芯片支持OpenFlow协议亟待突破的瓶颈。
[0006] SDN中,每实现一对端到端通信,SDN控制设备便会给涉及到的所有交换设备各下发一条流表项。位于骨干网络的交换设备会随下层交换设备增多而流表项不断膨胀,大量的流表项将占用SDN中控制设备和位于骨干网络的交换设备的资源,影响SDN中设备的性能。

发明内容

[0007] 本发明实施例提供一种SDN中数据转发的方法、设备和系统,以解决现有技术中流表项过多带来的SDN中设备性能不高的问题。
[0008] 为达到上述目的,本发明实施例采用的技术方案是:
[0009] 第一方面,本发明实施例提供了一种实现数据转发的软件定义网络SDN系统,所述SDN系统包括SDN控制设备和n个交换设备,其中第一交换设备是与所述数据的源端相连的交换设备,第n交换设备是与所述数据的目的端相连的交换设备,其中,n≥3:
[0010] 所述第一交换设备用于向所述SDN控制设备请求转发规则,所述请求中携带所述数据的特征信息;还用于接收所述SDN控制设备返回的第一转发规则,所述第一转发规则包括第一交换设备至第n交换设备的路径信息,根据所述第一转发规则,将所述数据和所述第一交换设备至第n交换设备的路径信息发送给与所述第一交换设备相连的第二交换设备;
[0011] 所述第二交换设备用于接收所述第一交换设备发送的所述数据和所述第一交换设备至第n交换设备的路径信息,根据所述第一交换设备至第n交换设备的路径信息中第三交换设备的路标,查询所述第二交换设备保存的第二转发规则,获得所述第三交换设备在所述第二交换设备上的端口,通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据,所述第三交换设备是与第二交换设备相连的交换设备。
[0012] 在第一方面的第一种可能的实现方式中,结合第一方面,所述第一交换设备至第n交换设备的路径信息包括在数据转发路径上所述第三交换设备至所述第n交换设备的路标;且所述第二转发规则的匹配域为所述第三交换设备的路标。
[0013] 在第一方面的第二种可能的实现方式中,结合第一方面的第一种可能的实现方式,当n≥4时,所述第二交换设备还用于向所述第三交换设备发送第二交换设备至第n交换设备的路径信息,所述第二交换设备至第n交换设备的路径信息包括在所述数据转发路径上第四交换设备至所述第n交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。
[0014] 在第一方面的第三种可能的实现方式中,结合第一方面的第二种可能的实现方式,第i交换设备用于接收第i-1交换设备发送的第i-1交换设备至第n交换设备的路径信息和所述数据,所述第i-1交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+1交换设备至所述第n交换设备的路标,i为整数且大于等于3,并且i小于n;还用于根据所述第i+1交换设备的路标,查询所述第i交换设备保存的第i转发规则,根据所述第i转发规则,确定所述第i+1交换设备在所述第i交换设备的端口,将所述数据通过所述第i+1交换设备在所述第i交换设备的端口转发给所述第i+1交换设备。
[0015] 在第一方面的第四种可能的实现方式中,结合第一方面的第三种可能的实现方式,如果第i+1交换设备不是所述第n交换设备,所述第i交换设备还用于根据所述第i转发规则,向所述第i+1交换设备发送第i交换设备至第n交换设备的路径信息,所述第i交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+2交换设备至所述第n交换设备的路标,所述第i+2交换设备是与所述第i+1交换设备相连的交换设备。
[0016] 在第一方面的第五种可能的实现方式中,结合第一方面的第四种可能的实现方式,所述第i交换设备用于根据所述第i转发规则,向所述第i+1交换设备发送所述第i交换设备至第n交换设备的路径信息具体包括:
[0017] 所述第i交换设备用于根据所述第i转发规则,从所述第i-1交换设备至第n交换设备的路径信息中剥离所述第i+1交换设备的路标,从而得到所述第i+2交换设备至所述第n交换设备的路标,向所述第i+1交换设备发送所述第i+2交换设备至所述第n交换设备的路标。
[0018] 在第一方面的第六种可能的实现方式中,结合第一方面的第一种至第一方面的第五种可能的实现方式中的任一种实现方式,所述第一交换设备用于将在所述数据转发路径上所述第三交换设备至所述第n交换设备的路标依次压入协议栈中,所述第n交换设备的路标压入栈底,所述第三交换设备的路标压入栈顶,以使所述协议栈携带所述第一交换设备至第n交换设备的路径信息。
[0019] 在第一方面的第七种可能的实现方式中,结合第一方面的第六种可能的实现方式,所述协议栈包括多协议标签交换MPLS栈,所述MPLS栈的一个MPLS头携带一个交换设备的路标。
[0020] 在第一方面的第八种可能的实现方式中,结合第一方面至第一方面的第七种可能的实现方式中的任一种实现方式,所述第二交换设备用于根据所述第三交换设备的路标识别所述数据的下一跳交换设备为所述第三交换设备,所述第三交换设备的路标包括以下至少之一:所述第三交换设备的设备标识、所述第三交换设备在所述第二交换设备上的端口标识、或者所述第三交换设备与所述第二交换设备之间的链路标识。
[0021] 在第一方面的第九种可能的实现方式中,结合第一方面至第一方面的第八种可能的实现方式中的任一种实现方式,所述第一交换设备还用于根据所述第一转发规则,将租户标识发送给与所述第一交换设备相连的第二交换设备,以通过所述第二交换设备发送给所述第n交换设备;
[0022] 所述第n交换设备用于根据所述租户标识和所述数据的特征信息确定所述数据的目的端,然后将所述数据发送给所述目的端。
[0023] 第二方面,本发明实施例还提供了一种实现数据转发的方法,所述方法应用于软件定义网络SDN系统,所述SDN系统包括SDN控制设备和n个交换设备,其中第一交换设备是与所述数据的源端相连的交换设备,第n交换设备是与所述数据的目的端相连的交换设备,其中,n≥3:
[0024] 所述第一交换设备向所述SDN控制设备请求转发规则,所述请求中携带所述数据的特征信息,接收所述SDN控制设备返回的第一转发规则,所述第一转发规则包括第一交换设备至第n交换设备的路径信息,根据所述第一转发规则,将所述数据和所述第一交换设备至第n交换设备的路径信息发送给与所述第一交换设备相连的第二交换设备;
[0025] 所述第二交换设备接收所述第一交换设备发送的所述数据和所述第一交换设备至第n交换设备的路径信息,根据所述第一交换设备至第n交换设备的路径信息中第三交换设备的路标,查询所述第二交换设备保存的第二转发规则,获得所述第三交换设备在所述第二交换设备上的端口,通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据,所述第三交换设备是与第二交换设备相连的交换设备。
[0026] 在第二方面的第一种可能的实现方式中,结合第二方面,所述第一交换设备至第n交换设备的路径信息包括在数据转发路径上所述第三交换设备至所述第n交换设备的路标;且所述第二转发规则的匹配域为所述第三交换设备的路标。
[0027] 在第二方面的第二种可能的实现方式中,结合第二方面的第一种可能的实现方式,当n≥4时,所述第二交换设备向所述第三交换设备发送第二交换设备至第n交换设备的路径信息,所述第二交换设备至第n交换设备的路径信息包括在所述数据转发路径上第四交换设备至所述第n交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。
[0028] 在第二方面的第三种可能的实现方式中,结合第二方面的第二种可能的实现方式,第i交换设备接收第i-1交换设备发送的第i-1交换设备至第n交换设备的路径信息和所述数据,所述第i-1交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+1交换设备至所述第n交换设备的路标,i为整数且大于等于3,并且i小于n;
[0029] 所述第i交换设备根据所述第i+1交换设备的路标,查询所述第i交换设备保存的第i转发规则,根据所述第i转发规则,确定所述第i+1交换设备在所述第i交换设备的端口,将所述数据通过所述第i+1交换设备在所述第i交换设备的端口转发给所述第i+1交换设备。
[0030] 在第二方面的第四种可能的实现方式中,结合第二方面的第三种可能的实现方式,如果第i+1交换设备不是所述第n交换设备,所述第i交换设备根据所述第i转发规则,向所述第i+1交换设备发送第i交换设备至第n交换设备的路径信息,所述第i交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+2交换设备至所述第n交换设备的路标,所述第i+2交换设备是与所述第i+1交换设备相连的交换设备。
[0031] 在第二方面的第五种可能的实现方式中,结合第二方面的第四种可能的实现方式,所述第i交换设备根据所述第i转发规则,向所述第i+1交换设备发送所述第i交换设备至第n交换设备的路径信息具体包括:
[0032] 所述第i交换设备根据所述第i转发规则,从所述第i-1交换设备至第n交换设备的路径信息中剥离所述第i+1交换设备的路标,从而得到所述第i+2交换设备至所述第n交换设备的路标,向所述第i+1交换设备发送所述第i+2交换设备至所述第n交换设备的路标。
[0033] 在第二方面的第六种可能的实现方式中,结合第二方面的第一种至第二方面的第五种可能的实现方式中的任一种实现方式,所述第一交换设备将在所述数据转发路径上所述第三交换设备至所述第n交换设备的路标依次压入协议栈中,所述第n交换设备的路标压入栈底,所述第三交换设备的路标压入栈顶,以使所述协议栈携带所述第一交换设备至第n交换设备的路径信息。
[0034] 在第二方面的第七种可能的实现方式中,结合第二方面的第六种可能的实现方式,所述协议栈包括多协议标签交换MPLS栈,所述MPLS栈的一个MPLS头携带一个交换设备的路标。
[0035] 在第二方面的第八种可能的实现方式中,结合第二方面至第二方面的第七种可能的实现方式中的任一种实现方式,所述第二交换设备根据所述第三交换设备的路标识别所述数据的下一跳交换设备为所述第三交换设备,所述第三交换设备的路标包括以下至少之一:所述第三交换设备的设备标识、所述第三交换设备在所述第二交换设备上的端口标识、或者所述第三交换设备与所述第二交换设备之间的链路标识。
[0036] 在第二方面的第九种可能的实现方式中,结合第二方面至第二方面的第八种可能的实现方式中的任一种实现方式,所述第一交换设备还根据所述第一转发规则,将租户标识发送给与所述第一交换设备相连的第二交换设备,以通过所述第二交换设备发送给所述第n交换设备;
[0037] 所述第n交换设备根据所述租户标识和所述数据的特征信息确定所述数据的目的端,然后将所述数据发送给所述目的端。
[0038] 第三方面,本发明实施例还提供了一种实现数据转发的方法,所述方法应用于软件定义网络SDN系统,所述SDN系统包括SDN控制设备和n个交换设备,其中第一交换设备是与所述数据的源端相连的交换设备,第n交换设备是与所述数据的目的端相连的交换设备,其中,n≥3:
[0039] 所述SDN控制设备从所述第一交换设备接收转发规则的请求,所述请求中携带所述数据的特征信息;
[0040] 所述SDN控制设备,根据所述数据的特征信息,向所述第一交换设备返回第一转发规则,所述第一转发规则用于指示所述第一交换设备根据所述第一转发规则,将所述数据和所述第一交换设备至第n交换设备的路径信息发送给与所述第一交换设备相连的第二交换设备;
[0041] 所述SDN控制设备还根据所述数据的特征信息,向所述第n交换设备返回第n转发规则,以使所述第n交换设备将所述数据转发给所述目的端。。
[0042] 在第三方面的第一种可能的实现方式中,结合第三方面,所述SDN控制设备根据所述SDN系统的网络拓扑信息,向所述第二交换设备下发第二转发规则,所述第二转发规则用于指示所述第二交换设备,通过所述第一交换设备至第n交换设备的路径信息中第三交换设备的路标,获得所述第三交换设备在所述第二交换设备上的端口,通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据,所述第三交换设备是与第二交换设备相连的交换设备。
[0043] 在第三方面的第二种可能的实现方式中,结合第三方面的第一种可能的实现方式,所述SDN控制设备具体根据所述数据的特征信息和所述SDN系统的网络拓扑信息,选择数据转发路径;
[0044] 所述第一交换设备至第n交换设备的路径信息包括在所述数据转发路径上所述第三交换设备至所述第n交换设备的路标;且所述第二转发规则的匹配域为所述第三交换设备的路标。
[0045] 在第三方面的第三种可能的实现方式中,结合第三方面的第二种可能的实现方式,所述SDN控制设备根据所述SDN系统的网络拓扑信息,向第i交换设备下发第i转发规则,所述第i转发规则用于指示所述第i交换设备,通过第i-1交换设备至第n交换设备的路径信息中第i+1交换设备的路标,获得所述第i+1交换设备在所述第i交换设备的端口,将所述数据通过所述第i+1交换设备在所述第i交换设备的端口转发给所述第i+1交换设备,i为整数且大于等于3,并且i小于n。
[0046] 在第三方面的第四种可能的实现方式中,结合第三方面的第三种可能的实现方式,所述第i-1交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+1交换设备至所述第n交换设备的路标;
[0047] 如果第i+1交换设备不是所述第n交换设备,所述第i转发规则还用于指示所述第i交换设备剥离所述第i+1交换设备的路标,向所述第i+1交换设备发送第i交换设备至第n交换设备的路径信息,所述第i交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+2交换设备至所述第n交换设备的路标,所述第i+2交换设备是与所述第i+1交换设备相连的交换设备。
[0048] 在第三方面的第五种可能的实现方式中,结合第三方面的第一种至第三方面的第四种可能的实现方式中的任一种实现方式,所述第三交换设备的路标包括以下至少之一:所述第三交换设备的设备标识、所述第三交换设备在所述第二交换设备上的端口标识、或者所述第三交换设备与所述第二交换设备之间的链路标识。
[0049] 在第三方面的第六种可能的实现方式中,结合第三方面至第三方面的第五种可能的实现方式中的任一种实现方式,所述第一转发规则还指示所述第一交换设备将租户标识发送给与所述第二交换设备,以通过所述第二交换设备发送给所述第n交换设备;所述第i转发规则还指示第n交换设备根据所述租户标识和所述数据的特征信息确定所述目的端。
[0050] 第四方面,本发明实施例还提供了一种软件定义网络SDN控制设备,所述SDN控制设备应用于SDN系统,所述SDN系统还包括n个交换设备,其中第一交换设备是与数据的源端相连的交换设备,第n交换设备是与所述数据的目的端相连的交换设备,n≥3,所述SDN控制设备包括网络通信单元和转发规则管理单元:
[0051] 所述网络通信单元,用于从所述第一交换设备接收转发规则的请求,所述请求中携带所述数据的特征信息,并将所述请求发送给所述转发规则管理单元;
[0052] 所述转发规则管理单元,用于根据所述数据的特征信息,确定第一转发规则和第n转发规则,所述第一转发规则用于指示所述第一交换设备根据所述第一转发规则,将所述数据和所述第一交换设备至第n交换设备的路径信息发送给与所述第一交换设备相连的第二交换设备;所述第n转发规则用于指示所述第n交换设备将所述数据转发给所述目的端;
[0053] 所述网络通信单元,还用于向所述第一交换设备返回所述第一转发规则,向所述第n交换设备返回所述第n转发规则。
[0054] 在第四方面的第一种可能的实现方式中,结合第四方面,所述SDN控制设备还包括拓扑管理单元:
[0055] 所述拓扑管理单元用于收集所述SDN系统的网络拓扑信息,并将所述网络拓扑信息发送给所述转发规则管理单元;
[0056] 所述转发规则管理单元还用于根据所述网络拓扑信息,确定第二转发规则,所述第二转发规则用于指示所述第二交换设备,通过所述第一交换设备至第n交换设备的路径信息中第三交换设备的路标,获得所述第三交换设备在所述第二交换设备上的端口,通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据,所述第三交换设备是与第二交换设备相连的交换设备;
[0057] 所述网络通信单元,还用于向所述第二交换设备返回所述第二转发规则。
[0058] 在第四方面的第二种可能的实现方式中,结合第四方面的第一种可能的实现方式,所述转发规则管理单元还用于根据所述SDN系统的网络拓扑信息,确定第i转发规则,所述第i转发规则用于指示所述第i交换设备,通过第i-1交换设备至第n交换设备的路径信息中第i+1交换设备的路标,获得所述第i+1交换设备在所述第i交换设备的端口,将所述数据通过所述第i+1交换设备在所述第i交换设备的端口转发给所述第i+1交换设备,i为整数且大于等于3,并且i小于n。
[0059] 在第四方面的第三种可能的实现方式中,结合第四方面的第二种可能的实现方式,所述第i-1交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+1交换设备至所述第n交换设备的路标;
[0060] 如果第i+1交换设备不是所述第n交换设备,所述第i转发规则还用于指示所述第i交换设备剥离所述第i+1交换设备的路标,向所述第i+1交换设备发送第i交换设备至第n交换设备的路径信息,所述第i交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+2交换设备至所述第n交换设备的路标,所述第i+2交换设备是与所述第i+1交换设备相连的交换设备;
[0061] 所述网络通信单元,还用于向所述第i交换设备下发所述第i转发规则。
[0062] 第五方面,本发明实施例还提供了一种软件定义网络SDN控制设备,所述SDN控制设备包括处理器,存储器,通信端口;所述通信端口,用于与SDN系统中的交换设备通信;所述存储器用于存储程序;所述处理器用于执行所述程序,实现第三方面至第三方面的第六种可能的实现方式中的任一种实现方式。
[0063] 上述实现数据转发的方法、系统及设备,骨干交换设备(如第二交换设备)接收到第二转发规则(也可以称为流表项)之后,不需要每次在数据转发时都获取一次转发规则,相应地SDN控制设备不需要在每次转发数据时都给第二交换设备下发第二转发规则,即第二转发规则在后续的数据转发中可以被重复使用,降低了SDN控制设备对第二交换设备下发转发规则的数量,相应降低了SDN控制设备的设备资源占用率,SDN控制设备与第二交换设备之间的网络带宽也会相应得到节省,同时,第二交换设备不需要在每次数据转发时都接收第二转发规则,提高了第二交换设备的资源利用率。
[0064] 第六方面,本发明实施例还提供了一种实现数据转发的软件定义网络SDN系统,所述SDN系统包括SDN控制设备和至少两个服务设备,所述至少两个服务设备包括第一服务设备和第二服务设备,所述第一服务设备与第一交换设备相连,所述第二服务设备与第二交换设备相连:
[0065] 所述第一交换设备用于接收数据和所述第一服务设备的标识;
[0066] 所述第一交换设备用于根据从所述SDN控制设备接收的第一转发规则,删除所述第一服务设备的标识,将所述数据发送给所述第一服务设备处理,接收所述第一服务设备处理的数据;
[0067] 所述第一交换设备还用于根据从所述SDN控制设备接收的第二转发规则,执行如下之一:
[0068] 当所述第一交换设备与所述第二交换设备相连时,所述第一交换设备用于将所述第一服务设备处理的数据和所述第二服务设备的标识,发送给所述第二交换设备;
[0069] 当所述第一交换设备与所述第二交换设备不相连时,所述第一交换设备用于将所述第一服务设备处理的数据和所述第二服务设备的标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给与第三交换设备,所述第三交换设备是所述第一交换设备相连的交换设备。
[0070] 在第六方面的第一种可能的实现方式中,结合第六方面,当所述第二服务设备为目的服务设备时,所述第二交换设备用于根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据;或
[0071] 当所述第二服务设备不为目的服务设备时,所述第二交换设备用于根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据,接收所述第二服务设备处理的数据。
[0072] 在第六方面的第二种可能的实现方式中,结合第六方面或第六方面的第一种可能的实现方式,所述第一交换设备至所述第二交换设备的路径信息包括在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。
[0073] 在第六方面的第三种可能的实现方式中,结合第六方面的第二种可能的实现方式,所述第三交换设备用于根据所述第四交换设备的路标,查询所述第三交换设备保存的第四转发规则,根据所述第四转发规则,确定所述第四交换设备在所述第三交换设备的端口,将所述第一服务设备处理的数据通过所述第四交换设备在所述第三交换设备的端口转发给所述第四交换设备。
[0074] 在第六方面的第四种可能的实现方式中,结合第六方面的第三种可能的实现方式,如果所述第四交换设备不是所述第二交换设备,所述第三交换设备还用于根据所述第四转发规则,向所述第四交换设备发送第三交换设备至第二交换设备的路径信息。
[0075] 在第六方面的第五种可能的实现方式中,结合第六方面的第四种可能的实现方式,所述第三交换设备还用于根据所述第四转发规则,向所述第四交换设备发送第三交换设备至第二交换设备的路径信息具体包括:
[0076] 所述第三交换设备根据所述第四转发规则,从所述第一交换设备至第二交换设备的路径信息中剥离所述第四交换设备的路标,从而得到所述三交换设备至第二交换设备的路径信息,向所述第四交换设备发送所述第三交换设备至第二交换设备的路径信息。
[0077] 在第六方面的第六种可能的实现方式中,结合第六方面的第二种至第六方面的第五种可能的实现方式中的任一种实现方式,所述第一交换设备将在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标、以及所述第二服务设备的标识依次压入协议栈中,所述第二服务设备的标识压入栈底,所述第二交换设备的路标压入所述栈底的上一层,所述第四交换设备的路标压入栈顶。
[0078] 在第六方面的第七种可能的实现方式中,结合第六方面的第二种至第六方面的第六种可能的实现方式中的任一种实现方式,所述第三交换设备用于根据所述第四交换设备的路标识别所述数据的下一跳交换设备为所述第四交换设备,所述第四交换设备的路标包括以下至少之一:所述第四交换设备的设备标识、所述第四交换设备在所述第三交换设备上的出端口标识、或者所述第四交换设备与所述第三交换设备之间的链路标识。
[0079] 第七方面,本发明实施例还提供了一种实现数据转发的方法,所述方法应用于软件定义网络SDN系统,所述SDN系统包括SDN控制设备和至少两个服务设备,所述至少两个服务设备包括第一服务设备和第二服务设备,所述第一服务设备与第一交换设备相连,所述第二服务设备与第二交换设备相连:
[0080] 所述第一交换设备接收数据和所述第一服务设备的标识;
[0081] 所述第一交换设备根据从所述SDN控制设备接收的第一转发规则,删除所述第一服务设备的标识,将所述数据发送给所述第一服务设备处理,接收所述第一服务设备处理的数据;
[0082] 所述第一交换设备根据从所述SDN控制设备接收的第二转发规则,执行如下之一:
[0083] 当所述第一交换设备与所述第二交换设备相连时,所述第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,发送给所述第二交换设备;
[0084] 当所述第一交换设备与所述第二交换设备不相连时,所述第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第三交换设备为所述第一交换设备相连的交换设备。
[0085] 在第七方面的第一种可能的实现方式中,结合第七方面,当所述第二服务设备为目的服务设备时,所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据;或
[0086] 当所述第二服务设备不为目的服务设备时,所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据,接收所述第二服务设备处理的数据。
[0087] 在第七方面的第二种可能的实现方式中,结合第七方面或第七方面的第一种可能的实现方式,所述第一交换设备至所述第二交换设备的路径信息包括在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。
[0088] 在第七方面的第三种可能的实现方式中,结合第七方面的第二种可能的实现方式,所述第三交换设备根据所述第四交换设备的路标,查询所述第三交换设备保存的第四转发规则,根据所述第四转发规则,确定所述第四交换设备在所述第三交换设备的端口,将所述第一服务设备处理的数据通过所述第四交换设备在所述第三交换设备的端口转发给所述第四交换设备。
[0089] 在第七方面的第四种可能的实现方式中,结合第七方面的第三种可能的实现方式,如果所述第四交换设备不是所述第二交换设备,所述第三交换设备还根据所述第四转发规则,向所述第四交换设备发送第三交换设备至第二交换设备的路径信息。
[0090] 在第七方面的第五种可能的实现方式中,结合第七方面的第四种可能的实现方式,所述第三交换设备还根据所述第四转发规则,向所述第四交换设备发送第三交换设备至第二交换设备的路径信息具体包括:
[0091] 所述第三交换设备根据所述第四转发规则,从所述第一交换设备至第二交换设备的路径信息中剥离所述第四交换设备的路标,从而得到所述三交换设备至第二交换设备的路径信息,向所述第四交换设备发送所述第三交换设备至第二交换设备的路径信息。
[0092] 在第七方面的第六种可能的实现方式中,结合第七方面的第二种至第七方面的第五种可能的实现方式中的任一种实现方式,所述第一交换设备将在所述第一服务设备处理的数据的转发路径上第五交换设备至所述第二交换设备的路标、以及所述第二服务设备的标识依次压入协议栈中,所述第二服务设备的标识压入栈底,所述第二交换设备的路标压入所述栈底的上一层,所述第五交换设备的路标压入栈顶。
[0093] 在第七方面的第七种可能的实现方式中,结合第七方面的第二种至第七方面的第六种可能的实现方式中的任一种实现方式,所述第三交换设备用于根据所述第五交换设备的路标识别所述数据的下一跳交换设备为所述第五交换设备,所述第五交换设备的路标包括以下至少之一:所述第五交换设备的设备标识、所述第五交换设备在所述第三交换设备上的出端口标识、或者所述第五交换设备与所述第三交换设备之间的链路标识。
[0094] 第八方面,本发明实施例还提供了一种实现数据转发的方法,所述方法应用于软件定义网络SDN系统,所述SDN系统包括SDN控制设备和至少两个服务设备,所述至少两个服务设备包括第一服务设备和第二服务设备,所述第一服务设备与第一交换设备相连,所述第二服务设备与第二交换设备相连:
[0095] 所述SDN控制设备用于根据所述SDN系统的网络拓扑信息,向所述第一交换设备返回第一转发规则,所述第一转发规则用于指示所述第一交换设备删除所述第一服务设备的标识,将数据发送给所述第一服务设备处理;
[0096] 所述SDN控制设备用于接收转发规则的请求,根据所述请求中携带的特征信息,向所述第一交换设备返回第二转发规则,当所述第一交换设备与所述第二交换设备相连时,所述第二转发规则用于指示第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,发送给所述第二交换设备;
[0097] 当所述第一交换设备与所述第二交换设备不相连时,所述第二转发规则用于指示所述第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第三交换设备为所述第一交换设备相连的交换设备。
[0098] 在第八方面的第一种可能的实现方式中,结合第八方面,所述SDN控制设备还用于根据所述SDN系统的网络拓扑信息,向所述第二交换设备返回第三转发规则,
[0099] 当所述第二服务设备为目的服务设备时,所述第三转发规则用于指示所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据;或
[0100] 当所述第二服务设备不为目的服务设备时,所述第三转发规则用于指示所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据,接收所述第二服务设备处理的数据。
[0101] 在第八方面的第二种可能的实现方式中,结合第八方面或第八方面的第一种可能的实现方式,所述第一交换设备至所述第二交换设备的路径信息包括在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。
[0102] 在第八方面的第三种可能的实现方式中,结合第八方面的第二种可能的实现方式,所述SDN控制设备还用于根据所述SDN系统的网络拓扑信息,向所述第三交换设备返回第四转发规则,第四转发规则用于指示所述第三交换设备根据所述第四交换设备的路标,确定所述第四交换设备在所述第三交换设备的端口,将所述第一服务设备处理的数据通过所述第四交换设备在所述第三交换设备的端口转发给所述第四交换设备。
[0103] 在第八方面的第四种可能的实现方式中,结合第八方面的第三种可能的实现方式,如果所述第四交换设备不是所述第二交换设备,所述第四转发规则还用于指示所述第三交换设备向所述第四交换设备发送第三交换设备至第二交换设备的路径信息。
[0104] 在第八方面的第五种可能的实现方式中,结合第八方面的第四种可能的实现方式,所述第四转发规则具体指示所述第三交换设备从所述第一交换设备至第二交换设备的路径信息中剥离所述第四交换设备的路标,从而得到所述三交换设备至第二交换设备的路径信息,向所述第四交换设备发送所述第三交换设备至第二交换设备的路径信息。
[0105] 在第八方面的第六种可能的实现方式中,结合第八方面的第二种至第八方面的第五种可能的实现方式中的任一种实现方式,所述第四交换设备的路标包括以下至少之一:所述第四交换设备的设备标识、所述第四交换设备在所述第三交换设备上的出端口标识、或者所述第四交换设备与所述第三交换设备之间的链路标识。
[0106] 第九方面,本发明实施例还提供了一种软件定义网络SDN控制设备,所述SDN控制设备应用于SDN系统,所述SDN系统还包括至少两个服务设备,所述至少两个服务设备包括第一服务设备和第二服务设备,所述第一服务设备与第一交换设备相连,所述第二服务设备与第二交换设备相连,所述SDN控制设备包括网络通信单元、转发规则管理单元和拓扑管理单元:
[0107] 所述拓扑管理单元用于收集所述SDN系统的网络拓扑信息,并将所述网络拓扑信息发送给转发规则管理单元;
[0108] 所述网络通信单元用于接收转发规则的请求,所述请求中携带特征信息,并将所述请求发送给所述转发规则管理单元;
[0109] 所述转发规则管理单元用于根据所述SDN系统的网络拓扑信息,确定第一转发规则,所述第一转发规则用于指示所述第一交换设备删除所述第一服务设备的标识,将数据发送给所述第一服务设备;
[0110] 所述转发规则管理单元还用于根据所述请求中携带的特征信息,确定第二转发规则,当所述第一交换设备与所述第二交换设备相连时,所述第二转发规则用于指示第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,发送给所述第二交换设备;或当所述第一交换设备与所述第二交换设备不相连时,所述第二转发规则用于指示所述第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第三交换设备为所述第一交换设备相连的交换设备;
[0111] 所述网络通信单元还用于向所述第一交换设备返回所述第一转发规则和所述第二转发规则。
[0112] 在第九方面的第一种可能的实现方式中,结合第九方面,所述转发规则管理单元还用于根据所述SDN系统的网络拓扑信息,确定第三转发规则,当所述第二服务设备为目的服务设备时,所述第三转发规则用于指示所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据;或当所述第二服务设备不为目的服务设备时,所述第三转发规则用于指示所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据,接收所述第二服务设备处理的数据;
[0113] 所述网络通信单元还用于向所述第二交换设备返回所述第三转发规则。
[0114] 在第九方面的第二种可能的实现方式中,结合第九方面的第一种可能的实现方式,所述转发规则管理单元还用于根据所述SDN系统的网络拓扑信息,确定第四转发规则,第四转发规则用于指示所述第三交换设备根据所述第四交换设备的路标,确定所述第四交换设备在所述第三交换设备的端口,将所述第一服务设备处理的数据通过所述第四交换设备在所述第三交换设备的端口转发给所述第四交换设备;
[0115] 所述网络通信单元还用于向所述第三交换设备返回所述第四转发规则。
[0116] 在第九方面的第三种可能的实现方式中,结合第九方面的第二种可能的实现方式,如果所述第四交换设备不是所述第二交换设备,所述第四转发规则还用于指示所述第三交换设备向所述第四交换设备发送第三交换设备至第二交换设备的路径信息。
[0117] 在第九方面的第四种可能的实现方式中,结合第九方面的第三种可能的实现方式,所述第四转发规则具体指示所述第三交换设备从所述第一交换设备至第二交换设备的路径信息中剥离所述第四交换设备的路标,从而得到所述三交换设备至第二交换设备的路径信息,向所述第四交换设备发送所述第三交换设备至第二交换设备的路径信息。
[0118] 第十方面,本发明实施例还提供了一种软件定义网络SDN控制设备,所述SDN控制设备包括处理器,存储器,通信端口;所述通信端口,用于与SDN系统中的交换设备通信;所述存储器用于存储程序;所述处理器用于执行所述程序,实现第八方面至第八方面的第六种可能的实现方式中的任一种实现方式。
[0119] 上述实现数据转发的方法、系统及设备,第一交换设备接收到第一转发规则(也可以称为主动流表项)之后,不需要每次在数据转发时都获取第一转发规则,相应地SDN控制设备不需要在每次转发数据时都给第一交换设备下发第一转发规则,即第一转发规则在后续的数据转发中可以被重复使用,降低了SDN控制设备对第一交换设备下发第一转发规则的数量,相应降低了SDN控制设备的设备资源占用率,SDN控制设备与第一交换设备之间的网络带宽也会相应得到节省,同时,第一交换设备不需要在每次数据转发时都接收第一转发规则,提高了第一交换设备的资源利用率。
[0120] 第十一方面,本发明实施例还提供了一种实现数据转发的软件定义网络SDN系统,所述SDN系统包括SDN控制设备和第一交换设备,所述数据的源端和所述数据的多个目的端组成组播组,所述数据从所述源端到达目的端经过所述第一交换设备,所述第一交换设备表示所述组播组中汇集点所在的交换设备:
[0121] 所述第一交换设备用于接收所述数据和所述组播组的标识;
[0122] 根据从所述SDN系统的SDN控制设备接收的转发规则,所述第一交换设备用于执行如下之一:
[0123] 当所述第一交换设备与所述目的端相连时,所述第一交换设备用于删除所述组播组标识,向所述目的端转发所述数据;
[0124] 当所述第一交换设备与第二交换设备相连时,所述第一交换设备用于将所述数据和所述组播组标识,转发给所述第二交换设备,所述第二交换设备为所述目的端相连的交换设备或者所述组播组中另一汇集点所在的交换设备;
[0125] 当所述第一交换设备与所述目的端、以及与第二交换设备不相连时,所述第一交换设备用于将所述数据、所述组播组标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第二交换设备为所述目的端相连的交换设备或者所述组播组中另一汇集点所在的交换设备,所述第三交换设备为所述第一交换设备相连的交换设备。
[0126] 在第十一方面的第一种可能的实现方式中,结合第十一方面,所述第一交换设备至所述第二交换设备的路径信息包括在所述数据转发路径上第四交换设备至所述第二交换设备的路标,所述第四交换设备是在所述数据转发路径上与所述第三交换设备相连的交换设备。
[0127] 在第十一方面的第二种可能的实现方式中,结合第十一方面的第一种可能的实现方式,所述第一交换设备用于将所述数据转发路径上所述第四交换设备至所述第二交换设备的路标、以及所述组播组标识依次压入协议栈中,所述组播组标识压入所述协议栈的栈底,所述第二交换设备的路标压入所述栈底的上一层,所述第四交换设备的路标压入栈顶,以使所述协议栈携带所述路径信息和所述组播组标识。
[0128] 在第十一方面的第三种可能的实现方式中,结合第十一方面的第一种或第二种可能的实现方式,所述第三交换设备用于根据所述第四交换设备的路标识别所述数据的下一跳交换设备为所述第四交换设备,所述第四交换设备的路标包括以下至少之一:所述第四交换设备的设备标识、所述第四交换设备在所述第三交换设备上的出端口标识、或者所述第四交换设备与所述第三交换设备之间的链路标识。
[0129] 在第十一方面的第四种可能的实现方式中,结合第十一方面至第十一方面的第三种可能的实现方式中的任一种实现方式,所述第一交换设备还用于根据所述转发规则,复制所述数据,当所述第一交换设备与所述另一目的端、以及与第五交换设备不相连时,所述第一交换设备将所述数据、所述组播组标识,以及所述第一交换设备至第五交换设备的路径信息发送给第六交换设备,所述第六交换设备与所述第一交换设备相连,所述第五交换设备是与所述另一目的端相连的交换设备或其他汇集点所在的交换设备。
[0130] 上述实现数据转发的SDN系统,汇集点所在的交换设备(如第一交换设备)接收到转发规则(也可以称为流表项)之后,不需要每次在数据转发时都获取一次转发规则,相应地SDN控制设备不需要在每次转发数据时都给第一交换设备下发转发规则,即转发规则在后续的数据转发中可以被重复使用,降低了SDN控制设备对第一交换设备下发转发规则的数量,相应降低了SDN控制设备的设备资源占用率,SDN控制设备与第一交换设备之间的网络带宽也会相应得到节省,同时,第一交换设备不需要在每次数据转发时都接收转发规则,提高了第一交换设备的资源利用率。

附图说明

[0131] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0132] 图1为本发明实施例一种实现数据转发的SDN系统示意图;
[0133] 图2为本发明实施例SDN控制设备分配交换设备路标的流程示意图;
[0134] 图3为本发明实施例SDN控制设备收集网络拓扑信息的流程示意图;
[0135] 图4为本发明实施例SDN控制设备更新主动流表项的流程示意图;
[0136] 图5为本发明实施例提供的下发被动流表项的流程示意图;
[0137] 图6为为本发明实施例另一种实现数据转发的SDN系统示意图;
[0138] 图6’为本发明实施例提供的从源端发往目的端的转发路径示意图;
[0139] 图7为本发明实施例提供的数据转发的流程示意图;
[0140] 图8为本发明实施例提供的MPLS栈示意图;
[0141] 图9为封装了虚拟交换设备1至虚拟交换设备2的路径信息的MPLS栈;
[0142] 图10为包括了接入交换设备1至虚拟交换设备2的路径信息的MPLS栈;
[0143] 图11为包括了汇聚交换设备1至虚拟交换设备2的路径信息的MPLS栈;
[0144] 图12为包括了核心交换设备至虚拟交换设备2的路径信息的MPLS栈;
[0145] 图13为包括了汇聚交换设备2至虚拟交换设备2的路径信息的MPLS栈;
[0146] 图14为本发明实施例提供的另一数据转发的流程示意图;
[0147] 图15为本发明实施例提供的另一种实现数据转发的SDN系统示意图;
[0148] 图16为本发明实施例提供的另一下发被动流表项的流程示意图;
[0149] 图17为本发明实施例提供的另一数据转发的流程示意图;
[0150] 图18为包括了接入交换设备1至接入交换设备3的路径信息、以及服务设备的标识的MPLS栈;
[0151] 图19为包括了接入交换设备3至接入交换设备2的路径信息、以及服务设备的标识的MPLS栈;
[0152] 图20为本发明实施例提供的另一数据转发的流程示意图;
[0153] 图21为本发明实施例提供的一种SDN控制设备的组成示意图;
[0154] 图22为本发明实施例提供的另一种SDN控制设备的组成示意图;
[0155] 图23为本发明实施例另一种实现数据转发的SDN系统示意图;
[0156] 图24为本发明实施例SDN控制设备更新主动流表项的另一流程示意图;
[0157] 图25为本发明实施例提供的另一种SDN控制设备的结构示意图。

具体实施方式

[0158] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0159] 为解决现有技术中位于骨干网络的交换设备(也可以称为骨干层交换设备,或者还可以称为骨干交换设备)流表项过多,占用软件定义网络(Software  Defined Networking,SDN)中控制设备和骨干层交换设备的资源,影响SDN中设备性能的问题,本发明实施例提供了一种SDN中数据转发的方法、设备和系统。
[0160] SDN系统一
[0161] 数据中心(Data Center,DC)的骨干网络按交换设备功能可划分成接入、汇聚、核心三层。DC资源虚拟化后,在网络边缘引入虚拟层。图1为本发明实施例一种实现数据(也可以称为报文)转发的SDN系统。图1仅是示例性说明。如图1所示,骨干网络包括接入、汇聚、核心交换设备。边缘网络是虚拟层,包括虚拟交换设备,通过接入交换设备与骨干网络通信。
[0162] 源端虚拟主机(简称源端)挂载在虚拟交换设备1上,目的端虚拟主机(简称目的端)挂载在虚拟交换设备2上,二者通过DC的骨干网络通信。源端、目的端之间存在一条数据通路:虚拟交换设备1-接入交换设备1-汇聚交换设备1-核心交换设备-汇聚交换设备2-接入交换设备2-虚拟交换设备2。报文从源端发出,经虚拟交换设备1的端口2,入虚拟交换设备1,从虚拟交换设备1的端口5出;经接入交换设备1的端口7,入接入交换设备1,从接入交换设备1的端口4出;经汇聚交换设备1的端口6,入汇聚交换设备1,从汇聚交换设备1的端口3出;经核心交换设备的端口5,入核心交换设备,从核心交换设备的端口9出;经汇聚交换设备2的端口8,入汇聚交换设备2,从汇聚交换设备2的端口7出;经接入交换设备2的端口6,入接入交换设备2,从接入交换设备2的端口8出;经虚拟交换设备2的端口3,入虚拟交换设备
2,从虚拟交换设备2的端口1出;最终到达目的端,从而实现数据报文的传输。
[0163] 其中,源端或目的端可以是移动终端(包括但不限于笔记本、手机、平板、掌上电脑、POS机、MP3、导航仪)、固定终端(包括但不限于台式机、打印机、传真机、数投、数字电视)或无线接入终端等设备;虚拟交换设备1、接入交换设备1、汇聚交换设备1、核心交换设备、汇聚交换设备2、接入交换设备2和虚拟交换设备2都是SDN中的交换设备。
[0164] 在现有技术中,源端发出的报文进入虚拟交换设备1,如果没有匹配的流表项,虚拟交换设备1向控制设备上报PacketIn报文(也可以称为PacketIn事件)。控制设备分析报文的源和目的信息,依据当前网络拓扑,选择合适的转发路径,并为路径上每台交换设备定制、下发流表项。需要说明的是,一个交换设备可以配置多张流表,每张流表可以配置多条流表项。因此随着报文的增多,位于骨干网络的交换设备的流表项会不断膨胀,大量的流表项将占用SDN中控制设备和骨干层交换设备的资源,影响SDN中设备的性能。
[0165] 本发明实施例SDN控制设备(也可以称为SDN控制设备)会根据网络拓扑信息下发一部分流表项(flow entry),这部分流表项可以称为主动流表项(proactive flow entry)。主动流表项与业务无关,只与网络拓扑信息相关,主动流表项下发后,即可以被数据的转发(也可以称为发送)反复使用。当接收到报文之后,如果没有匹配的流表项,SDN控制设备会向部分交换设备下发另一部分流表项,这部分流表项可以称为被动流表项(reactive flow entry)。被动流表项与业务相关,但是只向部分交换设备下发。在一对一通信的情况下,SDN控制设备只向位于边缘网络的虚拟交换设备下发被动流表项即可,而不用向位于骨干网络的交换设备下发被动流表项,虚拟交换设备为报文封装到达目的端的转发路径,骨干层的交换设备依据报文携带的转发路径执行转发操作。因此减少了SDN控制设备向骨干网络的交换设备下发的流表项,从而减少了流表项对SDN控制设备和骨干层交换设备资源的占用。下面详细介绍。
[0166] 数据转发的方法一
[0167] 一、主动流表项
[0168] SDN控制设备根据网络拓扑信息下发主动流表项之前,会收集网络拓扑信息。比如,SDN控制设备监听各交换设备的状态,根据各交换设备的连接关系收集网络拓扑信息。
[0169] SDN控制设备收集网络拓扑信息的过程中,需要为交换设备分配路标。交换设备的路标,用于上一跳交换设备唯一识别该交换设备,也用于SDN控制设备唯一识别该交换设备。假如该交换设备为第一交换设备,该交换设备的上一跳交换设备为第二交换设备,该交换设备的下一跳交换设备为第三交换设备。则第二交换设备根据第一交换设备的路标识别数据的下一跳交换设备为所述第一交换设备,类似地,第一交换设备根据第三交换设备的路标识别数据的下一跳交换设备为所述第三交换设备。本发明对路标的具体实现形式不做限定。第一交换设备的路标可以包括但不限于:第一交换设备的设备标识、第一交换设备在第二交换设备上的端口标识(即端口号)、或者第一交换设备与第二交换设备之间的链路标识。类似地,第三交换设备的路标可以包括但不限于:第三交换设备的设备标识、第三交换设备在第一交换设备上的端口标识、或者第三交换设备与第一交换设备之间的链路标识。
[0170] 具体如图2所示,为本发明实施例提供的SDN控制设备分配交换设备路标的流程示意图。SDN控制设备监听交换设备;交换设备向SDN控制设备发起连接请求;SDN控制设备对交换设备作连接应答,交换设备与控制设备之间的控制通道建立;SDN控制设备为交换设备分配路标。
[0171] 如图1所示的SDN系统,以交换设备的路标为交换设备的设备标识为例,SDN控制设备为各交换设备分配的路标如表1所示,表1仅是示例性说明:
[0172] 交换设备 设备标识虚拟交换设备1 1
接入交换设备1 11
汇聚交换设备1 21
核心交换设备 3
汇聚交换设备2 22
接入交换设备2 12
虚拟交换设备2 2
[0173] 表1
[0174] SDN控制设备为DC网络内各交换设备(也可以称为转发设备,或称为交换器)分配的设备标识在表1列出。虚拟交换设备1获得设备标识1,接入交换设备1获得设备标识11,汇聚交换设备1获得设备标识21,核心交换设备获得设备标识3,汇聚交换设备2获得设备标识22,接入交换设备2获得设备标识12,虚拟交换设备2获得设备标识2。
[0175] 可选地,如图2所示,当SDN控制设备监听到交换设备由于各种原因发生断连的情况下,SDN控制设备可以回收已经分配的交换设备的路标。回收的交换设备的路标可以再分配给其它交换设备,或能够拥有路标的其它类型的对象。
[0176] SDN控制设备利用为交换设备分配的路标,收集网络拓扑信息的流程如图3所示:SDN控制设备分配交换设备的路标后,会向交换设备发送链路层发现协议(Link Layer Discovery Protocol,LLDP)报文,比如PacketOut报文(也可以称为PacketOut事件);接收到LLDP报文的交换设备向其所有端口(这里指所有的出端口)发送LLDP报文;相邻交换设备在接收到LLDP报文后,如果没有匹配的流表项,将产生PacketIn报文,通知SDN控制设备;
SDN控制设备分析LLDP报文特征,确定交换设备的网络拓扑,即该交换设备的相邻交换设备及其端口。
[0177] 通过向各交换设备发送LLDP报文,如图1所示的SDN系统,SDN控制设备收集的网络拓扑信息如表2所示,表2仅是示例性说明:
[0178]
[0179] 表2
[0180] 具体的,虚拟交换设备1在端口5邻接(也可以称为相连,或者还可以称为相邻)接入交换设备1,接入交换设备1在端口7、4分别邻接虚拟交换设备1、汇聚交换设备1,汇聚交换设备1在端口6、3分别邻接接入交换设备1、核心交换设备,核心交换设备在端口5、9分别邻接汇聚交换设备1、2,汇聚交换设备2在端口8、7分别邻接核心交换设备、接入交换设备2,接入交换设备2在端口6、8分别邻接汇聚交换设备2、虚拟交换设备2,虚拟交换设备2在端口3邻接接入交换设备2。
[0181] 当SDN控制设备监听到交换设备由于各种原因发生断连的情况下,SDN控制设备可以如图2所示回收已经分配的交换设备的路标,还可以如图3所示更新收集的网络拓扑信息。
[0182] 另外,如图3所示,端口状态变化的交换设备,会向SDN控制设备上报端口状态变化的消息,SDN控制设备会根据端口状态变化的消息,来更新收集的网络拓扑信息。SDN控制设备也可以主动检查,看交换设备的端口状态是否发生变化。本发明实施例对此不做限定。端口状态变化指端口由UP变为DOWN或者由DOWN变为UP,端口状态的变化会引起SDN控制设备来更新网络拓扑信息。
[0183] 当然,当有新的交换设备接入SDN系统时,SDN控制设备也会更新网络拓扑信息。
[0184] 经过图2和图3,SDN控制设备为各交换设备分配了路标,而且也知道了网络拓扑信息,就可以向位于骨干网络的各交换设备下发主动流表项了。
[0185] 主动流表项是SDN控制设备依据收集的网络拓扑信息主动下发的业务无关的流表项。如前所述,主动流表项与业务无关,只与网络拓扑信息相关,主动流表项下发后,即可以被报文的转发反复使用。
[0186] 如图1所示的SDN系统,以交换设备的路标为交换设备的设备标识为例,SDN控制设备根据分配的各交换设备的路标、以及根据收集的网络拓扑信息,向位于骨干网络的各交换设备下发的主动流表项(flow entry)如表3所示,表3仅是示例性说明:
[0187]
[0188] 表3
[0189] 通过表3可知,主动流表项包括两部分,一部分是匹配条件(也称为匹配域,英文描述为match field),一部分是执行动作(也称为动作域,英文描述为action)。SDN控制设备下发的主动流表项符合以下特征:
[0190] 匹配条件:相邻交换设备的路标;
[0191] 执行动作:剥离相邻交换设备的路标,将报文发送至相邻交换设备的端口。
[0192] 本发明实施例中相邻也可以描述为相连、或者邻接。如图1所示的系统架构图,接入交换设备1的相邻交换设备为虚拟交换设备1和汇聚交换设备1。类似地,汇聚交换设备1的相邻交换设备为接入交换设备1和核心交换设备;核心交换设备的相邻交换设备为汇聚交换设备1和汇聚交换设备2;汇聚交换设备2的相邻交换设备为核心交换设备和接入交换设备2;接入交换设备2的相邻交换设备为虚拟交换设备2和虚拟交换设备2。因此,控制设备对接入交换设备1下发到达相邻虚拟交换设备1、汇聚交换设备1的主动流表项,对汇聚交换设备1下发到达相邻接入交换设备1、核心交换设备的主动流表项,对核心交换设备下发到达相邻汇聚交换设备1、2的主动流表项,对汇聚交换设备2下发到达相邻核心交换设备、接入交换设备2的主动流表项,对接入交换设备2下发到达相邻汇聚交换设备2、虚拟交换设备2的主动流表项。
[0193] SDN控制设备向位于骨干网络的各交换设备下发的是完整的主动流表项。对于从源端发送到目的端的报文来说,利用部分的主动流表项即可以实现。
[0194] 以图1的SDN系统为例,若与虚拟交换设备1相连的主机为源端,与虚拟交换设备2相连的主机为目的端,则从源端发送到目的端的报文,需要利用的主动流表项如下表4所示,表4是表3的一部分:
[0195] 交换设备 主动流表项接入交换设备1 匹配条件:汇聚交换设备1的路标;执行动作:剥离汇聚交换设备1的路标,发送至端口4汇聚交换设备1 匹配条件:核心交换设备的路标;执行动作:剥离核心交换设备的路标,发送至端口3核心交换设备 匹配条件:汇聚交换设备2的路标;执行动作:剥离汇聚交换设备2的路标,发送至端口9汇聚交换设备2 匹配条件:接入交换设备2的路标;执行动作:剥离接入交换设备2的路标,发送至端口7接入交换设备2 匹配条件:虚拟交换设备2的路标;执行动作:剥离虚拟交换设备2的路标,发送至端口8[0196] 表4
[0197] 相反地,若与虚拟交换设备1相连的主机为目的端,与虚拟交换设备2相连的主机为源端,则从源端发送到目的端的报文,需要利用的主动流表项如下表5所示,表5是表3的一部分:
[0198] 交换设备 主动流表项接入交换设备1 匹配条件:虚拟交换设备1的路标;执行动作:剥离虚拟交换设备1的路标,发送至端口7汇聚交换设备1 匹配条件:接入交换设备1的路标;执行动作:剥离接入交换设备1的路标,发送至端口6核心交换设备 匹配条件:汇聚交换设备1的路标;执行动作:剥离汇聚交换设备1的路标,发送至端口5汇聚交换设备2 匹配条件:核心交换设备的路标;执行动作:剥离核心交换设备的路标,发送至端口8接入交换设备2 匹配条件:汇聚交换设备2的路标;执行动作:剥离汇聚交换设备2的路标,发送至端口6[0199] 表5
[0200] 根据前面的描述,通常,SDN控制设备主动向交换设备下发主动流表项,主动流表项用于指示交换设备的匹配条件和动作。以表3为例,SDN控制设备向接入交换设备1下发的主动流表项有两项,其中一项的匹配条件为虚拟交换设备1的路标,执行动作为剥离虚拟交换设备1的路标,发送至端口7;另外一项的匹配条件为汇聚交换设备1的路标,执行动作为剥离汇聚交换设备1的路标,发送至端口4。类似的,SDN控制设备向汇聚交换设备1下发的主动流表项有两项,其中一项的匹配条件为接入交换设备1的路标,执行动作为剥离接入交换设备1的路标,发送至端口6;另外一项的匹配条件为核心交换设备的路标,执行动作为剥离核心交换设备的路标,发送至端口3。SDN控制设备向核心交换设备下发的主动流表项有两项,其中一项的匹配条件为汇聚交换设备1的路标,执行动作为剥离汇聚交换设备1的路标,发送至端口5;另外一项的匹配条件为汇聚交换设备2的路标,执行动作为剥离汇聚交换设备2的路标,发送至端口9。SDN控制设备向汇聚交换设备2下发的主动流表项有两项,其中一项的匹配条件为核心交换设备的路标,执行动作为剥离核心交换设备的路标,发送至端口8;另外一项的匹配条件为接入交换设备2的路标,执行动作为剥离接入交换设备2的路标,发送至端口7。SDN控制设备向接入交换设备2下发的主动流表项也有两项,其中一项的匹配条件为汇聚交换设备2的路标,执行动作为剥离汇聚交换设备2的路标,发送至端口6;另外一项的匹配条件为虚拟交换设备2的路标,执行动作为剥离虚拟交换设备2的路标,发送至端口8。
[0201] 如果一些情况下,SDN控制设备接收到交换设备发送的PacketIn报文,SDN控制设备会检查是否已经对该交换设备下发到达相邻交换设备的主动流表项。若SDN控制设备没有对该交换设备下发过主动流表项,则对该交换设备下发到达相邻交换设备的主动流表项;若已经下发,则忽略该PacketIn报文。
[0202] 另外,如图3类似,当交换设备断连时,或者交换设备的端口状态发生变化(比如端口异常、或者端口状态由UP变为DOWN)时,或者有新的交换设备接入SDN时,SDN控制设备会更新网络拓扑信息。网络拓扑信息更新之后,相应地,SDN控制设备也会向位于骨干网络的各交换设备下发更新后的主动流表项,具体如图4所示。
[0203] 当交换设备断连时:SDN控制设备发现交换设备断连;SDN控制设备检查该发生断连的交换设备是否存在相邻交换设备;若该发生断连的交换设备存在相邻交换设备,则删除相邻交换设备到该发生断连的交换设备的主动流表项,如表3;若该发生断连的交换设备不存在相邻交换设备,则流程结束。
[0204] 当交换设备的端口状态发生变化时:SDN控制设备发现交换设备的端口状态变化(比如端口异常);SDN控制设备检查该状态变化的端口是否连接相邻交换设备;若该状态变化的端口连接相邻交换设备,则删除相邻交换设备到该状态变化的端口的主动流表项;若该状态变化的端口不连接相邻交换设备,则流程结束。具体的,SDN控制设备可以更新表2和表3,不再赘述。
[0205] 二、被动流表项
[0206] 如图5所示,以图1所示的系统架构为例说明,
[0207] 101,源端发送数据(也可以称为报文)至与其相连的源边缘交换设备(如虚拟交换设备1)。
[0208] 102-103,虚拟交换设备1查询本地保存的流表项,若没有找到该数据匹配的流表项,则虚拟交换设备1向SDN控制设备请求该数据的转发规则,该请求中携带所述数据的特征信息。
[0209] 需要说明的是,虚拟交换设备1可以向SDN控制设备发送整个数据,也可以只发送数据的特征信息,只要该请求中携带了所述数据的特征信息即可。所述数据的特征信息可以是数据分组格式中的任意字段,包括但不限定于以下至少之一:所述数据的源IP地址、目的IP地址,源MAC、或目的MAC;或者协议类型。
[0210] 104-105,SDN控制设备根据所述数据的特征信息,依据当前的网络拓扑信息,选择合适的转发路径。SDN控制设备可以从多条转发路径中选择最优的转发路径,例如,可以选择最短的或流量权重最低的转发路径。
[0211] 如6所示,假如从源端到目的端有三条路径。实线表示第一转发路径(从源端到目的端依次经过虚拟交换设备1、接入交换设备1、汇聚交换设备1、核心交换设备、汇聚交换设备2、接入交换设备2、虚拟交换设备2),虚黑线表示第二转发路径(从源端到目的端依次经过虚拟交换设备1、接入交换设备1、汇聚交换设备1、接入交换设备2、虚拟交换设备2);虚线表示第三转发路径(从源端到目的端依次经过虚拟交换设备1、接入交换设备1、汇聚交换设备2、接入交换设备2、虚拟交换设备2)。
[0212] 如图6’所示,假设SDN控制设备根据一定的策略选择的转发路径为:从源端到目的端依次经过虚拟交换设备1、接入交换设备1、汇聚交换设备1、核心交换设备、汇聚交换设备2、接入交换设备2、虚拟交换设备2,分别对应的交换设备的路标为(以路标为设备标识为例)1、11、21、3、22、12、2。则报文从源端发往目的端的转发路径可以表示为:1-11-21-3-22-
12-2。因此,通过一组路标的序列可以唯一标识一条转发路径。上述过程也可以称为转发路径的标定,或者称为转发路径的锚定。
[0213] SDN控制设备根据选择的转发路径,向虚拟交换设备1返回该数据的转发规则(即被动流表项1),如表6所示。
[0214]
[0215] 表6
[0216] 被动流表项与主动流表项类似,也包括两部分,一部分是匹配条件(也称为匹配域,英文描述为match field),一部分是执行动作(也称为动作域,英文描述为action)。被动流表项也是用来指示交换设备的匹配条件和动作。
[0217] 具体地,该被动流表项1包括如下信息:
[0218] 匹配条件:所述数据的特征信息;
[0219] 执行动作:封装从虚拟交换设备1至虚拟交换设备2的路径信息,然后发送至端口5。虚拟交换设备2是与所述数据的目的端相连的交换设备。
[0220] 优选地,虚拟交换设备1至虚拟交换设备2的路径信息包括汇聚交换设备1到虚拟交换设备2的路标。附图7会详细介绍封装的过程。
[0221] 106,另外,SDN控制设备还会向虚拟交换设备2发送该数据的转发规则,即对虚拟交换设备2下发被动流表项2。如表7所示,
[0222]
[0223] 表7
[0224] 该被动流表项2包括如下信息:
[0225] 匹配条件:所述数据的特征信息;
[0226] 执行动作:将报文发送端口1,即与目的端相连的端口。
[0227] 需要说明的是,105和106没有先后顺序的区分。
[0228] 经过上述过程,骨干交换设备从SDN控制设备接收了主动流表项;接收到数据之后,边缘交换设备从SDN控制设备请求了被动流表项。数据如何根据主动流表项和被动流表项,从源端传递到目的端,详见附图7。
[0229] 三、数据转发
[0230] 图7为本发明实施例提供的数据转发的流程示意图。
[0231] 107-108,虚拟交换设备1根据被动流表项1,匹配了数据的特征信息后,将所述数据和虚拟交换设备1到虚拟交换设备2的路径信息进行封装,然后通过被动流表项1指示的端口5,发送给接入交换设备1。
[0232] 具体地,虚拟交换设备1可以通过协议栈来携带虚拟交换设备1到虚拟交换设备2的路径信息。下面以协议栈为多协议标签交换(Multiple Protocol Label Switching,MPLS)栈为例说明。
[0233] MPLS协议的格式如图8所示。MPLS标签(指MPLS Header中的Label字段)介于报文二、三层头之间,即介于L2 Header和L3 Header之间,支持多层嵌套。一个MPLS Header占用32比特,其中Label字段占20比特,用于标记交换设备的路标,指示报文的下一跳交换设备;
Exp字段占用3比特,用于标记QoS,实现DC大二层网络差分服务;S字段占用1比特,是栈底标记,标识最后一跳;TTL字段占用8比特,用于标记标签生命周期。在本发明实施例中,因为标签仅标识报文的下一跳,所以TTL可以设置为1。
[0234] 一个MPLS Header(MPLS头)携带一个交换设备的路标,多个MPLS头有序嵌套,携带一组路标,进而组成一条转发路径。虚拟交换设备1按照SDN控制设备选择的转发路径,将虚拟交换设备1到虚拟交换设备2的路径信息压入MPLS栈。虚拟交换设备1到虚拟交换设备2的路径信息包括汇聚交换设备1到虚拟交换设备2的路标。虚拟交换设备1将虚拟交换设备2的路标压入栈底,将汇聚交换设备1的路标压入栈顶。封装了虚拟交换设备1到虚拟交换设备2的路径信息的MPLS栈,如图9所示。
[0235] 如图9所示,虚拟交换设备2是报文的最后一跳交换设备,其路标被第一个压入报文,位于MPLS嵌套标签的栈底。由于转发路径的封装操作是在虚拟交换设备1上执行的,虚拟交换设备1根据被动流表项1知道报文的下一跳交换设备是接入交换设备1,因此转发路径第一跳是接入交换设备1的下一跳交换设备,即汇聚交换设备1,其路标被压在栈顶。其它交换设备的路标按照压入的顺序依次是接入交换设备2的路标、汇聚交换设备2的路标、核心交换设备的路标。
[0236] 109-110,接入交换设备1接收虚拟交换设备1发送的所述数据和所述虚拟交换设备1到虚拟交换设备2的路径信息(虚拟交换设备1到虚拟交换设备2的路径信息包括汇聚交换设备1到虚拟交换设备2的路标)。
[0237] 根据所述虚拟交换设备1到虚拟交换设备2的路径信息中汇聚交换设备1的路标,查询接入交换设备1本地保存的主动流表项(前面描述的表3中的接入交换设备1的主动流表项)。如果匹配了汇聚交换设备1的路标,则执行动作:剥离汇聚交换设备1的路标,发送至端口4。则接入交换设备1通过端口4向汇聚交换设备1转发所述数据和剥离路标(即汇聚交换设备1的路标)后的路径信息。
[0238] 剥离路标(即汇聚交换设备1的路标)后的路径信息如图10所示。
[0239] 111-112,汇聚交换设备1接收接入交换设备1发送的所述数据和所述接入交换设备1到虚拟交换设备2的路径信息(接入交换设备1到虚拟交换设备2的路径信息包括核心交换设备到虚拟交换设备2的路标)。
[0240] 根据所述接入交换设备1到虚拟交换设备2的路径信息中核心交换设备的路标,查询汇聚交换设备1本地保存的主动流表项(如前面描述的表3中的汇聚交换设备1的主动流表项)。如果匹配了核心交换设备的路标,则执行动作:剥离核心交换设备的路标,发送至端口3。则汇聚交换设备1通过端口3向核心交换设备转发所述数据和剥离路标(即核心交换设备的路标)后的路径信息。
[0241] 剥离路标(即核心交换设备的路标)后的路径信息如图11所示。
[0242] 113-114,核心交换设备接收汇聚交换设备1发送的所述数据和所述汇聚交换设备1到虚拟交换设备2的路径信息(汇聚交换设备1到虚拟交换设备2的路径信息包括汇聚交换设备2到虚拟交换设备2的路标)。
[0243] 根据所述汇聚交换设备1到虚拟交换设备2的路径信息中汇聚交换设备2的路标,查询核心交换设备本地保存的主动流表项(前面描述的表3中的核心交换设备的主动流表项)。如果匹配了汇聚交换设备2的路标,则执行动作:剥离汇聚交换设备2的路标,发送至端口9。则核心交换设备通过端口9向汇聚交换设备2转发所述数据和剥离路标(即汇聚交换设备2的路标)后的路径信息。
[0244] 剥离路标(即汇聚交换设备2的路标)后的路径信息如图12所示。
[0245] 115-116,汇聚交换设备2接收核心交换设备发送的所述数据和所述核心交换设备到虚拟交换设备2的路径信息(核心交换设备到虚拟交换设备2的路径信息包括接入交换设备2到虚拟交换设备2的路标)。
[0246] 根据所述核心交换设备到虚拟交换设备2的路径信息中接入交换设备2的路标,查询汇聚交换设备2本地保存的主动流表项(前面描述的表3中的汇聚交换设备2的主动流表项)。如果匹配了接入交换设备2的路标,则执行动作:剥离接入交换设备2的路标,发送至端口7。则汇聚交换设备2通过端口7向接入交换设备2转发所述数据和剥离路标(即接入交换设备2的路标)后的路径信息。
[0247] 剥离路标(即接入交换设备2的路标)后的路径信息如图13所示。
[0248] 117-118:接入交换设备2接收汇聚交换设备2发送的所述数据和所述汇聚交换设备2到虚拟交换设备2的路径信息(汇聚交换设备2到虚拟交换设备2的路径信息包括虚拟交换设备2的路标)。
[0249] 根据所述汇聚交换设备2到虚拟交换设备2的路径信息中虚拟交换设备2的路标,查询接入交换设备2本地保存的主动流表项(前面描述的表3中接入交换设备2的主动流表项)。如果匹配了虚拟交换设备2的路标,则执行动作:剥离虚拟交换设备2的路标,发送至端口8。则接入交换设备2通过端口8向虚拟交换设备2发送所述数据。
[0250] 119-120,虚拟交换设备2根据图5中106步骤SDN控制设备下发的被动流表项2,即表7。如果接收的数据匹配了数据的特征信息,则执行动作:将该数据发送至端口1。则虚拟交换设备2通过端口1向目的端发送所述数据。
[0251] 因此,虚拟交换设备通过被动流表项,骨干交换设备(如图1中的接入交换设备1、汇聚交换设备1、核心交换设备、汇聚交换设备2、接入交换设备2)通过主动流表项,将数据从源端传递到了目的端。
[0252] 本发明实施例SDN控制设备会根据网络拓扑信息下发一部分流表项,这部分流表项可以称为主动流表项。主动流表项与业务无关,只与网络拓扑信息相关,主动流表项下发后,即可以被报文的转发反复使用。当接收到报文之后,如果没有匹配的流表项,SDN控制设备会向部分交换设备下发另一部分流表项,这部分流表项可以称为被动流表项。被动流表项与业务相关,但是只向部分交换设备下发。在一对一通信的情况下,SDN控制设备只向位于边缘网络的虚拟交换设备下发被动流表项即可,而不用向位于骨干网络的交换设备下发被动流表项,虚拟交换设备为报文封装到达目的端的转发路径,骨干层的交换设备依据主动流表项执行相应操作。因此减少了SDN控制设备向骨干网络的交换设备下发的流表项,从而减少了流表项对SDN控制设备和骨干交换设备资源的占用。
[0253] 以上以具有7个交换设备的SDN系统为例进行了介绍,本发明实施例可以适用于有n个交换设备的SDN系统。该SDN系统包括SDN控制设备和n个交换设备,其中第一交换设备(如图1中的虚拟交换设备1)是与所述数据的源端相连的交换设备,第n交换设备(如图1中的虚拟交换设备2)是与所述数据的目的端相连的交换设备。在这样的系统架构下,实现数据转发的流程参照图14:
[0254] 201,源端发送数据至第一交换设备,第一交换设备为源端的边缘交换设备。
[0255] 202-203,第一交换设备接收源端发送的数据,查询本地保存的流表项,若没有找到该数据匹配的流表项,则第一交换设备向SDN控制设备请求该数据的转发规则,该请求中携带该数据的特征信息。
[0256] 与图5的102-103类似,第一交换设备可以向SDN控制设备发送整个数据,也可以只发送数据的特征信息,只要该请求中携带了所述数据的特征信息即可。所述数据的特征信息可以是数据分组格式中的任意字段,包括但不限定于以下至少之一:所述数据的源IP地址、目的IP地址,源MAC、或目的MAC;或者协议类型。
[0257] 204,SDN控制设备根据所述数据的特征信息,向第一交换设备返回该数据的第一转发规则(如前面实施例的被动流表项1),所述第一转发规则包括第一交换设备至第n交换设备的路径信息。
[0258] 具体地,SDN控制设备根据所述数据的特征信息,依据当前的网络拓扑信息,选择合适的转发路径。SDN控制设备根据选择的转发路径,向第一交换设备返回该数据的第一转发规则(如前面实施例的被动流表项1)。当n≥3,所述第一转发规则需要包括第一交换设备至第n交换设备的路径信息;当n<3的时候,通过两个边缘交换设备,数据直接从源端到目的端,不用经过骨干交换设备,这时候是不用携带路径信息的。
[0259] 优选地,第一交换设备至第n交换设备的路径信息包括在所述数据转发路径上第三交换设备至第n交换设备的路标。第二交换设备(如图1的接入交换设备1)为所述第一交换设备在所述数据转发路径上相连的交换设备。第三交换设备(如图1的汇聚交换设备1)为所述第二交换设备在所述数据转发路径上相连的交换设备。第三交换设备至第n交换设备的路标包括n-2个路标组成的路标序列。
[0260] 特殊地,如果n=3,则第一交换设备至第n交换设备的路径信息只包括第三交换设备的路标。第三交换设备至第n交换设备的路标则只有第三交换设备的路标。
[0261] 详细参照附图5的步骤104和105。
[0262] 205,SDN控制设备根据所述数据的特征信息,还向第n交换设备返回该数据的第n转发规则(如前面实施例的被动流表项2)。
[0263] 第n转发规则用于指示第n交换设备把数据转发到目的端。
[0264] 详细参照附图5的步骤104和106。另外需要说明的是,204和205之间没有先后顺序之分。
[0265] 206,第一交换设备接收所述SDN控制设备返回的第一转发规则(如前面实施例的被动流表项1),根据所述第一转发规则,将所述数据和所述第一交换设备至第n交换设备的路径信息发送给与所述第一交换设备相连的第二交换设备。
[0266] 具体的,第一交换设备根据所述第一转发规则,匹配了数据的特征信息后,将所述数据和第一交换设备至第n虚拟交换设备的路径信息进行封装,然后通过第一转发规则用于指示的端口,发送给与所述第一交换设备相连的第二交换设备。
[0267] 第一交换设备至第n虚拟交换设备的路径信息包括在所述数据转发路径上第三交换设备至所述第n交换设备的路标,所述第一交换设备将所述第三交换设备至所述第n交换设备的路标依次压入协议栈中,所述第n交换设备的路标压入栈底,所述第三交换设备的路标压入栈顶,以使所述协议栈携带所述第一交换设备至第n交换设备的路径信息。
[0268] 所述协议栈包括但不限于MPLS栈。
[0269] 交换设备的路标与前面实施例类似。比如所述第二交换设备用于根据所述第三交换设备的路标识别所述数据的下一跳交换设备为所述第三交换设备,所述第三交换设备的路标包括但不限于以下至少之一:所述第三交换设备的设备标识、所述第三交换设备在所述第二交换设备上的端口标识、或者所述第三交换设备与所述第二交换设备之间的链路标识。
[0270] 详细参照附图7的步骤107-108。
[0271] 207、所述第二交换设备接收所述第一交换设备发送的所述数据和所述第一交换设备至第n交换设备的路径信息,根据所述第一交换设备至第n交换设备的路径信息中第三交换设备的路标,查询所述第二交换设备保存的第二转发规则(如表3中的接入交换设备1的主动流表项),根据所述第二转发规则,获得所述第三交换设备在所述第二交换设备上的端口,通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据,所述第三交换设备是与第二交换设备相连的交换设备。
[0272] 所述第二转发规则是主动流表项,与数据无关,只与网络的拓扑信息有关,因此第二转发规则的匹配域包括所述第三交换设备的路标,而不是数据的特征信息。所述第二转发规则的动作域,剥离所述第三交换设备的路标,发送至所述第三交换设备在所述第二交换设备上的端口。
[0273] 如果n≥4,所述第二交换设备还向所述第三交换设备发送第二交换设备至第n交换设备的路径信息,所述第二交换设备至第n交换设备的路径信息包括在所述数据转发路径上第四交换设备至所述第n交换设备的路标,其中第四交换设备(如图1中的核心交换设备)是与第三交换设备相连的交换设备。所述第二交换设备根据所述第二转发规则的动作域,从所述第一交换设备至第n交换设备的路径信息中剥离所述第三交换设备的路标获得所述第二交换设备至第n交换设备的路径信息。
[0274] 特殊地,如果n=4,则第二交换设备至第n交换设备的路径信息只包括第四交换设备的路标。第四交换设备至第n交换设备的路标则只有第四交换设备的路标。
[0275] 详细参照附图7的步骤109-110。
[0276] 上述方法通过确定第一交换设备至第n交换设备的路径信息,所述第一交换设备封装第一交换设备至第n交换设备的的路径信息并发送给第二交换设备,所述第二交换设备根据第一交换设备至第n交换设备的路径信息以及第二转发规则对所述数据进行转发,所述第二转发规则只与网络拓扑信息有关,而与数据(或报文)无关。因此第二交换设备不需要每次接收到数据后都获取一次转发规则,即不需要每次接收到数据后都从SDN控制设备获取一次流表项进行数据转发,节省了SDN控制设备下发流表项的资源消耗,提高了设备的利用率。
[0277] 作为一种可选的实现方式,所述第二转发规则是在所述第二交换设备与其相连的交换设备建立拓扑关系时或拓扑关系发生变化时生成的。与所述第二交换设备相连的交换设备之间的拓扑关系发生变化时,所述第二交换设备至与其相连的交换设备之间的转发规则也随之发生改变。因此,在所述第二交换设备与其相连的交换设备建立拓扑关系时或拓扑关系发生变化时,SDN控制设备生成第二转发规则并发送给第二交换设备,使得第二交换设备依据第二转发规则进行数据转发时能够依据最新的网络拓扑转发,在节省设备资源消耗的同时提高了数据转发的准确率。
[0278] 208,第i交换设备接收第i-1交换设备发送的第i-1交换设备至第n交换设备的路径信息和所述数据,所述第i-1交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+1交换设备至所述第n交换设备的路标,i为整数且大于等于3,并且i小于n。
[0279] 第i交换设备根据所述第i+1交换设备的路标,查询所述第i交换设备保存的第i转发规则(如表3的主动流表项),根据所述第i转发规则,确定所述第i+1交换设备在第i交换设备的端口,从而将所述数据通过该端口转发给所述第i+1交换设备。
[0280] 如果第i+1交换设备不是在所述数据转发路径上最后一个交换设备,即不是第n交换设备,则所述第i交换设备还根据第i转发规则(如表3的主动流表项),向第i+1交换设备发送第i交换设备至第n交换设备的路径信息,所述第i交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+2交换设备至所述第n交换设备的路标,所述第i+2交换设备是与所述第i+1交换设备相连的交换设备。
[0281] 具体地,所述第i交换设备根据第i转发规则(如表3的主动流表项),向第i+1交换设备发送第i交换设备至第n交换设备的路径信息具体包括:所述第i交换设备根据第i转发规则,从所述第i-1交换设备至第n交换设备的路径信息中剥离所述第i+1交换设备的路标,从而得到所述第i+2交换设备至所述第n交换设备的路标,向所述第i+1交换设备发送所述第i+2交换设备至所述第n交换设备的路标。而且,第i交换设备还根据所述第i+1交换设备在第i交换设备的端口,将所述第i交换设备至第n交换设备的路径信息发送给所述第i+1交换设备。
[0282] 第i交换设备,如图1的汇聚交换设备1、核心交换设备、汇聚交换设备2、接入交换设备2。
[0283] 重复执行步骤208,直到数据被传送到了第n交换设备。
[0284] 详细参照附图7的步骤111-118。
[0285] 209、第n交换设备根据从SDN控制设备接收的第n转发规则,如果从第n-1交换设备接收的数据匹配了第n转发规则的匹配域,则将该数据转发至目的端。
[0286] 详细参照附图7的步骤119-120。
[0287] 上述实现数据转发的方法,骨干交换设备接收到转发规则(如前面实施例的主动流表项)之后,不需要每次在数据转发时都获取一次转发规则,节省了控制设备和交换设备的资源开销,提高了SDN系统中资源的利用率。比如骨干交换设备(如第二交换设备)接收到第二转发规则(也可以称为流表项)之后,不需要每次在数据转发时都获取一次转发规则,相应地SDN控制设备不需要在每次转发数据时都给第二交换设备下发第二转发规则,即第二转发规则在后续的数据转发中可以被重复使用,降低了SDN控制设备对第二交换设备下发转发规则的数量,相应降低了SDN控制设备的设备资源占用率,SDN控制设备与第二交换设备之间的网络带宽也会相应得到节省,同时,第二交换设备不需要在每次数据转发时都接收第二转发规则,提高了第二交换设备的资源利用率。
[0288] DC网络的骨干交换设备接收到SDN控制设备下发的主动流表项,边缘交换设备接收到SDN控制设备下发的被动流表项后,即能够实现对报文的转发。由于骨干交换设备接收到的是主动流表项,不需要在每次转发数据时都给骨干交换设备下发流表项,即主动流表项在后续的数据转发中可以被重复使用,降低了对骨干交换设备下发流表项的数量,相应降低了SDN控制设备的设备资源占用率,SDN控制设备与骨干交换设备之间的网络带宽也会相应得到节省,同时,骨干交换设备不需要在每次数据转发时都接收流表项,提高了骨干交换设备的资源利用率。
[0289] 上述的数据转发的方法一有一个源端,一个目的端,可以称为单播的方案。上述的数据转发方法可以应用于各种场景,比如网络安全、服务、组播或者广播(多个目的端的场景)等等。下面分开描述。
[0290] SDN系统二
[0291] 租户可以向数据中心(DC)供应商租赁计算、存储、或者网络资源。用户可以使用租户租赁的资源。因此租户可以在DC内其所属主机上部署各种服务,并对其用户开放。
[0292] DC允许租户定制策略,用以引导数据在不同服务之间穿梭。图15为本发明实施例提供的另一种实现数据转发的SDN系统示意图。如图15所示的SDN系统,可以理解为在图1所示的SDN系统上增加了服务。
[0293] 如图15所示,租户在DC内部署了防火墙、鉴权、负载均衡与数据库服务,其中防火墙服务所在主机由接入交换设备1接入DC网络,鉴权服务所在主机由接入交换设备3接入DC网络,负载均衡服务所在主机由接入交换设备2接入DC网络,数据库服务所在主机由虚拟交换设备2接入DC网络。租户数据库服务对其用户开放。出于安全的考虑,租户希望用户在访问数据库前必须穿越防火墙,经过鉴权处理,同时考虑到数据库服务的性能和可用性,需由负载均衡服务实时调度,分配数据源。用户在访问数据库的时候,可以查询数据库中的数据,或者修改数据库中的数据、或者向数据库中增加数据,本发明对此不作限定。
[0294] 提供各种服务的主机(或者租户部署服务的主机)可以称为服务设备。如图15所示,服务设备包括但不限于:防火墙服务所在主机,鉴权服务所在主机,负载均衡服务所在主机,数据库服务所在主机。其中,主机是能够提供特定服务(例如防火墙等)的服务器,可以是物理服务器也可以是虚拟服务器。作为一种可选的实现方式,所述主机也可以是上述移动终端、固定终端或无线接入终端等设备,本发明实施例不限定具体的实现方式。
[0295] 租户通过部署相关服务的主机,提供相关服务。例如部署防火墙的主机,提供防火墙服务,该提供防火墙服务的主机就是一个服务设备。下面描述在SDN系统中增加了服务之后的数据转发的方法。
[0296] 数据转发的方法二
[0297] 一、主动流表项
[0298] 与数据转发的方法一中的主动流表项类似,SDN控制设备需要根据网络拓扑信息,向各骨干交换设备下发主动流表项。详见数据转发的方法一中的描述,不再赘述。
[0299] 在如图15所示增加了服务设备的SDN系统,SDN控制设备除了向各骨干交换设备下发数据转发的方法一中的主动流表项外,还需要向与服务设备相连的交换设备下发另一主动流表项,下面详细描述。
[0300] 租户可以通过UI(User Interface,用户界面)向SDN控制设备请求添加或删除服务设备。租户通过UI向SDN控制设备发起创建服务设备的请求;SDN控制设备创建服务设备,SDN控制设备为服务设备分配服务设备的标识(参照表8),服务设备的标识具备唯一性,用以区别DC网络内其它服务设备,或能够拥有设备标识的其它类型的对象,可以单独,也可以与其它设备标识组合,服务设备的标识用以标定数据转发路径;SDN控制设备通过UI对创建服务设备的请求作出应答。
[0301] 如图15的SDN系统,假如SDN控制设备为各服务设备分配的服务设备的标识如下表8所示:
[0302]
[0303] 表8
[0304] 防火墙所在的主机(也可以称为防火墙服务设备)获得标识5;鉴权服务所在的主机(也可以称为鉴权服务设备)获得标识6;负载均衡(也可以称为负载均衡服务设备)所在的主机获得标识7;数据库1(也可以称为数据库1服务设备)所在的主机获得标识8;数据库2(也可以称为数据库2服务设备)所在的主机获得标识9。
[0305] 当租户需要删除服务设备时,租户通过UI向SDN控制设备发起删除服务设备的请求;SDN控制设备删除服务设备,然后回收已分配的服务设备的标识,回收的服务设备的标识可以再分配给其它服务设备,或能够拥有设备标识的其它类型的对象;SDN控制设备通过UI对删除服务设备的请求作出应答。
[0306] 租户可以为其用户设定某一种服务,比如只经过防火墙,或者只经过鉴权。租户当然也可以为其用户设定多种服务,这些服务之间就有了先后顺序的区分。多个服务形成的服务序列,也可以称为服务链。租户对多种服务之间指定的顺序,体现了租户对外提供服务的策略。DC允许租户定制不同服务链,然后根据用户数据的特征信息将其引导到不同的服务设备,从而遍历服务链上所有服务设备。
[0307] 租户添加服务链操作也是通过UI实现的。具体过程如下:租户通过UI向SDN控制设备发起创建服务链的请求;SDN控制设备创建服务链(如表9所示);SDN控制设备通过UI向租户返回创建服务链的结果。
[0308] SDN控制设备创建的服务链如表9所示,当然表9仅是示例性说明:
[0309] 服务链 服务先后顺序 服务节点的标识序列1 防火墙-鉴权-数据库1 5-6-8
2 防火墙-鉴权-数据库2 5-6-9
3 防火墙-鉴权-负载均衡 5-6-7
[0310] 表9
[0311] 租户通过第1条服务链为用户指定数据源为数据库1,数据依次经过防火墙、鉴权,最终抵达数据库1,对应服务设备的标识序列是5-6-8;通过第2条服务链为用户指定数据源为数据库2,数据依次经过防火墙、鉴权,最终抵达数据库2,对应服务设备的标识序列是5-6-9;通过第3条服务链由负载均衡服务为用户指定数据源,数据依次经过防火墙、鉴权,然后由负载均衡服务调度,最终抵达负载均衡服务指定的数据库,对应的设备标识序列是5-
6-7。
[0312] 分配了服务设备的标识以及服务链之后,SDN控制设备需要向与服务设备相连的交换设备下发主动流表项。向服务设备相连的交换设备下发的主动流表项符合以下特征:
[0313] 匹配条件:服务设备的标识;
[0314] 执行动作:剥离服务设备的标识,将数据发送至服务设备端口。
[0315]
[0316] 表10
[0317] SDN控制设备对与服务设备相连的交换设备下发的主动流表项如表10为例。SDN控制设备指示接入交换设备1匹配携带防火墙服务设备的标识的报文,剥离报文防火墙服务设备标识,将原始报文发送至端口1;指示接入交换设备3匹配携带鉴权服务设备标识的报文,剥离报文鉴权服务设备标识,将原始报文发送至端口8;指示接入交换设备2匹配携带负载均衡服务设备标识的报文,剥离报文负载均衡服务设备标识,发送至端口9;指示虚拟交换设备2匹配携带数据库服务设备标识的报文,剥离报文数据库服务设备标识,发送至相应端口(如果是数据库1服务设备,则发送至端口6;如果是数据库2服务设备,则发送至端口1。
[0318] 租户当然也可以删除服务链,具体过程如下:租户通过UI向SDN控制设备发起删除服务链的请求;SDN控制设备删除服务链;SDN控制设备通过UI向租户返回删除服务链的结果。同时,SDN控制设备还需要删除与服务设备相连的交换设备上的主动流表项。
[0319] 二、被动流表项
[0320] 301,用户发送数据(也可以称为报文、或者数据流、或者用户流)至与其相连的交换设备(如虚拟交换设备1)。
[0321] 302-303,与用户相连的交换设备(如虚拟交换设备1)查询本地保存的流表项,若没有找到该数据匹配的流表项,则虚拟交换设备1向SDN控制设备请求该数据的转发规则,该请求中携带所述数据的特征信息。
[0322] 需要说明的是,虚拟交换设备1可以向SDN控制设备发送整个数据,也可以只发送数据的特征信息,只要该请求中携带了所述数据的特征信息即可。所述数据的特征信息可以是数据分组格式中的任意字段,包括但不限定于以下至少之一:所述数据的源IP地址、目的IP地址,源MAC、或目的MAC;或者协议类型。
[0323] 304-305,SDN控制设备根据所述数据的特征信息,依据当前的网络拓扑信息及租户的服务策略,选择合适的转发路径。SDN控制设备可以从多条转发路径中选择最优的转发路径,例如,可以选择最短的或流量权重最轻的转发路径。
[0324] 具体可以参照图6和图6’的描述,不再赘述。
[0325] SDN控制设备根据选择的转发路径,向与用户相连的交换设备下发该数据的转发规则(即被动流表项1’),如表11所示。
[0326]
[0327] 表11
[0328] 被动流表项(flow entry)与主动流表项类似,也包括两部分,一部分是匹配条件(也称为匹配域,英文描述为match field),一部分是执行动作(也称为动作域,英文描述为action)。
[0329] 具体地,该被动流表项包括如下信息:
[0330] 匹配条件:数据的特征信息;
[0331] 执行动作:封装防火墙服务设备的标识,发送至端口5。
[0332] 由于虚拟交换设备1与接入交换设备1相连,而接入交换设备1与防火墙服务设备相连,因此,虚拟交换设备1发送给接入交换设备1的报文,只封装防火墙服务设备的标识,不需要封装到接入交换设备1的路径信息。
[0333] 306,另外,SDN控制设备还需要向与服务设备相连的交换设备下发该数据的转发规则(即被动流表项2’),如表12所示。
[0334]
[0335] 表12
[0336] 依据服务设备在服务链上的位置,对数据封装下一跳服务设备的标识,有的情况下还需要封装到达下一跳服务设备的路径信息,然后发送至交换设备的出端口。
[0337] SDN控制设备对与服务设备相连的交换设备下发的被动流表项2’如表12所示。被动流表项2’指示接入交换设备1匹配处理后数据的特征信息,封装鉴权服务设备的标识、及从接入交换设备1至鉴权服务设备相连交换设备的路径信息,然后发送至端口4;指示接入交换设备3匹配处理后数据的特征信息,封装负载均衡服务设备的标识、及从接入交换设备3至负载均衡服务设备相连交换设备的路径信息,然后发送至端口5;指示接入交换设备2匹配处理后数据的特征信息,封装数据库服务设备的标识,然后发送至端口8。
[0338] 需要说明的是,由于数据库是服务链上的最后一跳服务,SDN控制设备不用向与数据库相连的虚拟交换设备2下发被动流表项,只需要下发表10中所示的主动流表项。并且305和306没有先后顺序的区分。
[0339] 经过上述过程,骨干交换设备从SDN控制设备接收了主动流表项,与服务设备相连的交换设备接收了另一主动流表项;接收到数据之后,与用户相连的交换设备从SDN控制设备请求了被动流表项,而与服务设备相连的交换设备也接收了另一被动流表项。数据如何根据主动流表项和被动流表项,从用户传递到了数据库,详见附图17。
[0340] 通过上述实施例对不同服务设备存在场景下主动流表项和被动流表项的下发,实现了在满足租户定制策略以实现数据或业务流在不同服务之间灵活穿梭的同时,不用重复下发流表项,降低了SDN控制设备和交换设备的设备资源占用率,也相应提高SDN控制设备和交换设备的性能和效率。
[0341] 三、数据转发
[0342] 需要说明的是,由于数据进入服务设备必须是原始数据,SDN控制设备在下发转发路径时,不能一次性定制整条服务链的转发路径,需要依据每个服务设备将路径分解成多段,每段的起始是上一服务设备,终止是下一服务设备,每一段的路径下发方式与数据转发一所示的实现方式类同。下面结合附图17详细描述。
[0343] 图17为本发明实施例提供的数据转发的流程示意图。图17所示的流程示意图,依次经过了防火墙服务、鉴权服务、负载均衡服务和数据库1服务。由于数据库1服务为服务链上最后一跳服务,因此数据库1服务也可以称为目的服务,数据库1服务设备也可以称为目的服务设备。
[0344] 407-408,与用户相连的交换设备(如虚拟交换设备1)根据表11的被动流表项1’,匹配了数据的特征信息后,将防火墙服务设备的标识进行封装,然后通过被动流表项1’指示的端口5,发送数据和防火墙服务设备的标识给接入交换设备1。
[0345] 409-410,接入交换设备1接收虚拟交换设备1发送的防火墙服务设备的标识,根据表10中接入交换设备1的主动流表项,匹配了防火墙服务设备的标识后,执行动作剥离防火墙服务设备的标识,然后将数据发送至端口1。数据则通过端口1到达防火墙服务设备。剥离也可以理解为删除。
[0346] 411-413,接入交换设备1通过端口1接收经过防火墙处理的数据。防火墙处理的数据也称为防火墙服务设备处理的数据。经过防火墙处理的数据,如果匹配了处理后数据的特征信息,则接入交换设备1根据表12指示的接入交换设备1的被动流表项2’,执行动作封装下一服务设备的标识(如鉴权服务设备的标识),以及从接入交换设备1至鉴权服务设备相连交换设备(如接入交换设备3)的路径信息,通过端口4发送至汇聚交换设备1。
[0347] 接入交换设备1至接入交换设备3的路径信息与数据转发的方法一中路径信息类似,只需要把用户理解为源端,把接入交换设备1理解为数据转发的方法一中与源端相连的交换设备,把鉴权服务设备理解为目的端,与接入交换设备3理解为数据转发的方法一中与目的端相连的交换设备。在SDN系统二中,接入交换设备1的封装动作类似于数据转发的方法一中的虚拟交换设备1。
[0348] 具体地,接入交换设备1至鉴权服务设备相连交换设备的路径信息包括核心交换设备至接入交换设备3的路标,接入交换设备1可以通过协议栈来携带接入交换设备1至鉴权服务设备相连交换设备的路径信息。下面以协议栈为多协议标签交换(Multiple Protocol Label Switching,MPLS)栈为例说明。如数据转发的方法一类似,一个MPLS Header(MPLS头)携带一个交换设备的路标,多个MPLS头有序嵌套,携带一组路标,进而组成一条转发路径。接入交换设备1按照SDN控制设备选择的转发路径,将接入交换设备1至鉴权服务设备相连交换设备的路径信息压入MPLS栈。
[0349] 接入交换设备1至鉴权服务设备相连交换设备的路径信息包括核心交换设备至接入交换设备3的路标。接入交换设备1将鉴权服务设备的标识压入栈底,将接入交换设备3的路标压入栈底的上一层,将核心交换设备的路标压入栈顶。封装了鉴权服务设备的标识以及接入交换设备1至鉴权服务设备相连交换设备的路径信息的MPLS栈,如图18所示。
[0350] 如图18所示,鉴权服务设备是路径上的最后一跳,其标识被第一个压入报文,位于MPLS嵌套标签的栈底。由于转发路径的封装操作是在接入交换设备1上执行的,接入交换设备1根据表12所示的被动流表项2’知道报文的下一跳交换设备是汇聚交换设备1,因此转发路径第一跳是汇聚交换设备1的下一跳交换设备,即核心交换设备,其路标被压在栈顶。其它交换设备的路标按照压入的顺序依次是接入交换设备3的路标和汇聚交换设备2的路标。
[0351] 414-415,各骨干交换设备(如汇聚交换设备1、核心交换设备和汇聚交换设备2)接收经过防火墙服务设备处理的数据和路径信息,分别根据表3所示的主动流表项,执行剥离最上层路标发送至下一跳交换设备的动作。详细参照数据转发的方法一的描述,不再赘述。
[0352] 416-417,接入交换设备3接收防火墙处理的数据和鉴权服务设备的标识。根据表10中接入交换设备3的主动流表项,匹配了鉴权服务设备的标识后,执行动作剥离鉴权服务设备的标识,然后发送至端口8。数据则通过端口8到达鉴权服务设备。
[0353] 418-420,接入交换设备3通过端口8接收经过鉴权处理的数据。鉴权处理的数据,也称为鉴权服务设备处理的数据。经过鉴权处理的数据,根据表12所示的接入交换设备3的被动流表项2’,如果匹配了处理后数据的特征信息,则执行动作封装下一跳服务设备的标识(如负载均衡服务设备的标识),以及从接入交换设备3至负载均衡服务设备相连交换设备(如接入交换设备2)的路径信息,通过端口5发送至汇聚交换设备2。
[0354] 接入交换设备3至负载均衡服务设备相连交换设备(如接入交换设备2)的路径信息与数据转发的方法一类似,只需要把接入交换设备3理解为数据转发的方法一中与源端相连的交换设备,把负载均衡服务设备理解为目的端,把接入交换设备2理解为与目的端相连的交换设备。在SDN系统二中,接入交换设备3的封装动作类似于数据转发的方法一中的虚拟交换设备1。
[0355] 具体地,接入交换设备3至负载均衡服务设备相连交换设备(如接入交换设备2)路径信息包括接入交换设备2的路标,接入交换设备3可以通过协议栈来携带接入交换设备3至负载均衡服务设备相连交换设备(如接入交换设备2)的路径信息。接入交换设备3按照SDN控制设备选择的转发路径,将接入交换设备3至负载均衡服务设备相连交换设备(如接入交换设备2)的路径信息压入MPLS栈。
[0356] 接入交换设备3至负载均衡服务设备相连交换设备(如接入交换设备2)的路径信息包括接入交换设备2的路标。接入交换设备3将负载均衡服务设备的标识压入栈底,将接入交换设备2的路标压入栈底的上一层。封装了负载均衡服务设备的标识以及接入交换设备3至接入交换设备2的路径信息的MPLS栈,如图19所示。
[0357] 如图19所示,负载均衡服务设备是路径上的最后一跳,其标识被第一个压入报文,位于MPLS嵌套标签的栈底。由于转发路径的封装操作是在接入交换设备3上执行的,接入交换设备3根据表12所示的被动流表项2’知道报文的下一跳交换设备是汇聚交换设备2,因此转发路径第一跳是汇聚交换设备2的下一跳交换设备,即接入交换设备2,其路标被压在栈顶。
[0358] 421-422,骨干交换设备(如汇聚交换设备2)根据表3所示的主动流表项,执行剥离最上层路标发送至下一跳交换设备的动作。详细参照数据转发的方法一的描述,不再赘述。
[0359] 423-424,接入交换设备2接收数据和负载均衡服务设备的标识。根据表10中接入交换设备2的主动流表项,匹配了负载均衡服务设备的标识后,执行动作剥离负载均衡服务设备的标识,然后发送至端口9。鉴权服务设备处理的数据则通过端口9到达负载均衡服务设备。假如负载均衡服务设备根据预定策略,选择了数据库1进行数据处理。
[0360] 425-427,接入交换设备2通过端口9接收经过负载均衡处理的数据。负载均衡处理的数据也称为负载均衡服务设备处理的数据。经过负载均衡服务设备处理的数据,根据表12所示的接入交换设备2的被动流表项2’,如果匹配了处理后数据的特征信息,则执行动作封装下一跳服务设备的标识(如数据库1服务设备的标识),通过端口8发送至虚拟交换设备
2。
[0361] 由于转发路径的封装操作是在接入交换设备2上执行的,接入交换设备2根据表12所示的被动流表项2’知道报文的下一跳交换设备是虚拟交换设备2,虚拟交换设备2即是与数据库服务设备相连的交换设备,因此不用封装路径信息。
[0362] 428-429,虚拟交换设备2接收经过负载均衡的数据和数据库1服务设备的标识。根据表10中虚拟交换设备2的主动流表项,匹配了数据库1服务设备的标识后,执行动作剥离数据库1服务设备的标识,然后发送至端口6。数据则通过端口6到达数据库1。
[0363] 430,数据库1对数据进行处理,比如进行数据的查询、删除、增加等等。由于数据库1是整个服务链中的最后一跳服务,数据库1也可以称为目的服务,数据库1所在的主机也可以称为目的服务设备。
[0364] 经过数据库1处理的数据,返回给用户的时候,不用再经过各服务设备,通过边缘交换设备和骨干交换设备返回给用户即可,与数据转发的方法一类似。
[0365] 本发明实施例SDN控制设备会根据网络拓扑信息下发一部分流表项,这部分流表项可以称为主动流表项。主动流表项与业务无关,只与网络拓扑信息相关,主动流表项下发后,即可以被报文的转发反复使用。当接收到报文之后,如果没有匹配的流表项,SDN控制设备会向部分交换设备下发另一部分流表项,这部分流表项可以称为被动流表项。被动流表项与业务相关,但是只向部分交换设备下发。在服务链的情况下,SDN控制设备只向与用户相连的交换设备、以及与服务设备相连的交换设备下发被动流表项即可,而不用向位于骨干网络的其他交换设备下发被动流表项,与用户相连的交换设备、以及与服务设备相连的交换设备封装到达下一跳服务设备相连的交换设备的转发路径,骨干层的交换设备依据主动流表项执行相应操作。因此减少了SDN控制设备向骨干网络的交换设备下发的流表项,从而减少了流表项对SDN控制设备和骨干交换设备资源的占用。
[0366] 以上以具有7个交换设备和4个服务设备的SDN系统为例进行了介绍,本发明实施例可以适用于有任意个交换设备和任意个服务设备的SDN系统。
[0367] 如果只有一个服务设备的情况下,则与用户相连的交换设备封装这个服设备的标识,然后与数据转发的方法一类似,只是除了路径信息外,还需要同时传递服务设备的标识。与这个服务设备相连的交换设备,接收到服务设备的标识和数据后,删除服务设备的标识,然后把数据发送给服务设备处理。
[0368] 以下以有至少两个服务设备为例来说明,SDN系统包括SDN控制设备和至少两个服务设备,所述至少两个服务设备包括第一服务设备和第二服务设备,所述第一服务设备与第一交换设备相连,所述第二服务设备与第二交换设备相连,具体的数据转发的流程参照图20:
[0369] 500,SDN控制设备根据SDN系统的网络拓扑信息,向与第一服务设备相连的第一交换设备发下发第一转发规则(如表10所示的主动流表项)。
[0370] 下发也可以描述为返回、或者也可以描述为发送。
[0371] 501,SDN控制设备根据SDN系统的网络拓扑信息,向与第二服务设备相连的第二交换设备下发第三转发规则(如表10所示的主动流表项)。
[0372] 502、如果所述第一交换设备与所述第二交换设备不相连,即所述第一交换设备与所述第二交换设备之间还会经过其他骨干交换设备,则SDN控制设备还会根据SDN系统的网络拓扑信息,向第三交换设备下发第四转发规则(如表5所示的主动流表项),向第i交换设备下发第i+1转发规则(如表5所示的主动流表项),i为大于等于4的自然数。
[0373] 503、如果与用户相连的交换设备,接收到用户发送的数据后,在本地没有查找到匹配的流表项,则与用户相连的交换设备向SDN控制设备请求该数据的转发规则。SDN控制设备发向与用户相连的交换设备下发被动流表项(如表11),也会向与服务设备相连的交换设备下发被动流表项(如表12)。假如向第一交换设备下发的被动流表项称为第二转发规则。
[0374] 601-602、所述第一交换设备接收数据和所述第一服务设备的标识,然后根据从所述SDN控制设备接收的所述第一转发规则,删除所述第一服务设备的标识,将所述数据发送给所述第一服务设备处理。
[0375] 如果在第一交换设备之前,没有经过服务设备,则所述数据是用户相连的交换设备发出来的原始数据;如果在第一交换设备之前,经过了至少一个服务设备,则所述数据是经过上一跳服务设备处理的数据。
[0376] 603、接收经过所述第一服务设备处理的数据。
[0377] 当所述第一交换设备与所述第二交换设备相连时,执行步骤604a。
[0378] 当所述第一交换设备与所述第二交换设备不相连时,执行步骤604b-608b。
[0379] 604a,所述第一交换设备根据从所述SDN控制设备接收的第二转发规则,将所述第一服务设备处理的数据和所述第二服务设备的标识,发送给所述第二交换设备。
[0380] 604b,所述第一交换设备根据从所述SDN控制设备接收的第二转发规则,将所述第一服务设备处理的数据和所述第二服务设备的标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第三交换设备是所述第一交换设备相连的交换设备。
[0381] 具体地,所述第一交换设备至所述第二交换设备的路径信息包括在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标,所述第四交换设备是与所述第三交换设备相连的交换设备。
[0382] 所述第一交换设备将在所述第一服务设备处理的数据的转发路径上第四交换设备至所述第二交换设备的路标、以及所述第二服务设备的标识依次压入协议栈中,所述第二服务设备的标识压入栈底,所述第二交换设备的路标压入所述栈底的上一层,所述第四交换设备的路标压入栈顶。所述第一交换设备进行路径信息的封装类似于数据转发的方法一中的虚拟交换设备1,详见数据转发的方法一中的描述,只是需要把第二服务设备的标识封装于栈底。
[0383] 605b-606b,所述第三交换设备用于根据所述第四交换设备的路标,查询所述第三交换设备保存的第四转发规则,根据所述第四转发规则,确定所述第四交换设备在所述第三交换设备的端口,将所述第一服务设备处理的数据通过所述第四交换设备在所述第三交换设备的端口转发给所述第四交换设备。
[0384] 如果所述第四交换设备不是所述第二交换设备,所述第三交换设备还用于根据所述第四转发规则,从所述第一交换设备至第二交换设备的路径信息中剥离所述第四交换设备的路标,从而得到所述三交换设备至第二交换设备的路径信息,向所述第四交换设备发送所述第三交换设备至第二交换设备的路径信息。
[0385] 所述第三交换设备用于根据所述第四交换设备的路标识别所述数据的下一跳交换设备为所述第四交换设备,所述第四交换设备的路标包括以下至少之一:所述第四交换设备的设备标识、所述第四交换设备在所述第三交换设备上的出端口标识、或者所述第四交换设备与所述第三交换设备之间的链路标识。
[0386] 607b-608b,第i交换设备的动作类似于图20的第三交换设备和数据转发的方法一中的骨干交换设备,删除最上层交换设备的路标,并且发送第一服务设备处理的数据和删除最上层路标的路径信息给下一跳交换设备。直到第一服务设备处理的数据传送到了第二交换设备,详细过程不再赘述。
[0387] i是自然数,则i大于等于4。
[0388] 当所述第二服务设备为目的服务设备时,执行步骤610-611。
[0389] 当所述第二服务设备不为目的服务设备时,执行步骤610-615。
[0390] 610-611、所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备发送所述第一服务设备处理的数据。
[0391] 612-613、所述第二交换设备接收所述第二服务设备处理的数据。根据从SDN控制设备接收的第五转发规则(如表12的被动流表项),发送第二服务设备处理的数据及第三服务设备的标识给所述第二服务设备的下一跳交换设备。第二交换设备根据从SDN控制设备接收的第五转发规则,也有可能还会发送路径信息给下一跳交换设备。
[0392] 第二交换设备的动作类似于图20的第一交换设备的动作,不再赘述。
[0393] 614-615、假如有j个服务设备,第j服务设备与第j交换设备相连,j是自然数,且j大于等于3。
[0394] 第j交换设备接收经过上一跳(第j-1)服务设备处理的数据,以及第j服务设备的标识,根据SDN控制设备的转发规则的指示,删除第j服务设备的标识,发送j-1服务设备处理的数据给第j服务设备。
[0395] 第j交换设备的动作类似于第一交换设备。不再赘述。
[0396] 根据网络拓扑情况,反复执行步骤614-615,直到数据被传递到了最后一跳服务设备(即目的服务设备)。
[0397] 以上实施例以单个SDN控制设备为例说明,本发明同样适用于多个SDN控制设备组成的集群。
[0398] 对于需要实现服务的场景,本发明实施例提供的方法也能够达到提升SDN中设备资源利用率的效果。第一交换设备接收到第一转发规则(也可以称为主动流表项)之后,不需要每次在数据转发时都获取第一转发规则,相应地SDN控制设备不需要在每次转发数据时都给第一交换设备下发第一转发规则,即第一转发规则在后续的数据转发中可以被重复使用,降低了SDN控制设备对第一交换设备下发第一转发规则的数量,相应降低了SDN控制设备的设备资源占用率,SDN控制设备与第一交换设备之间的网络带宽也会相应得到节省,同时,第一交换设备不需要在每次数据转发时都接收第一转发规则,提高了第一交换设备的资源利用率。
[0399] 并且,当数据转发需要通过不同服务设备时,按照服务链中各服务设备的先后顺序实现数据的转发,在数据转发过程中,转发路径上的交换设备(如图15的汇聚交换设备1、核心交换设备、汇聚交换设备2),如果不是与服务设备相连的交换设备,则能够依据在数据转发的方法一中的转发规则对数据进行转发,不需要每次接收到数据时都获取转发规则,节省了控制设备的资源开销,在实现服务的同时提高了SDN中设备的资源利用率。而且还能够根据用户的需求,合理安排经过各服务设备的先后顺序。
[0400] 参考图21,图21为本发明实施例提供的一种SDN控制设备800的组成示意图,所述SDN控制设备800应用于SDN系统,所述SDN系统除了包括SDN控制设备800外,还包括n个交换设备,其中第一交换设备是与数据的源端相连的交换设备,第n交换设备是与数据的目的端相连的交换设备,其中,n≥3。该SDN控制设备包括:网络通信单元801和转发规则管理单元802。
[0401] 所述网络通信单元801,用于从所述第一交换设备接收转发规则的请求,所述请求中携带所述数据的特征信息,并将所述请求发送给所述转发规则管理单元802。
[0402] 所述转发规则管理单元802,用于根据所述数据的特征信息,确定第一转发规则和第n转发规则,所述第一转发规则用于指示所述第一交换设备根据所述第一转发规则,将所述数据和所述第一交换设备至第n交换设备的路径信息发送给与所述第一交换设备相连的第二交换设备;所述第n转发规则用于指示所述第n交换设备将所述数据转发给所述目的端。
[0403] 所述网络通信单元801,还用于向所述第一交换设备返回第一转发规则,向所述第n交换设备返回所述第n转发规则。
[0404] SDN控制设备800还可以包括拓扑管理单元803,用于收集所述SDN系统的网络拓扑信息,并将所述网络拓扑信息发送给转发规则管理单元802。
[0405] 转发规则管理单元802还用于根据所述网络拓扑信息,确定第二转发规则,所述第二转发规则用于指示所述第二交换设备,通过所述第一交换设备至第n交换设备的路径信息中第三交换设备的路标,获得所述第三交换设备在所述第二交换设备上的端口,通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据,所述第三交换设备是与第二交换设备相连的交换设备。所述第二转发规则的匹配条件为所述第三交换设备的路标,所述第二转发规则的执行动作为通过所述第三交换设备在所述第二交换设备上的端口向所述第三交换设备转发所述数据。所述第三交换设备在所述第二交换设备上的端口即通过所述第三交换设备的路标获得的。所述网络通信单元801,还用于向所述第二交换设备下发第二转发规则。
[0406] 转发规则管理单元802进一步用于根据所述SDN系统的网络拓扑信息,确定第i转发规则,所述第i转发规则用于指示所述第i交换设备,通过第i-1交换设备至第n交换设备的路径信息中第i+1交换设备的路标,获得所述第i+1交换设备在所述第i交换设备的端口,将所述数据通过所述第i+1交换设备在所述第i交换设备的端口转发给所述第i+1交换设备。所述第i-1交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+1交换设备至所述第n交换设备的路标。如果第i+1交换设备不是所述第n交换设备,所述第i转发规则还用于指示所述第i交换设备剥离所述第i+1交换设备的路标,向所述第i+1交换设备发送第i交换设备至第n交换设备的路径信息,所述第i交换设备至第n交换设备的路径信息包括在所述数据转发路径上第i+2交换设备至所述第n交换设备的路标,所述第i+2交换设备是与所述第i+1交换设备相连的交换设备,i为整数且大于等于3,并且i小于n。所述网络通信单元801,还用于向第i交换设备下发所述第i转发规则。
[0407] 转发规则管理单元802具体用于根据所述数据的特征信息和所述SDN系统的网络拓扑信息,选择数据转发路径,所述第一交换设备至第n交换设备的路径信息包括在所述数据转发路径上所述第三交换设备至所述第n交换设备的路标。
[0408] 所述第三交换设备的路标包括以下至少之一:所述第三交换设备的设备标识、所述第三交换设备在所述第二交换设备上的端口标识、或者所述第三交换设备与所述第二交换设备之间的链路标识。
[0409] SDN控制设备800的功能具体参照数据转发的方法一中SDN控制设备的相关描述,在此不再赘述。
[0410] 由于第二交换设备和第i交换设备(骨干交换设备)接收到的是主动流表项,不需要在每次转发数据时都给骨干交换设备下发流表项,即主动流表项在后续的数据转发中可以被重复使用,降低了对骨干交换设备下发流表项的数量,相应降低了SDN控制设备的设备资源占用率,SDN控制设备与骨干交换设备之间的网络带宽也会相应得到节省。
[0411] 参考图22,图22为本发明实施例提供的一种SDN控制设备900的组成示意图,所述SDN控制设备900应用于SDN系统,所述SDN系统除了包括SDN控制设备900外,还包括至少两个服务设备,所述至少两个服务设备包括第一服务设备和第二服务设备,所述第一服务设备与第一交换设备相连,所述第二服务设备与第二交换设备相连。该SDN控制设备包括:网络通信单元901,转发规则管理单元902和拓扑管理单元903。
[0412] 拓扑管理单元903用于收集所述SDN系统的网络拓扑信息,并将所述网络拓扑信息发送给转发规则管理单元902。
[0413] 转发规则管理单元902用于根据所述SDN系统的网络拓扑信息,确定第一转发规则,所述第一转发规则用于指示所述第一交换设备删除所述第一服务设备的标识,将数据发送给所述第一服务设备处理。
[0414] 所述网络通信单元901,用于接收转发规则的请求,所述请求中携带特征信息,并将所述请求发送给所述转发规则管理单元902。
[0415] 所述转发规则管理单元902,还用于根据所述请求中携带的特征信息,确定第二转发规则,当所述第一交换设备与所述第二交换设备相连时,所述第二转发规则用于指示第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,发送给所述第二交换设备;或当所述第一交换设备与所述第二交换设备不相连时,所述第二转发规则用于指示所述第一交换设备将所述第一服务设备处理的数据和所述第二服务设备的标识,以及所述第一交换设备至所述第二交换设备的路径信息发送给第三交换设备,所述第三交换设备为所述第一交换设备相连的交换设备。
[0416] 所述网络通信单元901还用于向所述第一交换设备返回所述第一转发规则和所述第二转发规则。
[0417] 转发规则管理单元902还用于根据所述SDN系统的网络拓扑信息,确定第三转发规则,当所述第二服务设备为目的服务设备时,所述第三转发规则用于指示所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据;或当所述第二服务设备不为目的服务设备时,所述第三转发规则用于指示所述第二交换设备根据第三转发规则,删除所述第二服务设备的标识,向所述第二服务设备转发所述第一服务设备处理的数据,接收所述第二服务设备处理的数据。所述网络通信单元901还用于向所述第二交换设备返回所述第三转发规则。
[0418] 转发规则管理单元902还用于根据所述SDN系统的网络拓扑信息,确定第四转发规则,第四转发规则用于指示所述第三交换设备根据所述第四交换设备的路标,确定所述第四交换设备在所述第三交换设备的端口,将所述第一服务设备处理的数据通过所述第四交换设备在所述第三交换设备的端口转发给所述第四交换设备。
[0419] 如果所述第四交换设备不是所述第二交换设备,所述第四转发规则还用于指示所述第三交换设备向所述第四交换设备发送第三交换设备至第二交换设备的路径信息。所述第四转发规则具体指示所述第三交换设备从所述第一交换设备至第二交换设备的路径信息中剥离所述第四交换设备的路标,从而得到所述三交换设备至第二交换设备的路径信息,向所述第四交换设备发送所述第三交换设备至第二交换设备的路径信息。
[0420] 所述网络通信单元901还用于向所述第三交换设备返回所述第四转发规则。
[0421] SDN控制设备900的功能具体参照数据转发的方法二中SDN控制设备的相关描述,在此不再赘述。
[0422] 第一交换设备接收到第一转发规则(也可以称为主动流表项)之后,不需要每次在数据转发时都获取第一转发规则,相应地SDN控制设备不需要在每次转发数据时都给第一交换设备下发第一转发规则,即第一转发规则在后续的数据转发中可以被重复使用,降低了SDN控制设备对第一交换设备下发第一转发规则的数量,相应降低了SDN控制设备的设备资源占用率,SDN控制设备与第一交换设备之间的网络带宽也会相应得到节省,同时,第一交换设备不需要在每次数据转发时都接收第一转发规则,提高了第一交换设备的资源利用率。
[0423] 并且,当数据转发需要通过不同服务设备时,按照服务链中各服务设备的先后顺序实现数据的转发,在数据转发过程中,SDN控制设备根据网络拓扑信息,向转发路径上的交换设备(如图15的汇聚交换设备1、核心交换设备、汇聚交换设备2)下发主动流表项,不需要每次接收到数据时都下发转发规则,节省了SDN控制设备的资源开销,在实现服务的同时提高了SDN中设备的资源利用率。而且还能够根据用户的需求,合理安排经过各服务设备的先后顺序。
[0424] SDN系统三
[0425] 上述的数据转发的方法一有一个源端,一个目的端,可以称为单播的方案。当有一个源端,多个目的端的数据转发的方法,可以称为组播或广播的方案。下面以组播为例详细介绍。
[0426] 多个成员可以组成一个组播组,一个成员在组播组内发送的数据(或业务报文),只有组播组内的成员能够接收到。组播组的成员,可以是移动终端(包括但不限于笔记本、手机、平板、掌上电脑、POS机、MP3、导航仪)、固定终端(包括但不限于台式机、打印机、传真机、数投、数字电视)或无线接入终端等设备。
[0427] 以组播组有4个成员,分别连接不同的交换设备,通过DC网络的骨干交换设备实现数据的转发为例,说明本发明实施例的数据转发方法在组播组中的实现方式。如图23所示,为本发明实施例关于组播组实现数据或业务报文转发的实现方式网络架构图。
[0428] 图23中,组播组拥有4个成员:成员1、2、3、4,分别通过虚拟交换设备1、接入交换设备1、接入交换设备3、虚拟交换设备2接入DC网络。组播组成员跨DC骨干网络收发组播报文。
[0429] 组播组成员1向其它成员发送组播报文:发往成员2的组播报文,经虚拟交换设备1,端口2入,端口5出,经接入交换设备1,端口7入,端口1出;发往成员3的组播报文,经虚拟交换设备1,端口2入,端口5出,经接入交换设备1,端口7入,端口4出,经汇聚交换设备1,端口6入,端口3出,经核心交换设备,端口5入,端口9出,经汇聚交换设备2,端口8入,端口4出,经接入交换设备3,端口5入,端口8出;发往成员4的组播报文,经虚拟交换设备1,端口2入,端口5出,经接入交换设备1,端口7入,端口4出,经汇聚交换设备1,端口6入,端口3出,经核心交换设备,端口5入,端口9出,经汇聚交换设备2,端口8入,端口7出,经接入交换设备2,端口6入,端口8出,经虚拟交换设备2,端口3入,端口1出。
[0430] 组播组成员2向其它成员发送组播报文:发往成员1的组播报文,经接入交换设备1,端口1入,端口7出,经虚拟交换设备1,端口5入,端口2出;发往成员3的组播报文,经接入交换设备1,端口1入,端口4出,经汇聚交换设备1,端口6入,端口3出,经核心交换设备,端口
5入,端口9出,经汇聚交换设备2,端口8入,端口4出,经接入交换设备3,端口5入,端口8出;
发往成员4的组播报文,经接入交换设备1,端口1入,端口4出,经汇聚交换设备1,端口6入,端口3出,经核心交换设备,端口5入,端口9出,经汇聚交换设备2,端口8入,端口7出,经接入交换设备2,端口6入,端口8出,经虚拟交换设备2,端口3入,端口1出。
[0431] 组播组成员3向其它成员发送组播报文:发往成员1的组播报文,经接入交换设备3,端口8入,端口5出,经汇聚交换设备2,端口4入,端口8出,经核心交换设备,端口9入,端口
5出,经汇聚交换设备1,端口3入,端口6出,经接入交换设备1,端口4入,端口7出,经虚拟交换设备1,端口5入,端口2出;发往成员2的组播报文,经接入交换设备3,端口8入,端口5出,经汇聚交换设备2,端口4入,端口8出,经核心交换设备,端口9入,端口5出,经汇聚交换设备
1,端口3入,端口6出,经接入交换设备1,端口4入,端口1出;发往成员4的组播报文,经接入交换设备3,端口8入,端口5出,经汇聚交换设备2,端口4入,端口7出,经接入交换设备2,端口6入,端口8出,经虚拟交换设备2,端口3入,端口1出。
[0432] 组播组成员4向其它成员发送组播报文:发往成员1的组播报文,经虚拟交换设备2,端口1入,端口3出,经接入交换设备2,端口8入,端口6出,经汇聚交换设备2,端口7入,端口8出,经核心交换设备,端口9入,端口5出,经汇聚交换设备1,端口3入,端口6出,经接入交换设备1,端口4入,端口7出,经虚拟交换设备1,端口5入,端口2出;发往成员2的组播报文,经虚拟交换设备2,端口1入,端口3出,经接入交换设备2,端口8入,端口6出,经汇聚交换设备2,端口7入,端口8出,经核心交换设备,端口9入,端口5出,经汇聚交换设备1,端口3入,端口6出,经接入交换设备1,端口4入,端口1出;发往成员3的组播报文,经虚拟交换设备2,端口1入,端口3出,经接入交换设备2,端口8入,端口6出,经汇聚交换设备2,端口7入,端口4出,经接入交换设备3,端口5入,端口8出。
[0433] 数据转发的方法三
[0434] 一、主动流表项
[0435] 为了实现组播下的数据转发,SDN控制设备需要收集或者更新组播组信息,与收集或者更新网络拓扑信息类似。下面分三种情况介绍:
[0436] 当有新的成员加入组播组时,触发组播组信息更新的过程如下:新的组播组成员向组播路由器发送加入组播组请求;接收到加入组播组请求的交换设备由于没有SDN控制设备下发的流表项,向SDN控制设备上报PacketIn报文;SDN控制设备模拟组播路由器,分析组播组成员的加入组播组请求,然后更新组播组信息;SDN控制设备向所述交换设备发送加入组播组应答;所述上报PacketIn报文的交换设备发送加入组播组应答到所述加入组播组的成员。
[0437] 当有组播组成员退出组播组时,触发组播组信息更新的过程如下:需要退出组播组的成员向组播路由器发送退出组播组请求;接收到该组播组请求的交换设备由于没有匹配的流表项,向SDN控制设备上报PacketIn报文;SDN控制设备模拟组播路由器,分析组播组成员的退出组播组请求,然后更新组播组信息;SDN控制设备向所述交换设备发送退出组播组应答;所述上报PacketIn报文的交换设备发送退出组播组应答到所述退出组播组的成员。
[0438] 当SDN控制设备查询组播组时,触发组播组信息更新过程如下:SDN控制设备定时向与组播组成员相连的交换设备发送PacketOut组播组查询请求;交换设备发送组播组查询请求到组播组成员所在端口;组播组成员返回组播组查询应答;交换设备由于没有匹配的流表项,向SDN控制设备上报PacketIn报文;SDN控制设备分析组播组查询结果,更新组播组信息。
[0439] SDN控制设备了解了组播组信息后,需要创建组播组标识。本发明实施例的组播组标识具备唯一性,用以区别DC网络内其它组播组,或能够拥有设备标识的其它类型的对象,可以单独,也可以与其它设备标识组合,标定报文转发路径。比如本发明实施例中,SDN控制设备为组播组创建的组播组标识为4。
[0440] 与数据转发的方法一中的主动流表项类似,SDN控制设备需要根据网络拓扑信息,向各骨干交换设备下发主动流表项。详见数据转发的方法一中的描述,不再赘述。
[0441] 在如图23所示增加了组播组的SDN系统,SDN控制设备除了向各骨干交换设备下发数据转发的方法一中的主动流表项外,还需要向与汇集点所在的交换设备以及与目的端(也叫成员)相连的交换设备下发另一主动流表项,下面详细描述。需要说明的是,汇集点的概念源于组播转发树中共享树的设计,以某路由器作为路由树的根,该路由为汇集点(Rendezvous Point,RP)。组播源到达组播组中其它成员的转发路径存在交集,任意两条相交的交点,即汇集点。也就是说,组播组中汇集点所在的交换设备,是通过两条以上路径向所述组播组内成员转发数据的交换设备,是组播报文近接收端的复制分发点。组播组汇集点所在的交换设备,是一个组播组成员到达其它组播组成员的转发路径存在交集,最接近组播组成员的交点即组播组汇集点。如图23所示的SDN系统中,汇集点所在的交换设备如接入交换设备1、汇聚交换设备2。通过汇集点所在的交换设备进行数据的复制转发,能够进一步节省DC网络带宽。组播组汇集点所在的交换设备随组播组成员变化而变化。
[0442] 当组播组成员发生变化时,会触发汇集点所在交换设备的更新,例如增加或删除组播组汇集点所在的交换设备的信息等。SDN控制设备更新组播组汇集点信息。组播组汇集点信息包括组播组成员以及对应的组播报文入端口和出端口。其中,组播报文从组播源发往组播组汇集点所在交换设备,组播报文在组播组汇集点所在交换设备上的接收端口为入端口,从组播组汇集点所在交换设备发往组播接收者,组播报文在组播组汇集点所在交换设备的发送端口为出端口。
[0443] SDN控制设备获取汇集点所在的交换设备后,生成组播组汇集点信息,以图23为例的汇集点所在的交换设备信息如表13所示:
[0444]
[0445] 表13
[0446] 表13中,接入交换设备1对成员1,设置的出端口7,入端口4;对成员2,设置的出端口1,入端口4;对成员3、4,设置的出端口4,入端口1、7。汇聚交换设备2对成员3,设置的的出端口4,入端口8;对成员4,设置的出端口7,入端口8;对成员1、2,设置的出端口8,入端口4、7。
[0447] 对于汇集点所在交换设备,SDN控制设备下发的主动流表项需要符合以下特征:
[0448] 匹配条件:组播组汇集点入端口、组播组标识;
[0449] 执行动作:
[0450] 发往接收者:复制组播报文,对复制的组播报文剥离组播组标识,将原始组播报文发送至接收者出端口
[0451] 发往组播组下一汇集点:复制组播报文,对复制的组播报文封装到达组播组下一汇集点的转发路径,将封装好的组播报文发送至下一跳出端口。
[0452] 例如,图23中对汇集点所在的交换设备的主动流表项如表14所示:
[0453]
[0454] 表14
[0455] 表14中,SDN控制设备对接入交换设备1在不同端口收到的组播报文进行复制分发:成员3、4发出的组播报文在端口4收到,去往成员1的发送至端口7,去往成员2的剥离外层路标,发送至端口1;成员1发出的组播报文在端口7收到,去往成员2的,剥离外层路标,发送至端口1,去往成员3、4的封装到达汇集点所在交换设备(汇聚交换设备2)的转发路径,发送至端口4。SDN控制设备对汇聚交换设备2在不同端口收到的组播报文进行复制分发:成员3发出的组播报文在端口4收到,去往成员4的封装到达虚拟交换设备2的转发路径,发送至端口7,去往成员1、2的封装到接入交换设备1的转发路径,发送至端口8;成员4发出的组播报文在端口7收到,去往成员3的发送至端口4,去往成员1、2的封装到达组播组汇集点接入交换设备1的转发路径,发送至端口8;成员1、2发送的组播报文在端口8收到,去往成员3的发送至端口4,去往成员4的封装到达虚拟交换设备2的转发路径,发送至端口7。
[0456] SDN控制设备对与组播的目的端(也称为接收者)相连交换设备下发的另一主动流表项需要符合以下特征:
[0457] 匹配条件:组播报文端口、组播组标识;
[0458] 执行动作:对组播报文剥离组播组标识,将原始组播报文发送至目的端。
[0459] 例如,图23中对与组播的目的端(也称为接收者)相连交换设备下发的流表项如表15所示:
[0460]
[0461] 表15
[0462] 表15中,对于发往成员1的组播报文,SDN控制设备为虚拟交换设备1下发主动流表项,匹配组播报文端口5、组播组1标识,剥离组播报文组播组1标识,将原始组播报文发送至端口2;对于发往成员3的组播报文,SDN控制设备为接入交换设备3下发主动流表项,匹配组播报文端口5、组播组1标识,剥离组播报文组播组1标识,将原始组播报文发送至端口8;对于发往成员4的组播报文,SDN控制设备为虚拟交换设备2定制主动流表项,匹配组播报文端口3、组播组1标识,剥离组播报文组播组1标识,将原始组播报文发送至端口1。
[0463] 如实现数据转发的方法一类似,当交换设备的端口状态发生变化时,SDN控制设备会更新组播组信息。如图24所示:
[0464] 当汇集点所在交换设备添加出端口时,在汇集点所在交换设备上添加此出端口为发送端口,其它入端口为接收端口的组播主动流表项。
[0465] 当汇集点所在交换设备删除出端口时,在汇集点所在交换设备上删除以此出端口为发送端口的所有组播主动流表项。
[0466] 当汇集点所在交换设备添加入端口时,在汇集点所在交换设备上添加以其他出端口为发送端口,此入端口为接收端口的组播主动流表项
[0467] 汇集点所在交换设备删除出端口时,在汇集点所在交换设备上删除以此出端口为接收端口的所有组播主动流表项。
[0468] 二、被动流表项
[0469] 组播组中的成员,向组播组内的其它成员发送数据或业务报文时,发送组播报文至与其相连的交换设备,该相连的交换设备由于没有匹配的流表项,向SDN控制设备上报PacketIn报文。SDN控制设备分析组播报文特征,依据当前网络拓扑信息以及组播组信息,选择合适的转发路径。被动流表项符合以下特征:
[0470] 匹配条件:端口、报文特征;
[0471] 执行动作:对组播报文依次封装组播组标识、到达组播组中下一汇集点所在交换设备的转发路径,将封装好的组播报文发送至下一跳出端口。
[0472] 例如图23所示的网络架构图中,SDN控制设备下发的被动流表项如表16所示:
[0473]
[0474] 表16
[0475] 表16中,对成员1发出的组播报文,被动流表项指示虚拟交换设备1匹配报文端口2、报文特征,对原始组播报文封装组播组1标识,将封装好的组播报文发送至端口5;对成员
2发出的去往成员1的组播报文,被动流表项指示接入交换设备1匹配报文端口1、报文特征,对原始组播报文封装组播组1标识,将封装好的组播报文发送至端口7;对成员2发出的去往成员3、4的组播报文,被动流表项指示接入交换设备1匹配报文端口1、报文特征,对原始组播报文依次封装组播组1标识、到达汇聚交换设备2的转发路径,将封装好的组播报文发送至端口4;对成员3发出的组播报文,被动流表项指示接入交换设备3匹配报文端口8、报文特征,对原始组播报文封装组播组1标识,将封装好的组播报文发送至端口5;对成员4发出的组播报文,被动流表项指示虚拟交换设备2匹配报文端口1、报文特征,对原始组播报文依次封装组播组1标识、到达汇聚交换设备2的转发路径,将封装好的组播报文发送至端口3。在实际实现的时候,可能只有某一个成员作为源端,发出报文,因此只采用上述表16的一条被动流表项即可。
[0476] 三、数据转发
[0477] 以组播组中汇集点所在的交换设备表示为第一交换设备(如图23中接入交换设备1或汇聚交换设备2)为例说明,所述数据的源端和所述数据的多个目的端组成组播组,所述数据从所述源端到达目的端经过所述第一交换设备:
[0478] 所述第一交换设备用于接收所述数据和所述组播组的标识;
[0479] 根据从所述SDN系统的SDN控制设备接收的转发规则(如表14的主动流表项),所述第一交换设备用于执行如下之一:
[0480] 当所述第一交换设备与所述目的端相连时,所述第一交换设备用于删除所述组播组标识,向所述目的端转发所述数据;
[0481] 当所述第一交换设备与第二交换设备相连时,所述第一交换设备用于将所述数据和所述组播组标识,转发给所述第二交换设备,所述第二交换设备为所述目的端相连的交换设备或者所述组播组中另一汇集点所在的交换设备;或
[0482] 当所述第一交换设备与所述目的端、以及与第二交换设备不相连时,所述第一交换设备用于将所述数据、所述组播组标识,以及所述第一交换设备到所述第二交换设备的路径信息发送给第三交换设备,所述第二交换设备为所述目的端相连的交换设备或者所述组播组中另一汇集点所在的交换设备,所述第三交换设备为所述第一交换设备相连的交换设备。
[0483] 所述第一交换设备到所述第二交换设备的路径信息包括在所述数据转发路径上第四交换设备至所述第二交换设备的路标,所述第四交换设备是在所述数据转发路径上与所述第三交换设备相连的交换设备。
[0484] 所述第一交换设备用于将所述数据转发路径上所述第四交换设备至所述第二交换设备的路标、以及所述组播组标识依次压入协议栈中,所述组播组标识压入所述协议栈的栈底,所述第二交换设备的路标压入所述栈底的上一层,所述第四交换设备的路标压入栈顶,以使所述协议栈携带所述路径信息和所述组播组标识。与封装服务设备的标识类似,不再赘述。
[0485] 所述第三交换设备用于根据所述第四交换设备的路标识别所述数据的下一跳交换设备为所述第四交换设备,所述第四交换设备的路标包括以下至少之一:所述第四交换设备的设备标识、所述第四交换设备在所述第三交换设备上的出端口标识、或者所述第四交换设备与所述第三交换设备之间的链路标识。
[0486] 所述第一交换设备还用于根据所述转发规则,复制所述数据,当所述第一交换设备与所述另一目的端不相连、并且与第五交换设备不相连时,所述第一交换设备将所述数据、所述组播组标识,以及所述第一交换设备至第五交换设备的路径信息发送给第六交换设备,所述第六交换设备与所述第一交换设备相连,所述第五交换设备是与所述另一目的端相连的交换设备或其他汇集点所在的交换设备。
[0487] 另外需要说明的是,在所述数据转发路径上汇集点所在的交换设备之外的其他骨干交换设备的动作类似于图20的第三交换设备和数据转发的方法一中的骨干交换设备,删除最上层交换设备的路标,并且将删除最上层路标的路径信息发送给下一跳交换设备。直到数据传送到了目的端所在的交换设备或者另一汇集点所在的交换设备,详细过程不再赘述。
[0488] 组播或者广播的方案,与数据转发的方法二类似,由于数据有多个目的端,SDN控制设备在下发转发路径时,不能一次性下发所有目的端的转发路径,需要依据每个汇集点所在的交换设备将路径分解成多段,每段的起始是源端所在的交换设备或者汇集点所在的交换设备,终止是目的端所在的交换设备或者另一汇集点所在的交换设备,每一段的路径下发方式与数据转发一所示的实现方式类同。因此,详细的数据转发的流程参见数据转发的方法一和数据转发的方法二中的描述,不再赘述。
[0489] 对于需要实现组播的场景,本发明实施例提供的方法也能够达到提升SDN中设备资源利用率的效果。汇集点所在的交换设备(如第一交换设备)接收到转发规则(也可以称为流表项)之后,不需要每次在数据转发时都获取一次转发规则,相应地SDN控制设备不需要在每次转发数据时都给第一交换设备下发转发规则,即转发规则在后续的数据转发中可以被重复使用,降低了SDN控制设备对第一交换设备下发转发规则的数量,相应降低了SDN控制设备的设备资源占用率,SDN控制设备与第一交换设备之间的网络带宽也会相应得到节省,同时,第一交换设备不需要在每次数据转发时都接收转发规则,提高了第一交换设备的资源利用率。
[0490] 并且,在数据转发过程中,转发路径上的汇聚交换设备(如图23的接入交换设备1、汇聚交换设备2),则能够依据SDN控制设备下发的转发规则(如表14的主动流表项)对数据进行转发,不需要每次接收到数据时都获取转发规则,节省了控制设备的资源开销,在实现组播的同时提高了SDN中设备的资源利用率。本发明实施例SDN控制设备会根据网络拓扑信息下发一部分流表项,这部分流表项可以称为主动流表项。主动流表项与业务无关,只与网络拓扑信息相关,主动流表项下发后,即可以被报文的转发反复使用。当接收到报文之后,如果没有匹配的流表项,SDN控制设备会向部分交换设备下发另一部分流表项,这部分流表项可以称为被动流表项。被动流表项与业务相关,但是只向部分交换设备下发。在组播的情况下,SDN控制设备只向与源端相连的交换设备下发被动流表项即可,而不用向位于骨干网络的其他交换设备下发被动流表项,与源端相连的交换设备、以及汇集点所在交换设备封装到达第二交换设备的转发路径,骨干层的交换设备依据主动流表项执行相应操作。因此减少了SDN控制设备向骨干网络的交换设备下发的流表项,从而减少了流表项对SDN控制设备和骨干交换设备资源的占用。并且,通过对汇集点所在交换设备下发主动流表项,将数据或业务报文在发送给组播组成员的同时复制到下一个汇集点所在的交换设备,组播报文不在源端,而在汇集点所在在交换设备复制分发,节省了DC网络带宽。
[0491] 网络安全
[0492] DC一般支持多租户,允许各租户共享其物理网络,构建各自独立的逻辑网络。租户之间的逻辑网络相互隔离,网络空间可以重叠。因此,为了提升网络安全,SDN控制设备还会为租户分配租户标识。然后在步骤204,SDN控制设备还会通过下发第一转发规则,将该租户标识发送给第一交换设备。
[0493] 则在图5所示的实施例中,表6变更为表6’。
[0494]
[0495] 表6’
[0496] 该被动流表项1包括如下信息:
[0497] 匹配条件:所述数据的特征信息;
[0498] 执行动作:封装从虚拟交换设备1至虚拟交换设备2的路径信息和租户标识,然后发送至端口5。虚拟交换设备2是与所述数据的目的端相连的交换设备。
[0499] 在步骤205,SDN控制设备还会通过下发第n转发规则,将匹配租户标识的匹配条件和剥离租户标识的执行动作下发给第n交换设备,则表7变更为表7’。
[0500]
[0501] 表7’
[0502] 在步骤206,第一交换设备将该租户标识压在栈底,第n交换设备的路标压在栈底的上一层。所述第一交换设备还根据所述第一转发规则,将租户标识发送给与所述第一交换设备相连的第二交换设备,以通过所述第二交换设备发送给所述第n交换设备。
[0503] 骨干交换设备的动作与步骤207-208类似,不再赘述。
[0504] 在步骤209,所述第n交换设备根据所述第n转发规则,通过所述租户标识和所述数据的特征信息确定所述数据的目的端,然后将所述数据发送给所述目的端。
[0505] 为了实现网络安全,只需要更改SDN控制设备向边缘交换设备下发的被动流表项即可,SDN控制设备向骨干交换设备不用再下发主动流表项,因此实现起来非常简单。而且上述实现数据转发的方法,骨干交换设备接收到转发规则(如前面实施例的主动流表项)之后,不需要每次在数据转发时都获取一次转发规则,节省了控制设备和交换设备的资源开销,提高了SDN系统中资源的利用率。
[0506] 参考图25,图25为本发明实施例提供的一种SDN控制设备600的结构示意图。该SDN控制设备600包括处理器601,存储器602以及通信端口603。
[0507] 处理器601用于执行程序。本实施例中所述程序可以包括程序代码,所述程序代码包括计算机操作指令。处理器可能是中央处理器CPU,或者是被配置成实施本发明实施例的一个或多个集成电路。处理器所执行的程序为前述实施例中SDN控制设备执行各个步骤所对应的程序;
[0508] 存储器602,用于存储所述处理器所执行的程序;
[0509] 通信端口603,用于与交换设备通信。
[0510] 具体的功能参照前面实施例中SDN控制设备的描述。
[0511] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0512] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0513] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些端口、设备或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0514] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0515] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0516] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0517] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。