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


相关推荐

  • linux用命令dpkg,Linux中的dpkg命令介绍

    linux用命令dpkg,Linux中的dpkg命令介绍导读dpkg是一个安装、构建、删除和管理Debian包的工具。所有源自“Debian”的linux的发行版都可使用dpkg命令,比如Ubuntu。语法:dpkg(选项)(参数)选项:-i:安装软件包-r:删除软件包-P:删除软件包的同时删除其配置文件-L:显示于软件包关联的文件–unpack:解开软件包-c:显示软件包内文件列表-configure:配置软件包参数:deb软件包列出deb软件包的…

  • PHPmyadmin安装教程+遇到问题「建议收藏」

    PHPmyadmin安装教程+遇到问题「建议收藏」安装PHPMyAdmin遇到些问题,我的PHP版本是5.6的。开始安装了5.0的phpMyAdmin,报错了。,之后将phpMyAdmin减低到4.4.12版本,成功安装。安装过程遇到个问题【注意】localhost/phpmyadmin,这个访问的时候,localhost后面要加:端口号,不然无法访问一、下载PHPmyadmin打开PHP中文网中的PHPmyadmi…

  • FastJson对BigDecimal保留两位小数(valueFilter)「建议收藏」

    FastJson对BigDecimal保留两位小数(valueFilter)「建议收藏」2019独角兽企业重金招聘Python工程师标准>>>…

  • 【操作系统—-Linux】常用DNS列表「建议收藏」

    【操作系统—-Linux】常用DNS列表「建议收藏」修改etc/resolv.conf内容(一般打开后为空白),增加DNS服务器地址山东青岛联通DNS服务器nameserver202.102.134.68谷歌公共DNS服务器(联网稳定)nameserver8.8.8.8nameserver8.8.4.4114公共DNS(延迟低)nameserver114.114.114.114nameser…

  • MFC进度条-转

    MFC进度条-转CProgressCtrl 控件属性当我们在处理大程序时,常常需要耗很长时间(比如搜索内存,复制大文件),为了不让用户错误的认为系统已经死机,我们要给程序添加进度条。CProgressC

  • form表单提交的几种方式

    表单提交方式一:直接利用form表单提交html页面代码:<!DOCTYPEhtml><html><head><metacharset=”UTF-8″/><title>Inserttitlehere</title></head><body><formaction=”h…

发表回复

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

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