导图社区 软件定义网络SDN
软件定义网络SDN、两个平面独立完成体系结构和技术的发展演进,有利于网络的技术创新与发展、网络规模的扩大,单一控制器成为网络性能的瓶颈。
编辑于2022-11-10 19:50:11时间管理-读书笔记,通过学习和应用这些方法,读者可以更加高效地利用时间,重新掌控时间和工作量,实现更高效的工作和生活。
本书是法兰教授的最新作品之一,主要阐明了设计史的来源、设计史现在的状况以及设计史的未来发展可能等三个基本问题。通过对设计史学科理论与方法的讨论,本书旨在促进读者对什么是设计史以及如何写作一部好的设计史等问题的深入认识与反思。
《计算机组成原理》涵盖了计算机系统的基本组成、数据的表示与运算、存储系统、指令系统、中央处理器(CPU)、输入输出(I/O)系统以及外部设备等关键内容。通过这门课程的学习,学生可以深入了解计算机硬件系统的各个组成部分及其相互之间的连接方式,掌握计算机的基本工作原理。
社区模板帮助中心,点此进入>>
时间管理-读书笔记,通过学习和应用这些方法,读者可以更加高效地利用时间,重新掌控时间和工作量,实现更高效的工作和生活。
本书是法兰教授的最新作品之一,主要阐明了设计史的来源、设计史现在的状况以及设计史的未来发展可能等三个基本问题。通过对设计史学科理论与方法的讨论,本书旨在促进读者对什么是设计史以及如何写作一部好的设计史等问题的深入认识与反思。
《计算机组成原理》涵盖了计算机系统的基本组成、数据的表示与运算、存储系统、指令系统、中央处理器(CPU)、输入输出(I/O)系统以及外部设备等关键内容。通过这门课程的学习,学生可以深入了解计算机硬件系统的各个组成部分及其相互之间的连接方式,掌握计算机的基本工作原理。
软件定义网络SDN
第七章 SDN商业解决方案-DNAC
DNAC平台介绍
Intent APIs
Events and Notifications
Multivendor SDK
IT Tools Integration
第六章 北向接口
6.1 北向接口概述
概念
应用平面与控制平面之间的接口(NBI)
通过控制器向上层业务应用开放的接口
为上层业务应用和资源管理系统提供灵活的网络资源抽象
需要满足多样性、合理性和开放性,未形成业界公认标准
标准化
ONF 北向接口工作组NBI-WG
IRTF 的SDN研究工作组SDNRG
IETF的SFC工作组
接口设计
功能型北向接口(Functional NBI)
自下而上看网络
重点在网络资源抽象及控制能力的开放
基于意图的北向接口(Intent-based Interface)
自上而下看网络
关注应用或者服务的需求,同具体的网络技术无关
北向接口与网络模型
基于意图的业务模型
北向接口实现
Rest API
其他方案:RPC、JAVA API、CORBA、SOAP
6.2 REST API (Representational State Transfer)
RESTful与REST API
RESTful:满足REST约束条件和原则的设计规范或者架构风格
REST API:遵循RESTful设计的API
RESTful术语
资源
一个超文本引用指向的目标
资源标识符
URI(URL、URN)
表述
HTML文档、JPEG图片
元数据
媒体类型、最后修改时间、源链接
REST的约束条件与原则
客户-服务器(Client-Server)
无状态(Stateless)
缓存(Cache)
统一接口(Uniform Interface)
分层系统(Layered System)
按需代码(Code-On-Demand)可选
6.3 REST API设计规范
HTTP动词 + URI
HTTP动词
HEAD
GET
POST
PATCH
PUT
DELETE
URI资源原型
文档
集合
仓库
控制器
URI命名规范
资源命名规范
文档(Document)类型的资源用名词单数命名
集合(Collection)类型的资源用名词复数命名
仓库(Store)类型的资源用名词复数命名
控制器(Controller)类型的资源用**动词**命名
URI中有些字段可以是变量,在实际使用中可以按需替换
URI格式规范
URI中分隔符“/”一般用来对资源层级的划分, ”/“不应该出现在URL的末尾
URI中尽量使用连字符"-"代替下划线"_"的使用
URI中统一使用小写字母
URI中不要包含文件(或脚本)的扩展名
CRUD的操作不要体现在URI中
query字段
HTTP响应状态码
2xx:操作成功
200 (“OK”) :一般性的成功返回,不可用于请求错误返回
201 (“Created”) :资源被创建
202 (“Accepted”) :Controller控制类资源异步处理的返回,仅表示请求已经收到
204 (“No Content”) :可能会出现在PUT、POST、DELETE的请求中
3xx:重定向
303 (“See Other”) :返回一个资源地址URI的引用,但不强制要求客户端获取该地址的状态
4xx:客户端错误
400 (“Bad Request”) :客户端一般性错误返回, 其它4xx的错误,也可以使用400,具体错误信息可以放在body中
401 (“Unauthorized”) :认证错误
404 (“Not Found”) :找不到URI对应的资源
5xx:服务器错误
500 Internal Server Error:服务器处理请求时发生了意外
503 Service Unavailable:服务器无法处理请求,一般用于网站维护状态
元数据设计
HTTP Headers
Content-Type
Content-Length
Last-Modified
ETag
Location
Cache-Control, Expires, Date
第五章 控制平面
5.1 SDN控制平面
概述
一个或多个SDN控制器组成,是网络大脑
对底层网络交换设备进行集中管理,状态监测、转发决策以及处理和调度数据平面的流量
向上层应用开放多个层次的可编程能力
SDN控制器体系架构
南向网络控制
链路发现
获得SDN全网信息,实现网络地址学习、VLAN、路由转发
OF交换机直连链路的发现:LLDP协议
OF交换机非直连链路的发现:广播
拓扑管理
监控和采集SDN交换机的信息,反馈工作状态和链路连接状态
定时发送带LLDP 数据包的Packet_out 消息
导致较慢的收敛过程,影响实时反馈
策略制定
流表生成算法是影响控制器智能化水平的关键因素
针对不同层次的传输需求,制定相应的转发策略并生成对应的流表项
表项下发
通过流表下发机制控制交换机的数据包转发
主动下发
被动下发
北向业务支撑
通过北向接口为上层业务应用以及资源管理系统提供灵活的网络资源抽象
北向接口定义是SDN领域关注和争论的焦点
REST API是用户比较容易接受的方式
5.2 开源SDN控制器
POX
采用Python语言开发的基于OpenFlow的控制器
是NOX的兄弟版本,实现了简单的控制平面的功能
简单、易上手
Ryu
NTT主导开发,基于组件的SDN框架
Floodlight
Big Switch主导开发,企业级的OF控制器
第四章 南向接口协议
4.1 南向接口协议概述
南向接口协议概念
设计目标
实现数据平面与控制平面的信息交互
向上收集数据平面信息
向下下发控制策略,指导转发行为
实现网络的配置与管理
实现路径计算
链路属性(带宽与开销)
链路状态
拓扑信息
南向接口协议
OpenFlow
OF-Config 管理与配置协议 OpenFlow Management and Configuration Protocol
NETCONF
OVSDB 开源交换机数据库管理协议Open vSwitch Database Management Protocol
XMPP 可扩展消息处理现场协议 eXtensible Messaging and Presence Protocol
PCEP 路径计算单元协议 Path Computation Element Protocol
I2RS 路由系统接口 Interface to the Routing System
OpFlex
4.2 OpenFlow协议概述
OpenFlow消息类型
Controller‐to‐Switch消息
Features
Configuration
Modify-state
Read-state
Send-packet
Barrier
Asynchronous消息
Packet-in
Flow-removed
Port-status
Error
Symmetric消息
Hello
Echo
Vendor
OpenFlow消息格式
OpenFlow协议数据包
OpenFLow Header
OpenFlow Message
基于Openflow的SDN通信流程
通信流程
Hello协商版本
控制器发送FEATURE_REQUEST获取交换机参数
控制器发送SET_CONFIG向交换机下发配置参数
控制器发送GET_CONFIG_REQUEST请求交换机修改后的配置
控制器通过FLOW_MOD下发流表
数据包传输角度
4.3 OF-CONFIG协议
概述
是一种OpenFlow交换机管理配置协议 OpenFlow Management and Configuration Protocol
OpenFlow的伴侣协议
OF-Config与OpenFlow的版本对照
协议设计需求
配置需求
控制器连接设置
控制器IP地址
控制器端口号
传输协议(TLS或TCP)
多控制器
多控制器连接的参数配置
OpenFlow逻辑交换机
各种资源的配置,如端口或队列
连接中断(Connection Interruption)
配置连接失效后进入的模式
加密(Encryption)
身份认证
队列
最小速率
最大速率
自定义速率
端口
禁止接收
禁止转发
禁止packet-in
管理状态
能力发现
Datapath ID
操作运维需求
支持OF交换机被多个OpenFlow配置点配置
支持一个OpenFlow配置点管理多个OF交换机
支持一个OpenFlow逻辑交换机被多个控制器控制
支持配置OpenFlow交换机的端口和队列
支持OpenFlow逻辑交换机的能力发现
支持配置隧道,如IPinGRE、VXLAN及NVGRE
管理协议需求
保障安全性,支持对交换机和配置点双向认证
支持配置请求和应答的可靠传输
支持由配置点或交换机进行连接设置
能够承载局部交换机配置以及大范围交换机配置
支持配置点在交换机配置参数及接收来自交换机的配置参数
支持在交换机创建、更改及删除配置信息,并支持报告配置结果
支持独立发送配置请求,并支持交换机到配置点的异步通知
支持记忆能力、可伸展性以及报告自身属性和能力。
数据模型
采用XML来描述其数据结构
数据模型由类和类的属性构成
顶级类图
传输协议
通过NETCONF协议来传输其内容 RFC6241
4.4 NetConf协议
概述
新一代网管协议
提供一套管理网络设备的机制
优点
配置管理:提供保护锁定机制,防止多用户操作产生冲突
查询:对整个系统的配置数据进行操作,且定义了过滤功能
扩展性好
协议模型分层定义,各层之间相互独立
协议采用XML编码
安全性:利用现有的安全协议(SSH、TLS等)提供安全保证,不与具体的安全协议绑定,更灵活
其他特点
区分配置数据和状态数据,提供不同的操作进行数据的增删改查
配置数据:对网络设备进行配置的数据
状态数据:反映设备状态的数据
存在多个配置数据库
NETCONF协议框架
传输层
为NETCONF连接提供可靠的序列号发送机制
提供了认证、数据完整性和安全性保障
SSH作为其承载协议
RPC层
采用基于RPC的通讯机制
操作层
对数据库信息的获取、配置、复制和删除等功能
内容层
描述了网络管理所涉及的配置数据
使用YANG语言进行建模
层级树形结构
可以直接映射到XML
可读性好,易学习
可复用、可扩展
学习记录
第一章 概述
1.1 SDN技术产生
网络系统的生命周期
需求调研
规划设计
部署实施
运行维护
传统网络局限性
传统网络设计基础
需求相对明确与稳定
应用与业务变化较小或可预期
基于需求特征进行规划与设计
强调冗余设计
传统网络面临挑战
多元应用与业务层出不穷
相对稳定的规划与部署赶不上快速变化的应用与业务需求
分布式的架构、部署与管理
厂商和设备的多样性
业务弹性响应不足
云数据中心网络激发痛点
动态
按需
可靠
隔离
实现
传统网络核心问题
核心问题
传统网络的只可配置、不可编程
数据平面和控制平面的紧耦合
解决方案
新的网络架构、新的网络设计
弹性响应上层应用的网络可编程
数据平面和控制平面的解耦
底层设备只保留数据平面
所有控制平面和管理平面抽取出来统一管理
网络设备的三个功能层面
管理平面
控制平面
数据平面
SDN三层架构(思想)
解耦
抽象
可编程
1.2 SDN技术发展
发展历程
初期 2006-2011
学术研究与实验创新阶段
提出了SDN的主要架构、设计思想和实现技术
中期 2012-2018
产业界开始普遍接受SDN的思想
技术流派
应用
发展趋势
关注热度上升:学术界、产业界互为促进
Nicira 、Big Switch
支持OpenFlow 的SDN交换机
研发SDN控制器
应用范围扩大
数据中心 SD-DC
广域网 SD-WAN
安全 SD-Security
接入 SD-Access
市场规模增长
技术融合加速
SDN与IPv6、5G
SDN与OpenStack、人工智能
新型网络人才需求
1.3 SDN标准化组织
开放网络基金会(ONF)
因特网工程任务组(IETF)
国际电信联盟电信标准化部门(ITU-T)
欧洲电信标准化协会(ETSI)
第二章 基本原理
2.1 SDN主流架构
ONF定义的基于OpenFlow的架构
特点
转发与控制分离
标准化转发面
优点
异于流量调度
基本架构
四个平面
数据平面
构成
网络元素 Network Element
SDN Datapath
控制数据平面接口(Control Data Plane Interface, CDPI)代理
转发引擎(Forwarding Engine)1+
处理功能(Processing Function) 0+
关键技术
控制平面
构成
北向接口(Northbound Interfaces, NBI)代理
SDN控制逻辑(Control Logic)
控制数据平面接口驱动(CDPI Driver)
任务
将SDN应用层请求转换到SDN Datapath
为SDN应用提供底层网络的抽象模型(状态或事件)
关键技术
控制器,网络操作系统(NOS)或网络控制器
智能、核心均在SDN 控制器中实现
开源SDN控制器
NOX
POX
FloodLight
TYU
OpenDayLight
ONOS
应用平面
构成
SDN应用逻辑
应用交付能力
降低系统的开支和成本
网元的虚拟化和集中化控制
网络快速部署,故障快速发现与解决
更高的智能,自动化运作,应用可感知的网络
北向接口NBI驱动
管理平面
两大接口
南向接口
功能
转发行为控制
设备性能查询
统计报告
事件通知
关键技术
转发面开放协议
北向接口
关键技术
SDN北向接口设计
REST API成为SDN北向接口的主流设计
交换机状态采集
静态流表推送
防火墙策略等接口
IETF提出的技术架构
特点
开放网络设备能力
标准化API
优点
充分利用现有设备
快速实现
NICIRA提出的Overlay技术架构
特点
网络边缘软件化
Overlay技术
优点
与物理网络解耦
部署灵活
ETSI提出的NFV技术架构
NFV与SDN技术互补
2.2 SDN核心思想
解耦 Decoupling
优点
分离功能
控制平面负责上层的控制决策
数据平面负责数据的交换转发
双方遵循一定的开放接口进行通信
便于实现网络逻辑集中控制
两个平面独立完成体系结构和技术的发展演进,有利于网络的技术创新与发展
挑战
网络规模的扩大,单一控制器成为网络性能的瓶颈
如何保持分布式网络节点状态的一致性
响应延迟,导致数据平面的可用性问题
抽象 Abstraction
ONF网络架构
转发抽象(forwarding abstration)
分布状态抽象(distribution abstration)
配置抽象(specification abstration)
Overlay网络架构
基础网络设施抽象
可编程 Programable
网络可编程
CLI命令行接口、SNMP简单网络管理协议等是初级的网络编程方式
需要基于整个网络的,而不是基于某一设备的可编程
SDN开放可编程接口
网络可编程接口
北向借口
REST(Representational State Transfer) API
RESTCONF协议
南向接口
OpenFlow
OF-Config
NETCONF
OVSDB
XMPP
PCEP
I2RS
OPFlex
东西向接口
数据平面可编程技术
Intel主导的DPDK
斯坦福大学主导的P4(Programming Protocol-independent Packet Processors)等
2.3 学习心得
通用的设计思想
分层结构
高内聚 低耦合
抽象封装
REST API 表示状态转移
第三章 数据平面
3.1 SDN数据平面
数据平面任务
执行网络控制逻辑
解析数据包头
转发数据包到某端口
传统网络数据平面
数据转发处理都是协议相关的
只支持有限的用户配置,不支持编程自定义
SDN数据平面架构
处理流程中的:解析(Parser)、转发(Forwarding)和调度(Scheduling)都是可编程、协议无关的
传统网络设备的二层或三层转发表抽象成流表
模型架构
OpenFlow Switch通用转发模型
各种查找表抽象成一种通用的流表结构
数据转发处理抽象成通用的匹配(Match)—动作( Action )过程
未实现协议无关转发
不支持对数据包解析逻辑进行编程
可编程通用协议无关交换机PASA架构
3.2 OpenFlow概述
概述
2008年Nick提出
组成
流表 Flow Table
安全通道 Secure Channel
OpenFlow协议
主要版本
1.0
流表维护通过控制下发消息
流表项由匹配字段、计数器、动作组成
只支持IPv4
1.1
多流表
1.2
可扩展
1.3 LTS
计量表
交换机与控制器协商版本
1.4
同步机制
1.5
3.3 OpenFlow流表
流表
流
流表
OpenFlow v1.0流表项
包头域 Head Fields
第一层
入端口
第二层
源MAC
目的MAC
以太网类型
VLAN标签
VLAN优先级
第三层
源IP
目的IP
IP协议字段
IP服务类型
第四层
源端口号
目的端口号
计数器 Counters
流表
数据流
设备端口
队列
动作表 Actions
必备动作
可选动作
OpenFlow端口
物理端口
逻辑端口
保留端口
流表动作列表
必备动作
转发Froward
丢弃 Drop
可选动作
转发Forward
排队Enqueue
修改域Modify Field
数据包处理流程
包头解析匹配流程
不同版本流表结构
组表
组表项
组表号
组表类型
计数器
动作桶
计量表 Meter Table
计量表项
计量表号
计量带
计数器
3.4 SDN交换机
交换芯片
通用CPU
易扩展、通用性强
处理性能较低
专用集成电路芯片Application-Specific Integrated Circuit,ASIC
性能高、处理能力很强
不易扩展、研发周期长
现场可编程门阵列Field Programmable Gate Array,FPGA
支持反复擦写、可编程
处理能力有限
网络处理器Network Processor,NP
可编程、可进行复杂的多业务扩展
性能不及ASIC芯片
设计支持OpenFlow架构的交换芯片
SDN交换机
SDN物理(硬件)交换机
基于ASIC芯片的SDN品牌交换机
基于ASIC芯片的SDN白盒交换机
基于NP的SDN交换机
基于FPGA的SDN交换机
SDN虚拟(软件)交换机
Open vSwitch(OVS)
Cisco Nexus 1000V
H3C S1020V
SDN交换机参数
背板带宽
端口密度
端口速率
支持模块类型
端口带宽类型
时延(延迟)
功耗
支持OpenFlow版本
机架单元
网管功能