SDN基本概念及两种最新的故障检测工具

2018-12-17 15:52

SDN VERIFICATION Learning Report 摘要 这篇读书报告包括了两部分:SDN简单的背景介绍;然后是对两种最新的控制层面上的网络故障诊断工具的介绍(分别是STS与NoD) 电信学院 控制科学与工程系统所 硕****班 SDN背景:

1. 什么是SDN?

现有网络中,对流量的控制和转发都依赖于网络设备实现,且设备中集成了与业务特性紧耦合的操作系统和专用硬件,这些操作系统和专用硬件都是各个厂家自己开发和设计的。

SDN是一种新型的网络架构,它的设计理念是将网络的控制平面与数据转发平面进行分离,从而通过集中的控制器中的软件平台去实现可编程化控制底层硬件,实现对网络资源灵活的按需调配。在SDN网络中,网络设备只负责单纯的数据转发,可以采用通用的硬件;而原来负责控制的操作系统将提炼为独立的网络操作系统,负责对不同业务特性进行适配,而且网络操作系统和业务特性以及硬件设备之间的通信都可以通过编程实现。

对于SDN构架我们可以形象的用下图表示出来:

控制器:控制器集中管理网络中所有设备,虚拟整个网络为资源池,根据用户不同的需求以及全局网络拓扑,灵活动态的分配资源。SDN控制器具有网络的全局视图,负责管理整个网络:对下层,通过标准的协议与基础网络进行通信;对上层,通过开放接口向应用层提供对网络资源的控制能力。

物理层:物理层是硬件设备层,专注于单纯的数据、业务物理转发,关注的是与控制层的安全通信,其处理性能一定要高,以实现高速数据转发。

SDN应用层:SDN应用层通过控制层提供的编程接口对底层设备进行编程,把网络的控制权开放给用户,基于上开发各种业务应用,实现丰富多彩的业务创新。

南向接口:南向接口是物理设备与控制器信号传输的通道,相关的设备状态、数据流表项和控制指令都需要经由SDN的南向接口传达,实现对设备管控。

北向接口:北向接口是通过控制器向上层业务应用开放的接口,目的是使得业务应用能够便利地调用底层的网络资源和能力,其直接为业务应用服务的,其设计需要密切联系业务应用需求,具有多样化的特征。

2. 为什么选择软件定义网络?

如下图所示,与传统网络相比,SDN的基本特征有3点:

控制与转发分离。转发平面由受控转发的设备组成,转发方式以及业务逻辑由运行在分离出去的控制

面上的控制应用所控制。

控制平面与转发平面之间的开放接口。SDN 为控制平面提供开放可编程接口。通过这种方式,控制应

用只需要关注自身逻辑,而不需要关注底层更多的实现细节。

逻辑上的集中控制。逻辑上集中的控制平面可以控制多个转发面设备,也就是控制整个物理网络,因

而可以获得全局的网络状态视图,并根据该全局网络状态视图实现对网络的优化控制。

SDN的典型架构共分三层,最上层为应用层,包括各种不同的业务和应用;中间的控制层主要负责处理数据平面资源的编排,维护网络拓扑、状态信息等;最底层的基础设施层负责基于流表的数据处理、转发和状态收集。如下图所示

SDN本质上具有“控制和转发分离”、“设备资源虚拟化”和“通用硬件及软件可编程”三大特性,这至少带来了以下好处:

第一,设备硬件归一化,硬件只关注转发和存储能力,与业务特性解耦,可以采用相对廉价的商用的架构来实现。

第二,网络的智能性全部由软件实现,网络设备的种类及功能由软件配置而定,对网络的操作控制和运行由服

务器作为网络操作系统(NOS)来完成。

第三,对业务响应相对更快,可以定制各种网络参数,如路由、安全、策略、QoS、流量工程等,并实时配置到网络中,开通具体业务的时间将缩短。

3. Openflow与SDN

首先明确SDN与Openflow并不是同一层面上的概念,SDN是一个广义上的网络构架,而OpenFlow 是一个协议或者标准。或者OpeFlow是SDN中的一个交互协议,但它又不仅仅是一个协议,它也可以包含着下层交换机的详细的转发规定说明。正如下图所示:

4. SDN/Openflow规范功能

下图选自Nick等人的论文OpenFlow:EnablingInnovation in Campus Networks。其实,这张图还很好地表明了OpenFlow Switch规范所定义的范围—从图上可以看出,OpenFlow Switch规范主要定义了Switch的功能模块以及其与Controller之间的通信信道等方面。

OpenFlow的端口(Port)

OpenFlow规范将Switch上的端口分为3种类别: a) 物理端口,即设备上物理可见的端口;

b) 逻辑端口,在物理端口基础上由Switch设备抽象出来的逻辑端口,如为tunnel或者聚合等功能而实现的逻辑端口;

c) OpenFlow定义的端口。OpenFlow目前总共定义了ALL、CONTROLLER、TABLE、IN_PORT、ANY、LOCAL、 NORMAL和FLOOD等8种端口,其中后3种为非必需的端口,只在混合型的OpenFlow Switch(OpenFlow-hybrid Switch,即同时支持传统网络协议栈和OpenFlow协议的Switch设备,相对于OpenFlow-only Switch而言)中存在。

OpenFlow的FlowTable(流表项)

OpenFlow通过用户定义的或者预设的规则来匹配和处理网络包。一条OpenFlow的规则由匹配域(Match Fields)、优先级(Priority)、处理指令(Instructions)和统计数据(如Counters)等字段组成,如下图所示。

在一条规则中,可以根据网络包在L2、L3或者L4等网络报文头的任意字段进行匹配,比如以太网帧的源MAC地址,IP包的协议类型和IP地址,或者TCP/UDP的端口号等。目前OpenFlow的规范中还规定了Switch设备厂商可以选择性地支持通配符进行匹配。据说,OpenFlow在未来还计划支持对整个数据包的任意字段进行匹配。

所有OpenFlow的规则都被组织在不同的FlowTable中,在同一个FlowTable中按规则的优先级进行先后匹配。一个 OpenFlow的Switch可以包含一个或者多个FlowTable,从0依次编号排列。OpenFlow规范中定义了流水线式的处理流程,如下图所示。当数据包进入Switch后,必须从FlowTable 0开始依次匹配;FlowTable可以按次序从小到大越级跳转,但不能从某一FlowTable向前跳转至编号更小的FlowTable。当数据包成功匹配一条规则后,将首先更新该规则对应的统计数据(如成功匹配数据包总数目和总字节数等),然后根据规则中的指令进行相应操作–比如跳转至后续某一 FlowTable继续处理,修改或者立即执行该数据包对应的Action Set等。当数据包已经处于最后一个FlowTable时,其对应的Action Set中的所有Action将被执行,包括转发至某一端口,修改数据包某一字段,丢弃数据包等。OpenFlow规范中对目前所支持的 Instructions和Actions进行了完整详细的说明和定义。

另外,OpenFlow规范中还定义了很多其他功能和行为,比如OpenFlow对于QoS的支持(即MeterTable和Meter Bands的定义等),对于GroupTable的定义,以及规则的超时处理等。

OpenFlow的通信通道

这一节中,OpenFlow规范定义了一个OpenFlow Switch如何与Controller建立连接、通讯以及相关消息类型等。

OpenFlow规范中定义了三种消息类型:

a) Controller/Switch消息,是指由Controller发起、Switch接收并处理的消息,主要包括Features、 Configuration、Modify-State、Read-State、Packet-out、Barrier和Role-Request等消息。这些消息主要由Controller用来对Switch进行状态查询和修改配置等操作。

b) 异步(Asynchronous)消息,是由Switch发送给Controller、用来通知Switch上发生的某些异步事件的消息,主要包括 Packet-in、Flow-Removed、Port-status和Error等。例如,当某一条规则因为超时而被删除时,Switch将自动发送一条Flow-Removed消息通知Controller,以方便Controller作出相应的操作,如重新设置相关规则等。

c) 对称(Symmetric)消息,顾名思义,这些都是双向对称的消息,主要用来建立连接、检测对方是否在线等,包括Hello、Echo和Experimenter三种消息。


SDN基本概念及两种最新的故障检测工具.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:集控技术问答一百编

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: