软件定义网络PART 4

  • 南向接口协议
    • 南向接口协议概述
      • 什么是南向接口协议?
      • 南向接口协议的设计目标(主要作用)?
      • 南向接口协议有哪些?
        • OpenFlow协议
        • OF-Config协议
        • OVSDB协议
        • NETCONF 协议
        • XMPP
        • PCEP
        • I2RS
        • OpFlex
    • Open Flow 协议
      • Openflow消息类型
        • controller-to-switch 消息
        • asynchronous消息列表
        • symmetric消息列表
      • Openflow消息格式
        • Openflow Header格式:
        • Openflow Header的数据结构
        • 基于Openflow的SDN通信流程
    • OF-Config概述
      • OF-Config协议
      • OF-Config协议与OpenFlow协议版本对应关系
      • 协议设计需求(Requirements)
        • 配置需求(Specification Requirements)
        • 操作运维需求(Operational Requirements)
        • 管理协议需求(Management Protocol Requirements)
      • OF-CONFIG的数据模型
        • OF-CONFIG的数据模型多种标识符
        • OpenFlow交换机数据模型为例:
        • OF-CONFIG传输协议
    • NETCONFIG协议
      • 什么是NETCONF协议
      • NETCONF协议优点(与SNMP比较)
      • NETCONF协议其他特点
      • NETCONF协议框架
        • NETCONF传输层
        • NETCONF RPC层
        • NETCONF操作层
        • NETCONF内容层
      • 操作举例-

南向接口协议

南向接口协议概述

什么是南向接口协议?

  • 为控制平面的控制器和数据平面的交换机之间的信息交互而设计的协议。

南向接口协议的设计目标(主要作用)?

 1.实现数据平面与控制平面的信息交互

  • 向上收集数据平面信息;
  • 向下下发控制策略,指导转发行为。

 2.实现网络的配置与管理;
 3.实现路径计算,包括链路属性(带宽与开销)、链路状态、和拓扑信息等;

南向接口协议有哪些?

OpenFlow协议

  • ONF定义的一种南向接口标准,为控制器交换机之间的通信提供了一种开放标准的方式

OF-Config协议

  • OpenFlow管理与配置协议(OpenFlow Management and Configuration Protocol,OF-Config):一种OpenFlow交换机配置协议。可以理解为openflow协议的伴侣协议

OVSDB协议

  • 开源交换机数据库管理协议(Open vSwitch Database Management Protocol,OVSDB):负责管理开源的软件交换机OpenvSwitch,OVS)的开放虚拟交换机数据库,实现对虚拟交换机可编程访问和配置管理

NETCONF 协议

  • NETCONF协议采用Client/Server结构。通过NETCONF,SDN控制器对网络设备进行配置管理

SDN Controller as Server
SDN Switch as client

XMPP

  • 可扩展消息处理现场协议(eXtensible Messaging and Presence Protocol,XMPP):用于即时消息传递、状态、多方聊天、语音和视频呼叫、协作、轻量级中间件、内容联合和通用的XML数据路由的开放技术。

PCEP

  • 路径计算单元协议(Path Computation Element Protocol,PCEP):为MPLS网络域间流量工程(Traffic Engineering,TE)等应用提出的,以支持集中化的路径计算。

百度MPLS戳这里:MPLS

 MPLS多协议标签交换(英语:Multi-Protocol Label Switching,缩写为MPLS):是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。多协议的含义:是指MPLS不但可以支持多种网络层层面上的协议,还可以兼容第二层的多种数据链路层技术。MPLS是利用标记(label)进行数据转发的。当分组进入网络时,要为其分配固定长度的短的标记,并将标记与分组封装在一起,在整个转发过程中,交换节点仅根据标记进行转发。

I2RS

  • 路由系统接口(Interface to the Routing System,I2RS):IETF主推的SDN南向接口协议;
  • 核心思想:在传统网络设备的路由及转发系统上定义开放接口,使外部应用或控制实体可读取路由器中的信息,基于拓扑变化、流量统计等信息动态下发路由状态、策略到转发设备上,以支持网络的可编程能力。

OpFlex

  • OpFlex是思科公司提出的南向接口协议;
  • OpFlex是ACI内部的策略控制协议。

Open Flow 协议

Openflow消息类型

  • Controller‐to‐Switch消息
  • Asynchronous消息 [eɪˈsɪŋkrənəs]
  • Symmetric消息

controller-to-switch 消息

  • 控制器发起,可能会要求交换机回复对应的消息。

asynchronous消息列表

  • 交换机主动发起的,用于告知控制器新数据包的到达和交换机状态的改变

symmetric消息列表

  • 任意一方发送,无需对方的许可或请求

Openflow消息格式

  • Openflow协议数据包:Openflow Header和Openflow Message

Openflow Header格式:

Openflow Header的数据结构

/* Header on all OpenFlow packets. */
struct ofp_header {
uint8_t version; /* OpenFlow的协议版本号*/
uint8_t type; /*消息类型,是个常数*/
uint16_t length; /*数据包字节数*/
uint32_t xid; /*数据包的标识id*/
};

openflow包数据类型ofp_type是枚举类型,每个消息类型被定义为一个常数:

基于Openflow的SDN通信流程

左边的图通过hello信息连接建立的过程:
◆控制器开启TCP的6633端口等待
交换机的连接
◆交换机启动时,尝试连接到指
定控制器端口;
◆安全通道采用TLS( Transport
Layer Security)连接加密;
◆双方通过交换证书进行认证
后续的过程可以参考上方的信息

右边的图是抓包软件下的不同类型的数据包


两PC终端的信息交互过程:
①主机向网络发送数据包
②OF交换机流表无匹配项,通过
Packetln事件将数据包上报给控制器
③控制器下发流表(或PacketOut)
④数据包转发
⑤同②
⑥同③
⑦数据包转发

OF-Config概述

OF-Config协议

  • OF-Config协议就是一种OpenFlow交换机管理配置协议(OpenFlow Management and Configuration Protocol)
  • OpenFlow的伴侣协议( Considered a complementary protocol );

OF-Config协议与OpenFlow协议版本对应关系


协议设计需求(Requirements)

  • 配置需求(Specification Requirements)
  • 操作运维需求( Operational Requirements )
  • 管理协议需求( Management Protocol Requirements)

配置需求(Specification Requirements)

1.控制器连接设置

  • 控制器IP地址、控制器端口号和传输协议(TLS或TCP)。

2.多控制器(Multiple Controllers)

  • 多控制器连接的参数配置

3.OpenFlow逻辑交换机

  • 各种资源的配置,如端口或队列。

4.连接中断(Connection Interruption)

  • 配置连接失效后进入的模式
    两种模式:失败安全模式和失败独立模式

5.加密(Encryption)

  • 身份认证方式

6.队列(Queues)

  • 最小速率(min‐rate)、最大速率(max-rate)、自定义速率(experimenter)

7.端口(Ports)

  • 禁止接收(no-receive)、禁止转发(no-forward)、禁止Packet-in消息(no–packetin)、管理状态(admin-state)

8.能力发现(Capability Discovery)

  • 发现能力特性

9.Datapath ID

操作运维需求(Operational Requirements)

  • 支持OF交换机被多个OpenFlow配置点配置

  • 支持一个OpenFlow配置点管理多个OF交换

  • 支持一个OpenFlow逻辑交换机被多个控制器控制

  • 支持配置OpenFlow交换机的端口和队列;
  • 支持OpenFlow逻辑交换机的能力发现;
  • 支持配置隧道,如IPinGRE、VXLAN及NVGRE

管理协议需求(Management Protocol Requirements)

  • 保障安全性,支持对交换机和配置点双向认证
  • 支持配置请求和应答的可靠传输
  • 支持由配置点或交换机进行连接设置
  • 能够承载局部交换机配置以及大范围交换机配置
  • 支持配置点在交换机配置参数及接收来自交换机的配置参数
  • 支持在交换机创建、更改及删除配置信息,并支持报告配置结果
  • 支持独立发送配置请求,并支持交换机到配置点的异步通知
  • 支持记忆能力、可伸展性以及报告自身属性和能力

OF-CONFIG的数据模型

  • OF-CONFIG采用XML来描述其数据结构
  • 数据模型由类和类的属性构成

每个openflow交换机包括多个openflow逻辑交换机实例

OF-CONFIG的数据模型多种标识符

  • OpenFlow Capable Switch
  • OpenFlow Configuration Point
  • OpenFlow Logical Switch
  • Logical Switch Capabilities
  • OpenFlow Controller
  • OpenFlow Resource (Superclass)
  • OpenFlow Port
  • OpenFlow Port Feature
  • OpenFlow Queue
  • External Certificate
  • Owned Certificate
  • OpenFlow Flow Table

OpenFlow交换机数据模型为例:



OF-CONFIG传输协议

•通过NETCONF协议来传输其内容(RFC6241)

NETCONFIG协议

什么是NETCONF协议

•新一代网管协议;
•网络配置协议NETCONF(Network Configuration Protocol)提供一套管理网络设备的机制;
•2003年成立了NETCONF工作组,2011年更新版的RFC 6241发布。

NETCONF协议优点(与SNMP比较)

NETCONF协议其他特点

•区分配置数据和状态数据,提供不同的操作进行数据的增删改查。

  • 配置数据(configuration data):对网络设备进行配置的数据;
  • 状态数据(state data):反映设备状态的数据
  • 存在多个配置数据库

NETCONF协议框架

NETCONF传输层

•为NETCONF连接提供可靠的序列号发送机制;
•提供了认证、数据完整性和安全性保障;
•SSH作为其承载协议;

NETCONF RPC层

•采用基于RPC的通讯机制;
•:请求
•:响应

NETCONF操作层

•对数据库信息的获取、配置、复制和删除等功能

NETCONF内容层

•描述了网络管理所涉及的配置数据:

•使用YANG语言进行建模,YANG具有以下特点:

  • 层级树形结构
  • 可以直接映射到XML
  • 可读性好,易学习
  • 可复用、可扩展

操作举例-<get-config`>

操作举例-<edit-config`>

操作举例-<copy-config`>

•创建或替换整个配置数据库
•如果目标存在, 则覆盖;否则,创建一个新的库

操作举例-<delete-config`>

• 配置数据库不能被删除

参考资料:中国大学 MOCC SDN网络课程

软件定义网络PART 4相关推荐

  1. 编程实现路由算法 实验报告_lt;中国通信专刊gt; EARS:用于软件定义网络中自动路由的智能驱动体验网络架构...

    题目:EARS:用于软件定义网络中自动路由的智能驱动体验网络架构 摘要:软件定义网络(SDN)通过将控制平面与数据平面解耦来适应逻辑集中的控制,并提供对网络资源的有效利用.但是,由于传统路由策略依赖于 ...

  2. SDN:软件定义网络

    近期高级网络课的小组任务是在老师给定的范围内自选方向主题研究并做展示报告.我们组选了sdn.原以为这东西会是工业界无人问津的概念化产品,Google了一下却发现事实上sdn挺火的,因为它可能带来的可扩 ...

  3. 软件定义网络 对我们有多重要?

    软件定义网络(简称SDN)属于网络流量控制的下一个步骤.Tech Pro Research发布的调查报告正是以此为中心,旨在为我们展示企业如何使用SDN方案. 过去几年以来,以更为高效方式管理环境的需 ...

  4. 下一代超大规模软件定义网络技术实践

    2019独角兽企业重金招聘Python工程师标准>>> 云计算的 IT 架构已经在企业应用中表现出明显优势,但网络设计理念却必须是一种推倒重来的思想.为了适应云计算的灵活.弹性扩展. ...

  5. 《软件定义网络:基于OpenFlow的SDN》一一2.5 本章总结

    本节书摘来自华章计算机<软件定义网络:基于OpenFlow的SDN>一书中的第2章,第2.5节,作者:Siamak Azodolmolky,更多章节内容可以访问云栖社区"华章计算 ...

  6. SDN(软件定义网络)

    软件定义网络(Software Defined Network, SDN ),是由美国斯坦福大学clean slate研究组提出的一种新型网络创新架构,其核心技术OpenFlow通过将网络设备控制面与 ...

  7. 开源创新、软件定义网络和网络功能虚拟化特性

    图示为开源创新.软件定义网络和网络功能虚拟化的关系图,其中开源创新是由协办商所建立的创新应用并且在共赢上具有其竞争性:软件定义网络的目的是简历网络抽象层,启动快速创新:网络功能虚拟化的目的是降低资本性 ...

  8. vmware服务器虚拟化部署sdn,使用VMware的NSX多面落地软件定义网络SDN视频课程

    1 为什么需要SDN及它的定义.争议.落地 分解初涉人群理解数据中心SDN的难点在哪里,先通过举个一典型云计算的交付环境DCaas交付来落地SDN,首先理解DCaas是什么,它是如何发展起来的.物理基 ...

  9. 【研究方向是SDN该怎么做?】软件定义网络(SDN)的安全挑战和机遇

    软件定义网络(SDN)的安全挑战和机遇 目录 软件定义网络(SDN)的安全挑战和机遇 写在前面的话 SDN是什么? 有必要研究SDN的安全问题吗? SDN的优点与缺点 SDN中的集中化 对于攻击者和防 ...

  10. 科普:SDN(软件定义网络)

    http://www.zdnet.com.cn/wiki-SDN SDN(软件定义网络) 软件定义网络(Software Defined Network, SDN ),是由美国斯坦福大学clean s ...

最新文章

  1. Java Web 高性能开发,前端的高性能
  2. linux zip和tar的区别,Linux入门:tar、gzip、bzip2以及zip的区别
  3. 监视Rails进程内存泄漏的技巧
  4. 光端机安装调试需注意的几大因素
  5. springboot:web开发-Thymeleaf
  6. 两个字符串的最长公共子序列长度_程序员编程算法,解决文本相似度问题的最长公共子序列算法!...
  7. 枚举算法:概率计算。在标注编号分别为1,2,...,n的n张牌中抽取3张,试求抽出3张牌编号之和为素数的概率。输入整数n(3<n<=3000),输出对应的概率(四舍五入到小数点后第3位)。
  8. python处理二进制文件_使用Python进行二进制文件读写的简单方法(推荐)
  9. 云计算学习一——网络基础
  10. 《MySQL技术内幕 InnoDB存储引擎》.pdf
  11. 《善用佳软:高效能人士的软件应用之道》一导读
  12. PS更换证件照背景色,并去除人物像边线
  13. Discuz仿魔客吧模板/素材资源站模板/包含DIY文件
  14. 【论文】联邦学习区块链 论文集(二)
  15. 谢烟客---------Linux之SELinux的基本应用
  16. 多源传感器融合时的时间对齐或者时间同步问题
  17. 数据中台初探与应用实践,28页ppt详解
  18. Tableau学习Step2一数据文件的读取与统计图、表的概述
  19. windows主机日志分析(持续更新)
  20. XunSearch(讯搜)的使用教程步骤(笔记2)

热门文章

  1. Android Studio 实现桌面小组件(APPWidget)
  2. JAVA面试题-文思海辉-花旗银行
  3. 海量数据相似度搜索,如相似的网页、图像、文章、query 等相似性搜索
  4. BINARY_INTEGER和INTEGER的区别
  5. 思维导图 · B端业务的难点
  6. sublime插件之sidebar
  7. IPv6下DHCPv6协议(RFC3315)详细介绍
  8. 关于使用LocationManager时遇到的问题
  9. C#连接数据库代码示例
  10. react 组件渲染控制