导图社区 软件定义网络-信息
软件定义网络-信息的思维导图,包括SDN开源项目、云计算网络与Overlay、网络虚拟化& NFV、SDN北向接C协议、 SDN概述和基本原理等内容。
编辑于2022-11-11 22:21:05时间管理-读书笔记,通过学习和应用这些方法,读者可以更加高效地利用时间,重新掌控时间和工作量,实现更高效的工作和生活。
本书是法兰教授的最新作品之一,主要阐明了设计史的来源、设计史现在的状况以及设计史的未来发展可能等三个基本问题。通过对设计史学科理论与方法的讨论,本书旨在促进读者对什么是设计史以及如何写作一部好的设计史等问题的深入认识与反思。
《计算机组成原理》涵盖了计算机系统的基本组成、数据的表示与运算、存储系统、指令系统、中央处理器(CPU)、输入输出(I/O)系统以及外部设备等关键内容。通过这门课程的学习,学生可以深入了解计算机硬件系统的各个组成部分及其相互之间的连接方式,掌握计算机的基本工作原理。
社区模板帮助中心,点此进入>>
时间管理-读书笔记,通过学习和应用这些方法,读者可以更加高效地利用时间,重新掌控时间和工作量,实现更高效的工作和生活。
本书是法兰教授的最新作品之一,主要阐明了设计史的来源、设计史现在的状况以及设计史的未来发展可能等三个基本问题。通过对设计史学科理论与方法的讨论,本书旨在促进读者对什么是设计史以及如何写作一部好的设计史等问题的深入认识与反思。
《计算机组成原理》涵盖了计算机系统的基本组成、数据的表示与运算、存储系统、指令系统、中央处理器(CPU)、输入输出(I/O)系统以及外部设备等关键内容。通过这门课程的学习,学生可以深入了解计算机硬件系统的各个组成部分及其相互之间的连接方式,掌握计算机的基本工作原理。
软件定义网络
PART8:SDN开源项目
Open vSwitchOVS
OVS简介
随着虚拟化应用普及,需要部署更多的虚拟化交换机,而费用昂贵的闭源虚拟交换机让用户不堪重负。
OVS可用于生产环境,支持跨物理服务器分布式管理、扩展编程、大规模网络自动化和标准化接口,实现了和大多数商业闭源交换机功能类似的软件交换机。
OVS基于SDN的思想,将整个核心架构分为控制面和数据面。数据面负责数据的交换工作,控制面实现交换策略,指导数据面工作。
OVS的组成结构
管理面
由 OVS 提供的各种工具来负责,这些工具的提供也是为了方便用户对底层各个模块的控制管理,提高用户体验
数据面
以用户态的 ovs-vswitchd 和内核态的 datapath 为主的转发模块,以及与之相关联的数据库模块 ovsdb-server
控制面
主要是由 ovs-ofctl 模块负责,基于 OpenFlow 协议与数据面进行交互
Openstack
Openstack概述
OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,帮助组织运行为虚拟计算或存储服务的云,它提供了一个部署云的操作平台或工具集
OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。
OpenStack的组件关系
Nova — 计算服务
Neutron — 网络服务(为创建和管理虚拟网络公开了一组可扩展的API)
Neutron Server:对外提供OpenStack网络API,接收请求,并调用Plugin处理请求。
Plugin:处理Neutron Server发来的请求,维护OpenStack逻辑网络的状态,并调用Agent处理请求。
Agent:处理Plugin的请求,负责在Network Provider上真正实现各种网络功能。
Network Provider:提供网络服务的虚拟或者物理网络设备,比如Linux Bridge,OpenVSwitch或者其他支持Neutron的物理交换机。
Queue:Neutron Server,Plugin和Agent之间通过Messaging Queue通信和调用。
Database:存放OpenStack的网络状态信息,包括Network,Subnet,Port,Router等。
Swift — 对象存储服务
Cinder — 块存储服务
Glance — 镜像服务
Keystone — 认证服务
Horizon — UI服务
Ceilometer — 监控服务
Heat — 集群服务
Trove — 数据库服务
PART7:云计算网络与Overlay
云计算网络
二层网络、三层网络理解
传统网络架构以三层为主,主要是以控制南北数据流量为主,由于数据中心虚拟机的大规模使用,虚拟机迁移的特点以东西流量为主,在迁移后需要其IP地址、MAC地址等参数保持不变,因此要求业务网络是一个二层网络。
虚拟化对传统数据中心提出的挑战
传统的三层数据中心架构结构的设计是为了应付服务客户端—服务器应用程序的纵贯式大流量,同时使网络管理员能够对流量流进行管理。工程师在这些架构中采用生成树协议(STP)来优化客户端到服务器的路径和支持连接冗余。
虚拟化从根本上改变了数据中心网络架构的需求。最重要的一点就是,虚拟化引入了虚拟机动态迁移技术。从而要求网络支持大范围的二层域。从根本上改变了传统三层网络统治数据中心网络的局面。
Overlay叠加网络技术
Overlay技术的由来
虚拟机迁移范围受到网络架构限制
虚拟机规模受网络规格限制
网络隔离/分离能力限制
Overlay技术的定义
Overlay指一种网络架构上叠加的虚拟化技术模式,对基础网络不进行大规模修改的情况下,以基于IP的网络技术为主承载应用,并与其它网络业务分离。
Overlay是一种隧道封装技术,最关键的业务模型就是要实现一种无状态的网络模型,即使跨越运营商资源,实现多个数据中心互访,甚至虚拟机迁移都可以无感知地在这张逻辑网络上运行,对上层应用提供无感知的网络服务。
Overlay技术的组成部分
主机Overlay:隧道封装在vSwitch完成,不用增加新的网络设备即可完成Overlay部署,可以支持虚拟化的服务器之间的组网互通。
网络Overlay:隧道封装在物理交换机完成。这种Overlay的优势在于物理网络设备性能转发性能比较高,可以支持非虚拟化的物理服务器之间的组网互通。
混合 Overlay:是网络Overlay和主机 Overlay的混合组网,可以支持物理服务器和虚拟服务器之间的组网互通
实现Overlay网络的三大技术方案
VXLAN、NVGRE 、STT
什么是VXLAN?
VXLAN = Virtual eXtensible Local Area Network。云计算环境下,大二层网络解决方案的一项草案
VXLAN的报文格式
VXLAN报文格式
VXLAN header
VXLAN Flags:8bit,取值为00001000。
Reserved:24bit和8bit,必须设置为0。
VNI(VXLAN网络标识):24bit,用于区分VXLAN段。
Outer UDP header
Source Port(源端口号):是内层报文通过哈希算法计算后的值。
DestPort(目的UDP端口号):是4789。
Outer IP header
Outer Ethernet header
封装与解封装
封装:原始的二层报文来到源vtep节点后会被封装上VXLAN包头。VXLAN包头是在原始二层报文前面再封装一个新的报文,新的报文和传统的以太网报文类似,拥有源目mac、源目ip等元组。
解封:打上VXLAN包头的报文到了目标vtep节点后会将VXLAN包头解封装,并获取原始的二层报文。
outer mac header以及outer ip header里面的相关元组信息都是vtep的信息,和原始的二层报文没有任何关系。
数据包在源、目vtep节点之间的传输和原始的二层报文是毫无关系的,依靠的是外层的包头完成。
PART6:网络虚拟化 & NFV
虚拟化技术
什么是虚拟化?
虚拟化的对象是各种各样的资源
经过虚拟化后的逻辑资源对用户隐藏了不必要的细节
用户可以在虚拟环境中实现其真实环境的部分或全部功能
服务器虚拟化
关键特性
分区:在单一物理服务器上同时运行多个虚拟机
隔离:在同一服务器上的虚拟机之间相互隔离
封装:整个虚拟机都保存在文件中,而且可以通过移动和复制这些文件的方式来移动和复制该虚拟机
动态迁移:运行中的VM可实现动态迁移到不同的物理以及虚拟平台上
可用在灾备、资源调整、服务器维护等场合
实现迁移的服务器必须在一个二层网络内,VM的GW在相同设备上
动态迁移可在x86架构的VMWARE ESX上实现,也可以在IBM P6小型机上实现
两个术语
Virtual Machine(VM)
Virtual Machine Monitor(VMM)或Hypervisor
VMM的两种典型实现
主机虚拟化结构
VMM作为一个应用程序运行在通用操作系统之上,操作系统管理资源。
多个虚拟机的OS间相互独立,一个虚拟机宕机不影响其他虚拟机。
操作系统支持的硬件,虚拟机就能支持。
性能不高
裸金属虚拟化结构
VMM负责硬件资源的管理
VM应用层、VM内核、Hypervisor处于不同的CPU特权等级
多个虚拟机的OS间相互独立,一个虚拟机宕机不影响其他虚拟机。
处理性能高,接近非虚拟化运行模式
网络虚拟化
vNetwork及其组件(自上而下)
虚拟网络接口卡
虚拟交换机vSwitch
分布式交换机
端口组
VLAN
虚拟设备
网络设备的1:N虚拟化技术
传统实现方式:Mutil-VRF、多实例防火墙、一个操作系统上的多个转发表项
新思路:采用操作系统虚拟化技术,通常CPU会采用支持虚拟化技术的x86
网络设备的N:1虚拟化技术
网络功能虚拟化NFV
NFV的产生背景
传统的通过物理设备提供服务的方式有如下缺点,大大降低了敏捷性
NFV让电信、移动等提供商和运营商有能力提供更好的数字业务,加快新服务投放市场的速度,可以借此与大的软件公司竞争
NFV概述
定义
NFV = Network Function Virtulization(网络功能虚拟化)
采用虚拟化技术、基于通用硬件实现电信功能节点的软件化,将原本运行在专用中间设备的网络功能(如网关、防火墙)用软件的方式实现
四大基本特征
① 虚拟化;② 通用基础设施;③ 云化管理;④ 网络自动化
NFV框架
纵向分层
基础设施层NFVI
NFVI是NFV Infrastructure的简称,从云计算的角度看,就是一个资源池。
NFVI映射到物理基础设施就是多个地理上分散的数据中心,通过高速通信网连接起来。
NFVI需要将物理计算/存储/交换资源通过虚拟化转换为虚拟的计算/存储/交换资源池。
虚拟网络层VNF
虚拟网络层对应的就是目前各个电信业务网络,每个物理网元映射为一个虚拟网元(VNF)
VNF所需资源需要分解为虚拟的计算/存储/交换资源,由NFVI来承载
VNF之间的接口依然采用传统网络定义的信令接口(3GPP+ITU-T),VNF的业务网管依然采用NE-EMS-NMS体制。
运营支撑层
就是目前的OSS/BSS系统,需要为虚拟化进行必要的修改和调整
横向分层
业务网络层
就是目前的各电信业务网络
管理编排层MANO
MANO负责对整个NFVI资源的管理和编排,负责业务网络和NFVI资源的映射和关联,负责OSS业务资源流程的实施等。
MANO执行资源调配取用的任务时,将参考OSS和BSS的角度来进行协调配置。
MANO内部包括VIM、VNFM和Orchestrator三个实体,分别完成对NFVI、VNF和NS(业务网络提供的网络服务)三个层次的管理。
虚拟化基础设施管理(VIM)
虚拟网络功能管理(VNFM)
编排器(Orchestrator)
NVF架构图
NFV & SDN
区别
NFV:为了满足服务提供商的需求,通过减少/消除专有硬件降低资本支出,将多种网络功能整合到行业标准平台上
SDN:来自IT世界。分离数据层和控制层,同时集中控制; 提供使用定义良好的接口编程网络行为的能力
联系
NFV和SDN是高度互补关系,但并不互相依赖。网络功能可以在没有SDN的情况下进行虚拟化和部署,然而这两个理念和方案结合可以产生潜在的、更大的价值。
PART5:SDN北向接口协议
SDN北向接口概述
什么是北向接口NBI?
应用平面与控制平面之间的接口,通过控制器向上层业务应用开放的接口
为上层业务应用和资源管理系统提供灵活的网络资源抽象
北向接口的设计与网络模型
功能型北向接口(Functional NBI)
自下而上看网络,重点在网络资源抽象及控制能力的开放
基于意图的北向接口((Intent-based Interface))
自上而下看网络,关注应用或者服务的需求,同具体的网络技术无关
北向接口与网络模型
北向接口的实现
主流实现——REST API
实现Rest API的控制器有RYU、Floodlight、Opendaylight等
其他方案:RPC、JAVA API、CORBA、SOAP等
RESTAPI
RESTful与REST API
RESTful:满足REST约束条件和原则的设计规范或者架构风格
RESTAPI:遵循RESTful设计的API
为什么需要RESTful?
HTTP协议使用不规范、随意、混乱
比如删除一个id号为10的学生,URL有多种写法
RESTful设计如下
RESTAPI的设计
HTTP动词 + URI
HTTP动词
HEAD:获取某个资源的头部信息
GET:获取资源
POST: 创建资源
PATCH:更新资源的部分属性
PUT:更新资源
DELETE:删除资源
URI设计规范
命名规范
文档(Document)类型的资源用名词单数命名
集合(Collection)类型的资源用名词复数命名
仓库(Store)类型的资源用名词复数命名
控制器(Controller)类型的资源用动词命名
格式规范
URI中分隔符“/”一般用来对资源层级的划分,”/“不应该出现在URI的末尾
URI中尽量使用连字符"-"代替下划线"_"的使用
URI中统一使用小写字母
URI中不要包含文件(或脚本)的扩展名
增删改查的操作不要体现在URI中
URI中的query字段
作为查询的参数补充,以标示一个唯一的资源
作为过滤条件使用
作为资源列表分页标示使用
举例
id为123的user相关操作
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"):服务器无法处理请求,一般用于网站维护状态
PART1:SDN概述和基本原理
SDN技术的产生
定义
软件定义网络SDN,Software Defined Network,是一种网络设计理念,通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,让网络成为一种可灵活调配的资源。
网络设备只负责单纯的数据转发,可以采用通用的硬件
原来负责控制的操作系统将提炼为独立的网络操作系统(NOS, Network Operating System),负责对不同业务特性的适配
网络操作系统、业务特性、硬件设备之间的通信都是可以通过编程实现的
传统网络设备紧耦合的网络架构被分拆成应用、控制、转发三层分离的架构。控制功能被转移到了服务器,上层应用、底层转发设施被抽象成多个逻辑实体。
3个重要概念
控制平面与数据平面分离
集中式控制模型
可编程(开放的API)
产生原因
网络体系寻求变革,需要更加灵活和富有弹性
新业务的兴起对传统的网络系统提出新的挑战
个人电脑、手机产业的发展规律对通信业的启示
SDN的起源和发展
Ethane: Taking Control of the Enterprise (SIGCOMM 2007) Martin
OpenFlow: Enabling Innovation in Campus Networks (ACM SIGCOMM 2008) Nick McKeown
(2009) Nick McKeown
(2011) NDDI 网络开发与部署行动计划
(2013) 几大厂商联合成立OpenDaylight
B4:Experience with a Globally-Deployed Software Defined WAN (2013) Google
SDN应用发展展望
近期:部署在大型云数据中心内部网络和部分企业私有网络中
远期:逐步引入通信网络中
SDN标准化组织
开放网络基金会(ONF)
因特网工程任务组(IETF)
国际电信联盟电信标准化部门(ITU-T)
欧洲电信标准化协会(ETSI)
ONF定义的SDN基本架构
一种新型网络创新架构 , 实现了网络设备控制与转发的分离
网络虚拟化的一种实现方式 , 其核心技术OpenFlow
实现了网络流量的灵活控制,使网络变得更加智能
SDN的核心思想
SDN的特征
集中控制
使得全局优化成为可能(比如流量工程、负载均衡)
使得整个网络可以当作一台设备进行维护,设备零配件即插即用,大大降低运维成本
网络虚拟化
逻辑网络和物理网络分离,逻辑网络可以根据业务需要配置or迁移,不受物理位置的限制
多租户支持,每个租户可以自行定义带宽需求和私有编址
开放接口
应用告诉网络如何运行才能更好地满足其需求(比如业务的带宽、时延需求,计费对路由的影响等)
用户可以自行开发网络新功能
NOS和转发硬件的开放标准接口使得硬件完全PC化
SDN的架构
SDN的本质
控制和转发分离南向
集中化的网络控制NOS
开放的编程接口北向
SDN的核心思想
解耦Decoupling
控制平面负责上层的控制决策,数据平面负责数据的交换转发,双方遵循一定的开放接口进行通信
软件可以实现灵活的控制功能满足用户的多元化需求,硬件成为专注转发的简单哑资源
抽象Abstraction
转发抽象forwarding abstration
隐藏了底层的硬件实现,转发行为与硬件无关。
分布式抽象distribution abstration
屏蔽分布式控制的实现细节, 为上层应用提供全局网络视图。
配置抽象specification abstration
网络行为的表达通过网络编程语言实现,将抽象配置映射为物理配置。
可编程Programable
北向接口:REST API、RESTCONF协议
南向接口:OpenFlow、OF-Config、NETCONF、OVSDB、XMPP、PCEP、I2RS、OPFlex等协议
东西向接口:负责控制器之间的通信,尚未形成统一标准 。
PART2:数据平面
SDN数据平面
数据平面的任务
解析数据包头
(通过查询由控制平面所生成的转发信息表)转发数据包到某些端口
SDN数据平面的特点
处理流程中的解析Parser、转发Forwarding和调度Scheduling都是可编程、协议无关的
传统网络设备中的二层或三层转发表被抽象成流表。
OpenFlow
OpenFlow架构
OpenFlow是什么?
Openflow是ONF定义的一个转发面控制协议,它将转发面抽象为一个由多级流表组成的转发模型。控制器通过Openflow协议下发 Openflow流表到具体交换机,从而定义、控制交换机的具体行为。
OpenFlow是ONF主推的南向接口协议,目前已成为SDN主流的南向接口协议之一。
三个组成部分
流表Flow Table
每个动作(Action)关联一个流表项(Flow Entry),指示交换机如何进行流(Flow)操作。
安全通道Sccure Channel
OpenFlow交换机通过安全通道与远端控制器连接,负责控制器与交换机之间的交互。
OpenFlow协议Protocol
定义了一种南向接口标准,为控制器与交换机之间的通信提供了一种开放标准的方式。
OpenFlow主要版本和特点
OpenFlow v1.0的组成结构
在OpenFlow协议v1.0中,流表、安全通道与OpenFlow协议(消息类型)是最为核心的概念
OpenFlow流表
什么是流表Flow Table?
针对特定流的策略表项的集合,负责数据包的查找与转发
一张流表包含了一系列的流表项Flow entries
V1.0的流表结构及其内容
包头域:用于对交换机接收到的数据包的包头内容进行匹配
OpenFlow 1.0包头域包含12个元组(tuple),涵盖ISO网络模型中第二至第四层的网络配置信息
每一个元组中的数值可以是一个确定的值,或者是"ANY"
计数器:针对交换机中的每张流表、每个数据流、每个设备端口、每个转发队列进行维护。用于统计数据流量相关信息
动作/指令:用于指示交换机在收到匹配数据包后如何对其进行处理。决定了OpenFlow对转发面行为的抽象能力
必备动作:需要所有OpenFlow交换机默认支持
可选动作:需要交换机告知控制器它所能支持的动作种类
常用的流表动作列表
OpenFlow数据包处理流程
① 每个包按照优先级去匹配流表中的表项,匹配包的优先级最高的表项即为匹配结果。
② 匹配成功后,对应的计数器将更新,同时实施转发动作
③ 如果没能找到匹配的表项,则转发给控制器。
OpenFlow端口
物理端口
逻辑端口
保留端口
SDN交换机
交换机类型
OpenFlow专用交换机OpenFlow-only
OpenFlow使能交换机OpenFlow-enabled
考虑了OpenFlow交换机与传统交换机混合组网时可能遇到的协议栈不兼容问题,能同时运行OpenFlow协议和传统的二/三层协议栈
支持OpenFlow可选转发动作中的NORMAL动作。
交换芯片类型
通用CPU
专用集成电路芯片Application-Specific Integrated Circuit(ASIC)
现场可编程门阵列芯片Field Programmable Gate Array(FPGA)
网络处理器Network Processor(NP)
SDN交换机
SDN物理(硬件)交换机
SDN虚拟(软件)交换机
SDN交换机选型的参数考虑
背板带宽
交换机接口处理器和数据总线间的最大吞吐数据量。背板带宽越高,所能处理数据的能力就越强。
背板带宽不是越高越好,只要满足端口线速转发就可以。
对于线速转发的交换机,背板的带宽计算方法:端口数\times端口速率\times2
端口密度:代表交换机转发能力。密度越大,设备的转发能力越强
端口速率:速率越高,设备的处理性能越强
支持模块类型:类型越多,实用性越强,可应用于不同的网络环境
端口带宽类型:越丰富越好
其他参数:时延(延迟)、功耗、支持OpenFlow版本、机架单元、网管功能
PART3:南向接口协议
南向接口协议概述
南向接口的定义
为控制平面的控制器和数据平面的交换机之间的信息交互而设计的协议
南向接口协议的设计目标
实现数据平面与控制平面的信息交互(向上收集控制平面信息;向下下发控制策略、指导转发行为)
实现网络的配置与管理
实现路径计算——包括链路属性(带宽与开销)、链路状态和拓扑信息等
常见南向接口协议
OpenFlow协议
OpenFlow协议的消息类型
controller-to-switch:由控制器发起。用来管理或获取OpenFlow交换机的状态
asynchronous(异步):由OpenFlow交换机发起,用来将网络事件或交换机状态变化更新到控制器
symmetric(对称):由交换机和控制器发起
OpenFlow协议的消息格式
OpenFlow协议数据包
OpenFlow Header
OpenFlow Message
基于OpenFlow的SDN通信流程
step1:建立连接
HELLO相互
FEATURES_REQUEST控制器—>交换机
FEATURES_REPLY交换机—>控制器
step2:配置交换机过程
SET_CONFIG控制器—>交换机
step3:网络拓扑检测
通过LLDP数据包和广播包的混合使用来查询网络拓扑信息
echo_request交换机—>控制器、echo_reply控制器—>交换机
step4:Packet-in事件交换机—>控制器
Packet‐in消息触发情况 ①
当交换机收到一个数据包后,会查找流表,找出与数据包包头相匹配的条目。
如果流表中有匹配条目,则交换机按照流表所指示的action列表处理数据包。
如果流表中没有匹配条目,则交换机会将数据包封装在Packet‐in消息中发送给控制器处理。(此时数据包会被缓存在交换机中等待处理)
Packet‐in消息触发情况 ②
交换机流表所指示的action列表中包含转发给控制器的动作。(此时数据包不会被缓存在交换机中)
step5:控制器配置流表
Flow‐Mod控制器—>交换机:用来添加、删除、修改Openflow交换机的流表信息
ADD类型的Flow‐Mod消息用来添加一条新的流表项
DELETE类型的Flow‐Mod消息用来删除所有符合一定条件的流表项
DELETE‐STRICT类型的Flow‐Mod消息用来删除某一条指定的流表项
MODIFY类型的Flow‐Mod消息用来修改所有符合一定条件的流表项
MODIFY‐STRICT类型的Flow‐Mod消息用来修改某一条指定的流表项
用Flow‐Mod消息响应Packet‐in消息(对应Packet‐in消息触发情况 ①)
控制器收到Packet‐in消息后,可以发送flow‐mod消息向交换机写一个流表项,并且该flow‐mod消息中的buffer_id字段与packet‐in消息中的buffer_id值相同。
即控制器指定数据包按照此流表项的aciton列表处理。
step6:交换机转发
并不是所有的数据包都需要向交换机中添加一条流表项来匹配处理,网络中还存在多种数据包,它出现的数量很少(如ARP、IGMP等),以至于没有必要通过流表项来指定这一类数据包的处理方法。
Packet-Out控制器—>交换机:控制器告诉交换机某一个数据包如何处理
OF-Config
OF-Config协议概述
一种OpenFlow交换机管理配置协议
OpenFlow的伴侣协议
OF-Config协议设计思想
在OpenFlow架构上增加一个被称作OpenFlow Configuration Point的配置节点(该节点既可以是控制器上一个软件进程,也可以是传统的网管设备)。它通过OF-config协议对OpenFlow交换机进行管理。
OF-Config协议设计需求
配置 (Specification)
运维 (Operational)
管理协议 (Management Protocol)
OF-Config数据模型XML
数据模型
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交换机的数据模型
OpenFlow控制器的数据模型
OF-Config传输协议NETCONF
通过NETCONF协议来传输其内容
NETCONF
什么是NETCONF协议?
NETCONF = The Network Configuration Protocol
NETCONF是基于可扩展标记语言XML的网络配置和管理协议,使用简单的基于RPC机制实现客户端和服务器之间通信。客户端可以是脚本或者网管上运行的一个应用程序,服务器是一个典型的网络设备。
NETCONF提供了一种通过运行网络管理软件的中心计算机(即网络管理工作站)来远程管理和监控设备的方法。
NETCONF协议特点
配置管理:提供保护锁定机制 , 防止多用户操作产生冲突。
查询:对整个系统的配置数据进行操作,且定义了过滤功能。
扩展性:协议模型分层定义,各层之间相互独立。协议采用XML编码
安全性:利用现有的安全协议(SSH、TLS等)提供安全保证,并不与具体的安全协议绑定,更加灵活。
NETCONF协议框架
NETCONF操作层
对数据库信息的获取、配置、复制和删除等功能
操作举例<get-config>
NETCONF内容层
描述了网络管理所涉及的配置数据
NETCONF RPC(远程调用)消息层
NETCONF安全传输层
PART4:SDN控制平面与北向接口协议
SDN控制平面概述
什么是SDN控制平面?
对底层网络交换设备进行集中管理,状态监测、转发决策以及处理和调度数据平面的流量
向上层应用开放多个层次的可编程能力
南向控制协议的任务和功能
链路发现
OF交换机直连链路的发现:LLDP协议
OF交换机非直连链路的发现:广播
拓扑管理
定时发送带LLDP数据包的Packet_out消息,根据Packet_in消息获知交换机信息,监测交换机工作状态,完成网络拓扑视图更新
导致较慢的收敛过程,影响实时反馈
策略制定
流表生成算法是影响控制器智能化水平的关键因素
针对不同层次的传输需求,制定相应的转发策略并生成对应的流表项
SDN具有集中化管控的优势,全局的网络资源视图,容易获得优化的算法执行结果,处理压力较重。
表项下发
主动(proactive)下发:数据包到达交换机之前进行流表设置
被动(reactive)下发:交换机接收到一个数据包并且没有发现匹配的流表项,将其送给控制器处理
💖
链路发现和拓扑管理:利用上行通道对底层交换设备上报信息进行统一监控和统计
策略制定和表项下发:利用下行通道对网络设备实施统一控制。
北向业务支撑方式
通过北向接口为上层业务应用及资源管理系统提供灵活的网络资源抽象
北向接口定义是SDN领域关注和争论的焦点
REST API是用户比较容易接受的方式
主流开源控制器
NOXC++
POXPython
RyuPython
FloodlightJava
OpenDayLightJava
高度可用、模块化、可扩展、支持多协议的控制器平台。提供了一个模型驱动服务抽象层(MD-SAL),允许用户采用不同的南向协议在不同厂商的底层转发设备上部署网络应用。
与其他控制器架构的明显差别是Open Daylight架构中有服务抽象层SAL( Service Abstraction Layer)。SAL主要完成插件的管理,包括注册、注销和能力的抽象等功能