OpenFlow协议定义了交换机和控制器交换数据的方式和规范,但并没有定义如何配置和管理必需的网络参数和网络资源,OF-CONFIG的提出就是为了对OpenFlow提供配置管理支持.如下图所示,OF-CONFIG在OpenFlow原来的框架上,新增了OpenFlow配置点对交换机进行配置和管理. (图摘自<SDN核心技术剖析和实战指南>) OF-CONFIG对一些交换机的基本功能进行了配置,如控制器的IP地址,设备的队列与端口等资源以及支持远程修改设备的端口状态等.另外,还有其他一些可配置的参…
对于SDN交换机的技术,其实也适用于传统的交换机,只不过控制部分被分离出来而已.传统交换机的控制面主要是转发表的管理以及网络状态之类的各种表,现在这些都由控制器来担心.转发面主要由转发决策.背板和输出链路调度组成. 转发决策是指数据包从输入端口进入交换机后,接下来怎么办.在SDN架构上,就是查询流表. 背板是指作出决策后数据包到达输出端口所经过的地方.主要由两种背板设计方式,一是共享总线型,发往不同端口的数据包共享总线来传输,这个比较容易冲突,类比下以太网:二是交叉开关矩阵型,就是不同的输入端口…
这节的内容相当多,主要是介绍OpenFlow标准特别是流表的相关特性. 典型的OpenFlow标准由三部分组成:安全通道,流表和OpenFlow协议.注意这个标准是一份设备标准,并不单指OpenFlow协议.后来引入了流水线式的多流表以及组表(Group Tabel). (图摘自SDNAP的文章) 安全通道是交换机与控制器进行通讯的接口,在实现上推荐使用(在缺省情况下就是)TLS用来保证认证性和数据隐私.而OpenFlow协议是用来描述控制器和交换机之间交互信息的接口标准.OpenFlow协议支…
第一章主要是概况.新技术有一个特点是,每家都有不同的说法.这里我只说说我比较认同的部分. SDN的核心概念大概有两个:转发面与控制面分离.开发可编程化.书里还说逻辑上集中控制,其实这个就可以从转发与控制分离推出:至于说到网络虚拟化,我看这只是其中一个结果吧. ONF的SDN架构分为三层:应用层.控制层和基础设施层.与其他架构不同的是,它的南向接口规定是OpenFlow,不过我想很难统一化.北向接口因为与业务的关联比较大,因此也没什么标准可言.OpenDayLight的架构非常庞大,基本上包括了O…
第一章 SDN定义如下: SDN是一种新兴的基于软件的网络架构及技术,其最大的特点在于具有松耦合的控制平面与数据平面.支持集中化的网络状态控制.实现底层网络设施对上层应用的透明. SDN和NFV: ONF(开发网络基金会)从用户角度定义SDN架构,ETSI(欧洲电信标准化协会)从网络运营商角度出发提出的NFV(网络功能虚拟化)架构. ONF提出的SDN架构图如下: 分为三层: 应用层---包括各种不同的业务和应用: 控制层---负责处理数据平面资源的编排,维护网络拓扑.状态信息等: 基础设施层-…
这一节主要是介绍几种开源的SDN控制器. NOX/POX.最初的NOX混合了C++和Python两种编程语言,现在演变为两个版本.NOX版本主要面向Linux平台,利用C++开发,目标是提供快速的控制平台:POX版本面向Windows.Mac OS.Linux等多种平台,利用Python开发,目标是提供控制器部署的便利性.两者可以看作是同一种控制器. NOX采用了组件化的架构,可分为核心组件和应用组件.核心组件是用于和网络直接打交道的底层接口:应用组件既包括NOX本身提供的组件,也包括第三方扩展…
在SDN的架构中,控制器可以说是SDN的核心,它负责对底层转发设备的控制以及向上层应用提供可编程性的北向接口.从实现上看,主要分三个层面来考虑,南向接口技术,北向接口技术以及东西向的可扩展性能力.下面逐一描述. 南向网络控制技术主要包括通过南向接口协议进行链路发现.拓扑管理.策略制定.表项下发等.链路发现和拓扑管理主要是控制器利用交换机上报的信息进行同一管理(上行),而策略制定和表项下发则是控制器向交换机发送控制信息从而实施同一控制(上行). SDN控制器主要使用LLDP(Link Layer…
Open vSwitch(OVS)是一款基于软件实现的开源交换机.它能够支持多种标准的管理接口和协议以及跨多个物理服务器的分布式环境.特别地,OVS提供了对OpenFlow协议的支持,并且能够与众多开源的虚拟化平台相整合. (参考Open vSwitch官网:http://openvswitch.org/) 如上图所示.OVS两端连接着一块物理网卡和多块虚拟网卡(虚拟机中的网卡),在OVS的维护一个映射表,根据MAC地址来映射到对应的VM链路从而完成数据的转发,从某个角度上看,这可能有点像NAT…
锁粒度与并发性能怎么样? 数据库的读写并发性能与锁的粒度息息相关,不管是读操作还是写操作开始运行时,都会请求相应的锁资源,如果请求不到,操作就会被阻塞.读操作请求的是读锁,能够与其它读操作共享,但是当写操作请求数据库时,它所申请的是写锁,具有排它性. MongoDB在2.2之前的版本,锁的粒度是非常粗的,它会锁住整个mongod实例.这意味着当一个数据库上的写锁被请求后,对mongod实例上管理的其它数据库的操作都会被阻塞.2.2版本降低了锁的粒度,引入了单个数据库范围的锁,也就是说读写操作的锁…
https://mp.weixin.qq.com/s?__biz=MzU1NDA4NjU2MA==&mid=2247492538&idx=2&sn=9a2bd9fe2d7fd681c10ebd368ef81c9c&chksm=fbea5a75cc9dd3636c148ebe6e296621d0c07132938a62f0b3643f34af414b3fd85e616e754b&scene=0&key=f9325dcb38245ddcc4d3ff16d58d0…