软件定义网络(SDN)基础概念学习笔记(下)

第四章

1. 南向接口协议

设计目标/主要任务
  • 承上启下,分离控制平面与数据平面
  • 实现网络配置与管理
  • 实现路径计算,包括网络开销、链路状态等
已实现的南向接口协议
  • Openflow:Openflow交换机与控制器的信息交互
  • OF-Config:Openflow交换机的配置和管理
  • NETCONF:网络设备的配置与管理
  • OVSDB:Open vSwitch的配置与管理
  • XMPP:用于即时通讯(OpenContrail控制器)
  • PCEP:PCEP和PCC间的通信协议,实现路径计算
  • I2RS:I2RS体系架构里的CDPI
  • OpFlex:Cisco ACI体系的策略控制协议

2. Openflow 协议

Openflow消息类型
  • COntroller-to-Switch (控制器的请求)

    • Features:请求交换机特征信息(Feature_Request)
    • Configuration:设置或查询交换机配置信息
    • Modify-state:管理/增加交换机流表项和端口状态等
    • Read-state:收集交换机各种信息
    • Send-packet:常发送消息至特定端口(通过Packet_out消息)
    • Barrier:确保动作执行顺序
  • Asynchronous(异步)

    由交换机发出,用于告知控制器新数据包到达和状态改变

    • Packet-in:流表项没有匹配项时发送其给控制器
    • Flow-removed :流表项因超时或修改被删除时触发
    • Port-status:端口状态发生变化时触发
    • Error
  • Symmetric(对称)

    由控制器或交换机任意一方发送,无需对方许可或请求

    • Hello:握手建立安全连接
    • Echo:测量延迟、带宽,或或保持活动连接
    • Vendor:为交换机提供额外功能预留空间
Openflow 消息格式
  • 头部

软件定义网络(SDN)基础概念学习笔记(下)
  • 举例

    Candidate、Running、Startup
    NETCONF 协议框架

    软件定义网络(SDN)基础概念学习笔记(下)
    • 内容层:采用YANG语言进行建模,包括配置设置

    5. Openflow分析实验

    Openflow工作原理
    WireShark 抓包分析
    RYU控制器连接交换机

    第五章

    1. SDN控制平面

    • 由一个或多个SDN控制器组成,是网络的大脑

    • 对底层网络设备进行 集中管理、状态检测、转发决策、处理和调度流量

    • 向上层应用开放多个层次的可编程能力

    主流SDN控制器体系结构

    软件定义网络(SDN)基础概念学习笔记(下)
  • 拓扑管理

    • 定时发送带LLDP数据包的Packet_out消息
    • 根据Packet_in消息获取交换机信息,检测交换机工作状态
  • 策略制定

    全局网络视图更利于优化策略算法

  • 表项下发

    • 主动下发:避免交换机启动时带来的冲击
    • 被动下发:负责网络中会产生延时问题
  • 北向网络控制

    争议较大,目前 REST API 用户较易接受

    2. 开源 SDN 控制器

    按语言分类
    1. C/C++ : Mul、Trema、NOX
    2. Python:POX、Ryu
    3. Java:Beacon、Floodlight、OpenDayLight、ONOS

    第六章

    1. 北向接口概述

    是应用平面与控制平面的接口,目前尚未有统一的标准

    需要满足:多样性、合理性、开放性

    工作组
    • 最早-ONF北向接口工作组 NBI-WG

      给出SDN北向接口不同层次的抽象和接口

    • IRTF SDN研究工作组SDNRG

      提出SDN层次化架构

    • IETF 的 SFC工作组:确立各网络功能服务整合的体系架构及对外的接口

    北向接口类型
    1. 功能型北向接口 (我能做什么):自下而上 看网络,重点在网络资源抽象及控制能力的开放

    2. 基于意图的北向接口(我要什么):自上而下看网络,关注应用或服务需求

      基于意图的描述:目标+操作;目标+结果

    实现REST API的控制器

    RYU、Floodlight、OpenDayLight

    RPC、JAVA API、CORBA、SOAP

    2. REST API

    遵循RESTful规范设计的API,是 REST API

    REST几个重要概念
    1. 资源:信息的抽象
    2. 资源标识符:URI
    3. 表述:HTML文档
    4. 元数据:数据的数据
    REST 架构 5个重要约束
    1. 客户-服务器约束:解耦
    2. 无状态约束:来自客户端的每个请求必须包含服务器处理该请求所需要的所有信息
    3. 缓存:要求一个请求的响应中的数据标记是否可缓存,减少两端交互次数
    4. 统一接口
    5. 分层系统

    3. REST API 设计规范

    动作 + 标识资源

    常用HTTP动词
    • HEAD:获取资源某个头部信息
    • GET:获取资源
    • POST:创建资源
    • PATCH:更新资源部分属性
    • PUT:更新资源
    • DELETE:删除资源
    资源原型
    • 文档、集合、仓库、控制器
    RESTfulURI名命规范
    • 文档类型 – 名词单数
    • 集合类型和仓库类型 – 名词复数
    • 控制器 – 动词
    * REST 的各种规范
    FloodLight 北向 API
    • Openflow流表

    • 防火墙

    • ACL

    • 多租户网络虚拟化

      举例:FloodLight 的 ACL

    软件定义网络(SDN)基础概念学习笔记(下)

    来源:Laurence_TT

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2019年5月20日
    下一篇 2019年5月21日

    相关推荐