软件定义网络(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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • UEFI安装win10+manjaro双系统

    UEFI安装win10+manjaro双系统前期准备win10下载ISO:manjaro下载制作启动盘(win10)制作启动盘(manjaro)BIOS设置安装UEFI+GPT安装win10安装win10安装manjaro前期准备win10下载ISO:微软官方Windows10ISO直接下载网页:https://www.microsoft.com/zh-cn/software-down…

  • 具体说明 Flume介绍、安装和配置

    具体说明 Flume介绍、安装和配置

  • Java集合面试题_java是什么

    Java集合面试题_java是什么Java中的浅拷贝与深拷贝很多时候,我们期望去拷贝某个对象的副本。在Java中如果使用=赋值操作,其实际上会让两个引用变量指向同一个对象;而如果重新new一个新对象,再对各字段进行赋值操作时,将十分繁琐。为此在Java的Object类中,提供了一个clone方法,其可拷贝对象副本clone方法与Cloneable接口Cloneable接口的源码如下publicinterfaceCloneable{}注释第一段一个类实现了Cloneable接口,以向Object.c

    2022年10月13日
  • reaver使用方法

    reaver使用方法闲话少叙使用方法:airmon-ngstartwlan0//启动mon0监控reaver-imon0-bMAC-a-S-vv//普通用法如果,90.9%进程后死机或停机,请记下PIN前四位数,用指令:reaver-imon0-bMAC-a-vv-pXXXX(PIN前四位数)其他命令airodump-ngmon0用来扫描周

  • Virtualbox下使用virt-p2v

    Virtualbox下使用virt-p2v1虚拟机迁移参考:http://www.ibm.com/developerworks/cn/linux/l-cn-mgrtvm1/index.html2物理机到虚拟机的迁移virt-p2vredhat官方文档:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/V2V_Guide/cha

  • javacollection_java freemarker

    javacollection_java freemarkerlabelmeImagePolygonalAnnotationwithPythonDescriptionLabelmeisagraphicalimageannotationtoolinspiredbyhttp://labelme.csail.mit.edu.ItiswritteninPythonandusesQtforitsgraphica…

发表回复

您的电子邮箱地址不会被公开。

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