[0021] 为了使本申请所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0022] 请参阅图1,其为本发明提供的基于用户策略的SDN报文处理方法可以适用的SDN系统一种实施例的结构示意图。所述SDN系统100包括SDN交换机110、SDN控制器120和多个用户设备130;其中所述多个用户设备130可以通过所述SDN交换机110连接到互联网140,并且所述SDN控制器120还可以连接到所述SDN交换机110。在所述SDN系统100中,所述SDN控制器120主要基于开放流协议对系统内部的网络设备进行统一的管控和调度,包括链路发现、拓扑管理、策略制定、流表项下发等;而所述SDN交换机110主要用于根据所述SDN控制器120下发的流表项处理并转发所述用户设备130的用户报文。
[0023] 本申请提供的SDN交换机110可以在内部预先配置有基于用户策略的默认流表,所述默认流表可以根据用户策略配置文件自动生成,其具有多个分别对应于不同优先级的流表项,主要用于指示所述SDN交换机120在设备启动时对流表项用户报文进行区分,并根据不同的优先级对所述流表项用户报文进行选择性转发或者丢弃,以实现在不影响高优先级业务响应速度的情况下减少报文对于所述SDN控制器120的冲击。
[0024] 为更好地理解本申请提供的基于用户策略的SDN报文处理方法,以下首先介绍本申请提供的基于用户策略的默认流表。所述默认流表可以包括多个流表项,每一个流表项分别对应不同的优先级,本实施例以6个优先级为例。
[0025] 具体地,请参阅表1,其示意性地表示出本申请提供的基于用户策略的默认流表一种可选的流表结构。
[0026]编号 源MAC 目的MAC 报文类型 源IP 目的IP 端口号 动作 优先级
1 MAC1 MAC2 0x0800 IP1 IP2 Any Forward 6
… … … … … … … … …
N … … … … … … … …
[0027] 表1
[0028] 从表1可以看出,所述基于用户策略的默认流表的每一个流表项可以包括以下字段:
[0029] (1)表项编号(ID):用于记录所述流表项在默认流表的编号信息;
[0030] (2)源MAC地址(SMAC):用于记录用户报文的源MAC地址,不需要匹配填Null,任意匹配填Any;
[0031] (3)目的MAC地址(DMAC):用于记录用户报文的源MAC地址,不需要匹配填Null,任意匹配填Any;
[0032] (4)报文类型(Type):用户记录用户报文的具体类型,比如0x0800代表IP报文,0x0800代表ARP报文,不需要匹配填Null,任意匹配填Any;
[0033] (5)源IP地址(SIP):用于记录用户报文的源IP地址,不需要匹配填Null,任意匹配填Any;
[0034] (6)目的IP地址(DIP):用于记录用户报文的目的IP地址,不需要匹配填Null,任意匹配填Any;
[0035] (7)端口号(Port):用于记录用户报文的协议端口号,不需要匹配填Null,任意匹配填Any;
[0036] (8)动作(Action):用于记录用户报文的处理动作,即Drop或者Forward,Drop动作代表直接将用户报文丢弃,Forward动作代表将用户报文上报给SDN控制器;
[0037] (9)优先级(Priority):用于记录用户报文的优先级,范围可以是1至6,其中6代表最高优先级,1代表最低优先级。
[0038] 在具体实施例中,所述基于用户策略的默认流表可以由所述SDN交换机110在启动时根据预先配置的用户策略配置文件生成;如果所述SDN交换机110不存在所述用户策略配置文件,所述默认流表也可以根据使用者在所述SDN交换机110启动时直接输入的策略命令而生成;如果不存在所述用户策略配置文件而且用户在所述SDN交换机110启动时也没有输入策略命令,则所述SDN交换机110可以自动添加一条丢弃策略命令并写入用户策略配置文件。
[0039] 为更好地理解上述SDN系统100中所述SDN交换机110是如何根据所述默认流表进行SDN用户报文处理,以下结合图2所示的流程图,详细介绍本申请提供的基于用户策略的SDN报文处理方法的具体流程。应当理解,本申请基于用户策略的SDN报文处理方法可以适用于图1所示的SDN系统100的SDN交换机110或者其他的SDN设备,以下将所述方法的执行主体统称为SDN设备。请参阅图2,本申请提供的基于用户策略的SDN报文处理方法主要包括以下步骤:
[0040] 步骤S1,SDN设备启动后检查用户策略配置文件是否存在;
[0041] 本实施例中,所述SDN设备可以具体为图1所示的SDN系统100的SDN交换机110,其在启动之后,可以首先检测内部存在用户预先配置用于生成默认流表的用户策略配置文件,如果存在所述用户策略配置文件,本方法转至步骤S5,否则,本方法转至步骤S2。
[0042] 步骤S2,判断当前是否接收到用户直接输入的策略命令;
[0043] 具体而言,如果所述SDN设备内部不存在所述用户策略配置文件,用户可以选择直接地向所述SDN设备输入策略命令,因此,在本步骤中,所述SDN设备可以判断是否接收到用户直接输入的策略命令,如果是,则本方法转至步骤S3;如果用户没有直接输入所述策略命令,则本方法转至步骤S4。
[0044] 步骤S3,所述SDN设备根据所述策略命令生成用户策略配置文件;
[0045] 具体地,如果所述SDN设备判断出当前用户直接输入策略命令,其可以根据所述策略命令生成相应的用户策略配置文件,也即是说,即使所述SDN设备原来没有预先配置所述用户策略配置文件,用户也可以在所述SDN设备启动的时候通过策略命令的方式在所述SDN设备内部生成所述用户策略配置文件。
[0046] 步骤S4,所述SDN设备自动添加丢弃策略命令并写入到用户策略配置文件;
[0047] 具体地,如果所述SDN设备原本没有预先配置好用户策略配置文件,且用户选择不向所述SDN设备输入策略命令,此时所述SDN设备可以自动添加一条丢弃策略命令,即是低优先级的丢弃任意报文的策略命令,并且将所述策略命令保存到用户策略配置文件之中。也即是说,在这种情况下,所述SDN设备可以自动生成所述用户策略配置文件,并且将相应的用户策略自动配置为丢弃任意报文。
[0048] 步骤S5,所述SDN设备读取所述用户策略配置文件;
[0049] 在本步骤中,如果所述SDN设备内部预先配置有所述用户策略配置文件,所述SDN设备可以直接将其读取出来;如果所述SDN设备内部没有预先配置用户策略配置文件但是用户直接向所述SDN设备输入了策略命令,所述SDN设备可以读取根据用户当前直接输入的策略命令生成的用户策略配置文件;如果所述SDN设备内部没有预先配置用户策略配置文件而且用户也没有向所述SDN设备输入策略命令,所述SDN设备可以读取其基于自动添加的丢弃策略命令而保存的用户策略配置文件。
[0050] 步骤S6,所述SDN设备根据所述用户策略配置文件生成默认流表;
[0051] 具体地,所述SDN设备可以根据在步骤S5中读取到的用户策略配置文件,生成基于用户策略的默认流表,所述默认流表的结构可以参照表1的相关描述,其可以包括多个流表项,每一个流表项分别对应不同的优先级,且用于指示根据流表项用户报文的不同优先级对所述流表项用户报文进行选择性转发或者丢弃。
[0052] 步骤S7,所述SDN设备与SDN控制器建立报文传送通道;
[0053] 所述SDN设备可以基于开放流协议在其与所述SDN控制器之间建立开放流通道,所述开放流通道可供所述SDN设备向所述SDN控制器上报相关的用户报文。
[0054] 步骤S8,所述SDN设备根据所述默认流表的相关流表项,将所述用户报文通过所述报文传送通道传送给所述SDN控制器或者直接将所述用户报文丢弃。
[0055] 相较于现有技术,在本申请提供的基于用户策略的SDN报文处理方法和系统中,所述SDN设备可以生成基于用户策略生成默认流表,并且根据所述默认流表在系统启动时可以根据流表项用户报文的不同优先级进行不同的处理,即是将高优先级的流表项用户报文上报给所述SDN控制器,而将低优先级的流表项用户报文直接丢弃,从而实现既不影响高优先级业务的响应速度,又可以有效地减少报文对于所述SDN控制器的冲击。
[0056] 基于上述基于用户策略的SDN报文处理方法和系统,本申请还进一步提供一种可以采用上述SDN报文处理方法和系统的SDN设备,所述SDN设备可以为如图1所示的SDN系统100中的SDN交换机110。具体地,请参阅图3,所述SDN设备300可以包括:
[0057] 默认流表生成模块310,用于根据用户策略配置文件生成默认流表,所述默认流表包括多个分别对应于不同优先级的流表项;
[0058] 通道建立模块320,用于在所述SDN设备300和SDN控制器之间建立报文传送通道;
[0059] 报文处理模块330,用于根据所述默认流表的相关流表项,将高优先级的用户报文通过所述报文传送通道传送给所述SDN控制器,并且将低优先级的用户报文直接丢弃。
[0060] 在具体实施例中,所述SDN设备还可以进一步包括:判断模块340,用于在SDN设备300启动之后判断所述用户策略配置文件是否预先配置在所述SDN设备300内部;其中,所述默认流表生成模块310具体用于在所述用户策略配置文件预先配置在所述SDN内部时,直接根据所述预先配置的用户策略配置文件生成所述默认流表。
[0061] 在具体实施例中,所述SDN设备还可以进一步包括:策略命令接收模块350,用于在所述SDN设备300内部没有预先配置所述用户策略配置文件时接收到用户直接输入的策略命令;其中,所述默认流表生成模块310具体用于在接收到用户直接输入的策略命令时根据所述策略命令生成用户策略配置文件。
[0062] 在具体实施例中,所述SDN设备还可以进一步包括:丢弃命令添加模块360,用于在所述SDN设备300内部没有预先配置所述用户策略配置文件也没有接收到用户直接输入的策略命令时,自动添加丢弃策略命令保存到用户策略配置文件之中;其中,所述默认流表生成模块310具体用于所述丢弃策略命令相对应的用户策略配置文件,生成丢弃任意用户报文的低优先级流表项。
[0063] 应当理解,本实施例提供的SDN设备300的功能模块310至360可以为软件模块或者软硬件结合的功能模块,其可以通过处理器执行而实现如上所述的功能。并且,所述SDN设备300还可以具有其他功能模块来实现图上所述的基于用户策略的SDN用户报文处理方法各个具体步骤,具体可以参阅方法实施例的相应描述。
[0064] 另外,所属技术领域的技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,并被通讯设备内部的处理器执行,前述的程序在被执行时处理器可以执行包括上述方法实施例的全部或者部分步骤。其中,所述处理器可以作为一个或多个处理器芯片实施,或者可以为一个或多个专用集成电路(Application Specific Integrated Circuit,ASIC)的一部分;而前述的存储介质可以包括但不限于以下类型的存储介质:闪存(Flash Memory)、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0065] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。