著录项信息
专利名称 | 一种基于软件定义网络的网络诊断方法、系统及设备 |
申请号 | CN201210457073.4 | 申请日期 | 2012-11-14 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-02-27 | 公开/公告号 | CN102946325A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 中兴通讯股份有限公司 | 申请人地址 | 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中兴通讯股份有限公司 | 当前权利人 | 中兴通讯股份有限公司 |
发明人 | 梁亮 |
代理机构 | 北京派特恩知识产权代理有限公司 | 代理人 | 蒋雅洁;王黎延 |
摘要
本发明公开了一种基于软件定义网络(SDN)的网络诊断方法,该方法包括:交换机根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;交换机将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断的结果为是,则交换机根据调试选项字段内容将执行相应的调试动作,这些动作包括但不限于将匹配的报文和上下文信息发送给控制器;控制器根据报文和上下文信息进行网络诊断。本发明还公开了一种基于SDN的网络诊断系统及设备,通过本发明的技术方案,能够加速网络问题的定位周期,达到提升网络质量、降低网络的运行维护成本的效果。
1.一种基于软件定义网络SDN的网络诊断方法,其特征在于,该方法包括:
交换机根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;
交换机将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断的结果为是,则交换机根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器;
控制器根据收到的报文和上下文信息进行网络诊断;
在所述交换机将报文首部的关键字段与流表项的匹配字段做匹配之前,该方法还包括:
交换机通过流表通知指令将流表项的调试选项能力发送给控制器;
或控制器向交换机发送流表项的调试选项能力请求指令,交换机通过流表功能响应指令将流表项的调试选项能力发送给控制器。
2.根据权利要求1所述的方法,其特征在于,所述交换机根据调试选项字段内容执行相应的调试操作,将匹配的报文和上下文信息发送给控制器包括:
若调试选项字段为上送至控制器,则交换机将匹配的报文和上下文信息立即发送给控制器;
若调试选项字段为数据流日志缓存,则交换机将匹配的报文和上下文信息发送到交换机日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器。
3.根据权利要求1所述的方法,其特征在于,所述调试选项字段作为流表项中的独立字段携带,或通过流表项中现有字段的扩展属性携带。
4.根据权利要求1所述的方法,其特征在于,所述控制器根据收到的报文和上下文信息进行网络诊断之后,进一步包括:
控制器将报文和上下文信息发送给交换机继续报文中断的处理进程。
5.一种基于SDN的网络诊断系统,其特征在于,该系统包括交换机和控制器;其中,所述交换机,用于根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;
用于根据设置的流表项的调试选项规则,将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器;
所述控制器,用于向交换机发送流表调试设置指令,设置流表项的调试选项规则;还用于接收交换机发来的报文和上下文信息,并根据报文和上下文信息进行网络诊断;
所述交换机,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力发送给控制器;
相应的,所述控制器,还用于接收交换机发来的流表项的调试选项能力;
或所述控制器,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,向交换机发送流表项的调试选项能力请求指令,并接收交换机返回的流表功能相应指令;
相应的,所述交换机,还用于在收到控制器发来的流表项的调试选项能力请求指令后,通过流表功能响应指令将流表项的调试选项能力发送给控制器。
6.根据权利要求5所述的系统,其特征在于,
所述控制器,还用于在网络诊断结束后,将报文和上下文信息发送给交换机;
相应的,所述交换机,还用于网络诊断结束后,接收控制器发来的报文和上下文信息继续报文中断的处理进程。
7.根据权利要求5所述的系统,其特征在于,所述根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器包括:
若调试选项字段为报文上送至控制器,则交换机将匹配的报文和上下文信息立即发送给控制器;
若调试选项字段为数据流日志缓存,则交换机将匹配的报文和上下文信息发送到交换机日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器。
8.一种交换机,其特征在于,所述交换机包括调试选项设置模块、第二调试选项能力接口、匹配执行模块、日志缓存模块和数据读取模块;其中,
所述调试选项设置模块,用于根据控制器通过第二调试选项能力接口发来的流表调试设置指令,设置流表项的调试选项规则;
所述第二调试选项能力接口,用于将控制器发来的流表调试设置指令发送给调试选项设置模块;
所述匹配执行模块,用于将报文首部的关键字段与流表项的匹配字段做匹配,并判断该报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项内容将报文和上下文信息发送给控制器,或发送给日志缓存模块;
所述日志缓存模块,用于存储匹配执行模块发来的报文和上下文信息;
所述数据读取模块,用于读取日志缓存模块中存储的报文和上下文信息,并将读取的信息发送给控制器;
所述交换机还包括能力上报模块,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力通过第二调试选项能力接口发送给控制器;或在收到控制器通过第二调试选项能力接口发来的流表项的调试选项能力请求指令后,通过第二调试选项能力接口将流表功能响应指令发送给控制器;
相应的,所述第二调试选项能力接口还用于将能力上报模块发来的流表项的调试选项能力发送给控制器;或将控制器发来的流表项的调试选项能力请求指令发送给能力上报模块后,将能力上报模块发来的流表功能响应指令发送给控制器。
9.根据权利要求8所述的交换机,其特征在于,所述匹配执行模块还用于在控制器对报文网络诊断结束后,接收控制器发来的报文和上下文信息,并继续报文中断的处理进程。
10.根据权利要求8或9所述的交换机,其特征在于,所述根据调试选项内容将报文和上下文信息发送给控制器,或发送给日志缓存模块包括:
若调试选项字段为报文上送至控制器,则匹配执行模块将匹配的报文和上下文信息立即发送给控制器;
若调试选项字段为数据流日志缓存,则匹配执行模块将匹配的报文和上下文信息发送到日志缓存模块,匹配执行模块从日志缓存模块中读取报文和上下文信息发送给控制器。
11.一种控制器,其特征在于,所述控制器包括指令设置模块、第一调试选项能力接口、数据接收模块和诊断应用模块;其中,
所述指令设置模块,用于通过第一调试选项能力接口向交换机发送流表调试设置指令,设置流表项的调试选项规则;
所述第一调试选项能力接口,用于将指令设置模块发来的流表调试设置指令发送给交换机;
所述数据收发模块,用于接收交换机发来的报文和上下文信息,并将报文和上下文信息发送给应用诊断模块;
所述诊断应用模块,用于根据数据收发模块发来的报文和上下文信息进行网络诊断;
所述控制器还包括能力获取模块,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,通过第一调试选项能力接口接收交换机发来的流表项的调试选项能力;或通过第一调试选项能力接口向交换机发送流表项的调试选项能力请求指令,并通过第一调试选项能力接口接收交换机返回的流表功能响应指令;
相应的,所述第一调试选项能力接口,还用于将交换机发来的流表项的调试选项能力发送给能力获取模块;或将能力获取模块发来的流表项的调试选项能力请求指令发送给交换机,将交换机返回的流表功能相应指令发送给能力获取模块。
12.根据权利要求11所述的控制器,其特征在于,所述数据收发模块,还用于在网络诊断结束后,将报文和上下文信息发送给交换机。
一种基于软件定义网络的网络诊断方法、系统及设备\n技术领域\n[0001] 本发明涉及网络通信技术,具体涉及一种基于软件定义网络(SoftwareDefined Network,SDN)的网络诊断方法、系统及设备。\n背景技术\n[0002] SDN是一种新型的网络创新架构,其核心是构建一个转发面和控制面分离的网络体系,像软件开发、调试一样调试网络,以支持网络功能的不断演进,从而实现网络的灵活控制。\n[0003] 基于SDN的网络问题诊断较传统的网络问题诊断变得更加容易。传统的网络出现问题时,需要相关厂商的技术人员收集设备上的日志,通过厂商私有的工具去诊断,定位故障比较繁琐,而且周期较长。\n[0004] 在SDN架构中,以OpenFlow协议为例,网络问题的诊断流程如图1所示:\n[0005] 步骤11中,控制器向交换机发送FlowMod流表指令,命令交换机将指定报文上传给控制器;\n[0006] 这里,所述指定报文可以是指定报文首部关键字段的报文,例如是报文的目的介质访问控制(MediaAccess Control,MAC)地址为1的报文等等。\n[0007] 步骤12,交换机将报文首部关键字段与流表项的匹配字段做匹配,将匹配成功的报文发送给控制器;\n[0008] 流表项在交换机中存储,可以存在一个或多个。在控制器与交换机连接之后,流表项的内容由维护人员通过控制器提供的接口设置;其中,现有的流表项逻辑结构包括匹配字段、统计字段和执行逻辑字段,匹配字段为针对报文首部的关键字段,例如流表项的匹配字段是目的MAC地址为1,则交换机将所有报文的报文首部的关键字段与流表项的匹配字段做匹配,将所有目的MAC地址为1的报文发送给控制器进行网络诊断。\n[0009] 步骤13,控制器对报文进行检查、调试后,将报文从指定端口发出。\n[0010] 目前基于SDN的网络诊断方法仍有一些不足之处,首先,控制器需要向交换机发送额外的流表指令,用于通知交换机将指定报文发送给控制器,这些额外的流表指令可能会与已有的流表项冲突,使交换机无法判断根据那个流表指令进行进程处理,从而导致交换机不能正确将指定报文发送给控制器;其次,OpenFlow协议无法携带交换机转发面更加详细的信息,例如交换机芯片的寄存器信息、内存数据信息等等,从而导致这些硬件信息无法报告给控制器,使得在短时间内难以确定网络故障的位置,加大了网络诊断的难度;第三,控制器网络诊断结束之后只能将报文从指定端口发送出去,而无法继续报文中断的处理进程,进而无法实现像软件开发、调试一样调试网络,违背了SDN的核心理念。\n发明内容\n[0011] 有鉴于此,本发明的主要目的在于提供一种基于软件定义网络的网络诊断方法、系统及设备,能够加速网络故障的定位周期,达到提升网络质量、降低网络的运行维护成本的效果。\n[0012] 为达到上述目的,本发明的技术方案是这样实现的:\n[0013] 本发明提供了一种基于SDN的网络诊断方法,该方法包括:\n[0014] 交换机根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;\n[0015] 交换机将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断的结果为是,则交换机根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器;\n[0016] 控制器根据收到的报文和上下文信息进行网络诊断。\n[0017] 上述方案中,所述交换机根据调试选项字段内容执行相应的调试操作,将匹配的报文和上下文信息发送给控制器包括:\n[0018] 若调试选项字段为上送至控制器,则交换机将匹配的报文和上下文信息立即发送给控制器;\n[0019] 若调试选项字段为数据流日志缓存,则交换机将匹配的报文和上下文信息发送到交换机日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器。\n[0020] 上述方案中,所述调试选项字段作为流表项中的独立字段携带,或通过流表项中现有字段的扩展属性携带。\n[0021] 上述方案中,所述交换机将报文首部的关键字段与流表项的匹配字段做匹配之前,该方法还包括:\n[0022] 交换机通过流表通知指令将流表项的调试选项能力发送给控制器;\n[0023] 或控制器向交换机发送流表项的调试选项能力请求指令,交换机通过流表功能响应指令将流表项的调试选项能力发送给控制器。\n[0024] 上述方案中,所述控制器根据收到的报文和上下文信息进行网络诊断之后,进一步包括:\n[0025] 控制器将报文和上下文信息发送给交换机继续报文中断的处理进程。\n[0026] 本发明还提供了一种基于SDN的网络诊断系统,该系统包括交换机和控制器;其中,\n[0027] 所述交换机,用于根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;用于根据设置的流表项的调试选项规则,将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器;\n[0028] 所述控制器,用于向交换机发送流表调试设置指令,设置流表项的调试选项规则;\n还用于接收交换机发来的报文和上下文信息,并根据报文和上下文信息进行网络诊断。\n[0029] 上述方案中,所述交换机,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力发送给控制器;\n[0030] 相应的,所述控制器,还用于接收交换机发来的流表项的调试选项能力;\n[0031] 或所述控制器,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,向交换机发送流表项的调试选项能力请求指令,并接收交换机返回的流表功能相应指令;\n[0032] 相应的,所述交换机,还用于在收到控制器发来的流表项的调试选项能力请求指令后,通过流表功能响应指令将流表项的调试选项能力发送给控制器。\n[0033] 上述方案中,所述控制器,还用于在网络诊断结束后,将报文和上下文信息发送给交换机;\n[0034] 相应的,所述交换机,还用于网络诊断结束后,接收控制器发来的报文和上下文信息继续报文中断的处理进程。\n[0035] 上述方案中,所述根据调试选项字段内容执行相应的调试动作,将匹配的报文和上下文信息发送给控制器包括:\n[0036] 若调试选项字段为报文上送至控制器,则交换机将匹配的报文和上下文信息立即发送给控制器;\n[0037] 若调试选项字段为数据流日志缓存,则交换机将匹配的报文和上下文信息发送到交换机日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器。\n[0038] 本发明还提供了一种交换机,所述交换机包括调试选项设置模块、第二调试选项能力接口、匹配执行模块、日志缓存模块和数据读取模块;其中,\n[0039] 所述调试选项设置模块,用于根据控制器通过第二调试选项能力接口发来的流表调试设置指令,设置流表项的调试选项规则;\n[0040] 所述第二调试选项能力接口,用于将控制器发来的流表调试设置指令发送给调试选项设置模块;\n[0041] 所述匹配执行模块,用于将报文首部的关键字段与流表项的匹配字段做匹配,并判断该报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项内容将报文和上下文信息发送给控制器,或发送给日志缓存模块;\n[0042] 所述日志缓存模块,用于存储匹配执行模块发来的报文和上下文信息;\n[0043] 所述数据读取模块,用于读取日志缓存模块中存储的报文和上下文信息,并将读取的信息发送给控制器。\n[0044] 上述方案中,所述交换机还包括能力上报模块,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力通过第二调试选项能力接口发送给控制器;或在收到控制器通过第二调试选项能力接口发来的流表项的调试选项能力请求指令后,通过第二调试选项能力接口将流表功能响应指令发送给控制器;\n[0045] 相应的,所述第二调试选项能力接口还用于将能力上报模块发来的流表项的调试选项能力发送给控制器;或将控制器发来的流表项的调试选项能力请求指令发送给能力上报模块后,将能力上报模块发来的流表功能响应指令发送给控制器。\n[0046] 上述方案中,所述匹配执行模块还用于在控制器对报文网络诊断结束后,接收控制器发来的报文和上下文信息,并继续报文中断的处理进程。\n[0047] 上述方案中,所述根据调试选项内容将报文和上下文信息发送给控制器,或发送给日志缓存模块包括:\n[0048] 若调试选项字段为报文上送至控制器,则匹配执行模块将匹配的报文和上下文信息立即发送给控制器;\n[0049] 若调试选项字段为数据流日志缓存,则匹配执行模块将匹配的报文和上下文信息发送到日志缓存模块,匹配执行模块从日志缓存模块中读取报文和上下文信息发送给控制器。\n[0050] 本发明还提供了一种控制器,所述控制器包括指令设置模块、第一调试选项能力接口、数据接收模块和诊断应用模块;其中,\n[0051] 所述指令设置模块,用于通过第一调试选项能力接口向交换机发送流表调试设置指令,设置流表项的调试选项规则;\n[0052] 所述第一调试选项能力接口,用于将指令设置模块发来的流表调试设置指令发送给交换机;\n[0053] 所述数据收发模块,用于接收交换机发来的报文和上下文信息,并将报文和上下文信息发送给应用诊断模块;\n[0054] 所述诊断应用模块,用于根据数据收发模块发来的报文和上下文信息进行网络诊断。\n[0055] 上述方案中,所述控制器还包括能力获取模块,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,通过第一调试选项能力接口接收交换机发来的流表项的调试选项能力;或通过第一调试选项能力接口向交换机发送流表项的调试选项能力请求指令,并通过第一调试选项能力接口接收交换机返回的流表功能响应指令;\n[0056] 相应的,所述第一调试选项能力接口,还用于将交换机发来的流表项的调试选项能力发送给能力获取模块;或将能力获取模块发来的流表项的调试选项能力请求指令发送给交换机,将交换机返回的流表功能相应指令发送给能力获取模块。\n[0057] 上述方案中,所述数据收发模块,还用于在网络诊断结束后,将报文和上下文信息发送给交换机。\n[0058] 本发明提供的技术方案的有益方面包括如下几点:\n[0059] 首先,控制器向交换机发送流表调试设置指令,设置流表项的调试选项规则,这些流表调试设置指令不会与已有的流表项发生冲突。\n[0060] 其次,交换机将匹配的报文和上下文信息发送给控制器进行网络诊断,如此,使控制器可以根据上下文信息快速确定网络故障的位置,加速网络故障的定位周期,达到提升网络质量、降低网络的运行维护成本的效果,并且在网络诊断结束后,控制器将报文和上下文信息同时发送给交换机,使交换机能够继续报文中断的处理进程。\n[0061] 另外,调试选项字段包括但不限于上送至控制器和数据流日志缓存,使交换机根据控制器的设置将报文和上下文信息发送至控制器、或发送至数据流日志缓存,交换机再根据带宽容量按一定频率从日志缓存中读取报文和上下文信息发送给控制器,如此,可以控制交换机和控制器之间的数据传输容量不至于过大而造成传输拥堵。\n附图说明\n[0062] 图1为现有技术中基于SDN的网络诊断方法的流程示意图;\n[0063] 图2为本发明基于SDN的网络诊断方法的流程示意图;\n[0064] 图3为本发明基于SDN的网络诊断系统的组成架构示意图;\n[0065] 图4为本发明实施例提供的基于SDN的网络诊断方法的流程示意图。\n具体实施方式\n[0066] 下面结合附图及具体实施例对本发明再作进一步详细的说明。\n[0067] 图2为本发明基于SDN的网络诊断方法的流程示意图,如图2所示,包括以下步骤:\n[0068] 步骤21:交换机根据控制器发来的流表调试设置指令,设置流表项的调试选项规则;\n[0069] 这里,控制器可通过控制器本身的调试选项能力接口向交换机发送流表调试设置指令,用来设置调试选项规则,所述流表调试设置指令包括流表号、匹配字段和调试选项字段;所述调试选项字段包括:上送至控制器、数据流日志缓存等等;所述流表调试指令可通过标准协议承载,如OpenFlow协议,向交换机设置调试选项规则。具体的,流表调试设置指令可以为:流表号为a,匹配字段为源MAC地址是b,调试选项字段为数据流日志缓存。\n[0070] 这里,交换机可通过交换机本身的调试选项能力接口接收控制器发来的流表调试设置指令,用来设置调试选项规则;其中,所述控制器提供的调试选项能力接口是基于交换机提供的调试选项能力接口的基础之上开发的;\n[0071] 其中,维护人员可以通过控制器提供的接口设置调试选项规则,所述调试选项规则可根据维护人员的需要进行设置,例如,设备a至设备b之间网络发生异常,则维护人员可以设置流表号为1、匹配字段为:源MAC地址为设备a地址和目的MAC地址为设备b地址、调试选项字段为上送至控制器,进而控制交换机将发生异常区域的报文发送给控制器进行网络诊断;\n[0072] 其中,所述控制器泛指能够通过命令控制、查询、维护交换机/路由器的装置。例如对于传统的交换机而言,通过简单网络管理协议(Simple NetworkManagement Protocol,SNMP)、网络配置协议(NETCONF)等标准协议管理交换机的网络管理系统可视为控制器的一种;对于软件定义网络领域中的控制器而言,通过OpenFlow标准协议控制交换机转发行为的装置可视为控制器的一种。\n[0073] 步骤22:交换机将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断的结果为是,则交换机根据调试选项字段内容将匹配的报文和上下文信息发送给控制器;\n[0074] 这里,所述交换机将报文首部的关键字段与流表项中的匹配字段做匹配之前,该方法还包括:\n[0075] 交换机通过流表通知指令将流表项的调试选项能力发送给控制器;\n[0076] 或控制器向交换机发送流表项的调试选项能力请求指令,交换机通过流表功能响应指令将流表项的调试选项能力发送给控制器。\n[0077] 其中,由于交换机中有部分流表项是硬件固化流表项,硬件固化流表项中的流表调试规则不能被交换机通过流表调试设置指令所设置,因此,在交换机将报文首部的关键字段与流表项的匹配字段做匹配之前,需将流表项的调试选项能力上报给控制器,以防止控制器设置的流表调试规则与硬件固化流表项中的流表调试规则发生冲突,便于控制器能够及时做出调整,保证进程的正常运行;\n[0078] 其中,所述调试选项能力为所有携带有调试选项字段的流表项的内容,包括流表号、匹配字段和调试选项字段等信息;\n[0079] 其中,所述调试选项字段包括报文上送至控制器和数据流日志缓存等等。\n[0080] 这里,所述交换机根据调试选项字段内容将匹配的报文和上下文信息发送给控制器包括:\n[0081] 若调试选项字段为上送至控制器,则交换机将匹配的报文和上下文信息立即发送给控制器;\n[0082] 若调试选项字段为数据流日志缓存,则交换机将匹配的报文和上下文信息发送到交换机日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器。\n[0083] 这里,交换机可根据控制器和交换机之间的传输带宽容量设置采样频率来控制交换机从日志缓存中读取报文和上下文信息的大小,以控制交换机和控制器之间的数据传输容量不至于过大而造成传输拥堵。\n[0084] 具体的,以交换机中的流表项包括1~255张、其中流表号为a的流表项的匹配字段为目的MAC地址为1、调试选项字段为上送至控制器为例,当交换机收到报文后,假设该报文首部的目的MAC地址也为1,将数据报文从流表号为1的流表项开始进行匹配进程处理,直至进行到流表号为a的流表项,报文首部的关键字段与流表项的匹配字段匹配成功,则进一步判断匹配的流表项是否携带调试选项字段,此处判断的结果为是,则根据调试选项字段内容:上送至控制器,交换机将报文和上下文信息立即发送给控制器进行网络诊断;\n[0085] 其中,所述调试选项字段可以作为流表项中的独立字段携带,也可以作为流表项中现有字段的扩展属性携带,比如作为执行逻辑字段的扩展字段携带;\n[0086] 其中,所述上下文信息包括抽象的上下文信息和私有的上下文信息;其中,[0087] 所述抽象的上下文信息包括报文匹配的流表号、流表项信息、报文首部信息等等;\n[0088] 所述私有的上下文信息包括转发面芯片的寄存器信息、内存数据信息等报文所述的硬件方面的信息。\n[0089] 步骤23:控制器将报文和上下文信息发送给诊断应用进行网络诊断;\n[0090] 这里,控制器的收发端口收到报文和上下文信息后通过诊断信息指令将报文和上下文信息发送给诊断应用,维护人员可以在诊断应用中对网络故障进行定位,在诊断应用中的仿真调试应用里,通过报文和上下文信息可以恢复网络设备转发面的上下文信息,通过仿真运行的方式对网络故障进行调试跟踪,确定网络故障位置;\n[0091] 另外,控制器还可以将报文和上下文信息发送到第三方诊断平台进行更进一步的问题诊断;该诊断过程不在本发明的保护范围,此处不在赘述。\n[0092] 这里,所述控制器根据收到的报文和上下文信息进行网络诊断之后,进一步包括:\n控制器将报文和上下文信息发送给交换机继续报文中断的处理进程;\n[0093] 具体的,当网络诊断结束后,控制器将报文及上下文信息同时发送给交换机,使得交换机根据上下文信息能够继续报文中断的处理进程。例如在交换机将报文和上下文信息发送给控制器之前,交换机将报文和流表项进行匹配处理至流表号为a的流表项,则交换机收到报文和上下文信息后,根据上下文信息中,得知该报文进行到流表号为a的流表项匹配处理进程中,交换机将从流表号为a+1的流表项匹配处理进程开始,继续对报文进行处理,直至报文结束全部255张流表项的匹配处理进程,从交换机的指定端口发送至原目的地址。\n[0094] 图3为本发明基于SDN的网络诊断系统的组成架构示意图,如图2所示,该系统包括交换机31和控制器32;其中,\n[0095] 所述交换机31,用于根据控制器32发来的流表调试设置指令,设置流表项的调试选项规则;用于根据设置的流表项的调试选项规则,将报文首部的关键字段与流表项的匹配字段做匹配,并判断报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项字段内容将匹配的报文和上下文信息发送给控制器32;\n[0096] 所述控制器32,用于向交换机31发送流表调试设置指令,设置流表项的调试选项规则;还用于接收交换机31发来的报文和上下文信息,并根据报文和上下文信息进行网络诊断。\n[0097] 进一步的,所述交换机31,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力发送给控制器32;\n[0098] 相应的,所述控制器32,还用于接收交换机31发来的流表项的调试选项能力;\n[0099] 或所述控制器32,还用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,向交换机31发送流表项的调试选项能力请求指令,并接收交换机31返回的流表功能相应指令;\n[0100] 相应的,所述交换机31,还用于在收到控制器32发来的流表项的调试选项能力请求指令后,通过流表功能响应指令将流表项的调试选项能力发送给控制器32。\n[0101] 所述控制器32,进一步用于在网络诊断结束后,将报文和上下文信息发送给交换机31;\n[0102] 所述交换机31,进一步用于在网络诊断结束后,接收控制器32发来的报文和上下文信息继续报文中断的处理进程。\n[0103] 这里,交换机31根据调试选项字段内容将匹配的报文和上下文信息发送给控制器32包括:\n[0104] 若调试选项字段为报文上送至控制器,则交换机31将匹配的报文和上下文信息立即发送给控制器32;\n[0105] 若调试选项字段为数据流日志缓存,则交换机31将匹配的报文和上下文信息发送到交换机日志缓存,交换机31从日志缓存中读取报文和上下文信息发送给控制器32。\n[0106] 进一步的,所述系统还包括第三方诊断平台33,用于根据控制器发来的报文和上下文信息进行网络诊断;\n[0107] 相应的,所述控制器32,还用于将报文和上下文信息发送至第三方诊断平台33。\n[0108] 进一步的,所述交换机31包括调试选项设置模块314、第二调试选项能力接口\n316、匹配执行模块311、日志缓存模块312和数据读取模块313;其中,\n[0109] 所述调试选项设置模块314,用于根据控制器32通过第二调试选项能力接口316发来的流表调试设置指令,设置流表项的调试选项规则;\n[0110] 所述第二调试选项能力接口316,用于将控制器32发来的流表调试设置指令发送给调试选项设置模块314;\n[0111] 所述匹配执行模块311,用于将报文首部的关键字段与流表项的匹配字段做匹配,并判断该报文匹配的流表项是否设置了调试选项字段,若判断结果为是,则根据调试选项字段内容将报文和上下文信息发送给控制器32,或发送给日志缓存模块312;\n[0112] 所述日志缓存模块312,用于存储匹配执行模块311发来的报文和上下文信息;\n[0113] 所述数据读取模块313,用于读取日志缓存模块312中存储的报文和上下文信息,并将读取的信息发送给控制器32。\n[0114] 进一步的,所述交换机31还包括能力上报模块315,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,将流表项的调试选项能力通过第二调试选项能力接口\n316发送给控制器32;或在收到控制器32通过第二调试选项能力接口316发来的流表项的调试选项能力请求指令后,通过第二调试选项能力接口316将流表功能响应指令发送给控制器32;\n[0115] 相应的,所述第二调试选项能力接口316还用于将能力上报模块315发来的流表项的调试选项能力发送给控制器32;或将控制器32发来的流表项的调试选项能力请求指令发送给能力上报模块315后,将能力上报模块315发来的流表功能响应指令发送给控制器32。\n[0116] 进一步的,所述匹配执行模块311,还用于在控制器32对报文网络诊断结束后,接收控制器32发来的报文和上下文信息,并继续报文中断的处理进程。\n[0117] 进一步的,所述控制器32包括指令设置模块321、第一调试选项能力接口325、数据收发模块322和诊断应用模块323;其中,\n[0118] 所述指令设置模块321,用于通过第一调试选项能力接口325向交换机31发送流表调试设置指令,设置流表项的调试选项规则;\n[0119] 所述第一调试选项能力接口325,用于将指令设置模块321发来的流表调试设置指令发送给交换机31;\n[0120] 所述数据收发模块322,用于接收交换机31发来的报文和上下文信息,并将报文和上下文信息发送给应用诊断模块323;\n[0121] 所述诊断应用模块323,用于根据数据收发模块322发来的报文和上下文信息进行网络诊断。\n[0122] 进一步的,所述控制器32还包括能力获取模块324,用于在将报文首部的关键字段与流表项的匹配字段做匹配之前,通过第一调试选项能力接口325接收交换机31发来的流表项的调试选项能力;或通过第一调试选项能力接口325向交换机31发送流表项的调试选项能力请求指令,并通过第一调试选项能力接口325接收交换机31返回的流表功能响应指令;\n[0123] 相应的,所述第一调试选项能力接口325,还用于将交换机31发来的流表项的调试选项能力发送给能力获取模块324;或将能力获取模块324发来的流表项的调试选项能力请求指令发送给交换机31,将交换机31返回的流表功能相应指令发送给能力获取模块\n324。\n[0124] 进一步的,所述数据收发模块322,还用于在网络诊断结束后,将报文和上下文信息发送给交换机31。\n[0125] 进一步的,所述数据收发模块322,还用于将报文和上下文信息发送至第三方诊断平台33。\n[0126] 图4为本发明实施例提供的基于SDN的网络诊断方法的流程示意图,如图4所示,包括以下步骤:\n[0127] 步骤401:控制器与交换机建立连接,控制器向交换机发送流表调试设置指令,设置流表项的调试选项规则;\n[0128] 这里,维护人员可以通过控制器提供的调试选项能力接口设置调试选项规则,通过流表调试指令向一个或多个交换机发送该流表调试设置指令;所述流表调试指令可通过标准协议承载,如OpenFlow协议,向交换机设置调试选项规则;\n[0129] 其中,所述流表调试选项指令包括流表号、匹配字段和调试选项字段,具体需要在哪个流表项中设置调试选项字段可以由维护人员通过控制器提供的接口来设置;所述调试选项字段包括:上送至控制器、数据流日志缓存等等;\n[0130] 具体的,若调试选项字段为上送至控制器,则交换机将匹配到的报文和上下文信息发送至控制器;\n[0131] 若调试选项字段为数据流日志缓存,则交换机将匹配到的报文和上下文信息发送至本地交换机日志缓存,并按一定的采样频率读取日志缓存中存储的报文和上下文信息,将报文和上下文信息发送给控制器。\n[0132] 步骤402:交换机通过流表通知指令将流表项的调试选项能力发送给控制器;\n[0133] 这里,所述交换机通过流表通知指令将流表项的调试选项能力发送给控制器,也可以是控制器向交换机发送流表功能请求指令,交换机通过流表功能相应指令将流表项的调试选项能力发送给控制器;\n[0134] 其中,由于交换机中有部分流表项是硬件固化流表项,硬件固化流表项中的流表调试规则不能被交换机通过流表调试设置指令所设置,因此,在交换机将报文首部的关键字段与流表项的匹配字段做匹配之前,需将流表项的调试选项能力上报给控制器,以防止控制器设置的流表调试规则与硬件固化流表项中的流表调试规则发生冲突,便于控制器能够及时做出调整,保证进程的正常运行;\n[0135] 其中,所述流表项的调试选项能力为所有携带有调试选项字段的流表项的内容,包括流表号、匹配字段和调试选项字段等信息。\n[0136] 步骤403~404:交换机将报文首部的关键字段与流表项的匹配字段做匹配,并判断匹配的流表项是否设置了调试选项字段,若判断的结果为是,则执行步骤405~408;\n[0137] 这里,所述报文首部的关键字段与流表项的匹配字段可以是目的MAC地址、源MAC地址等信息,例如,流表号为a的流表项的匹配字段是目的MAC地址为1,若报文首部的目的MAC地址也为1,则该报文首部的关键字段与该流表项的匹配字段匹配成功;\n[0138] 若报文首部的关键字段与流表项的匹配字段匹配成功,则进一步判断匹配的流表项是否设置了调试选项字段,若判断的结果为是,则依据调试选项字段的具体内容,执行步骤405~408;\n[0139] 若调试选项字段为上送控制器,则执行步骤405:交换机将报文和上下文信息立即发送至控制器;\n[0140] 若调试选项字段为数据流日志缓存,则执行步骤406:交换机将报文和上下文信息发送至日志缓存,交换机从日志缓存中读取报文和上下文信息发送给控制器;\n[0141] 这里,所述日志缓存可以保存在交换机的硬盘中,交换机可以根据控制器和交换机之间的传输带宽容量设置采样频率来控制交换机从日志缓存中读取报文和上下文信息的大小,以控制交换机和控制器之间的数据传输通量不至于过大而造成传输拥堵。\n[0142] 当交换机将报文和上下文信息发送给控制器后,执行步骤407~408:\n[0143] 步骤407:控制器将报文和上下文信息发送给诊断应用进行网络诊断;\n[0144] 这里,控制器的收发端口收到报文和上下文信息后通过诊断信息指令将报文和上下文信息发送给诊断应用,维护人员可以在诊断应用中对网络故障进行定位,在诊断应用中的仿真调试应用里,通过报文和上下文信息可以恢复网络设备转发面的上下文信息,通过仿真运行的方式对网络故障进行调试跟踪,确定网络故障位置;\n[0145] 步骤408:诊断结束后,控制器将报文和上下文信息发送给交换机,交换机根据上下文信息继续报文中断的处理进程;\n[0146] 这里,交换机中的流表项可以包括1~X张,在交换机将报文和上下文信息发送给控制器之前,交换机将报文和流表项进行匹配处理至流表号为a的流表项,则交换机收到报文和上下文信息后,上下文信息得知该报文进行到流表项为a的流表项匹配处理进程,交换机将从流表号为a+1的流表项匹配处理进程开始,继续对报文进行处理,直至报文结束全部X张流表项的匹配处理进程,从交换机的指定端口发送至原目的地址。\n[0147] 若调试选项字段为数据流镜像,则交换机将报文和上下文信息从指定端口发送至报文原目的地址。\n[0148] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
法律信息
- 2015-06-03
- 2013-03-27
实质审查的生效
IPC(主分类): H04L 12/24
专利申请号: 201210457073.4
申请日: 2012.11.14
- 2013-02-27
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-09-12
|
2010-10-06
| | |
2
| |
2012-02-08
|
2010-02-23
| | |
3
| | 暂无 |
2009-02-02
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |