软件定义网络(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)基础概念学习笔记(下)_第1张图片

  • 消息体
基于Openflow的SDN通信流程
  1. 连接的建立

    • 控制器开启TCP6633端口等待交换机连接
    • 交换机启动,尝试连接指定控制器端口
    • 安全通道采用TLS连接加密
    • 双方交换证书进行验证
  2. 通信

    软件定义网络(SDN)基础概念学习笔记(下)_第2张图片

  3. 举例

    软件定义网络(SDN)基础概念学习笔记(下)_第3张图片

3. OF-Config 协议

Openflow伴侣协议, 动机是实现Openflow的远端配置

OF-Config 1.0 - Openflow 1.2

OF-Config 1.1,1.2 - Openflow 1.3

配置需求
  • 控制器连接设置:设置控制器的IP、端口号、传输协议(TLS/TCP)
  • 多控制器:的参数配置
  • Openflow逻辑交换机:相关的各种资源配置
  • 连接中断:配置失败后进入的模式-失败安全模式/失败独立模式
  • 加密:加密设置,双方认证方式
  • 队列:包括最小速率、最大速率、自定义速率
  • 端口:端口配置,禁止接受、禁止转发、禁止Packet-in、管理状态
  • 能力发现:发现能力特征
操作运维

必须支持

  • 支持OF交换机被多个Openflow配置点配置
  • 支持一个Openflow配置点管理多个OF交换机
  • 支持一个OF逻辑交换机被多个控制器控制
  • 支持OF交换机的端口和队列
  • 支持OF逻辑交换机的能力发现
  • 支持配置隧道
管理协议需求
  • 安全性、可靠性、可扩展性
OF-Config 协议数据模型

采用XML描述的数据结构

OF-Config的传输协议

通过NETCONF来传输,(RFC6241

4. NETCONF协议

优点
  1. 保护锁定机制
  2. 支队整个系统数据库可直接进行操作
  3. 可扩展性好
  4. 不与具体安全协议绑定,用现有安全协议
特点

区分配置数据和状态数据

3个标准概念配置数据库
  • Candidate、Running、Startup

Candidate、Running、Startup

NETCONF 协议框架

软件定义网络(SDN)基础概念学习笔记(下)_第4张图片

  • 安全传输层:提供可靠序列号发送机制、SSH作为承载协议
  • 消息层:
  • 操作层(核心层):数据库信息的获取、配置、复制和删除

软件定义网络(SDN)基础概念学习笔记(下)_第5张图片

  • 内容层:采用YANG语言进行建模,包括配置设置

5. Openflow分析实验

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

第五章

1. SDN控制平面

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

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

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

主流SDN控制器体系结构

软件定义网络(SDN)基础概念学习笔记(下)_第6张图片

南向网络控制
  1. 链路发现

    • LLDP协议-OF交换机直连链路发现

    • 同时会命令交换机间广播

      软件定义网络(SDN)基础概念学习笔记(下)_第7张图片

  2. 拓扑管理

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

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

  4. 表项下发

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

争议较大,目前 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)基础概念学习笔记(下)_第8张图片

你可能感兴趣的:(软件定义网络,SDN)