[0049] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0051] 下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0052] 本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种双向转发检测方法的技术方案,该技术方案应用于软件定义(Software Defined Networking,SDN)网络。
[0053] 则具体地,本发明的较佳的实施例中,上述双向转发检测方法中,设定一流量控制器,以控制处于同一网络的多个交换机设备之间的数据报文转发路径。本发明的较佳的实施例中,由于双向转发检测方法应用于SDN网络中,因此上述流量控制器即为SDN控制器,该SDN控制器拥有其下同一网络内的所有交换机设备的网络控制权,即所有交换机设备的配置权限都集中在上述SDN控制器中。
[0054] 则如图1所示,上述双向转发检测方法具体包括:
[0055] 步骤S1,交换机设备接收到未经过转发流表匹配的关联于数据报文的数据报文流,并将数据报文流上传到流量控制器中;
[0056] 步骤S2,流量控制器提取数据报文流中的特征信息,并结合预设的转发信息处理形成一条新的数据报文转发路径;
[0057] 步骤S3,流量控制器分别向关联于数据报文转发路径的源端交换机设备和目的端交换机设备下发相应的双向转发检测报文,以触发相应的双向转发检测流程。
[0058] 上述步骤S3中,相应的源端交换机设备以及目的端交换机设备分别对双向转发检测流程进行监测,并在双向转发检测流程进行失败后向流量控制器发送相应的检测失败通知;
[0059] 流量控制器在接收到检测失败通知后返回步骤S2,以重新处理形成新的数据报文转发路径。
[0060] 在具体实施例中,上述双向转发检测方法中,每个交换机设备首先检测通过的数据报文流是否经过转发流表匹配:若已经经过转发流表匹配,即能够根据转发流表进行转发的,则交换机设备直接按照转发流表对其进行转发;若未经过转发流表匹配,即无法根据转发流表进行转发的,则交换机设备将响应的数据报文流上报至流量控制器处理。
[0061] 流量控制器接收到上述数据报文流之后,首先提取其中的特征信息,并结合流量控制器中预设的转发信息,为该数据报文流构造一条新的数据报文转发路径,同时根据其中的特征信息处理形成相应的双向转发检测报文。随后流量控制器将上述双向转发检测报文下发到上述新构建的数据报文转发路径中的目的端交换机设备和源端交换机设备,以触发关联于该数据报文转发路径的双向转发检测流程。本发明的较佳的实施例中,对一条转发路径进行双向转发检测的方法在现有技术中已经有较多实现方式,在此不再赘述。
[0062] 本发明的较佳的实施例中,每个交换机设备需要向SDN控制器上报物理地址信息(MAC地址信息)的变化情况。具体地,对于每个交换机设备而言,若其中增加一条MAC地址信息,则需要向SDN控制器进行上报,以供SDN控制器记录;若其中老化一条MAC地址信息,则同样需要向SDN控制器上报,以供SDN控制器进行相应的去记录,从而达到SDN控制器中的MAC地址信息与每个交换机设备中的信息的同步。
[0063] 本发明的较佳的实施例中,上文中所述的从数据报文流中提取得到的特征信息,实际为关联于数据报文流的报文流特征码。进一步地,本发明的较佳的实施例中,所谓报文流特征码,其中包括关联于该数据报文流的源端物理地址信息(源MAC地址信息)、目的端物理地址信息(目的端MAC地址信息)、源端网络地址信息(源端IP地址信息)以及目的端网络地址信息(目的端IP地址信息)。上述流特征码在下文中会做进一步详述。
[0064] 本发明的较佳的实施例中,上文中所述的SDN控制器中预设的转发信息,是指在SDN控制器中维护的物理地址信息(MAC地址信息)以及链路层发现协议(Link Layer Discovery Protocol,LLDP)信息。
[0065] 换言之,本发明的较佳的实施例中,SDN控制器根据上述报文流特征码、MAC地址信息以及LLDP信息,可以为该数据报文流构建形成一条新的数据报文转发路径。随后SDN控制器将上述构建完成的双向转发检测报文分别发送至关联于上述新构建的数据报文转发路径的源端交换机设备,以及目的端交换机设备,以触发源端和目的端之间的双向转发检测流程。
[0066] 本发明的较佳的实施例中,上述步骤S3中,SDN控制器根据上述特征信息,可以构造具有预设格式的检测控制报文,并进而根据检测控制报文构造形成相应的双向转发检测报文。
[0067] 具体地,本发明的较佳的实施例中,上述具有预设格式的检测控制报文可以为经过扩展的私有的Experimenter报文。则上述经过扩展的私有Experimenter报文的格式下表a所示,其中包括:
[0068] 用于表示上述Experimenter报文的报文流向的控制类型字段(Experimenter Type)。例如,该字段中,若赋值为2,则表示相应的双向转发检测报文是从SDN控制器方向到相应的交换机设备。
[0069] 用于表示双向转发检测报文的发送速率的速率指示字段(Mbps);
[0070] 用于表示关联于双向转发检测报文的目的端物理地址的目的端物理地址指示字段(目的MAC地址);
[0071] 用于表示关联于双向转发检测报文的源端物理地址的源端物理地址指示字段(源MAC地址);
[0072] 用于指示关联于双向转发检测报文的目的端网络地址的目的端网络地址指示字段(目的IP地址);
[0073] 用于表示关联于双向转发检测报文的源端网络地址的源端网络地址指示字段(源IP地址)。
[0074]
[0075] 表a
[0076] 本发明的较佳的实施例中,上述私有Experimenter报文中的Experimenter值可以为255,需要向开放式网络基金会(Open Network Fundation,ONF)组织申请。
[0077] 本发明的较佳的实施例中,仍然如表a所示,上述私有Experimenter报文中还包括一般的Experimenter报文中的字段内容,例如版本字段(Version)、报文类型字段(Type)、报文长度字段(Length)以及事务序号字段(Transaction ID)等。
[0078] 本发明的较佳的实施例中,如上文中所述,上述SDN控制器从报文中提取四元组的报文流特征码(目的端MAC地址信息、源端MAC地址信息、目的端IP地址信息以及源端IP地址信息),并构建形成相应的私有Experimenter报文,并根据该Experimenter报文,构建相应的双向转发检测报文。
[0079] 进一步地,本发明的较佳的实施例中,上述双向转发检测报文实际为包括上述Experimenter报文的经过封装的报文。
[0080] 本发明的较佳的实施例中,上述SDN控制器在向新构建的数据报文转发路径的目的端和源端分别下发双向转发检测报文后,向该数据报文转发路径上的所有交换机设备下发相应的转发流表,以更新交换机设备上的转发流表。
[0081] 本发明的较佳的实施例中,回到步骤S1中,如图2所示,上述步骤S1具体包括:
[0082] 步骤S11,交换机设备检测数据报文流是否经过转发流表的匹配:
[0083] 若数据报文流经过转发流表的匹配,则转向步骤S14;
[0084] 步骤S12,交换机设备将数据报文流上报至流量控制器,同时丢弃关联于数据报文流的检测控制报文;
[0085] 步骤S13,流量控制器接收数据报文流,随后转向步骤S2;
[0086] 步骤S14,交换机设备检测关联于数据报文流的检测控制报文是否经过转发流表的匹配:
[0087] 若检测报文经过转发流表的匹配,则交换机设备根据转发流表中相应的转发规则,对数据报文流进行转发;
[0088] 若检测报文未经过转发流表的匹配,则转至步骤S12。
[0089] 本发明的较佳的实施例中,上述步骤S11和S14表示,只有数据报文流(SDN流)以及相应的检测控制报文(Experimenter报文)均经过转发流表的匹配,交换机设备才能判断该数据报文流经过转发流表的匹配,并根据转发流表中预设的转发规则对其进行转发。
[0090] 本发明的较佳的实施例中,若其中一项不匹配(即SDN流未经过转发流表匹配,或者Experimenter报文未经过转发流表匹配),则交换机设备会将数据报文流上报至SDN控制器,以供控制器进行新的数据报文转发路径的构建,以及触发新的双向转发检测流程,同时交换机设备会将相应的Experimenter报文丢弃,SDN控制器之后会根据上报的数据报文流中提取的报文流特征码构建新的Experimenter报文。
[0091] 本发明的较佳的实施例中,上述步骤S11-S14中,交换机设备实际应用了经过扩展的开放流(OpenFlow,OF)转发流表,如下表b所示。经过扩展的OF转发流表中,定义了新的match字段以及相应的动作和描述,其应用结果即如上述步骤S11-S14所示。
[0092]
[0093] 表b
[0094] 本发明的较佳的实施例中,执行上述步骤S3之后,为了进行双向转发检测流程,SDN控制器将下发到源端交换机设备的双向转发检测报文的源端地址和目的端地址进行倒置。换言之,下发到源端交换机设备的双向转发检测报文的源端MAC地址和目的端MAC地址倒置,以及源端IP地址和目的端IP地址倒置。
[0095] 相应地,SDN控制器将下发到目的端交换机设备的双向转发检测报文的源端地址和目的端地址进行倒置。换言之,下发到目的端交换机设备的双向转发检测报文的源端MAC地址和目的端MAC地址倒置,以及源端IP地址和目的端IP地址倒置。
[0096] 本发明的较佳的实施例中,上述双向转发检测报文被封装在IP报文中并被下发至相应的交换机设备。如图3所示,被封装的双向转发检测报文中,包括以太网头,相应的IP报文的IP报文头,以及关联于双向转发检测报文的净荷部分(Payload)。
[0097] 进一步地,本发明的较佳的实施例中,仍然如图3所示,上述净荷部分中包括:
[0098] 用于指明引起传输链路故障的原因的Cause字段;其中赋值为0表示无故障,赋值为1表示链路等待检测报文超时,赋值为2表示链路失效或者中断(down)。
[0099] 用于指明本地交换机设备的状态的State字段;其中包括DOWN、INIT以及UP等三个状态。
[0100] 用于指明双向转发检测报文的报文序列号的Sequence字段,对于双向转发检测流程而言,请求报文和回应报文的序列号必须保持一致,即都应该等于上述Sequence字段中的赋值。
[0101] 用于指明双向转发检测报文的类型的Type字段,其中赋值为1表示该报文为请求报文,赋值为2表示该报文为回应报文。
[0102] 则本发明的较佳的实施例中,如图4所示,对于一个交换机设备而言,其在双向转发检测流程中的状态变换如下文描述:
[0103] 交换机设备的初始态为DOWN,发送的双向转发检测报文的State应当为DOWN。当交换机设备处于DOWN状态时,若其接收到的报文的State为DOWN,则交换机设备的状态迁移到INIT。
[0104] 则当当交换机处于INIT状态时,如果在规定的时间未收到对端的报文(Timer超时),则交换机设备的状态迁回到DOWN。
[0105] 本地交换机设备的状态为UP的时候,标志会话建立成功。
[0106] 因此。如上文中所述,整个报文检测的会话过程是三次握手的过程。
[0107] 综上所述,本发明技术方案中,在SDN网络中,采用SDN控制器统一进行交换机设备的配置控制,根据交换机设备上报的未经过流表匹配的数据报文流构建新的转发路径,并构建新的Experimenter报文,从而构建新的双向转发检测报文并下发至该转发路径上的源端和目的端,以触发源端和目的端之间通过该新的转发路径进行的双向转发检测流程,SDN控制器同时向该转发路径上的所有交换机设备下发相应的转发流表,以供交换机设备进行更新。上述双向转发检测流程不会影响到正常数据业务的传输,同时能够保证双向转发检测的时效性,能够及时发现数据传输链路的故障并且及时处理,保证数据传输的安全性和稳定性。
[0108] 以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。