CN102946325B - 一种基于软件定义网络的网络诊断方法、系统及设备 - Google Patents
一种基于软件定义网络的网络诊断方法、系统及设备 Download PDFInfo
- Publication number
- CN102946325B CN102946325B CN201210457073.4A CN201210457073A CN102946325B CN 102946325 B CN102946325 B CN 102946325B CN 201210457073 A CN201210457073 A CN 201210457073A CN 102946325 B CN102946325 B CN 102946325B
- Authority
- CN
- China
- Prior art keywords
- controller
- message
- switch
- flow table
- debugging
- 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.)
- Active
Links
- 238000003745 diagnosis Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000008569 process Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 15
- 230000009471 action Effects 0.000 claims description 6
- 238000012423 maintenance Methods 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004088 simulation Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于软件定义网络(SDN)的网络诊断方法,该方法包括:交换机根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;交换机将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断的结果为是,则交换机根据调试选项字段内容将执行相应的调试动作,这些动作包括但不限于将匹配的报文和上下文信息发送给控制器;控制器根据报文和上下文信息进行网络诊断。本发明还公开了一种基于SDN的网络诊断系统及设备,通过本发明的技术方案,能够加速网络问题的定位周期,达到提升网络质量、降低网络的运行维护成本的效果。
Description
技术领域
本发明涉及网络通信技术,具体涉及一种基于软件定义网络(SoftwareDefined Network,SDN)的网络诊断方法、系统及设备。
背景技术
SDN是一种新型的网络创新架构,其核心是构建一个转发面和控制面分离的网络体系,像软件开发、调试一样调试网络,以支持网络功能的不断演进,从而实现网络的灵活控制。
基于SDN的网络问题诊断较传统的网络问题诊断变得更加容易。传统的网络出现问题时,需要相关厂商的技术人员收集设备上的日志,通过厂商私有的工具去诊断,定位故障比较繁琐,而且周期较长。
在SDN架构中,以OpenFlow协议为例,网络问题的诊断流程如图1所示:
步骤11中,控制器向交换机发送FlowMod流表指令,命令交换机将指定报文上传给控制器;
这里,所述指定报文可以是指定报文首部关键字段的报文,例如是报文的目的介质访问控制(MediaAccess Control,MAC)地址为1的报文等等。
步骤12,交换机将报文首部关键字段与流表项的匹配字段做匹配,将匹配成功的报文发送给控制器;
流表项在交换机中存储,可以存在一个或多个。在控制器与交换机连接之后,流表项的内容由维护人员通过控制器提供的接口设置;其中,现有的流表项逻辑结构包括匹配字段、统计字段和执行逻辑字段,匹配字段为针对报文首部的关键字段,例如流表项的匹配字段是目的MAC地址为1,则交换机将所有报文的报文首部的关键字段与流表项的匹配字段做匹配,将所有目的MAC地址为1的报文发送给控制器进行网络诊断。
步骤13,控制器对报文进行检查、调试后,将报文从指定端口发出。
目前基于SDN的网络诊断方法仍有一些不足之处,首先,控制器需要向交换机发送额外的流表指令,用于通知交换机将指定报文发送给控制器,这些额外的流表指令可能会与已有的流表项冲突,使交换机无法判断根据那个流表指令进行进程处理,从而导致交换机不能正确将指定报文发送给控制器;其次,OpenFlow协议无法携带交换机转发面更加详细的信息,例如交换机芯片的寄存器信息、内存数据信息等等,从而导致这些硬件信息无法报告给控制器,使得在短时间内难以确定网络故障的位置,加大了网络诊断的难度;第三,控制器网络诊断结束之后只能将报文从指定端口发送出去,而无法继续报文中断的处理进程,进而无法实现像软件开发、调试一样调试网络,违背了SDN的核心理念。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于软件定义网络的网络诊断方法、系统及设备,能够加速网络故障的定位周期,达到提升网络质量、降低网络的运行维护成本的效果。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种基于SDN的网络诊断方法,该方法包括:
交换机根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;
交换机将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断的结果为是,则交换机根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器;
控制器根据收到的报文和上下文信息进行网络诊断。
上述方案中,所述交换机根据调试选项字段内容执行相应的调试操作,将匹配的报文和上下文信息发送给控制器包括:
若调试选项字段为上送至控制器,则交换机将匹配的报文和上下文信息立即发送给控制器;
若调试选项字段为数据流日志缓存,则交换机将匹配的报文和上下文信息发送到交换机日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器。
上述方案中,所述调试选项字段作为流表项中的独立字段携带,或通过流表项中现有字段的扩展属性携带。
上述方案中,所述交换机将报文首部的关键字段与流表项的匹配字段做匹配之前,该方法还包括:
交换机通过流表通知指令将流表项的调试选项能力发送给控制器;
或控制器向交换机发送流表项的调试选项能力请求指令,交换机通过流表功能响应指令将流表项的调试选项能力发送给控制器。
上述方案中,所述控制器根据收到的报文和上下文信息进行网络诊断之后,进一步包括:
控制器将报文和上下文信息发送给交换机继续报文中断的处理进程。
本发明还提供了一种基于SDN的网络诊断系统,该系统包括交换机和控制器;其中,
所述交换机,用于根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;用于根据设置的流表项的调试选项规则,将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器;
所述控制器,用于向交换机发送流表调试设置指令,设置流表项的调试选项规则;还用于接收交换机发来的报文和上下文信息,并根据报文和上下文信息进行网络诊断。
上述方案中,所述交换机,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力发送给控制器;
相应的,所述控制器,还用于接收交换机发来的流表项的调试选项能力;
或所述控制器,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,向交换机发送流表项的调试选项能力请求指令,并接收交换机返回的流表功能相应指令;
相应的,所述交换机,还用于在收到控制器发来的流表项的调试选项能力请求指令后,通过流表功能响应指令将流表项的调试选项能力发送给控制器。
上述方案中,所述控制器,还用于在网络诊断结束后,将报文和上下文信息发送给交换机;
相应的,所述交换机,还用于网络诊断结束后,接收控制器发来的报文和上下文信息继续报文中断的处理进程。
上述方案中,所述根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器包括:
若调试选项字段为报文上送至控制器,则交换机将匹配的报文和上下文信息立即发送给控制器;
若调试选项字段为数据流日志缓存,则交换机将匹配的报文和上下文信息发送到交换机日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器。
本发明还提供了一种交换机,所述交换机包括调试选项设置模块、第二调试选项能力接口、匹配执行模块、日志缓存模块和数据读取模块;其中,
所述调试选项设置模块,用于根据控制器通过第二调试选项能力接口发来的流表调试设置指令,设置流表项的调试选项规则;
所述第二调试选项能力接口,用于将控制器发来的流表调试设置指令发送给调试选项设置模块;
所述匹配执行模块,用于将报文首部的关键字段与流表项的匹配字段做匹配,并判断该报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项内容将报文和上下文信息发送给控制器,或发送给日志缓存模块;
所述日志缓存模块,用于存储匹配执行模块发来的报文和上下文信息;
所述数据读取模块,用于读取日志缓存模块中存储的报文和上下文信息,并将读取的信息发送给控制器。
上述方案中,所述交换机还包括能力上报模块,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力通过第二调试选项能力接口发送给控制器;或在收到控制器通过第二调试选项能力接口发来的流表项的调试选项能力请求指令后,通过第二调试选项能力接口将流表功能响应指令发送给控制器;
相应的,所述第二调试选项能力接口还用于将能力上报模块发来的流表项的调试选项能力发送给控制器;或将控制器发来的流表项的调试选项能力请求指令发送给能力上报模块后,将能力上报模块发来的流表功能响应指令发送给控制器。
上述方案中,所述匹配执行模块还用于在控制器对报文网络诊断结束后,接收控制器发来的报文和上下文信息,并继续报文中断的处理进程。
上述方案中,所述根据调试选项内容将报文和上下文信息发送给控制器,或发送给日志缓存模块包括:
若调试选项字段为报文上送至控制器,则匹配执行模块将匹配的报文和上下文信息立即发送给控制器;
若调试选项字段为数据流日志缓存,则匹配执行模块将匹配的报文和上下文信息发送到日志缓存模块,匹配执行模块从日志缓存模块中读取报文和上下文信息发送给控制器。
本发明还提供了一种控制器,所述控制器包括指令设置模块、第一调试选项能力接口、数据接收模块和诊断应用模块;其中,
所述指令设置模块,用于通过第一调试选项能力接口向交换机发送流表调试设置指令,设置流表项的调试选项规则;
所述第一调试选项能力接口,用于将指令设置模块发来的流表调试设置指令发送给交换机;
所述数据收发模块,用于接收交换机发来的报文和上下文信息,并将报文和上下文信息发送给应用诊断模块;
所述诊断应用模块,用于根据数据收发模块发来的报文和上下文信息进行网络诊断。
上述方案中,所述控制器还包括能力获取模块,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,通过第一调试选项能力接口接收交换机发来的流表项的调试选项能力;或通过第一调试选项能力接口向交换机发送流表项的调试选项能力请求指令,并通过第一调试选项能力接口接收交换机返回的流表功能响应指令;
相应的,所述第一调试选项能力接口,还用于将交换机发来的流表项的调试选项能力发送给能力获取模块;或将能力获取模块发来的流表项的调试选项能力请求指令发送给交换机,将交换机返回的流表功能相应指令发送给能力获取模块。
上述方案中,所述数据收发模块,还用于在网络诊断结束后,将报文和上下文信息发送给交换机。
本发明提供的技术方案的有益方面包括如下几点:
首先,控制器向交换机发送流表调试设置指令,设置流表项的调试选项规则,这些流表调试设置指令不会与已有的流表项发生冲突。
其次,交换机将匹配的报文和上下文信息发送给控制器进行网络诊断,如此,使控制器可以根据上下文信息快速确定网络故障的位置,加速网络故障的定位周期,达到提升网络质量、降低网络的运行维护成本的效果,并且在网络诊断结束后,控制器将报文和上下文信息同时发送给交换机,使交换机能够继续报文中断的处理进程。
另外,调试选项字段包括但不限于上送至控制器和数据流日志缓存,使交换机根据控制器的设置将报文和上下文信息发送至控制器、或发送至数据流日志缓存,交换机再根据带宽容量按一定频率从日志缓存中读取报文和上下文信息发送给控制器,如此,可以控制交换机和控制器之间的数据传输容量不至于过大而造成传输拥堵。
附图说明
图1为现有技术中基于SDN的网络诊断方法的流程示意图;
图2为本发明基于SDN的网络诊断方法的流程示意图;
图3为本发明基于SDN的网络诊断系统的组成架构示意图;
图4为本发明实施例提供的基于SDN的网络诊断方法的流程示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图2为本发明基于SDN的网络诊断方法的流程示意图,如图2所示,包括以下步骤:
步骤21:交换机根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;
这里,控制器可通过控制器本身的调试选项能力接口向交换机发送流表调试设置指令,用来设置调试选项规则,所述流表调试设置指令包括流表号、匹配字段和调试选项字段;所述调试选项字段包括:上送至控制器、数据流日志缓存等等;所述流表调试指令可通过标准协议承载,如OpenFlow协议,向交换机设置调试选项规则。具体的,流表调试设置指令可以为:流表号为a,匹配字段为源MAC地址是b,调试选项字段为数据流日志缓存。
这里,交换机可通过交换机本身的调试选项能力接口接收控制器发来的流表调试设置指令,用来设置调试选项规则;其中,所述控制器提供的调试选项能力接口是基于交换机提供的调试选项能力接口的基础之上开发的;
其中,维护人员可以通过控制器提供的接口设置调试选项规则,所述调试选项规则可根据维护人员的需要进行设置,例如,设备a至设备b之间网络发生异常,则维护人员可以设置流表号为1、匹配字段为:源MAC地址为设备a地址和目的MAC地址为设备b地址、调试选项字段为上送至控制器,进而控制交换机将发生异常区域的报文发送给控制器进行网络诊断;
其中,所述控制器泛指能够通过命令控制、查询、维护交换机/路由器的装置。例如对于传统的交换机而言,通过简单网络管理协议(Simple NetworkManagement Protocol,SNMP)、网络配置协议(NETCONF)等标准协议管理交换机的网络管理系统可视为控制器的一种;对于软件定义网络领域中的控制器而言,通过OpenFlow标准协议控制交换机转发行为的装置可视为控制器的一种。
步骤22:交换机将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断的结果为是,则交换机根据调试选项字段内容将匹配的报文和上下文信息发送给控制器;
这里,所述交换机将报文首部的关键字段与流表项中的匹配字段做匹配之前,该方法还包括:
交换机通过流表通知指令将流表项的调试选项能力发送给控制器;
或控制器向交换机发送流表项的调试选项能力请求指令,交换机通过流表功能响应指令将流表项的调试选项能力发送给控制器。
其中,由于交换机中有部分流表项是硬件固化流表项,硬件固化流表项中的流表调试规则不能被交换机通过流表调试设置指令所设置,因此,在交换机将报文首部的关键字段与流表项的匹配字段做匹配之前,需将流表项的调试选项能力上报给控制器,以防止控制器设置的流表调试规则与硬件固化流表项中的流表调试规则发生冲突,便于控制器能够及时做出调整,保证进程的正常运行;
其中,所述调试选项能力为所有携带有调试选项字段的流表项的内容,包括流表号、匹配字段和调试选项字段等信息;
其中,所述调试选项字段包括报文上送至控制器和数据流日志缓存等等。
这里,所述交换机根据调试选项字段内容将匹配的报文和上下文信息发送给控制器包括:
若调试选项字段为上送至控制器,则交换机将匹配的报文和上下文信息立即发送给控制器;
若调试选项字段为数据流日志缓存,则交换机将匹配的报文和上下文信息发送到交换机日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器。
这里,交换机可根据控制器和交换机之间的传输带宽容量设置采样频率来控制交换机从日志缓存中读取报文和上下文信息的大小,以控制交换机和控制器之间的数据传输容量不至于过大而造成传输拥堵。
具体的,以交换机中的流表项包括1~255张、其中流表号为a的流表项的匹配字段为目的MAC地址为1、调试选项字段为上送至控制器为例,当交换机收到报文后,假设该报文首部的目的MAC地址也为1,将数据报文从流表号为1的流表项开始进行匹配进程处理,直至进行到流表号为a的流表项,报文首部的关键字段与流表项的匹配字段匹配成功,则进一步判断匹配的流表项是否携带调试选项字段,此处判断的结果为是,则根据调试选项字段内容:上送至控制器,交换机将报文和上下文信息立即发送给控制器进行网络诊断;
其中,所述调试选项字段可以作为流表项中的独立字段携带,也可以作为流表项中现有字段的扩展属性携带,比如作为执行逻辑字段的扩展字段携带;
其中,所述上下文信息包括抽象的上下文信息和私有的上下文信息;其中,
所述抽象的上下文信息包括报文匹配的流表号、流表项信息、报文首部信息等等;
所述私有的上下文信息包括转发面芯片的寄存器信息、内存数据信息等报文所述的硬件方面的信息。
步骤23:控制器将报文和上下文信息发送给诊断应用进行网络诊断;
这里,控制器的收发端口收到报文和上下文信息后通过诊断信息指令将报文和上下文信息发送给诊断应用,维护人员可以在诊断应用中对网络故障进行定位,在诊断应用中的仿真调试应用里,通过报文和上下文信息可以恢复网络设备转发面的上下文信息,通过仿真运行的方式对网络故障进行调试跟踪,确定网络故障位置;
另外,控制器还可以将报文和上下文信息发送到第三方诊断平台进行更进一步的问题诊断;该诊断过程不在本发明的保护范围,此处不在赘述。
这里,所述控制器根据收到的报文和上下文信息进行网络诊断之后,进一步包括:控制器将报文和上下文信息发送给交换机继续报文中断的处理进程;
具体的,当网络诊断结束后,控制器将报文及上下文信息同时发送给交换机,使得交换机根据上下文信息能够继续报文中断的处理进程。例如在交换机将报文和上下文信息发送给控制器之前,交换机将报文和流表项进行匹配处理至流表号为a的流表项,则交换机收到报文和上下文信息后,根据上下文信息中,得知该报文进行到流表号为a的流表项匹配处理进程中,交换机将从流表号为a+1的流表项匹配处理进程开始,继续对报文进行处理,直至报文结束全部255张流表项的匹配处理进程,从交换机的指定端口发送至原目的地址。
图3为本发明基于SDN的网络诊断系统的组成架构示意图,如图2所示,该系统包括交换机31和控制器32;其中,
所述交换机31,用于根据控制器32发来的流表调试设置指令,设置流表项的调试选项规则;用于根据设置的流表项的调试选项规则,将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项字段内容将匹配的报文和上下文信息发送给控制器32;
所述控制器32,用于向交换机31发送流表调试设置指令,设置流表项的调试选项规则;还用于接收交换机31发来的报文和上下文信息,并根据报文和上下文信息进行网络诊断。
进一步的,所述交换机31,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力发送给控制器32;
相应的,所述控制器32,还用于接收交换机31发来的流表项的调试选项能力;
或所述控制器32,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,向交换机31发送流表项的调试选项能力请求指令,并接收交换机31返回的流表功能相应指令;
相应的,所述交换机31,还用于在收到控制器32发来的流表项的调试选项能力请求指令后,通过流表功能响应指令将流表项的调试选项能力发送给控制器32。
所述控制器32,进一步用于在网络诊断结束后,将报文和上下文信息发送给交换机31;
所述交换机31,进一步用于在网络诊断结束后,接收控制器32发来的报文和上下文信息继续报文中断的处理进程。
这里,交换机31根据调试选项字段内容将匹配的报文和上下文信息发送给控制器32包括:
若调试选项字段为报文上送至控制器,则交换机31将匹配的报文和上下文信息立即发送给控制器32;
若调试选项字段为数据流日志缓存,则交换机31将匹配的报文和上下文信息发送到交换机日志缓存,交换机31从日志缓存中读取报文和上下文信息发送给控制器32。
进一步的,所述系统还包括第三方诊断平台33,用于根据控制器发来的报文和上下文信息进行网络诊断;
相应的,所述控制器32,还用于将报文和上下文信息发送至第三方诊断平台33。
进一步的,所述交换机31包括调试选项设置模块314、第二调试选项能力接口316、匹配执行模块311、日志缓存模块312和数据读取模块313;其中,
所述调试选项设置模块314,用于根据控制器32通过第二调试选项能力接口316发来的流表调试设置指令,设置流表项的调试选项规则;
所述第二调试选项能力接口316,用于将控制器32发来的流表调试设置指令发送给调试选项设置模块314;
所述匹配执行模块311,用于将报文首部的关键字段与流表项的匹配字段做匹配,并判断该报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项字段内容将报文和上下文信息发送给控制器32,或发送给日志缓存模块312;
所述日志缓存模块312,用于存储匹配执行模块311发来的报文和上下文信息;
所述数据读取模块313,用于读取日志缓存模块312中存储的报文和上下文信息,并将读取的信息发送给控制器32。
进一步的,所述交换机31还包括能力上报模块315,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力通过第二调试选项能力接口316发送给控制器32;或在收到控制器32通过第二调试选项能力接口316发来的流表项的调试选项能力请求指令后,通过第二调试选项能力接口316将流表功能响应指令发送给控制器32;
相应的,所述第二调试选项能力接口316还用于将能力上报模块315发来的流表项的调试选项能力发送给控制器32;或将控制器32发来的流表项的调试选项能力请求指令发送给能力上报模块315后,将能力上报模块315发来的流表功能响应指令发送给控制器32。
进一步的,所述匹配执行模块311,还用于在控制器32对报文网络诊断结束后,接收控制器32发来的报文和上下文信息,并继续报文中断的处理进程。
进一步的,所述控制器32包括指令设置模块321、第一调试选项能力接口325、数据收发模块322和诊断应用模块323;其中,
所述指令设置模块321,用于通过第一调试选项能力接口325向交换机31发送流表调试设置指令,设置流表项的调试选项规则;
所述第一调试选项能力接口325,用于将指令设置模块321发来的流表调试设置指令发送给交换机31;
所述数据收发模块322,用于接收交换机31发来的报文和上下文信息,并将报文和上下文信息发送给应用诊断模块323;
所述诊断应用模块323,用于根据数据收发模块322发来的报文和上下文信息进行网络诊断。
进一步的,所述控制器32还包括能力获取模块324,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,通过第一调试选项能力接口325接收交换机31发来的流表项的调试选项能力;或通过第一调试选项能力接口325向交换机31发送流表项的调试选项能力请求指令,并通过第一调试选项能力接口325接收交换机31返回的流表功能响应指令;
相应的,所述第一调试选项能力接口325,还用于将交换机31发来的流表项的调试选项能力发送给能力获取模块324;或将能力获取模块324发来的流表项的调试选项能力请求指令发送给交换机31,将交换机31返回的流表功能相应指令发送给能力获取模块324。
进一步的,所述数据收发模块322,还用于在网络诊断结束后,将报文和上下文信息发送给交换机31。
进一步的,所述数据收发模块322,还用于将报文和上下文信息发送至第三方诊断平台33。
图4为本发明实施例提供的基于SDN的网络诊断方法的流程示意图,如图4所示,包括以下步骤:
步骤401:控制器与交换机建立连接,控制器向交换机发送流表调试设置指令,设置流表项的调试选项规则;
这里,维护人员可以通过控制器提供的调试选项能力接口设置调试选项规则,通过流表调试指令向一个或多个交换机发送该流表调试设置指令;所述流表调试指令可通过标准协议承载,如OpenFlow协议,向交换机设置调试选项规则;
其中,所述流表调试选项指令包括流表号、匹配字段和调试选项字段,具体需要在哪个流表项中设置调试选项字段可以由维护人员通过控制器提供的接口来设置;所述调试选项字段包括:上送至控制器、数据流日志缓存等等;
具体的,若调试选项字段为上送至控制器,则交换机将匹配到的报文和上下文信息发送至控制器;
若调试选项字段为数据流日志缓存,则交换机将匹配到的报文和上下文信息发送至本地交换机日志缓存,并按一定的采样频率读取日志缓存中存储的报文和上下文信息,将报文和上下文信息发送给控制器。
步骤402:交换机通过流表通知指令将流表项的调试选项能力发送给控制器;
这里,所述交换机通过流表通知指令将流表项的调试选项能力发送给控制器,也可以是控制器向交换机发送流表功能请求指令,交换机通过流表功能相应指令将流表项的调试选项能力发送给控制器;
其中,由于交换机中有部分流表项是硬件固化流表项,硬件固化流表项中的流表调试规则不能被交换机通过流表调试设置指令所设置,因此,在交换机将报文首部的关键字段与流表项的匹配字段做匹配之前,需将流表项的调试选项能力上报给控制器,以防止控制器设置的流表调试规则与硬件固化流表项中的流表调试规则发生冲突,便于控制器能够及时做出调整,保证进程的正常运行;
其中,所述流表项的调试选项能力为所有携带有调试选项字段的流表项的内容,包括流表号、匹配字段和调试选项字段等信息。
步骤403~404:交换机将报文首部的关键字段与流表项的匹配字段做匹配,并判断匹配的流表项是否设置了调试选项字段,若判断的结果为是,则执行步骤405~408;
这里,所述报文首部的关键字段与流表项的匹配字段可以是目的MAC地址、源MAC地址等信息,例如,流表号为a的流表项的匹配字段是目的MAC地址为1,若报文首部的目的MAC地址也为1,则该报文首部的关键字段与该流表项的匹配字段匹配成功;
若报文首部的关键字段与流表项的匹配字段匹配成功,则进一步判断匹配的流表项是否设置了调试选项字段,若判断的结果为是,则依据调试选项字段的具体内容,执行步骤405~408;
若调试选项字段为上送控制器,则执行步骤405:交换机将报文和上下文信息立即发送至控制器;
若调试选项字段为数据流日志缓存,则执行步骤406:交换机将报文和上下文信息发送至日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器;
这里,所述日志缓存可以保存在交换机的硬盘中,交换机可以根据控制器和交换机之间的传输带宽容量设置采样频率来控制交换机从日志缓存中读取报文和上下文信息的大小,以控制交换机和控制器之间的数据传输通量不至于过大而造成传输拥堵。
当交换机将报文和上下文信息发送给控制器后,执行步骤407~408:
步骤407:控制器将报文和上下文信息发送给诊断应用进行网络诊断;
这里,控制器的收发端口收到报文和上下文信息后通过诊断信息指令将报文和上下文信息发送给诊断应用,维护人员可以在诊断应用中对网络故障进行定位,在诊断应用中的仿真调试应用里,通过报文和上下文信息可以恢复网络设备转发面的上下文信息,通过仿真运行的方式对网络故障进行调试跟踪,确定网络故障位置;
步骤408:诊断结束后,控制器将报文和上下文信息发送给交换机,交换机根据上下文信息继续报文中断的处理进程;
这里,交换机中的流表项可以包括1~X张,在交换机将报文和上下文信息发送给控制器之前,交换机将报文和流表项进行匹配处理至流表号为a的流表项,则交换机收到报文和上下文信息后,上下文信息得知该报文进行到流表项为a的流表项匹配处理进程,交换机将从流表号为a+1的流表项匹配处理进程开始,继续对报文进行处理,直至报文结束全部X张流表项的匹配处理进程,从交换机的指定端口发送至原目的地址。
若调试选项字段为数据流镜像,则交换机将报文和上下文信息从指定端口发送至报文原目的地址。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (12)
1.一种基于软件定义网络SDN的网络诊断方法,其特征在于,该方法包括:
交换机根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;
交换机将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断的结果为是,则交换机根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器;
控制器根据收到的报文和上下文信息进行网络诊断;
在所述交换机将报文首部的关键字段与流表项的匹配字段做匹配之前,该方法还包括:
交换机通过流表通知指令将流表项的调试选项能力发送给控制器;
或控制器向交换机发送流表项的调试选项能力请求指令,交换机通过流表功能响应指令将流表项的调试选项能力发送给控制器。
2.根据权利要求1所述的方法,其特征在于,所述交换机根据调试选项字段内容执行相应的调试操作,将匹配的报文和上下文信息发送给控制器包括:
若调试选项字段为上送至控制器,则交换机将匹配的报文和上下文信息立即发送给控制器;
若调试选项字段为数据流日志缓存,则交换机将匹配的报文和上下文信息发送到交换机日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器。
3.根据权利要求1所述的方法,其特征在于,所述调试选项字段作为流表项中的独立字段携带,或通过流表项中现有字段的扩展属性携带。
4.根据权利要求1所述的方法,其特征在于,所述控制器根据收到的报文和上下文信息进行网络诊断之后,进一步包括:
控制器将报文和上下文信息发送给交换机继续报文中断的处理进程。
5.一种基于SDN的网络诊断系统,其特征在于,该系统包括交换机和控制器;其中,
所述交换机,用于根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;用于根据设置的流表项的调试选项规则,将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器;
所述控制器,用于向交换机发送流表调试设置指令,设置流表项的调试选项规则;还用于接收交换机发来的报文和上下文信息,并根据报文和上下文信息进行网络诊断;
所述交换机,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力发送给控制器;
相应的,所述控制器,还用于接收交换机发来的流表项的调试选项能力;
或所述控制器,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,向交换机发送流表项的调试选项能力请求指令,并接收交换机返回的流表功能相应指令;
相应的,所述交换机,还用于在收到控制器发来的流表项的调试选项能力请求指令后,通过流表功能响应指令将流表项的调试选项能力发送给控制器。
6.根据权利要求5所述的系统,其特征在于,
所述控制器,还用于在网络诊断结束后,将报文和上下文信息发送给交换机;
相应的,所述交换机,还用于网络诊断结束后,接收控制器发来的报文和上下文信息继续报文中断的处理进程。
7.根据权利要求5所述的系统,其特征在于,所述根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器包括:
若调试选项字段为报文上送至控制器,则交换机将匹配的报文和上下文信息立即发送给控制器;
若调试选项字段为数据流日志缓存,则交换机将匹配的报文和上下文信息发送到交换机日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器。
8.一种交换机,其特征在于,所述交换机包括调试选项设置模块、第二调试选项能力接口、匹配执行模块、日志缓存模块和数据读取模块;其中,
所述调试选项设置模块,用于根据控制器通过第二调试选项能力接口发来的流表调试设置指令,设置流表项的调试选项规则;
所述第二调试选项能力接口,用于将控制器发来的流表调试设置指令发送给调试选项设置模块;
所述匹配执行模块,用于将报文首部的关键字段与流表项的匹配字段做匹配,并判断该报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项内容将报文和上下文信息发送给控制器,或发送给日志缓存模块;
所述日志缓存模块,用于存储匹配执行模块发来的报文和上下文信息;
所述数据读取模块,用于读取日志缓存模块中存储的报文和上下文信息,并将读取的信息发送给控制器;
所述交换机还包括能力上报模块,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力通过第二调试选项能力接口发送给控制器;或在收到控制器通过第二调试选项能力接口发来的流表项的调试选项能力请求指令后,通过第二调试选项能力接口将流表功能响应指令发送给控制器;
相应的,所述第二调试选项能力接口还用于将能力上报模块发来的流表项的调试选项能力发送给控制器;或将控制器发来的流表项的调试选项能力请求指令发送给能力上报模块后,将能力上报模块发来的流表功能响应指令发送给控制器。
9.根据权利要求8所述的交换机,其特征在于,所述匹配执行模块还用于在控制器对报文网络诊断结束后,接收控制器发来的报文和上下文信息,并继续报文中断的处理进程。
10.根据权利要求8或9所述的交换机,其特征在于,所述根据调试选项内容将报文和上下文信息发送给控制器,或发送给日志缓存模块包括:
若调试选项字段为报文上送至控制器,则匹配执行模块将匹配的报文和上下文信息立即发送给控制器;
若调试选项字段为数据流日志缓存,则匹配执行模块将匹配的报文和上下文信息发送到日志缓存模块,匹配执行模块从日志缓存模块中读取报文和上下文信息发送给控制器。
11.一种控制器,其特征在于,所述控制器包括指令设置模块、第一调试选项能力接口、数据接收模块和诊断应用模块;其中,
所述指令设置模块,用于通过第一调试选项能力接口向交换机发送流表调试设置指令,设置流表项的调试选项规则;
所述第一调试选项能力接口,用于将指令设置模块发来的流表调试设置指令发送给交换机;
所述数据收发模块,用于接收交换机发来的报文和上下文信息,并将报文和上下文信息发送给应用诊断模块;
所述诊断应用模块,用于根据数据收发模块发来的报文和上下文信息进行网络诊断;
所述控制器还包括能力获取模块,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,通过第一调试选项能力接口接收交换机发来的流表项的调试选项能力;或通过第一调试选项能力接口向交换机发送流表项的调试选项能力请求指令,并通过第一调试选项能力接口接收交换机返回的流表功能响应指令;
相应的,所述第一调试选项能力接口,还用于将交换机发来的流表项的调试选项能力发送给能力获取模块;或将能力获取模块发来的流表项的调试选项能力请求指令发送给交换机,将交换机返回的流表功能相应指令发送给能力获取模块。
12.根据权利要求11所述的控制器,其特征在于,所述数据收发模块,还用于在网络诊断结束后,将报文和上下文信息发送给交换机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210457073.4A CN102946325B (zh) | 2012-11-14 | 2012-11-14 | 一种基于软件定义网络的网络诊断方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210457073.4A CN102946325B (zh) | 2012-11-14 | 2012-11-14 | 一种基于软件定义网络的网络诊断方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102946325A CN102946325A (zh) | 2013-02-27 |
CN102946325B true CN102946325B (zh) | 2015-06-03 |
Family
ID=47729234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210457073.4A Active CN102946325B (zh) | 2012-11-14 | 2012-11-14 | 一种基于软件定义网络的网络诊断方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102946325B (zh) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9356871B2 (en) * | 2013-03-15 | 2016-05-31 | Cisco Technology, Inc. | Programmable management engine for networks |
WO2014179923A1 (zh) * | 2013-05-06 | 2014-11-13 | 华为技术有限公司 | 基于sdn的网络配置方法、装置及系统 |
CN103326884B (zh) * | 2013-05-30 | 2016-06-01 | 烽火通信科技股份有限公司 | Sdn网络中结合流检测和包检测的业务流感知系统及方法 |
EP2996292B1 (en) | 2013-06-14 | 2020-08-05 | Huawei Technologies Co., Ltd. | Method for processing message and forwarder |
EP2995064A4 (en) * | 2013-06-20 | 2016-06-15 | Huawei Tech Co Ltd | NETWORK METHOD AND APPARATUS FOR ESTABLISHING A PATH |
CN104521201B (zh) | 2013-06-25 | 2018-09-28 | 华为技术有限公司 | 转发节点的处理方法、转发节点及控制节点 |
CN104348757B (zh) * | 2013-07-31 | 2018-03-16 | 华为技术有限公司 | 一种流表交互方法、交换机及系统 |
CN104426731B (zh) * | 2013-08-23 | 2018-01-12 | 新华三技术有限公司 | 一种生成树计算的方法和装置 |
CN104426760A (zh) * | 2013-08-23 | 2015-03-18 | 中兴通讯股份有限公司 | 流映射处理方法及装置 |
CN104426815B (zh) * | 2013-08-27 | 2019-07-09 | 中兴通讯股份有限公司 | 一种sdn中流表下发的方法和系统、of控制器和of交换机 |
WO2015027477A1 (zh) * | 2013-08-30 | 2015-03-05 | 华为技术有限公司 | 流表控制方法、装置、交换机和控制器 |
WO2015040625A1 (en) * | 2013-09-23 | 2015-03-26 | Hewlett-Packard Development Company, L.P. | Troubleshooting openflow networks |
CN104579722A (zh) * | 2013-10-11 | 2015-04-29 | 中兴通讯股份有限公司 | 流统计能力的协商方法及装置 |
US9467330B2 (en) | 2013-10-14 | 2016-10-11 | Hewlett Packard Enterprise Development Lp | Diagnosing connectivity in a network |
CN103607379A (zh) * | 2013-11-04 | 2014-02-26 | 中兴通讯股份有限公司 | 一种软件定义网络安全实施方法、系统及控制器 |
CN103560951A (zh) * | 2013-11-13 | 2014-02-05 | 华为技术有限公司 | 报文处理方法及物理转发设备 |
FI20136138L (fi) * | 2013-11-18 | 2015-05-19 | Tellabs Oy | Verkkoelementti ja kontrolleri verkkoelementin hallitsemiseksi |
CN103685250A (zh) * | 2013-12-04 | 2014-03-26 | 蓝盾信息安全技术股份有限公司 | 一种基于sdn的虚拟机安全策略迁移的系统及方法 |
CN104753791B (zh) * | 2013-12-31 | 2019-01-01 | 中国移动通信集团公司 | 一种数据包处理方法、装置和系统 |
JP6369024B2 (ja) * | 2014-01-09 | 2018-08-08 | 富士通株式会社 | 映像配信システム及び映像配信システムにおいて使用されるノード装置 |
CN108777629B (zh) * | 2014-01-28 | 2021-08-20 | 华为技术有限公司 | 处理规则的修改方法、装置及设备 |
CN105264944B (zh) * | 2014-03-18 | 2019-06-21 | 华为技术有限公司 | 统计信息上报方法及装置 |
CN104205745B (zh) * | 2014-04-04 | 2017-02-15 | 华为技术有限公司 | 报文处理的方法与设备 |
EP4362403A3 (en) | 2014-04-22 | 2024-07-17 | Orckit Ip, Llc | A method for deep packet inspection in software defined networks |
CN105474602B (zh) | 2014-06-17 | 2019-02-05 | 华为技术有限公司 | 软件定义网络中识别攻击流的方法、装置以及设备 |
CN105262686B (zh) * | 2014-07-18 | 2020-04-24 | 中兴通讯股份有限公司 | 一种网络连通性验证方法和装置 |
CN104243240B (zh) * | 2014-09-23 | 2017-05-24 | 电子科技大学 | 一种基于OpenFlow的SDN流量测量方法 |
WO2016045056A1 (zh) * | 2014-09-25 | 2016-03-31 | 华为技术有限公司 | 交换机及业务请求报文的处理方法 |
CN105591787B (zh) * | 2014-11-13 | 2019-07-23 | 华为技术有限公司 | 一种网络中的根本原因分析方法、装置和系统 |
CN105874758B (zh) * | 2014-11-28 | 2019-07-12 | 华为技术有限公司 | 内存访问方法、交换机及多处理器系统 |
CN105743687B (zh) * | 2014-12-12 | 2020-01-10 | 中兴通讯股份有限公司 | 节点故障的判断方法及装置 |
CN104539561A (zh) * | 2014-12-29 | 2015-04-22 | 盛科网络(苏州)有限公司 | 基于报文处理信息的芯片调试方法及装置 |
CN104506463A (zh) * | 2015-01-04 | 2015-04-08 | 盛科网络(苏州)有限公司 | 提供交换机报文芯片在线流程调试信息的方法及装置 |
CN104601225B (zh) * | 2015-02-02 | 2017-05-03 | 浪潮电子信息产业股份有限公司 | 一种波长探测方法及装置 |
CN104836749B (zh) * | 2015-03-27 | 2018-10-30 | 清华大学 | 一种sdn数据平面带状态转发处理器 |
CN105357075B (zh) * | 2015-11-20 | 2019-02-05 | 武汉邮电科学研究院 | 基于软件定义网络的流量监测系统和方法 |
CN106817301A (zh) * | 2015-11-30 | 2017-06-09 | 中兴通讯股份有限公司 | 故障恢复方法及装置、控制器、软件定义网络 |
CN105515995B (zh) * | 2015-12-01 | 2018-09-21 | 华为技术有限公司 | 报文处理方法及装置 |
CN106972979A (zh) * | 2016-01-14 | 2017-07-21 | 中国移动通信集团公司 | 一种基于sdn的网络性能监测方法及装置 |
CN105791009A (zh) * | 2016-03-02 | 2016-07-20 | 上海斐讯数据通信技术有限公司 | 一种基于sdn的用户上网行为收集方法和系统 |
CN110113205B (zh) * | 2019-05-06 | 2021-07-30 | 南京大学 | 一种基于软件定义网络技术的网络排障系统及其工作方法 |
CN111147516B (zh) * | 2019-12-31 | 2020-11-24 | 中南民族大学 | 基于sdn的安全设备动态互联与智能选路决策系统及方法 |
CN114168448A (zh) * | 2020-09-11 | 2022-03-11 | 奇安信科技集团股份有限公司 | 软件异常诊断方法、装置、电子设备及存储介质 |
CN115733889A (zh) * | 2021-08-31 | 2023-03-03 | 腾讯科技(深圳)有限公司 | 一种网络转发设备的调试方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010085911A1 (zh) * | 2009-02-02 | 2010-08-05 | 中兴通讯股份有限公司 | 一种移动通信网络自优化的方法和系统 |
CN102349268A (zh) * | 2009-03-09 | 2012-02-08 | 日本电气株式会社 | OpenFlow通信系统和OpenFlow通信方法 |
CN102668467A (zh) * | 2009-10-07 | 2012-09-12 | 日本电气株式会社 | 计算机系统和监视计算机系统的方法 |
-
2012
- 2012-11-14 CN CN201210457073.4A patent/CN102946325B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010085911A1 (zh) * | 2009-02-02 | 2010-08-05 | 中兴通讯股份有限公司 | 一种移动通信网络自优化的方法和系统 |
CN102349268A (zh) * | 2009-03-09 | 2012-02-08 | 日本电气株式会社 | OpenFlow通信系统和OpenFlow通信方法 |
CN102668467A (zh) * | 2009-10-07 | 2012-09-12 | 日本电气株式会社 | 计算机系统和监视计算机系统的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102946325A (zh) | 2013-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102946325B (zh) | 一种基于软件定义网络的网络诊断方法、系统及设备 | |
US9135130B2 (en) | Debugging method, chip, board, and system | |
US20170142000A1 (en) | Packet control method, switch, and controller | |
WO2017041406A1 (zh) | 一种故障定位方法及装置 | |
US10892913B2 (en) | Gateway, on-vehicle communication system, communication control method and recording medium | |
CN103763121A (zh) | 一种网络配置信息快速下发的方法及装置 | |
EP2568733A1 (en) | Method and apparatus for collecting mobile communication data | |
CN109960634A (zh) | 一种应用程序监控方法、装置及系统 | |
US20180139634A1 (en) | Method and apparatus for probing fronthaul topology | |
EP4167530A1 (en) | Network monitoring method, electronic device and storage medium | |
CN109150659B (zh) | 一种处理器及bfd报文传输方法 | |
CN111130821A (zh) | 一种掉电告警的方法、处理方法及装置 | |
CN109347685B (zh) | 一种网络设备、逻辑装置及通知信息传输方法 | |
US12086093B2 (en) | Serial port control system based on complex programmable logic device (CPLD) and communication method therefor | |
CN102216909A (zh) | 一种网络处理器和网络处理器所存程序的诊断方法 | |
CN101136756B (zh) | 网络远程控制主机上电自检的方法、系统和bmc芯片 | |
EP4462840A1 (en) | Method and apparatus for mining security vulnerability of air interface protocol, and mobile terminal | |
JP2006253753A (ja) | 無線アクセスネットワークシステム | |
CN117459966A (zh) | 基于多信道的双模通信方法、系统及介质、电子设备 | |
CN110213176A (zh) | 交换机的报文处理方法、装置、设备及介质 | |
US20190335378A1 (en) | Access point connectivity | |
CN101431435A (zh) | 一种基于面向连接的业务配置与管理方法 | |
CN109257185A (zh) | 一种网络设备、业务卡、逻辑装置及通知信息传输方法 | |
CN117061638B (zh) | 一种报文传输方法、装置、存储介质、设备及系统 | |
CN113079524B (zh) | 一种基于信令软采的信令跟踪方法、基站及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |