CN108881064A - 报文信息获取方法和发送方法 - Google Patents
报文信息获取方法和发送方法 Download PDFInfo
- Publication number
- CN108881064A CN108881064A CN201810671732.1A CN201810671732A CN108881064A CN 108881064 A CN108881064 A CN 108881064A CN 201810671732 A CN201810671732 A CN 201810671732A CN 108881064 A CN108881064 A CN 108881064A
- Authority
- CN
- China
- Prior art keywords
- message
- switching equipment
- packet
- data message
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及报文信息获取方法和发送方法,所述方法包括:接收交换设备发送的第一packet‑in报文;获取所述第一packet‑in报文携带的数据报文以及报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态。本公开通过接收交换设备发送的第一packet‑in报文,解析所述第一packet‑in报文以获取数据报文及报文状态,可以获得数据报文在交换设备不同阶段的报文状态。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种报文信息获取方法和发送方法。
背景技术
SDN(Software Defined Network,软件定义网络)是一种新型网络创新架构,其核心思想是将网络设备的控制层面与转发层面分离,以实现对流量的灵活控制,为核心网络以及应用的创新提供良好的平台。
在SDN网络中,包括交换设备(如交换机)和控制器。控制器用于根据用户的配置或者动态运行的协议生成流表(Flow Table),并将流表发送到交换设备。交换设备用于接收来自控制器的流表,并根据流表来匹配和处理报文。
发明内容
根据本公开的一方面,提供了一种报文信息获取方法,应用于软件定义网络SDN的控制器中,所述方法包括:
接收交换设备发送的第一packet-in报文;
获取所述第一packet-in报文携带的数据报文以及报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态;
其中,所述处理动作包括所述交换设备对所述数据报文的头部修改动作。
在一种可能的实现方式中,所述转发状态包括所述第一packet-in报文携带的所述数据报文对应的入接口、出接口,所述方法还包括:
获取所述SDN控制管理的各个交换设备之间的邻居关系;
根据所述报文状态和所述邻居关系获取所述数据报文的转发路径,所述转发路径包括转发所述数据报文的各交换设备。
在一种可能的实现方式中,根据所述报文状态获取所述数据报文的转发路径,包括:
在所述第一packet-in报文的转发状态中的入接口的邻居关系为空时,确定所述交换设备为转发路径的所述起始交换设备;
在所述第一packet-in报文的转发状态中的出接口的邻居关系为空时,确定所述交换设备为转发路径的所述结束交换设备。
在一种可能的实现方式中,所述报文状态还包括用于标识所述数据报文的第一报文标识,
根据所述报文状态获取所述数据报文的转发路径,包括:
在所述第一packet-in报文的转发状态中的出接口的邻居关系不为空时,根据所述出接口的邻居关系确定所述交换设备的下一跳交换设备;
根据所述报文状态确定所述第一报文标识;
查找所述下一跳交换设备发送的第二packet-in报文,并获取所述第二packet-in报文携带的数据报文的第二报文标识;
当所述第一报文标识和所述第二报文标识相同、且所述第二packet-in报文携带的数据报文的转发状态中的出接口的邻居关系不为空时,根据所述第二packet-in报文的出接口的邻居关系确定所述下一跳交换设备的下一跳交换设备。
在一种可能的实现方式中,所述转发状态包括所述数据报文的出接口,所述方法还包括:
当所述数据报文的出接口包括多个时,确定所述数据报文为广播/组播报文。
在一种可能的实现方式中,所述第一packet-in报文还包括用于标识所述交换设备的转发引擎的运行状态信息。
在一种可能的实现方式中,所述方法还包括:
根据所述运行状态信息调整所述交换设备中报文的队列长度和/或调整队列中报文的优先级。
根据本公开的另一方面,提供了一种报文信息发送方法,应用于软件定义网络SDN的交换设备中,所述方法包括:
当接收到数据报文时,确定所述数据报文的报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态;
根据所述数据报文及所述报文状态生成第一packet-in报文;及
发送所述第一packet-in报文给控制器;
其中,所述处理动作包括所述交换设备对所述数据报文的头部修改动作。
在一种可能的实现方式中,所述第一packet-in报文还包括第三报文信息,所述第三报文信息用于标识所述交换设备的转发引擎的运行状态信息。
在一种可能的实现方式中,所述方法还包括:
将邻居关系发送给软件定义网络SDN的控制器,以使所述控制器获取所述交换设备的邻居关系。根据本公开的另一方面,提供了一种报文信息获取装置,应用于软件定义网络SDN的控制器中,所述装置包括:
接收模块,用于接收交换设备发送的第一packet-in报文;
第一获取模块,连接于所述接收模块,用于获取所述第一packet-in报文携带的数据报文以及报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态;
其中,所述处理动作包括所述交换设备对所述数据报文的头部修改动作。
在一种可能的实现方式中,所述转发状态包括所述第一packet-in报文携带的所述数据报文对应的入接口、出接口,所述装置还包括:
第二获取模块,连接于所述第一获取模块,用于获取所述SDN控制管理的各个交换设备之间的邻居关系;
第一分析模块,连接于所述第二获取模块,用于根据所述报文状态和所述邻居关系获取所述数据报文的转发路径,所述转发路径包括转发所述数据报文的各交换设备。
在一种可能的实现方式中,根据所述报文状态获取所述数据报文的转发路径,所述第一分析模块包括:
第一分析子模块,用于在所述第一packet-in报文的转发状态中的入接口的邻居关系为空时,确定所述交换设备为转发路径的所述起始交换设备;
第二分析子模块,用于在所述第一packet-in报文的转发状态中的出接口的邻居关系为空时,确定所述交换设备为转发路径的所述结束交换设备。
在一种可能的实现方式中,所述报文状态还包括用于标识所述数据报文的第一报文标识,
根据所述报文状态获取所述数据报文的转发路径,所述分析模块还包括:
第三分析子模块,用于在所述第一packet-in报文的转发状态中的出接口的邻居关系不为空时,根据所述出接口的邻居关系确定所述交换设备的下一跳交换设备;
所述第三分析子模块,还用于根据所述报文状态确定所述第一报文标识;
所述第三分析子模块,还用于查找所述下一跳交换设备发送的第二packet-in报文,并获取所述第二packet-in报文携带的数据报文的第二报文标识;
所述第三分析子模块,还用于当所述第一报文标识和所述第二报文标识相同、且所述第二packet-in报文携带的数据报文的转发状态中的出接口的邻居关系不为空时,根据所述第二packet-in报文的出接口的邻居关系确定所述下一跳交换设备的下一跳交换设备。
在一种可能的实现方式中,所述转发状态包括所述数据报文的出接口,所述装置还包括:
第一确定模块,连接于所述第一获取模块,用于当所述数据报文的出接口包括多个时,确定所述数据报文为广播/组播报文。
在一种可能的实现方式中,所述第一packet-in报文还包括用于标识所述交换设备的转发引擎的运行状态信息。
在一种可能的实现方式中,所述装置还包括:
调整模块,用于根据所述运行状态信息调整所述交换设备中报文的队列长度和/或调整队列中报文的优先级。
根据本公开的另一方面,提供了一种报文信息发送装置,应用于软件定义网络SDN的交换设备中,所述装置包括:
第二确定模块,用于当接收到数据报文时,确定所述数据报文的报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态;
生成模块,连接于所述第二确定模块,用于根据所述数据报文及所述报文状态生成第一packet-in报文;及
发送模块,连接于所述第一生成模块,用于发送所述第一packet-in报文给控制器;
其中,所述处理动作包括所述交换设备对所述数据报文的头部修改动作。
在一种可能的实现方式中,所述第一packet-in报文还包括第三报文信息,所述第三报文信息用于标识所述交换设备的转发引擎的运行状态信息。
在一种可能的实现方式中,所述发送模块还用于将邻居关系发送给软件定义网络SDN的控制器,以使所述控制器获取所述交换设备的邻居关系。
本公开通过接收交换设备发送的第一packet-in报文,解析所述第一packet-in报文以获取数据报文及报文状态,可以获得数据报文在交换设备不同阶段的报文状态。
根据本公开的另一方面,提供了一种控制器,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述的报文信息获取方法。
根据本公开的另一方面,提供了一种交换设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述的报文信息发送方法。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出了根据本公开一实施例的SDN网络运行环境示意图。
图2示出了根据本公开一实施例的报文信息获取方法的流程图。
图3示出了根据本公开一实施例的报文信息获取方法的流程图。
图4示出了根据本公开一实施方式的报文信息获取方法的流程图。
图5示出了根据本公开一实施方式的报文信息获取方法的流程图。
图6示出了根据本公开一实施例的报文信息发送方法的流程图。
图7示出了根据本公开一实施例的报文信息获取装置的框图。
图8示出了根据本公开一实施例的报文信息获取装置的框图。
图9示出了根据本公开一实施例的报文信息发送装置的框图。
图10示出了根据本公开一实施例的用于报文信息获取装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
请参考图1,图1示出了根据本公开一实施例的SDN网络运行环境示意图。
如图1所示,在SDN网络中,控制器和交换设备(例如可为交换机SW1,SW2、网关GW等)之间采用Openflow协议作为控制层面和转发层面的信令通道,控制器通过该信令通道配置和管理交换设备。用户设备(例如VM10,VM20等)通过交换设备接入SDN网络中。Openflow协议报文中的异步报文包括交换设备主动向控制器发送的报文和控制器向交换设备发送的报文,交换设备和控制器通过异步报文通告自身的运行状态和数据转发状态,比如controller status、packet-in等报文,其中packet-in报文用于上送数据报文,交换设备将数据报文封装在packet-in报文的data字段中上送给控制器,控制器从packet-in报文的协议字段中解析出数据报文进行转发控制。
当前的交换设备在上送packet-in报文给控制器时,交换设备只在报文处理的Ingress(入阶段)将数据报文复制到控制器,而并没有在Egress(出阶段)将数据报文复制到控制器,然而,在出阶段时数据报文可能已经经历了头部的修改、复制、重标识等,控制器却无法得知。
因此,急需提出一种报文数据获取方法以使控制器能够获知交换设备对数据报文的处理状态。
本公开基于以上问题,提出了一种报文信息获取方法,可以用于获取交换设备在Egress阶段上送控制器的报文(例如packet-in报文),在Egress阶段,交换设备上送控制器的packet-in报文可以包括Ingress阶段的原始数据报文、交换设备对原始数据报文的处理动作、转发状态等。
请参考图2,图2示出了根据本公开一实施例的报文信息获取方法的流程图。
所述报文信息获取方法应用于SDN网络的控制器中,如图2所示,报文信息获取方法可以包括以下步骤:
步骤S110,接收交换设备发送的第一packet-in报文。
在一种可能的实施方式中,当用户设备(例如VM10,参阅图1)通过交换设备(例如SW1,参阅图1)接入SDN网络时,用户设备会发出数据报文,当交换设备接收到所述数据报文时,交换设备可以对所述数据报文进行修改、复制、转发等,在Egress阶段,交换设备可以将接收的数据报文、修改后的数据报文等内容通过packet-in报文发送给控制器,控制器接收该packet-in报文。
控制器接收到所述第一packet-in报文后,解析出所述第一packet-in报文包含的信息,例如可以包括数据报文、交换设备在Ingress阶段的第一报文信息及交换设备在Egress阶段的第二报文信息。
在一种可能的实施方式中,第一报文信息可以包括入接口,所述入接口可以包括所述交换设备接收所述数据报文的入端口、入VLAN等。当然,所述数据报文也可以认为是包含在第一报文信息中,此时,第一报文信息既包括所述数据报文,也包括交换设备接收所述数据报文的入接口。
在一种可能的实施方式中,第二报文信息可以包括数据报文的出接口和报文修改内容,所述出接口可以包括出端口、出VLAN、隧道信息(例如可以包括隧道类型、隧道原地址、隧道目的地址等)等,所述报文修改内容可以包括交换设备对所述数据报文的头部修改动作(头部修改动作例如可以包括修改MAC地址(源,目的),IP地址(源,目的),TTL,DSCP等)等,二、三层头部中的任意字段都可以修改。
现有技术无法做到在Egress阶段上传的packet-in信息中既包括Ingress阶段的第一报文信息,又包括Egress阶段的第二报文信息,因此,控制器无法得知数据报文在交换设备中的状态,例如交换设备对所述数据报文的处理动作、转发状态等,也无法知道交换设备内部转发引擎的运行状态信息。其中,处理动作可以表示交换设备对数据报文的头部修改动作等,转发状态可以包括数据报文的入接口、出接口等。
在一种可能的实现方式中,为了使得packet-in报文能够携带Ingress阶段的第一报文信息和Egress阶段的第二报文信息,可以对现有的packet-in报文进行扩展,以适配Egress阶段的最终处理结果。
例如,可以增加actions字段标识交换设备对所述数据报文的处理动作和出接口信息;可以增加pipeline状态字段标识发送所述第一上送报文的交换设备的运行状态信息,比如所述运行状态信息可以包括所述数据报文所入的队列、交换设备转发引擎的转发延迟(转发延迟的计算方法可以为收到报文的时候,记下时间;将要转发出去的时候,记下时间,二者的时间差可为转发延迟)、出接口标识等。
在一种可能的实施方式中,对于交换设备在Ingress阶段就上送的报文,比如对于普通的未知报文(例如,在二层转发中目的mac地址无法匹配的报文,在三层转发中目的IP地址无法匹配的报文)、table miss的报文、用于用户设备上线时的ARP报文,用于拓扑发现的LLDP报文,actions字段可以为空。对于actions字段为空的报文,控制器只需要根据packet-in报文中的Ingress阶段的第一报文信息下发流表或者触发ARP学习。
对于Egress阶段上送的packet-in报文,交换设备可以通过packet-in报文将packet-in报文上送前的交换设备对数据报文的处理动作和对数据报文的转发状态告知给控制器,比如出端口镜像(镜像的意思可以为交换设备将报文从某一端口转发出去,同时复制一份报文到控制器)到控制器的报文,控制器可以精确获取所述数据报文被转发出去的情况,为下游设备上送的packet-in报文提供判断依据。
步骤S120,获取所述第一上送packet-in报文携带的数据报文以及报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态。
当控制器根据所述第一上送报文获取数据报文在Ingress阶段和Egress阶段的报文信息后,可以根据Ingress阶段的第一报文信息和Egress阶段的第二报文信息获取到数据报文的报文状态,例如,可以获取交换设备对数据报文的处理动作和转发状态。
在一种可能的实施方式中,处理动作可以包括前述的对数据报文的头部修改动作,转发状态可以包括数据报文的入接口、出接口等信息,其中,入接口可以表示交换设备接收原始数据报文的接口信息,出接口可以表示数据报文从当前交换设备转发到下一跳交换设备的接口信息。
需要说明的是,尽管本公开上述实施例中以对packet-in报文进行扩展作为第一上送报文的示例进行了介绍,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各个步骤的顺序、实现,只要可以获取报文在交换设备的报文状态即可。
这样,本公开通过接收交换设备发送的第一上送报文,解析所述第一上送报文以获取数据报文、所述交换设备的第一阶段的第一报文信息和第二阶段的第二报文信息,根据所述第一报文信息及所述第二报文信息获取报文状态,可以获得数据报文在交换设备不同阶段的报文状态。
在现有技术中,控制器在判定报文沿途交换设备次序的手段很有限,通常只能依赖IP头部中的TTL(Time To Live,是IP头部中的生命周期字段,依靠TTL递减来判断次序)顺序递减来完成,而倘若有的交换设备TTL减一,有的交换设备TTL减二,甚至不减,控制器在处理这种packet-in报文时就会陷入混乱,无法精确的得到沿途各交换设备的转发次序。
基于以上问题,本公开提出一种报文信息获取方法(参阅图3),可以获取数据报文在各个交换设备中的报文状态(比如Ingress/Egress阶段入/出接口、邻居信息,交换设备对数据报文的处理动作等),控制器据此可以知道该报文要转发到的下一跳设备,不必依赖IP头部中的TTL递减也可以精确掌握数据报文的转发次序,不仅可以支持三层报文的报文路径探测,也可以支持基于二层转发的报文路径探测,大大的扩展了报文路径探测的运行环境。
当控制器进行报文路径探测时,交换设备上送的packet-in报文中携带Ingress和Egress阶段的报文信息,控制器依次从起始设备开始解析,根据预先获知的各个设备间的邻居关系,就能预先知道第二跳设备上送的数据报文,依次下去,直至到结束设备,能最终得到完整的报文转发路径。
请参阅图3,图3示出了根据本公开一实施例的报文信息获取方法的流程图。
所述报文信息获取方法应用于SDN网络的控制器中,所述转发状态包括所述第一packet-in报文携带的所述数据报文对应的入接口、出接口,如图3所示,所述方法可以包括以下步骤:
步骤S110,接收交换设备发送的第一packet-in报文。
步骤S120,获取所述第一上送packet-in报文携带的数据报文以及报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态。
步骤S110、步骤S120的具体描述,请参照之前的介绍,此处不再赘述。
步骤S230,获取所述SDN控制管理的各个交换设备之间的邻居关系。
在一种可能的实施方式中,控制器可以下发LLDP数据包给SDN网络内的各个交换设备,以获取各个交换设备的邻居信息。当交换设备获取控制器下发的LLDP数据包后,可以通过交换设备的各个接口发出获取的LLDP数据包,当SDN网络中其他交换设备(可以是与当前交换设备各个端口连接的其他交换设备)收到该LLDP数据包后会将两台交换设备之间的链接信息报告给控制器。控制器根据获取的SDN网络中各个交换设备上送的链接信息后可以确定各个交换设备之间的邻居关系。
步骤S240,根据所述报文状态和所述邻居关系获取所述数据报文的转发路径,所述转发路径包括转发所述数据报文的起始交换设备、至少一下一跳交换设备及结束交换设备。
在一种可能的实施方式中,在所述第一packet-in报文的转发状态中的入接口的邻居关系为空时,可以确定所述交换设备为转发路径的所述起始交换设备。
当控制器根据所述第一packet-in报文的转发状态以及各交换设备间的邻居关系得知交换设备的入接口的邻居关系为空时,控制器可以判断此时的交换设备为转发路径的起始交换设备。
具体的,各交换设备间的邻居关系可以通过预先发送LLDP报文获知。在用户设备不运行LLDP的情况下,控制器通过交换设备上送的第一packet-in报文携带的入接口信息以及各交换设备的邻居关系确定出交换设备的入接口的邻居关系为空,由此可以判断所述交换设备的入接口的LLDP邻居不是交换设备,进而,控制器判断所述交换设备为转发路径的起始交换设备。
应该明白的是,当所述用户设备可以运行LLDP时,因为所述用户设备不在控制器管辖的SDN网域中,所以,当控制器获取用户设备上报的邻居信息时,可以确定出将所述用户设备上报的邻居信息作为无效信息,此时,SDN控制器可以确定与该用户设备相连的SDN网络中的交换设备的端口的邻居关系为空。
邻居关系为空表征与该交换设备直连的上一跳或下一跳邻居网络设备为不运行LLDP协议的设备,例如作为用户设备的虚拟机等一般来说会被设置为不运行LLDP协议,或者,表征与该交换设备直连的上一跳或下一跳邻居网络设备为运行LLDP协议的设备,但是该邻居网络设备不受SDN控制器控制。
当然,SDN控制器还可以通过其他方式确定起始设备,例如在一种测试场景中,SDN控制器可以触发用户设备进行路径探测,路径探测的源用户设备和目的用户设备均由SDN确定,因此,SDN控制器可以根据packet-in报文中携带的原始数据报文的源地址,确定该源地址对应的源用户设备从哪个交换设备上线,则该交换设备即为起始交换设备。
在一种可能的实施方式中,所述报文状态中还可以包括所述数据报文的报文标识,所述报文标识可以为能够表示所述数据报文唯一性的信息,所述报文标识可以为数据报文的报文编码、序列号等,控制器通过所述报文标识可以确定对应的数据报文。当然,该数据报文的报文标识也可以携带在原始发送的数据报文中。
如上所述,在一个示例中,所述第一报文信息中可以包括所述数据报文,因此,从所述第一报文信息中可以获取所述报文标识。在一种可能的实施方式中,在所述第一packet-in报文的转发状态中的出接口的邻居关系不为空时,控制器根据所述出接口的邻居关系可以确定所述交换设备的下一跳交换设备,控制器根据所述报文状态可以确定所述第一packet-in报文中的数据报文的第一报文标识,控制器可以查找所述下一跳交换设备发送的第二packet-in报文,从所述第二packet-in报文中获取所述第二packet-in报文携带的数据报文的第二报文标识,当所述第一报文标识和所述第二报文标识相同、且所述第二packet-in报文携带的数据报文的转发状态中的出接口的邻居关系不为空时,控制器可以根据所述第二packet-in报文,可以确定所述下一跳交换设备的下一跳交换设备。
其中,第一报文标识和第二报文标识相同时,控制器可以确定第二packet-in报文携带的数据报文为交换设备对数据报文进行头部修改后转发给下一跳交换设备的数据报文;第二packet-in报文携带的数据报文的转发状态中的出接口的邻居关系不为空时,控制器可以确定下一跳交换设备又对数据报文进行了转发,因此,控制器可以根据第二packet-in报文,确定下一跳交换设备的下一跳交换设备,具体过程可以参见控制器如何根据第一packet-in报文确定交换设备的下一跳交换设备的过程,不再赘述。通过以上过程,控制器可以逐跳确定转发所述数据报文的交换设备。
在一种可能的实施方式中,用户设备可以发送多个相同协议类型的数据报文(例如10个),控制器可以根据接收携带有各个数据报文的packet-in报文,得到各个数据报文所流经的一条或者多条等效路径。举例而言,当交换设备包括多个,用户设备将数据报文发送到目的设备的路径可以包括多个,此时,不同报文标识的packet-in报文所经过的转发路径可能不同,可以根据packet-in报文标识确定出该类型报文是否存在等效路径。
在一种可能的实施方式中,在所述第一packet-in报文的转发状态中的出接口的邻居信息为空时,控制器可以确定所述交换设备为转发路径的所述结束交换设备。
当根据邻居关系以及packet-in报文中携带的出接口信息确定出交换设备的出接口的邻居信息为空时,控制器判断交换设备的下一跳设备并非是交换设备,或者下一跳设备并非是SDN控制器管理控制的网络设备从而,控制器判断所述交换设备为转发路径的所述结束交换设备。
在一种可能的实施方式中,控制器在确定出从起始交换设备到结束交换设备的整条路径后,可以通过整条路径的信息定位故障交换设备的位置。例如,可以通过发送测试报文,查询从起始交换设备到结束交换设备的整条路径,若发现某一交换设备没有上送报文,就说明报文在这个交换设备上丢失,可以定位此交换设备为故障交换设备。控制器可以查询设备上的日志以获取故障状态。
下面将结合图1对本方法进行描述,应该说明的是,以下对本方法的描述是示例性的,以下的描述并不用于限制本公开。
请一并参阅图1。
在如图1所示的SDN网络中,SW(交换设备)可以通过openflow协议连接控制器,GW可以为网关设备(例如可为交换机或路由器等),用户设备(如VM10)可以通过SW接入到SDN网络中,本实施例中以用户设备不运行LLDP协议为例进行说明。整个underlay网络可以为二层网络,不同用户设备可以通过VLAN实现隔离,设备之间的overlay报文可以通过MAC地址方式转发,控制器可以实时监控某些报文的转发路径,以网络内的VM10到VM40的单向数据报文上送控制器为例进行说明。
初始状态下,控制器可以为每个用户设备下发转发流表,各个SW和GW上都存在各个用户设备的转发流表(转发流表可以指示交换设备在Egress阶段上传packet-in报文)。
控制器可以针对用户设备VM10发出的目的地址是VM40的数据报文进行路径探测,数据报文的匹配规则由控制器预先下发到所有交换设备和网关设备上。匹配数据报文的匹配项可以包括源地址、目的地址、报文类型,动作项可以包括转发并复制报文到控制器。其中,报文类型可以用来指明报文的类别,控制器可以在下发的流表中自定义一个报文类型,以使得交换设备接收到数据报文,在数据报文的类型与控制器自定义的报文类型匹配时,交换设备可以将数据报文转发并复制报文到控制器。报文类型比如可以是IP报文,MPLS报文,IP报文可以分为ICMP报文、UDP、TCP报文等。控制器也可以把报文类型设置成一个不常见的类型,即当前大部分用户都不会用到的一个类型,这样就不会和其他报文冲突。
VM10发出数据报文,数据报文中,源IP地址为IP10,目的IP地址为IP40,源MAC地址为MAC10,目的MAC为MAC40。
SW1从端口port1接收到该数据报文,匹配数据报文的流表,动作项为转发并复制,SW1可以在Egress阶段将报文复制到控制器,一方面可以从端口port2正常转发一份数据报文到GW,一方面复制一份数据报文、并通过packet-in报文发送到控制器。此时,数据报文的入端口为port1,出端口为port2,pipeline引擎为Bridge(Bridge可为二层转发引擎),延迟为1ms,SW1的port2的LLDP邻居是GW的port1。当SW1接收到该数据报文后,SW1可以对该数据报文进行修改,例如可以对该数据报文的头部信息进行修改,此时,SW1对给数据报文的处理动作包括头部修改动作。举例而言,SW1可修改该数据报文的优先级、封装隧道头等。
控制器接收到SW1上送的packet-in报文,通过packet-in报文中的inport字段获取数据报文的入端口为port1,通过packet-in中的actions字段解析出出端口为port2,通过pipeline字段解析出报文处理引擎为Bridge,控制器可以得知报文在SW1上执行了二层转发,且延迟为1ms。控制器通过SW1port2的LLDP邻居是GW,可得知出接口port2的连接设备是GW(控制器可以确定报文的下一跳交换设备为GW),GW与SW1的连接端口为port1。且由于VM10的上线接入设备为SW1,由于VM10不运行LLDP协议,因此控制器可以SW1上送的packet-in报文中携带数据报文的入接口port1、并且根据预先获知的SW1的port1的LLDP邻居信息,可以确定出SW1的邻居关系为空),可将SW1作为该数据报文的起始交换设备。
GW接收到SW1的报文,匹配数据报文的流表,动作项可以包括转发并复制数据报文,GW一方面会在Egress阶段将数据报文通过packet-in报文发送到控制器,一方面正常转发一份报文到SW4,数据报文在GW的入端口为port1,出端口为port4,pipeline引擎为Bridge,延迟为1ms,GW port4的LLDP邻居是SW4的port2。当GW接收到该数据报文后,GW可以对该数据报文进行修改,例如可以对该数据报文的头部信息进行修改,此时,GW对给数据报文的处理动作包括头部修改动作。举例而言,GW可修改该数据报文中的优先级,封装隧道头。
控制器接收到GW上送的packet-in报文,通过packet-in中的inport获取报文入端口为port1,通过packet-in中的actions字段解析出端口为port4,通过pipeline解析出报文处理引擎为Bridge,说明报文在GW上执行了二层转发,且延迟为1ms。控制器可以根据GW的出接口port4的LLDP邻居为SW4确定GW出接口port4的连接设备是SW4(控制器可以确定报文的下一跳交换设备为SW4),SW4与GW的连接端口为port2。
控制器可以根据SW1上送的packet-in报文中数据报文的报文标识,以及GW上送的packet-in报文中的数据报文的报文标识判断二者的数据报文是否相同,当SW1上送的packet-in报文和GW上送的packet-in报文中的数据报文相同时,控制器结合SW1上送的packet-in报文和GW上送的packet-in报文,可以判定报文此时的转发路径是VM10--(port1)SW1(port2)--(port1)GW(port4)。
SW4接收到GW的报文,匹配探测报文的流表,动作项可以包括转发并复制报文,SW4一方面会在Egress阶段将数据报文通过packet-in报文发送到控制器,一方面正常转发一份报文到VM40,数据报文在SW4的入端口为port2,出端口为port1,pipeline引擎为Bridge,延迟为3ms,port1的LLDP邻居为空。当SW4接收到该数据报文后,SW4可以对该数据报文进行修改,例如可以对该数据报文的头部信息进行修改,此时,SW4对给数据报文的处理动作包括头部修改动作。举例而言,SW4可修改该数据报文中的优先级,封装隧道头。
控制器接收到SW4上送的packet-in报文,可以通过packet-in中的inport字段获取数据报文在SW4的入端口为port2,可以通过packet-in中的actions字段解析出出端口为port1,通过pipeline解析出报文处理引擎为Bridge,控制器得知报文在SW4上执行了二层转发,且延迟为3ms。控制器获知SW4出接口port1的邻居设备是空,说明报文的下一跳设备为非交换机设备,且由于VM40的上线接入设备为SW4,SW4为数据报文的结束设备。
控制器可以根据SW1上送的packet-in报文中数据报文的报文标识、GW上送的packet-in报文中的数据报文的报文标识,以及SW4上送的packet-in报文中的数据报文的报文标识判断三者携带的数据报文是否相同,当SW1上送的packet-in报文、GW上送的packet-in报文及SW4上送的packet-in报文携带的数据报文相同时,控制器结合SW1上送的packet-in报文、GW上送的packet-in报文以及SW4上送的packet-in报文,可以确定报文的转发路径是VM10--(port1)SW1(port2)--(port1)GW(port4)--(port2)SW4(port1)--VM40,至此控制器监控的本轮次报文路径探测结束。
在整个过程中,SDN网络中的控制器并不依赖传统方式中报文IP头部的TTL递减来判定次序,而是通过packet-in报文中携带的报文状态来判定报文转发次序。packet-in报文中的出接口信息指定了报文的下一跳设备,在无需收集整个庞大物理网络拓扑关系的情况下,控制器可以精确指示其下一跳设备。当报文的转发路径不能最终到达时,不仅仅可以获取最后参与转发的设备,还能直接获取应该上送的下一跳设备,极大简化了控制器实施的路径监管功能。需要说明的是,尽管以报文信息获取方法作为示例介绍了本公开如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各个步骤的顺序、实现,只要可以报文转发的路径即可。
这样,本公开通过接收交换设备发送的第一packet-in报文,解析所述第一packet-in报文以获取数据报文及报文状态,获取所述SDN控制管理的各个交换设备之间的邻居关系,根据所述报文状态和邻居关系获取所述数据报文的转发路径,可以获得数据报文在SDN网络中转发的报文路径。
有现有技术中,控制器仅能接收到交换设备在Ingress阶段发送的packet-in报文,然而,该报文中并未携带交换设备对报文的转发状态信息,控制器无法在报文转发过程中,知道报文转发的具体状态,例如,报文是否为组播/广播报文。
基于以上问题,本公开提出了一种报文信息获取方法,可以判断报文是否为组播/广播报文。
请参阅图4,图4示出了根据本公开一实施方式的报文信息获取方法的流程图。
所述报文信息获取方法应用于SDN网络的控制器中,如图4所示,所述方法包括步骤:
步骤S110,接收交换设备发送的第一packet-in报文。
步骤S120,获取所述第一上送packet-in报文携带的数据报文以及报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态。
步骤S110,S120的具体描述,请参照之前的介绍,此处不再赘述。
步骤S330,当识别出所述数据报文的出接口包括多个时,确定所述数据报文为广播/组播报文。
在一种可能的实施方式中,当控制器判断该数据报文包括多个出接口时,比如控制器进行网络组播/广播树的探测,交换设备需要将从每个出接口转发的报文都复制上送控制器,每个出接口复制的报文都是独立的packet-in协议报文,这些协议报文的Ingress阶段的报文信息相同,但Egress阶段的最终处理结果不一样(例如出接口信息不一样),控制器通过packet-in报文中的报文状态确认packet-in报文是否属于一次组播/广播报文的复制上送,从而可以判断数据报文是否为组播/广播报文。举例而言,可以在actions字段中写入组播转发表,通过所述组播转发表记录组播转发的所有出接口,当数据报文从各个出接口转发出去时,都会发送packet-in报文给控制器,控制器通过获取的任意一个packet-in报文都可以获得所述组播转发表,从而判断数据报文为组播/广播报文。
这样,本公开通过所述报文状态获知所述数据报文的出接口包括多个时,判断所述数据报文为广播/组播报文,可以判断数据报文是否为广播/组播报文。
现有技术中,控制器仅能接收到交换设备在Ingress阶段发送的packet-in报文,然而,该报文中并未携带交换设备的转发引擎的运行状态信息(比如可以包括所述数据报文所入的队列、交换设备转发引擎的转发延迟、出接口对端标识等),控制器无法通过packet-in报文获知交换设备的转发引擎的运行状态信息,也无法对交换设备内部转发引擎的转发资源进行调整。
基于以上问题,本公开提出了一种报文信息获取方法,可以调整交换设备内部的工作状态。
请参阅图5,图5示出了根据本公开一实施方式的报文信息获取方法的流程图。
所述报文信息获取方法应用于SDN网络的控制器中,如图5所示,所述方法包括步骤:
步骤S110,接收交换设备发送的第一packet-in报文。
步骤S120,获取所述第一上送packet-in报文携带的数据报文以及报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态。在一种可能的实施方式中,所述第一packet-in报文还可以包括第三报文信息,所述第三报文信息可以用于标识所述交换设备的转发引擎的运行状态信息。通过所述第三报文信息获取的报文状态中可以包括交换设备转发引擎的运行状态信息。
在一种可能的实施方式中,如前所述,可以在packet-in报文中增加Pipeline字段以携带交换设备的pipe line引擎转发报文时的pipe line信息。
在一种可能的实施方式中,可以使用openflow协议的实验字段来标识,Pipeline字段可以携带比如packet-in报文在交换机转发引擎内Ingress阶段的buffer队列标识、引擎处理延迟,控制器可以通过该pipe line状态及时获取当前交换机的引擎运行状态,根据需要调整交换机的转发资源(例如内部的报文队列大小,报文的优先级等)。
步骤S430,根据所述运行状态信息调整所述交换设备中报文的队列长度和/或调整队列中报文的优先级。
请参阅之前对图1的描述,举例而言,由于控制器检测到VM10到VM40的二层转发(Bridge引擎)延迟较大,例如累计可达到5ms,且SW1和SW4上的延迟较大,当控制器获知转发引擎延迟较大时,控制器可以调整交换机SW1和SW4上二层转发引擎的队列长度,从而减少二层业务延迟,例如,可以把报文的优先级调高,或者调整报文的转发引擎的队列长度,使队列变长,这样,可以让交换设备尽快将队列里面的报文转发出去。
这样,本公开通过接收交换设备发送的第一packet-in报文,解析所述第一packet-in报文以获取数据报文、所述交换设备的第一阶段的第一报文信息和第二阶段的第二报文信息,根据所述第一报文信息及所述第二报文信息获取报文状态,根据所述运行状态信息调整所述交换设备中报文的队列长度,调整队列中报文的优先级,可以根据获取的报文状态调整交换设备的转发资源。
请参阅图6,图6示出了根据本公开一实施例的报文信息发送方法的流程图。
该方法可以应用于基于SDN网络的交换设备中,如图6所示,所述方法包括以下步骤:
步骤S510,当接收到数据报文时,确定所述数据报文的报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态。
在一种可能的实施方式中,当用户设备通过交换设备接入SDN网络时,用户设备可能会发出数据报文,当交换设备接收到所述数据报文时,交换设备可以对所述数据报文进行修改、复制、转发等动作。交换设备可以根据接收到的数据报文、接收该数据报文的接口信息(例如入端口、如VLAN等)生成第一阶段的第一报文信息,也就是说,交换设备可以根据在Ingress阶段获取的数据报文及获取数据报文的接口信息生成第一报文信息。交换设备可以进一步根据修改后的数据报文生成第二阶段(例如Egress阶段)的第二报文信息,此时,第二报文信息中可以包括交换设备对数据报文的处理动作和转发状态,处理动作例如可以包括交换设备对数据报文的头部修改动作(头部修改动作例如可以包括修改MAC地址(源,目的),IP地址(源,目的),TTL,DSCP,等,二三层头部中的任意字段都可以修改)等,第二报文信息中还可以包括报文的出接口信息,所述出接口信息可以包括出端口、出VLAN、隧道信息(例如可以包括隧道类型、隧道原地址、隧道目的地址等)等。
在一种可能的实现方式中,交换设备还可以确定第三报文信息,第三报文信息可以用于标识所述交换设备的转发引擎的运行状态信息。
步骤S520,根据所述数据报文及所述报文状态生成第一packet-in报文。
在一种可能的实施方式中,所述第一packet-in报文可以包括packet-in报文。当用户设备通过交换设备接入SDN网络时,用户设备可能会发出数据报文,当交换设备接收到所述数据报文时,交换设备可以对所述数据报文进行修改、复制、转发等,在Egress阶段,交换设备可以将接收的原始数据报文、修改后的数据报文等内容通过packet-in报文发送给控制器,控制器接收该packet-in报文。
然而,现有技术无法做到在Egress阶段上传的packet-in信息中既包括Ingress阶段的第一报文信息,又包括Egress阶段的第二报文信息,因此,控制器无法得知数据报文在交换设备中的状态,例如交换设备对所述数据报文的处理动作、转发状态等,也无法知道交换设备内部转发引擎的运行状态信息等。
为了使得packet-in报文能够携带Ingress阶段和Egress阶段的第一报文信息和第二报文信息,可以对现有的packet-in报文进行扩展,以适配Egress阶段的最终处理结果。
在一种可能的实施方式中,可以增加actions动作字段标识原始数据报文的处理动作和出接口信息;可以增加pipeline状态字段标识原始数据报文所在的交换设备的运行状态信息,比如所述运行状态信息可以包括所述数据报文所入的队列、交换设备转发引擎的转发延迟、出接口对端表示等。
在一种可能的实施方式中,对于交换设备Ingress阶段就上送的报文,比如tablemiss报文、用于用户设备上线时的ARP报文,用于拓扑发现的LLDP报文,actions字段可以为空。
在一种可能的实施方式中,对于Egress阶段上送的packet-in报文可以将上送前的交换设备对数据报文的处理动作和转发状态告知给控制器,比如出端口镜像到控制器的报文,控制器可以精确获取所述数据报文被转发出去的情况,为下游设备上送的packet-in报文提供了判断依据。
在一种可能的实施方式中,可以使用openflow协议的实验字段来标识Pipeline字段,Pipeline字段携带交换机的pipe line引擎转发报文时的pipe line信息,比如packet-in报文在交换机转发引擎内Ingress阶段的buffer队列、引擎处理延迟等等。应该说明的是,Pipeline字段是实验字段(experiment)的一种类型,experiment有很多类型,本实施例中新增了一个Pipeline类型。Experiment是action的一部分,有很多类型的action,experiment是action的一种。
步骤S530,发送所述第一packet-in报文给控制器,其中,所述处理动作包括所述交换设备对所述数据报文的头部修改动作。
在一种可能的实施方式中,控制器可以提前下发转发流表到交换设备,交换设备接收到控制器下发的转发流表后,可以根据控制流表转发报文,例如交换设备可以根据流表在Egress阶段上传packet-in报文。
这样,本公开通过当接收到数据报文时,确定所述数据报文的第一阶段的第一报文信息、以及第二阶段的第二报文信息,根据所述数据报文、所述第一报文信息以及所述第二报文信息生成上送报文,发送所述上送报文给控制器,可以将上送报文发送给控制器。
请参阅图7,图7示出了根据本公开一实施例的报文信息获取装置的框图。
所述的报文信息获取装置可以运用于SDN网络的控制器中,如图7所示,所述报文信息获取装置包括:
接收模块10,用于接收交换设备发送的第一packet-in报文。
第一获取模块20,连接于所述接收模块10,用于获取所述第一packet-in报文携带的数据报文以及报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态。
其中,所述处理动作包括所述交换设备对所述packet-in报文的头部修改动作。
应该说明的是,所述的报文信息获取装置为前述的报文信息获取方法对应的装置项,因此以上各单元的具体描述请参考之前的方法项介绍,此处不再赘述。
这样,本公开通过以上单元的配合,报文信息获取装置可以接收交换设备发送的第一packet-in报文,解析所述第一packet-in报文以获取数据报文及报文状态,报文信息获取装置可以获得数据报文在交换设备不同阶段的报文状态。
请参阅图8,图8示出了根据本公开一实施例的报文信息获取装置的框图。
所述的报文信息获取装置可以运用于SDN网络的控制器中,如图8所示,所述报文信息获取装置包括:
接收单元10,用于接收交换设备发送的第一packet-in报文。
第一获取模块20,连接于所述接收模块10,用于获取所述第一packet-in报文携带的数据报文以及报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态。
其中,所述处理动作包括所述交换设备对所述packet-in报文的头部修改动作。
在一种可能的实施方式中,所述装置还包括:
第二获取模块30,连接于所述第一获取模块,用于获取所述SDN控制管理的各个交换设备之间的邻居关系;
分析模块40,连接于所述第二获取模块,用于根据所述报文状态和所述邻居关系获取所述数据报文的转发路径,所述转发路径包括转发所述数据报文的各交换设备。在一种可能的实施方式中,所述分析模块40可以包括:
第一分析子模块410,第二分析子模块420,连接于所述第一分析子模块410,所述第二分析子模块420可以在所述第一packet-in报文的转发状态中的出接口的邻居关系为空时,确定所述交换设备为转发路径的所述结束交换设备。
可以在根据所述第一packet-in报文的转发状态中的入接口的邻居关系为空时,确定所述交换设备为转发路径的所述起始交换设备。
在一种可能的实现方式中,所述报文状态还可以包括用于标识所述数据报文的第一报文标识。
第三分析子模块430,连接于第二分析子模块420,所述第三分析子模块430可以在所述第一packet-in报文的转发状态中的出接口的邻居关系不为空时,根据所述出接口确定所述交换设备的下一跳交换设备,可以根据所述报文状态确定所述第一packet-in报文中的数据报文的第一报文标识,可以查找所述下一跳交换设备发送的第二packet-in报文,从所述第二packet-in报文中获取所述第二packet-in报文携带的数据报文的第二报文标识,当所述第一报文标识和所述第二报文标识相同、且所述第二packet-in报文携带的数据报文的转发状态中的出接口的邻居关系不为空时,可以根据所述第二packet-in报文的出街口的邻居关系,确定所述下一跳交换设备的下一跳交换设备。
在一种可能的实施方式中,所述装置还可以包括:
第一确定模块50,第一确定模块50可以用于当所述上送报文的出接口包括多个时,确定所述上送报文为广播/组播报文。
在一种可能的实施方式中,所述上送报文还包括第三报文信息,所述第三报文信息用于标识所述交换设备的转发引擎的运行状态信息。
在一种可能的实施方式中,所述报文信息获取装置还可以包括:
调整模块60,可以用于根据所述运行状态信息调整所述交换设备中报文的队列大小和/或调整队列中报文的优先级。
所述的报文信息获取装置为前述的报文信息获取方法对应的装置项,因此以上各单元的具体描述请参考之前的方法项介绍,此处不再赘述。
需要说明的是,尽管以报文信息获取装置作为示例介绍了本公开如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各个单元的功能,只要可以对应的功能即可。
这样,本公开通过以上单元的配合,报文信息获取装置可以接收交换设备发送的第一packet-in报文,解析所述第一packet-in报文以获取数据报文及报文状态,报文信息获取装置可以获得数据报文在交换设备不同阶段的报文状态,并根据报文状态获取报文的转发路径、对交换设备转发引擎的转发资源进行控制。
参阅图9,图9示出了根据本公开一实施例的报文信息发送装置的框图。
所述的报文信息发送装置可以运用于SDN网络的交换设备中,如图8所示,所述报文信息发送装置可以包括:
第二确定模块500,可以用于当接收到数据报文时,确定所述数据报文的报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态。
生成模块510,连接于所述第二确定各模块500,用于根据所述数据报文及所述报文状态生成第一packet-in报文。
发送模块520,连接于所述生成模块510,用于发送所述第一packet-in报文给控制器。
其中,所述处理动作包括所述交换设备对所述数据报文的头部修改动作。
在一种可能的实施方式中,所述上送报文还包括第三报文信息,所述第三报文信息用于标识所述交换设备的转发引擎的运行状态信息。
所述的报文信息发送装置为前述的报文信息发送方法对应的装置项,因此以上各单元的具体描述请参考之前的方法项介绍,此处不再赘述。
需要说明的是,尽管以报文信息发送装置作为示例介绍了本公开如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各个单元的功能,只要可以对应的功能即可。
这样,通过报文信息发送装置各单元的配合,本公开通过当接收到数据报文时,确定所述数据报文的报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态,根据所述数据报文及所述报文状态生成第一packet-in报文,发送第一packet-in报文给控制器,报文信息发送装置可以将上送报文发送给控制器。
图10是根据一示例性实施例示出的一种用于报文信息获取装置900的框图。参照图10,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与报文信息获取逻辑对应的机器可执行指令以执行上文所述的报文信息获取方法。
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (12)
1.一种报文信息获取方法,其特征在于,应用于软件定义网络SDN的控制器中,所述方法包括:
接收交换设备发送的第一packet-in报文;
获取所述第一packet-in报文携带的数据报文以及报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态;
其中,所述处理动作包括所述交换设备对所述数据报文的头部修改动作。
2.根据权利要求1所述的报文信息获取方法,其特征在于,所述转发状态包括所述第一packet-in报文携带的所述数据报文对应的入接口、出接口,所述方法还包括:
获取所述SDN控制管理的各个交换设备之间的邻居关系;
根据所述报文状态和所述邻居关系获取所述数据报文的转发路径,所述转发路径包括转发所述数据报文的各交换设备。
3.根据权利要求2所述的报文信息获取方法,其特征在于,根据所述报文状态获取所述数据报文的转发路径,包括:
在所述第一packet-in报文的转发状态中的入接口的邻居关系为空时,确定所述交换设备为转发路径的所述起始交换设备;
在所述第一packet-in报文的转发状态中的出接口的邻居关系为空时,确定所述交换设备为转发路径的所述结束交换设备。
4.根据权利要求2所述的报文信息获取方法,其特征在于,所述报文状态还包括用于标识所述数据报文的第一报文标识,
根据所述报文状态获取所述数据报文的转发路径,包括:
在所述第一packet-in报文的转发状态中的出接口的邻居关系不为空时,根据所述出接口的邻居关系确定所述交换设备的下一跳交换设备;
根据所述报文状态确定所述第一报文标识;
查找所述下一跳交换设备发送的第二packet-in报文,并获取所述第二packet-in报文携带的数据报文的第二报文标识;
当所述第一报文标识和所述第二报文标识相同、且所述第二packet-in报文携带的数据报文的转发状态中的出接口的邻居关系不为空时,根据所述第二packet-in报文的出接口的邻居关系确定所述下一跳交换设备的下一跳交换设备。
5.根据权利要求1-4任一项所述的报文信息获取方法,其特征在于,所述转发状态包括所述数据报文的出接口,所述方法还包括:
当识别所述数据报文的出接口包括多个时,确定所述数据报文为广播/组播报文。
6.根据权利要求1-4任一项所述的报文信息获取方法,其特征在于,所述第一packet-in报文还包括用于标识所述交换设备的转发引擎的运行状态信息。
7.根据权利要求6所述的报文信息获取方法,其特征在于,所述方法还包括:
根据所述运行状态信息调整所述交换设备中报文的队列长度和/或调整队列中报文的优先级。
8.一种报文信息发送方法,其特征在于,应用于软件定义网络SDN的交换设备中,所述方法包括:
当接收到数据报文时,确定所述数据报文的报文状态,所述报文状态包括所述交换设备对所述数据报文的处理动作和转发状态;
根据所述数据报文及所述报文状态生成第一packet-in报文;及
发送所述第一packet-in报文给控制器;
其中,所述处理动作包括所述交换设备对所述数据报文的头部修改动作。
9.根据权利要求8所述的报文信息发送方法,其特征在于,所述第一packet-in报文还包括第三报文信息,所述第三报文信息用于标识所述交换设备的转发引擎的运行状态信息。
10.根据权利要求8或9所述的报文信息发送方法,其特征在于,所述方法还包括:
将邻居关系发送给软件定义网络SDN的控制器,以使所述控制器获取所述交换设备的邻居关系。
11.一种控制器,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1-7任一项所述的报文信息获取方法。
12.一种交换设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求8-10任一项所述的报文信息发送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810671732.1A CN108881064B (zh) | 2018-06-26 | 2018-06-26 | 报文信息获取方法和发送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810671732.1A CN108881064B (zh) | 2018-06-26 | 2018-06-26 | 报文信息获取方法和发送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108881064A true CN108881064A (zh) | 2018-11-23 |
CN108881064B CN108881064B (zh) | 2022-07-22 |
Family
ID=64294913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810671732.1A Active CN108881064B (zh) | 2018-06-26 | 2018-06-26 | 报文信息获取方法和发送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108881064B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112637073A (zh) * | 2020-12-18 | 2021-04-09 | 深圳市东晟数据有限公司 | 一种可扩展规则空间的实现方法 |
CN113765807A (zh) * | 2020-09-29 | 2021-12-07 | 北京京东尚科信息技术有限公司 | 网络流量可视化的方法、装置、系统、及介质 |
WO2023273883A1 (zh) * | 2021-06-30 | 2023-01-05 | 中兴通讯股份有限公司 | SDN混合overlay网络中的路径诊断方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283785A (zh) * | 2014-10-29 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种快速处理流表的方法和装置 |
CN105790984A (zh) * | 2014-12-23 | 2016-07-20 | 中兴通讯股份有限公司 | 一种操作维护管理功能的配置、实现方法及转发设备 |
CN105827487A (zh) * | 2016-05-30 | 2016-08-03 | 上海斐讯数据通信技术有限公司 | 一种sdn网络报文流统计方法、处理方法及sdn网络系统 |
CN106612211A (zh) * | 2015-10-23 | 2017-05-03 | 华为技术有限公司 | VxLAN中的路径探测方法,控制器和网络设备 |
CN107547293A (zh) * | 2016-06-29 | 2018-01-05 | 新华三技术有限公司 | 一种流路径探测方法和装置 |
WO2018042230A1 (en) * | 2016-09-01 | 2018-03-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Configurable selective packet-in mechanism for openflow switches |
CN108075936A (zh) * | 2016-11-16 | 2018-05-25 | 中国移动通信有限公司研究院 | VxLAN探测方法及装置 |
-
2018
- 2018-06-26 CN CN201810671732.1A patent/CN108881064B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283785A (zh) * | 2014-10-29 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种快速处理流表的方法和装置 |
CN105790984A (zh) * | 2014-12-23 | 2016-07-20 | 中兴通讯股份有限公司 | 一种操作维护管理功能的配置、实现方法及转发设备 |
CN106612211A (zh) * | 2015-10-23 | 2017-05-03 | 华为技术有限公司 | VxLAN中的路径探测方法,控制器和网络设备 |
CN105827487A (zh) * | 2016-05-30 | 2016-08-03 | 上海斐讯数据通信技术有限公司 | 一种sdn网络报文流统计方法、处理方法及sdn网络系统 |
CN107547293A (zh) * | 2016-06-29 | 2018-01-05 | 新华三技术有限公司 | 一种流路径探测方法和装置 |
WO2018042230A1 (en) * | 2016-09-01 | 2018-03-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Configurable selective packet-in mechanism for openflow switches |
CN108075936A (zh) * | 2016-11-16 | 2018-05-25 | 中国移动通信有限公司研究院 | VxLAN探测方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113765807A (zh) * | 2020-09-29 | 2021-12-07 | 北京京东尚科信息技术有限公司 | 网络流量可视化的方法、装置、系统、及介质 |
CN112637073A (zh) * | 2020-12-18 | 2021-04-09 | 深圳市东晟数据有限公司 | 一种可扩展规则空间的实现方法 |
CN112637073B (zh) * | 2020-12-18 | 2022-02-25 | 深圳市东晟数据有限公司 | 一种可扩展规则空间的实现方法 |
WO2023273883A1 (zh) * | 2021-06-30 | 2023-01-05 | 中兴通讯股份有限公司 | SDN混合overlay网络中的路径诊断方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108881064B (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10693765B2 (en) | Failure protection for traffic-engineered bit indexed explicit replication | |
US9246799B2 (en) | Data plane learning of bi-directional service chains | |
RU2643475C2 (ru) | Многодоменная ретрансляция с маршрутизацией от источника на основе взаимодействующих сетевых контроллеров | |
CN103944828B (zh) | 一种协议报文的传输方法和设备 | |
US8064441B2 (en) | Upstream label allocation on Ethernets for MP2MP LSPS | |
CN105099913B (zh) | 一种报文转发方法及设备 | |
US20120314605A1 (en) | Communication system, path control apparatus, packet forwarding apparatus, and path control method | |
EP3207671B1 (en) | Traceroute in virtual extensible local area networks | |
CN105450525B (zh) | 用于路由交换设备使用的方法和设备 | |
CN108881064A (zh) | 报文信息获取方法和发送方法 | |
WO2016198012A2 (zh) | 一种通过指定路径传输流量的方法和装置 | |
CN109194581A (zh) | 报文处理方法及装置 | |
WO2014017631A1 (ja) | 制御装置、通信システム、通信方法及びプログラム | |
CN106817299A (zh) | 软件定义网络的表项生成方法和装置以及报文转发方法 | |
CN109196819A (zh) | 虚拟端口信道上的双向多播 | |
WO2011118574A1 (ja) | 通信システム、制御装置、遅延測定方法およびプログラム | |
JPWO2013176262A1 (ja) | パケット転送システム、制御装置、パケット転送方法及びプログラム | |
CN102769567B (zh) | 一种多链接透明互联网络数据帧的转发方法和装置 | |
US9705791B2 (en) | Route setting device and route setting method | |
CN104869062B (zh) | 一种数据包转发方法及设备 | |
US10623301B2 (en) | Method, routing bridge and non-transitory computer-readable storage medium for network routing | |
US20170070473A1 (en) | A switching fabric including a virtual switch | |
CN104394081B (zh) | 一种数据处理方法及装置 | |
WO2015188706A1 (zh) | 数据帧的处理方法、装置与系统 | |
CN107431656A (zh) | 控制设备、通信系统、控制方法及程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230612 Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd. Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466 Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |