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

软件定义网络(SDN)基础概念学习笔记(下)第四章1.南向接口协议设计目标/主要任务承上启下,分离控制平面与数据平面实现网络配置与管理实现路径计算,包括网络开销、链路状态等已实现的南向接口协议Openflow:Openflow交换机与控制器的信息交互OF-Config:Openflow交换机的配置和管理NETCONF:网络设备的配置与管理OVSDB:OpenvSwitch的配置与管理XMPP:用于即时通讯(O…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

第四章

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 消息格式
  • 头部

头部

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

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

    通信

  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 协议框架

NETCONF 协议框架

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

操作层(核心层)

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

5. Openflow分析实验

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

第五章

1. SDN控制平面

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

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

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

主流SDN控制器体系结构

主流SDN控制器体系结构

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

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

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

      命令交换机间广播

  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

FloodLight  的 ACL

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197369.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详解C/C++中volatile关键字

    详解C/C++中volatile关键字一、volatile介绍volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:这段…

    2022年6月1日
    27
  • Colorref_单词color的用法

    Colorref_单词color的用法COLORREF是一个32-bit整型数值,它代表了一种颜色。你可以使用RGB函数来初始化COLORREF。例如:  COLORREFcolor=RGB(0,255,0);  RGB函数接收三个0-255数值,一个代表红色,一个代表绿色,一个代表蓝色。在上面的例子中,红色和蓝色值都为0,所以在该颜色中没有红色和蓝色。绿色为最大值255。所以该颜色为绿色。0,0,

    2022年10月24日
    0
  • linux goland2022.01.13激活码【2021免费激活】

    (linux goland2022.01.13激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0VOERWDQ5R-eyJsa…

    2022年3月31日
    207
  • TCP-RST_tcp快速重传为什么是三次

    TCP-RST_tcp快速重传为什么是三次        在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输数据的、TCP的flag标志位里RST在哪些情况下出现。下面我会画一些尽量简化的图来表达清楚上述几点,之后再了解下RST攻击是怎么回事。1、TCP是什么?TCP是在IP网络层之上的传输层协议,用于提供port到port面向连接的可靠…

    2022年10月1日
    0
  • 简单的激光干涉测距仪原理——为什么只能测量相对距离「建议收藏」

    简单的激光干涉测距仪原理——为什么只能测量相对距离「建议收藏」为什么要用激光来测量距离呢?这一切都是因为激光的波长很短,同频率的光波叠加会在波长级的尺度上产生周期性的变化,因此用激光测量距离时,精度是波长级别的,这也是为什么通常选用波长较短的激光进行测距。将同一光束分成两束,其中一束状态不变,另一束经物体反射后与第一束合并,以光电探测器进行探测。物体每移动半个波长,探测器探测到的信号就会出现一个极值,通过数极值的数量就可以知道物体移动了多少。…

    2022年5月22日
    54
  • 等我干IT发财了,就和你离婚,IT圈子的都收藏转发了

    01 “等我干IT发财了,就和你离婚” 他淡淡地说 听完后,她心里暖暖的, 她想,没有比这更天长地久。 海枯石烂的承诺了。 (因为深知永远也不会发财) ——2017年度最佳微小说奖…

    2021年6月21日
    309

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号