一种在软件定义网络中获取网络设备转发状态的方法

文档序号:9648953阅读:776来源:国知局
一种在软件定义网络中获取网络设备转发状态的方法
【技术领域】
[0001]本发明涉及软件定义网络技术领域,具体涉及一种在软件定义网络中获取网络设备转发状态的方法。
【背景技术】
[0002]网络设备的转发状态指的就是网络设备如何去处理网络数据包(packet)的,包括转发和路由,添加、删除、修改数据包包头的某些字段等等;而具体的处理方式是通过一系列规则(rule)实现的,比如二层的转发规则(FIB)、IP转发规则(包括修改端口、检验值、TTL等)、VLAN标签操作和ACLs规则等等。因此,获取网络设备的转发状态就是获取网络设备上所有“真实”的规则,这里强调的“真实”在于网络设备可能由于软硬件故障或是固件故障的存在,导致没能够执行名义上的规则,比如一条修改目的端口的规则在执行的时候反而修改了源端口。
[0003]网络设备的转发状态决定了网络上数据包是如何被处理的以及如何被转发或者是路由的,进而决定了整个网络的运行状态。对网络设备转发状态的监控有助于网络管理员及时发现网络故障、优化网络性能、提供更好的网络服务。在传统网络中,可用于获取网络设备转发状态的工具有限而低效,比如ping、traceroute和SNMP等等,前两者只能够粗略得到数据包的转发规则,而如果路径上的某些网络设备拒绝响应这些工具,那么连转发规则都获取不了 ;虽然SNMP给出的信息会较为全面,但是周期性的轮询所有的网络设备无疑是规则的及时准确性和开销之间的博弈。软件定义网络的出现,使网络管理员通过逻辑上集中式的控制器,能够及时、准确的获取网络上所有设备的所有规则,再通过分析这些规贝1J,建立合适的模型,一些类似于控制层面的软件错误就可以被检查出来。然而通过控制器获取的所有规则,也仅仅是名义上的规则,并不代表网络设备的真实行为,所以网络设备自身的软硬件故障是没有办法从获取的规则上检测出来的。
[0004]经过对现有技术的检索发现,获取网络设备的真实转发状态一般是通过观察真实的数据包在网络中是如何被处理来实现的。一类方法是着眼于被动检测,利用OpenFlow协议修改每一条流表项,使得途径交换机的每一个数据包都产生一个“明信片”,这个“明信片”中包含了该数据包所经的交换机ID、出端口号和流表的版本号等信息,这样一些信息能够刻画出数据包在网络传输中途径每一跳的真实情况。虽然使用了压缩算法以及在交换机和主机端提供相应的数据压缩支持,但是每一个数据包产生一个“明信片”的代价依然很高。同时,局限于OpenFlowl.0协议,该方法必须修改“明信片”中的目的MAC地址来输出相关信息,而如果数据包的目的MAC地址曾被修改过,该方法是无法发现的。第二类方法着眼于主动式的发送探针包,去做SDN版本的traceroute,该方法不局限在IP层,能够输出数据包在网络中的完整路径。局限于OpenFlowl.0协议,该方法采用了染色算法去捕获相应的探针包,这在网络设备支持多流表的情况下是完全不需要的。同时,仅仅是路径信息还不能够表征整个网络设备的转发状态。

【发明内容】

[0005]针对现有技术的不足,本发明提供一种在软件定义网络中获取网络设备转发状态的方法,通过获取携带每条流表项在网络设备中的标识,简单有效的获取网络设备的真实转发状态,同时,几乎不需要额外的带宽来承载携带信息的探针包。
[0006]本发明的目的是采用下述技术方案实现的:
[0007]—种在软件定义网络中获取网络设备转发状态的方法,其改进之处在于,包括:
[0008](1)配置携带指定VLAN标签的探针包;
[0009](2)通过多流表中的第一流表对正常数据包和所述探针包进行区分处理;
[0010](3)对所述多流表中除所述第一流表外的流表的流表项添加附加指令。
[0011]优选的,所述步骤(1)包括:配置所述探针包的VLAN标签的PCP字段为指定字段n,VID字段为指定字段m,其中,η和m为正整数。
[0012]优选的,所述步骤⑵包括:
[0013](2-1)配置所述第一流表的第一流表项包括:匹配携带指定VLAN标签的探针包并传送至下一个流表;
[0014](2-2)配置所述第一流表的第二流表项包括:将正常数据包进行VLAN标签移除操作并传送至下一个流表,其中,所述正常数据包为所述步骤(2-1)中没有匹配成功的数据包。
[0015]优选的,所述步骤(3)中,所述附加指令为:
[0016](3-1)将所述流表项在所述网络设备中的标识添加至所述VLAN标签中;
[0017](3-2)复制探针包或正常数据包的VLAN标签副本,其中,所述正常数据包的VLAN标签副本的PCP字段和VID字段均为0 ;
[0018](3-3)判断所述VLAN标签副本的PCP字段和VID字段是否均为0,若是,则丢弃所述VLAN标签副本,若否,则将所述VLAN标签副本输出至所述网络设备的数据端口 ;
[0019](3-4)删除所述探针包或正常数据包的VLAN标签副本。
[0020]优选的,在所述步骤(3)之后,包括:(4)配置所述网络设备的一个数据端口的VLAN模式为Trunk,且仅允许VLAN标签的VID字段为1-4094的数据包通过。
[0021]与最接近的现有技术相比,本发明具有的有益效果:
[0022](1)本发明提供的一种在软件定义网络中获取网络设备转发状态的方法,采用标志位的识别去区分正常数据包和探针包,通过对每一条流表项添加额外的动作,每一条被匹配到的流表项都能够输出一个探针包的副本,该副本包含了所匹配到的流表项的信息,所有探针包的副本的集合就是该网络设备对数据包的真实处理行为,能够完全等价于网络设备的真实转发状态,直接获取网络设备的真实行为,从而诊断出数据平面的网络故障;
[0023](2)本发明提供的一种在软件定义网络中获取网络设备转发状态的方法,采用主动发送探针包的方式,避免了被动监控带来的巨大的网络带宽开销;
[0024](3)本发明提供的一种在软件定义网络中获取网络设备转发状态的方法,通过仔细地流表和动作设计,能够输出数据包所匹配到的每一条流表项,而不会对正常的数据包产生影响。
【附图说明】
[0025]图1是本发明提供的一种在软件定义网络中获取网络设备转发状态的方法流程图;
[0026]图2是本发明实施例中探针包的VLAN标签配置示意图;
[0027]图3是本发明实施例中网络设备第一流表的配置示意图;
[0028]图4是本发明实施例中多流表中除第一流表外的流表的每一条流表项的附加指令配置示意图。
【具体实施方式】
[0029]下面结合附图对本发明的【具体实施方式】作进一步的详细说明。
[0030]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1