[0034] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035] SDN是一种新型的网络架构,其可以通过OpenFlow(开放流)技术将网络设备的控制面与数据面进行分离,从而实现对网络流量的灵活控制。在SDN中,包含实现控制面功能的控制器和若干实现数据面功能的交换机。
[0036] 图1为本发明实施例中基于SDN的策略路由方法的流程示意图。如图1所示,所述SDN中包括交换机和控制器,该方法应用于SDN中的控制器,包括:
[0037] 步骤S11,控制器预先设置SDN策略路由选项。
[0038] 在本步骤中,本发明的控制器预先设置SDN策略路由选项,如表1所示。
[0039] 表1
[0040]
[0041]
[0042] 如表1所示,SDN策略路由选项包括匹配字段和动作字段,其中,[0043] 匹配字段为匹配数据流的特征,包括以下一个或多个:802.1p优先级、VLAN ID、源/目的MAC地址、源/目的IP地址、TCP/UDP源/目的端口号、IP优先级、DSCP的优先级、IP的协议类型字段;
[0044] 动作字段包括以下一个或多个:指定转发路径、修改802.1p优先级、修改IP优先级、修改DSCP的优先级、丢弃;其中,指定转发路径和丢弃必须任选一个,修改802.1p优先级可以和指定转发路径同时选择,修改IP优先级可以和指定转发路径同时选择,修改DSCP的优先级可以和指定转发路径同时选择。
[0045] 步骤S12,控制器接收交换机上报的MAC地址信息,并根据交换机的MAC地址信息配置SDN策略路由表。
[0046] 在本步骤中,SDN中的交换机首先建立和控制器的通道,需要初始化OpenFlow通道。然后交换机通过私有的Experimenter报文,上报自己的MAC地址。
[0047] 本发明实施例对私有Experimenter消息进行了扩展,扩展的Experimenter消息格式如图2所示,Experimenter值为255需要向ONF组织申请;Experimenter type值为1表明是从交换机到控制器;此外,在本发明实施例中的私有扩展的Experimenter消息中,增加了交换机的MAC地址信息,该交换机的MAC地址信息包括交换机自己的MAC地址(Own MAC Address)作为交换机的标识符,交换机的端口ID(Port id)表明SDN交换机的交换端口,MAC地址(MAC address)是该交换端口下学习到MAC address。
[0048] 控制器根据所述交换机自己的MAC地址、交换机的端口ID、以及所述交换端口下学习到MAC地址,基于预先设置的SDN策略路由选项配置SDN策略路由表。
[0049] 步骤S13,接收SDN交换机上报的未匹配流表的报文,将所述报文和所述SDN策略路由表进行匹配,将匹配的指定转发路径添加在流表中下发给SDN交换机,使SDN交换机根据所述指定转发路径转发所述报文。
[0050] 在本步骤中,当所述报文进入到SDN网络后,查询流表,如果所述报文匹配流表,则将所述报文根据流表中的转发路径进行转发;如果所述报文未匹配流表,则将所述报文上报给控制器。
[0051] 控制器将所述报文匹配策略路由表,如果所述报文匹配策略路由表,则控制器基于策略路由表中匹配结果下发流表,以使交换机根据下发流表中的指定转发路径转发所述报文;如果所述报文未匹配策略路由表,则丢弃所述报文。
[0052] 所述报文匹配策略路由表的具体过程如图3所示,包括:
[0053] S131,如果所述报文未匹配流表,在将所述报文上报给控制器之前,交换机在所述报文中添加特征码,并将包括特征码的报文封装成Packet_In报文上送给控制器。
[0054] 在本步骤中,所述报文包括目的MAC地址、源MAC地址、S-TAG(S标签)和Payload(负载)。特征码可以包括交换机MAC地址和入端口,将特征码添加在S-TAG字段中,如图4所示。
[0055] S132,控制器从接收到的Packet_IN报文中提取特征码,根据特征码匹配策略路由表,如果匹配,进行步骤S133;如果未匹配,进行步骤S136。
[0056] 步骤S133,如果匹配策略路由表,获取匹配的动作。
[0057] 步骤S134,判断所述动作中是否包含指定转发路径,如果是,进行步骤S135;如果否,进行步骤S136。
[0058] 步骤S135,在指定的转发路径上下发流表。
[0059] 步骤S136,丢弃所述Packet_IN报文。
[0060] 图5为本发明实施例中另一种基于SDN的策略路由方法的流程示意图。如图5所示,所述SDN包括交换机和控制器,该方法应用于SDN中的交换机,包括:
[0061] 步骤51,交换机向控制器上报MAC地址信息,以使控制器根据交换机的MAC地址信息配置SDN策略路由表。
[0062] 步骤52,当交换机接收到报文后,将所述报文和流表进行匹配,如果匹配,进行步骤S53;如果未匹配,进行步骤S54。
[0063] 步骤S53,将所述报文根据流表中的转发路径进行转发。
[0064] 步骤S54,将所述报文上报给控制器,以使控制器将所述报文和所述SDN策略路由表进行匹配。
[0065] 步骤S55,接收控制器基于策略路由表匹配的指定转发路径下发的流表,交换机根据流表中的指定转发路径转发所述报文。
[0066] 本实施例中交换机侧的具体技术细节可以参看上述的控制器侧对应的技术细节,故在此不赘述。
[0067] 图6为本发明实施例中基于SDN的策略路由系统的示意图。如图6所示,用户通过SDN接入网络,在SDN中,包含实现控制面功能的控制器和若干实现数据面功能的交换机,该系统包括:
[0068] SDN交换机,用于向SDN控制器上报MAC地址信息;向SDN控制器上报未匹配流表的报文;如果接收到SDN控制器下发的包含匹配的指定转发路径的流表;
[0069] SDN控制器,用于如果接收SDN交换机上报的MAC地址信息,并根据交换机的MAC地址信息配置SDN策略路由表;如果接收SDN交换机上报的未匹配流表的报文,将所述报文和所述SDN策略路由表进行匹配,将匹配的指定转发路径添加在流表中下发给SDN交换机;
[0070] SDN交换机,还用于根据所述指定转发路径转发所述报文。
[0071] 基于SDN的策略路由系统的具体技术细节和前述的基于SDN的策略路由方法对应的技术细节类似,故在此不赘述。
[0072] 实施例一
[0073] 下面将列举一个基于本发明的基于SDN的策略路由方法和系统的实施例。
[0074] 如图7所示,假设用户通过SDN接入服务器,在SDN中,包含实现控制面功能的控制器和若干实现数据面功能的交换机S0、S1、S2和S3、S4。
[0075] 控制器预先设置SDN策略路由选项;扩展Experimenter消息,交换机通过Experimenter消息向控制器上报交换机的MAC地址信息,以使控制器基于预先设置的SDN策略路由选项配置SDN策略路由表。
[0076] 假设用户1到服务器流量沿着路径S0-S2-S4进行转发;用户2到服务器流量沿着路径S0-S1-S3-S4进行转发。
[0077] 可以通过修改SDN策略路由表中指定转发路径,将修改用户1的策略路由沿着路径S0-S1-S3-S4进行转发。
[0078] 传统的策略路由算法是分布式的,只能作用于单个转发节点。如果构建的网络非常庞大,配置工作将会非常复杂和容易出错。其次,实现全网统一的端对端的路由策略对管理员的要求非常高。
[0079] 和现有技术相比,本发明基于SDN架构,所有策略路由算法配置任务序列都集中在SDN控制器,所以配置工作非常集中并且修改方便,一旦控制器生成端对端策略路由以后,统一下发流表到转发路径上的所有SDN交换机,策略统一且明了,因此基于SDN进行的策略路由,配置集中并且修改方便。
[0080] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0081] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0082] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。