软件定义网络(SDN)实战教程课件_第1页
软件定义网络(SDN)实战教程课件_第2页
软件定义网络(SDN)实战教程课件_第3页
软件定义网络(SDN)实战教程课件_第4页
软件定义网络(SDN)实战教程课件_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南向接口协议第4章4.1南向接口协议概述4.2

OpenFlow协议4.3

OF-Config协议

4.4

NETCONF协议

4.5

OVSDB协议4.6

其他南向接口协议4.1南向接口协议概述南向接口协议是控制器与交换机间信息交互的关键,其设计目标主要包括:1.收集数据平面信息,下发控制策略,指导转发行为。2.实现网络配置与管理。3.执行路径计算,涵盖链路属性、状态和拓扑信息。4.1南向接口协议概述南向接口协议设计目标OpenFlow用于OpenFlow交换机与控制器的信息交互OF-Config用于OpenFlow交换机的配置与管理NETCONF用于网络设备的配置与管理OVSDB用于OpenvSwitch的配置与管理XMPP用于即时通信、游戏平台、语音与视频会议系统,openContrail控制器利用xMPP与vRouter进行信息交互PCEPPCEP为PCE和PCC之间的通信协议,实现路径计算I2RSI2RS体系架构中的南向接口协议OpFlex思科ACI体系中的策略控制协议4.2OpenFlow协议转发和控制分离是SDN网络的核心特征,它允许网络管理和状态逻辑上集中,提高了可编程性、可控性和自动化能力,使用户能够根据业务需求灵活建立网络。实现这一分离的关键在于SDN控制器与数据转发层之间的通信接口标准。2009年,斯坦福大学的CleanSlate小组开发了OpenFlow1.0,提供了这一标准,并推出了参考交换机和NOX控制器。OpenFlow允许控制器直接操作网络设备的转发平面,无论这些设备是物理的还是虚拟的。OpenFlow迅速获得业界关注,2011年,ONF成立,推动SDN和OpenFlow的标准化。随后,包括Broadcom、Cisco、Juniper、HP在内的多家公司参与制定OpenFlow的后续版本,目前OpenFlow1.3是最广泛使用的版本。4.2OpenFlow协议OpenFlow组件由OpenFlow网络设备(OpenFlow交换机)、控制器(OpenFlow控制器)、用于连接设备和控制器的安全通道(SecureChannel)以及OpenFlow表项组成,如图所示。4.2.2OpenFlow组件SecureChannelFlowTableOpenFlowSwitchControllerSwitchOpenFlowProtocolSSL4.2.2OpenFlow控制器OpenFlow控制器是SDN控制层的关键组件,主要分为两类:

1.开源控制器:NOX/POX:最早的SDN控制器,POX是跨平台的Python版本。ONOS:面向企业级应用的稳定和灵活的操作系统。OpenDaylight:模块化开源框架,与多种平台集成。4.2.2OpenFlow控制器2.商用控制器:由VMware、Cisco、H3C等厂商提供,常结合OpenFlow和其他协议。开源控制器通常专注于研究和教育,而商用控制器则面向实际部署,提供更全面的网络管理功能。4.2.2OpenFlow交换机OpenFlow交换机由硬件表项和软件通道构成,分为:1.纯OpenFlow交换机:仅支持OpenFlow。2.混合OpenFlow交换机:支持OpenFlow和传统转发。支持多实例,每个实例独立控制流量。转发通过以下接口:1.物理接口:实际硬件端口。2.逻辑接口:如聚合、隧道。3.保留接口:专用于OpenFlow。4.2.2OpenFlow表项OpenFlow协议最初只有单播表项,后来增加了组表和计量表等,增强了转发和QoS功能。OpenFlow流表匹配报文并执行操作,由以下组成:-匹配域:确定哪些报文匹配该表项。-优先级:高优先级的表项先匹配。-处理指令:定义匹配报文的处理动作。-统计数据:如计数器,用于跟踪流量。OpenFlow设备可以有多个流表,表项结构随版本更新而增强。4.2.2OpenFlow表项Instruction处理MeterMeter对匹配到流表项的报文进行限速对匹配到流表项的报文进行限速Apply-ActionsApply-Actions立即执行Action立即执行ActionClear-ActionsClear-Actions清除动作集(ActionSet)中的所有Action。清除动作集(ActionSet)中的所有Action。流表项动作指令表如下:4.2.3OpenFlow安全通道OpenFlow设备与Controller之间通过建立加密的OpenFlow信道进行消息交互,实现表项下发、查询和状态上报等功能。通常使用TLS加密,也支持TCP传输。若采用TLS,交换机启动时会通过6633端口(默认OpenFlow端口)与控制器建立连接并交换证书进行认证。这意味着交换机需要配置至少两个证书以确保安全通信。

4.2.4OpenFlow信道建立OpenFlow协议支持三种消息类型:ControllertoSwitch、Asynchronous、SymmetricControllertoSwitch消息:由Controller发起、Switch接收并处理。包括Features、Modify-State、Read-State、Flow-Mod、Packet-out等。Asynchronous消息:由Switch发送给Controller,通知发生的异步事件,如Packet-in、Flow-Removed、Port-Status和Error等。Symmetric消息:双向对称消息,用于建立连接和检测对方是否在线,包括Hello和Echo。4.2.4OpenFlow信道建立OpenFlow控制器和交换机建立连接的过程:1.TCP连接建立:通过6633端口进行TCP三次握手。2.Hello报文交换:交换机和控制器发送Hello报文进行版本协商。3.功能请求与响应:控制器请求获取交换机信息,交换机响应功能详情。4.Echo保活:周期性发送EchoRequest和EchoReply以保持连接活跃。4.2.4OpenFlow信道建立信道连接断开模式分为FailSecuremode和FailStandalonemode。安全通道重连有两种模式:并行模式和串行模式。并行模式:允许Switch与多个Controller建立连接,各自进行保活和重连。只有当与所有Controller的连接断开后,Switch进入FailOpen状态。串行模式:Switch一次只与一个Controller连接,连接断开后立即尝试重连,三次尝试后仍无法建立连接则进入FailOpen状态。4.2.5OpenFlow消息处理OpenFlow流表下发分为主动和被动两种机制。主动模式:Controller主动下发流表给网络设备,设备根据流表进行转发。被动模式:设备收到无匹配的数据包时,将其转发给Controller,后者决定如何转发并下发相应的流表。

实际中,通常结合使用两种模式。4.2.5OpenFlow消息处理

OpenFlow报文上送控制器过程如下:控制器和交换机建立连接,Packet-in事件触发前提。交换机收到数据包,如无匹配,发送Packet-in报文给控制器。控制器收到Packet-in消息后,发送Flow-Mod消息给交换机,写入流表项。控制器根据报文特征信息下发流表项或发送Packet-out消息给交换机,执行相应动作4.3OF-Config协议OF-CONFIG是一种OpenFlow交换机配置协议,用于配置控制器信息和交换机资源。它要求连接安全可靠,支持多个配置点对多个交换机进行配置。OF-CONFIG使用XML描述数据结构,传输协议采用NETCONF。相比实时性要求高的OpenFlow南向协议,OF-CONFIG对实时性要求较低。OF-Config协议分为Server和Client两部分,Server运行OpenFlow交换机端,Client运行在OpenFlow配置点上。通过Client可以远程配置交换机的控制器信息、端口、队列等特性。最新的1.2版本支持多个控制器信息、端口和队列的配置,远程改变端口状态和特性,安全链接证书配置,发现交换机能力,以及配置隧道协议如VXLAN、NV-GRE等。4.3OF-Config协议4.4.1NETCONF协议简介NETCONF是一种用于网管和网络设备之间通信的网络配置协议。它基于XML,通过RPC机制实现客户端和服务器之间的通信。NETCONF支持网络自动化和按需管理,具有分层框架、互操作性、安全机制等优点。该协议还支持数据存储、事务验证回滚等功能,适用于云化网络的需求。4.4.2NETCONF基本网络架构网络管理系统的主要元素包括客户端(Client)和服务器(Server):-客户端通过NETCONF协议对网络设备进行系统管理,并发送RPC请求以查询或修改参数值。-服务器负责维护被管理设备的信息数据,并响应客户端的请求。-NETCONFServer解析客户端请求并返回响应,同时利用Notification机制向客户端发送设备的告警和事件通知,报告设备的状态变化。4.4.3NETCONF基本会话建立过程NETCONF协议使用RPC通信模式,Client和Server之间建立安全的、面向连接的会话后进行通信。基本流程如下:1.Client触发NETCONF会话建立,完成SSH连接建立和认证。2.Client和Server完成会话建立和能力协商。3.Client发送RPC请求给Server,进行交互操作,例如修改配置或查询状态。4.客户端关闭NETCONF会话,SSH连接关闭。4.4.4NETCONF协议框架NETCONF协议采用了分层结构,包括安全传输层、消息层、操作层和内容层:1.安全传输层提供了客户端和服务器之间的通信路径,首选使用SSH协议。2.消息层定义了RPC和通知消息的框架,客户端发送RPC请求,服务器回应RPC结果。3.操作层定义了基本操作,作为RPC的调用方法,使用XML编码的参数调用这些方法。4.内容层由数据模型定义,包括Schema模型和YANG模型,用于描述设备的管理数据内容。4.4.5NETCONF报文结构一个完整的NETCONFYANG请求报文结构如下图所示。4.4.6NETCONF通信模式Client向Server发送的请求和Server回应的消息都使用XML编码。其中包括以下基本的RPC元素:-`<rpc>`:封装Client发送给Server的请求。-`<rpc-reply>`:封装Server对请求的应答消息。-`<rpc-error>`:如果处理请求时出错或有警告,则在<rpc-reply>内封装此元素发送给Client。-`<ok>`:如果处理请求时没有错误或警告,则在<rpc-reply>内封装此元素发送给Client。4.4.7配置数据库(Datastores)NETCONF定义了配置数据库,其中包括:-<running/>:保存设备当前活动状态的完整配置。-<candidate/>:存放将要提交到<running/>的配置数据,管理员可在此进行操作,不会直接影响设备。-<startup/>:存放设备启动时加载的配置数据,相当于已保存的配置文件。4.5.1OVSDB协议OVSDB(OpenvSwitchDatabaseManagementProtocol)是一种管理层面的南向接口协议,用于管理开源的软件交换机(OpenvSwitch,OVS)的数据库。它定义了一套RPC接口,允许远程管理OVS数据库,使用JSON-RPC作为通信协议。OVSDB的基本概念包括UUID、OVS、JSON、JSON-RPC和Durable。4.5.2OVSDB与OVS、控制器OVSDB管理协议是SDN网络中管理OVS和硬件交换机的主要协议。在SDN架构中,OVS充当服务端,控制器是客户端,负责配置和数据交互。通过OVSDB,控制器可以对OpenFlow通道、控制器和管理服务器连接、端口、隧道接口、队列和QoS策略进行管理,同时收集统计信息。4.5.3OVSDB与JSONOVSDB管理协议通信使用JSON格式,遵循JSON-RPCV1.0版本。JSON是一种结构化数据序列化的文本格式,支持字符串、数字、数组等数据类型。OVSDB的JSON实现有限制:字符串不能包含Null字节,仅支持UTF-8编码。OVSDB使用简化术语:字符串、ID、版本、布尔值、数字、整数、JSON值、非空JSON值和错误。4.5.4OVSDB数据模式用JSON对象表示OVSDB数据库模式名称值可选性说明“name”<id>必选数据库整体标识“version”<version>必选数据库模式版本“cksum”<string>可选实现定义的校验和“tables”{<id>:<table-schema>,...}必选体现表名和表模式的JSON对象OVSDB表模式常由下列格式的JSON对象表示名称值可选性说明“columns”{<id>:<column-schema>,...}必选包含的表格的UUID、版本信息等“maxRows”<integer>可选表格的最大行数“isRoot”<boolean>可选表格内是否存在强依赖关系“indexes”[<column-set>*]可选用于标识表格列OVSDB列模式通常由下列格式的JSON对象表示名称值可选性说明“type”<type>必选列的类型“ephemeral”<boolean>可选数据是否持久化“mutable”<boolean>可选数据是否可修改4.5.5OVSDB整体架构OVS有三个关键组件:OVSDB-Server、OVS-vSwitchd和OVS内核模块。1.OVSDB-Server:存储OVS的配置信息,提供给控制器和OVS-vSwitchd使用的OVSDB操作接口。2.OVS-vSwitchd:管理流表,执行控制器下发的流表规则,提供OpenFlow协议接口。3.OVS内核模块:缓存流表,处理数据包转发请求,向OVS-vSwitchd请求处理指令。4.5.6OVSDB协议RPC方法OVSDBRPC方法使用JSON-RPCV1.0规范,请求包括方法名、参数和请求ID,响应包括结果对象、错误对象和匹配ID。

请求示例:{"method":"echo","params":["HelloJSON-RPC"],"id":1}

响应示例:{"result":"HelloJSON-RPC","error":null,"id":1}OVSDBServer需支持所有RPC方法,OVSDBClient需支持“Echo”及其他必要方法。4.5.7OVSDB数据库操作OVSDB数据库操作包括Insert、Select、Update、Mutate、Delete、Wait、Commit、Abort、Commen、Assert操作。4.6.1其他南向接口协议(XMPPXMPP(Exten

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论