Software-Defined Networking:A Comprehensive Survey--Day2
Software-Defined Networking:A Comprehensive Survey (续+1s)
IV. SOFTWARE-DEFINED NETWORKS: BOTTOM-UP
SDN体系结构可以描述为(be depicted as)不同层的组合,如图6(B)所示。每个层都有自己的特定功能。
图6(A)和(C)分别描绘了面向平面的视图(a plane-oriented view)和系统设计透视图(a system design perspective).下面的部分介绍每一层,遵循自下而上的方法.对于每一层,根据不同的技术和解决方案,解释了核心属性和概念。此外,还讨论了调试(debugging)和故障排除技术(troubleshooting techniques)和工具。
A. Layer I: Infrastructure
SDN基础结构类似于传统网络,由一组网络设备(交换机、路由器和中间盒设备)组成。主要的区别在于,这些传统的物理设备现在是简单的转发元素,没有嵌入式控制(embedded control)或软件来进行自主决策(autonomous decisions)。网络智能从数据平面设备移除到逻辑集中控制系统,即NOS和应用,如图6(C)所示。
更重要的是,这些新网络建立在开放和标准接口(例如OpenFlow)之上(概念上),这些开放的接口使控制器实体能够动态地编写异构转发设备的程序。
在SDN/OpenFlow架构中有两个主要的元素:控制器和转发设备,如图7所示。
流表的每个条目有三个部分:(1)匹配规则;(2)要对匹配的数据包执行的操作;以及(3)保持匹配分组统计信息的计数器。
在OpenFlow设备中,通过一系列流表的路径定义了如何处理数据包。可能的操作包括:1)将数据包转发到传出端口;2)封装它并将其转发给控制器;3)丢弃它;4)将其发送到正常的处理管道;5)将其发送到下一流表或特殊表,例如最新OpenFlow协议中引入的组表或计量表。
如表3所示,OpenFlow规范的每个版本都引入了新的匹配字段,包括以太网、IPv 4/V6、MPLS、TCP/UDP等。
可用OpenFlow设备概述:市场上有几种支持OpenFlow的转发设备,包括商业产品和开源产品(见表4)。
软件交换机正在成为数据中心和虚拟网络基础设施最有希望的解决方案之一[147]-[149]。
B. Layer II: Southbound Interfaces
南向接口(南向API)是控制和转发元素之间额连接桥梁,是分离控制和数据平面功能的关键工具。但这些API仍然和底层的物理或虚拟架构的转发元素紧密结合。
OpenFlow是SDN最广泛接受和部署的开放南行标准。它提供了一个通用规范来实现开放流支持的转发设备,以及数据和控制平面设备(例如交换机和控制器)之间的通信通道。
尽管OpenFlow是最广泛的,但它并不是SDN唯一可用的南向接口。
OVSDB[153]是另一种向南方向的API,旨在为开放vSwitch提供高级管理功能。
与OpenFlow(以及类似于FORCE)相反,OpFlex背后的思想之一是将网络管理的部分复杂性分发给转发设备,目的是提高可伸缩性。与OpenFlow类似,策略在逻辑上是集中的,并从底层实现中抽象出来。
与OpFlex和POF相比,OpenState[155]和ROFL[156]没有为数据平面设备的编程提出一套新的指令。
Hal[157],[158]并不完全是向南的API,而是密切相关的。与上述方法不同的是,HAL是一个翻译器,它支持诸如OpenFlow这样的南向API来控制异构硬件设备。因此,它位于南行API和硬件设备之间。
C. Layer III: Network Hypervisors
虚拟化已经是现代计算机中的一项综合技术。过去十年的快速发展使计算平台的虚拟化成为主流。管理程序使不同的虚拟机能够共享相同的硬件资源。在云基础设施-ASA-service(IaaS)中,每个用户都可以拥有自己的虚拟资源,从计算到存储。这使得新的收入和业务模式成为可能,用户可以按需分配资源,从共享的物理基础设施中以相对较低的成本分配资源。
【
addressing schemes 寻址方案
simultaneously 同时地
tenant 租户
host migration 主机迁移
trigger 触发
anchor 锚定
version-agnostic OpenFlow slicing mechanisms 与版本无关的OpenFlow切片机制
propose 提出
evaluate 评估
deploy 部署
real scenarios 实际场景
】
为了提供完全的虚拟化,网络应该提供与计算层相似的属性[33],网络基础设施应该能够支持任意的网络拓扑和寻址方案,每个租户应该能够同时配置计算节点和网络,主机迁移应该自动触发相应的虚拟网络端口的迁移。
希望这种情况将随着SDN和新隧道技术(例如VXLAN[35]和NVGRE[36])的提供而改变。
1)对网络进行切片:FunVisor是早期实现SDN虚拟化的技术之一。其基本思想是允许多个逻辑网络共享同一OpenFLUE网络基础设施。流程图中考虑了五个切片尺寸:带宽、拓扑结构、流量、设备CPU和转发表。此外,每个网络切片支持控制器,即,多个控制器可以共存于同一物理网络基础结构之上。
每个控制器只允许在其自己的网络片上起作用。
【
transparent proxy 透明代理
intercept 拦截 阻截
proxy 代理人 代理服务器
proposal 虚拟化方案
】
类似于流管理程序,openvirtex[169]、[170]充当NOS和转发设备之间的代理。
autoslice[179]是另一种基于SDN的虚拟化方案,与流管理程序不同,它侧重于虚拟SDN(Vsdn)拓扑的部署和操作的自动化,并通过底层网络运营商提供最小的中介或仲裁。此外,autoslice还通过优化资源利用率和通过对流量统计数据的精确监视来减轻流表限制来实现网络管理器的可伸缩性方面。
【
is analogous to 与---类似
the mapping of 映射
scalable 可升级的
tenant 租户
deploy 部署
the cooperative (sequential or parallel) execution 协作(顺序或并行)执行
diverse 多样的
interoperability and portability 互操作性和可移植性
migrate 迁移
】
2)商业多租户网络管理程序:上述任何一种方法都不是为了应对多租户数据中心的所有挑战而设计的。例如,租户希望能够将他们的企业解决方案迁移到云提供商,而不需要修改其家庭网络的网络配置。现有的网络技术和迁移策略大多不能满足租户和服务提供商的需求。
多租户环境应该锚定在网络管理程序中,能够从租户抽象底层转发设备和物理网络拓扑。(A multitenant environment should be anchored in a network hypervisor capable of abstracting the underlaying forwarding devices and physical network topology from the tenants. )
随着市场对网络虚拟化的需求以及最近对SDN的研究显示出SDN作为一种使能技术的前景,基于SDN概念的不同商业虚拟化平台开始出现。VMware已经提出了一个网络虚拟化平台(NVP)[112],它提供了必要的抽象,允许为大规模多租户环境创建独立的虚拟网络。
【
a cluster of 一串
tunnel 隧道
instantiation 实例化
leverage 促使---改变
ecosystem 生态系统
】
IBM最近还提出了SDNve[171],[172],这是另一个商业和企业级的网络虚拟化平台。SDNve使用OpenDaylight作为所谓软件定义环境(SDES)的构建块之一。
D. Layer IV: Network Operating Systems/Controllers
【
accessing 访问
concurrent 并发的
a myriad of 无数的
transparent 透明的 易识破的
Network practitioners 网络从业者
Generic functionality 通用功能
a single entity 单一实体
】
到目前为止,网络的管理和配置使用的是较低级别的设备专用指令集,并且大多是封闭的专有noss(例如Cisco IOS和Juniper Junos)。此外,操作系统抽象设备特有的特性并以透明的方式提供公共功能的想法在网络中仍然缺乏。
SDN被承诺通过NOS[26]提供的逻辑集中控制来促进网络管理和减轻解决网络问题的负担。与传统操作系统一样,NOS的关键价值是向开发人员提供抽象、基本服务和通用API。
NOS(或控制器)是SDN体系结构中的关键元素,因为它是控制逻辑(应用程序)的关键支撑部分,以基于网络操作器定义的策略生成网络配置。
1)体系结构和设计轴线:有一套非常多样化的控制器和控制平台,具有不同的设计和结构选择[7]、[13]、[183]-[186]。现有控制器可以根据多个方面进行分类。从体系结构的角度来看,最重要的是它们是否集中或分布。
2)集中式与分布式:集中式控制器是管理网络的所有转发设备的单一实体。单一的控制器可能不足以管理一个带有大量数据平台元素的网络。集中控制器如NOx-MT[187]、MAESTO[188]、信标[186]和泛光灯[189]被设计成高度并发(concurrent)的系统,以达到企业级网络和数据中心所需的吞吐量。
【
multithread 多线程
parallelism 平行,类似
consistency semantics 一致性语义
property 属性 特点
consistency 一致性
resilience and scalability 弹性和可伸缩性
】
与集中式设计相反,分布式NOS可以被扩展以满足潜在的任何环境的需求,从小型到大规模网络。分布式控制器可以是集中的节点集群或物理分布的元素集。
一个控制器可能足以管理一个小的网络,但是它代表了一个单一的故障点。同样,独立的控制器可以分布在网络上,每个控制器管理一个网络段,减少单个控制器故障的影响。
3)剖析SDN控制器平台:
为了提供更好的体系结构概述和了解NOS的设计,表5总结了SDN控制器和控制平台的一些最相关的体系结构和设计属性。表中的每一行表示我们认为在模块化和可伸缩控制平台中非常重要的组件。我们观察到一个高度多样化的环境,不同的控制平台使用不同的属性和组件。
在分析目前提出的各种SDN控制器(包括表5和NOx[26]、子午线[192]、Fortnox[30]和Fortnox[201])的基础上,我们提取了几个常见的元素,并为图8中的SDN控制平台进行了清晰、系统的剖析提供了第一次尝试。
4)核心控制器功能:
基本网络服务功能是我们认为所有控制器都应该提供的基本功能。作为类比,这些功能类似于操作系统的基本服务,如程序执行、输入/输出(I/o)操作控制、通信、保护等。这些服务被其他操作系统级别的服务和用户应用程序所使用。类似于拓扑、统计、通知和设备管理等功能。
【
As an analogy 打个比方
program execution 程序执行
input/output (I/O) operations control 输入/输出(I/O)操作控制
Security mechanisms 安全机制
coexist 共存
】
5)南向:
在较低级别的控制平台上,可以将南行API视为一层设备驱动程序。它们为上层提供了一个通用接口,同时允许控制平台使用不同的南向API(例如OpenFULL、OVSDB和力)和协议插件来管理现有的或新的物理或虚拟设备(例如SNMP、BGP和NETCONF)。这对于向后兼容性和异构性来说是必不可少的,即允许多个协议和设备管理连接器。
6)东西向:
东西向的API接口如图9所示,是由分布式控制器所要求的接口特例。
类似于向南和向北的接口,东/西向API是分布式控制器的基本组件。为了识别和提供不同控制器之间的共同兼容性和互操作性,必须有标准的东/西接口。
【
compatibility and interoperability 兼容性和互操作性
flow setup 流量设置
exchange reachability information across multiple domains 跨多个域交换可达信息
In essence 从本质是来说
orchestrated and interoperable 精心组织的和可互操作的
horizontal interfaces水平品平面
】
关于东/西界面的另一个重要问题是异质性(heterogeneity)。因此,为了实现互操作,东/西接口需要容纳不同的控制器接口及其特定的服务集,以及底层基础结构的多样性特征,包括多样性。
7)北向:当前控制器提供了非常广泛的北向API,如特设API、RESTfulAPI[202]、多级编程接口、文件系统,以及其他更专门的API,如NVP nbasi[7]、[112]和sdmN API[222]。
8)结束语与平台比较
表6展示了现有的一些控制器的结构和特征。大多数控制器都是集中式与多线路的,但北向API确是多样的。
重要的一点是,控制平面是SDN成功的关键因素之一。在这方面需要解决的主要问题之一是互操作性。
Software-Defined Networking:A Comprehensive Survey--Day2的更多相关文章
- Software Defined Networking(Week 1)
前言 课程名称:软件定义网络 课程地址 Coursera上新的一期还没开课,所以是YouTube. Instructor:Nick Feamster Get Started 对于本次课程,主要的新内容 ...
- Software Defined Networking For Dummies, Cisco Special Edition
从接触SDN开始,不论是硬件还是软件,一直都是从具体的点开始,慢慢的勾勒出自己认为的SDN的样子,相信读完这本思科出的关于SDN的书会对其有新的认识 这本书的名字就是Software Defined ...
- Improving Network Management with Software Defined Networking
Name of article:Improving Network Management with Software Defined Networking Origin of the article ...
- Software-Defined Networking: A Comprehensive Survey
文章名称:Software-Defined Networking: A Comprehensive Survey 文章来源:Proceedings of the IEEE ( Volume: 103 ...
- Software-Defined Networking A Comprehensive Survey --阅读_day1
The Internet has led to the creation of a digital society, where (almost) everything is connected an ...
- Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking
A method of transferring data between a software defined network (SDN) and an information-centric ne ...
- A Survey of Machine Learning Techniques Applied to Software Defined Networking (SDN): Research Issues and Challenges
将机器学习用到SDN中的综述:研究的问题和挑战 从流量分类.路由优化.服务质量(Qos)/体验质量(QoE)预测.资源管理和安全性的角度,回顾了机器学习算法如何应用于SDN领域. 相关知识 在SDN中 ...
- Software-Defined Networking A Comprehensive Survey --阅读_day2
3. 什么是SDN?(WHAT IS SOFTWARE-DEFINED NETWORKING?) The term SDN was originally coined to represent the ...
- Software Defined Networking(Week 2, part 2)
History of SDN 1.3 - 1.4 课程地址 Network Virtualization 网络可虚拟化,可以说是SDN的一项核心内容,同样也源自很多先前的技术和思想.我们先讨论何为网络 ...
- Software Defined Networking(Week 2, part 1)
History of SDN 1.1 - 1.2 本节讨论从上世纪八十年代时到现在为止出现的SDN的思想和发展历史.了解历史,可以明白技术后面的成因以及一些原则,并从架构上去大致掌握.了解一些主旨. ...
随机推荐
- Shallwe学长的模拟赛
NOIP Simulated Test 这个名字一听就很高端. T1:sGCD:http://uoj.ac/problem/48 题意概述:给定一个长度为$n$的序列,求$sgcd(a_1,a_i)$ ...
- Git branch -r 无法获取远程分支,ui可以看见分支但是git 命令无法查看解决方案
zhc@hongchangfirst$ git checkout -b hongchangfirst origin/hongchangfirst 出现: fatal: Cannot update pa ...
- leetcode-844 Backspace String Compare
Given two strings S and T, return if they are equal when both are typed into empty text editors. # m ...
- 调用类java.lang.Math的成员方法"public static double random"运算下面表达式10000次,统计其中生成的整数0,1,2,.....20的个数分别是多少,并输出统计结果.(int)(Math.random()*20+0.5)
public class Test2 { public static void main(String args[]){ int num; int count[]=new int[21]; for(i ...
- kubernetes 限制网络带宽 annotation -- 注解 -- 类似 label
1.可以通过给Pod增加 kubernetes.io/ingressbandwidth和 kubernetes.io/egress-bandwidth 这两个annotation来限制Pod的网络带宽 ...
- day33
今日内容: 1.关于UDP传输的模拟实现 2.使用socketserver模块实现TCP传输的并发操作 3.进程理论的介绍 1.关于UDP传输的模拟实现 模拟UDP传输与之前的模拟TCP传输大致相同 ...
- OpenShift-OKD3.10基础环境部署
单master + 双node 1.主机角色划分 #采用双网段部署 0 网段是opesnshift内部通信IP,1 网段是连接外网通信地址 #master master.example.com 192 ...
- [Baltic2013]ballmachine BZOJ3133
分析: 我们考虑,因为每次放置的时候,都是向子树中含有的编号最小的哪一个走,那么放置的顺序是固定的,我们将边以to的子树最小排序,之后得到的出栈序就是球的放入顺序.目测可以使用堆来实现,线段树也能实现 ...
- 20155317 十六周second 取值
20155317 十六周second 取值 题目如下图: secondset #define base 0xFFFFC0000 # #define &clock void setsecond( ...
- 20155333 《网络对抗》 Exp5 MSF基础应用
20155333 <网络对抗> Exp5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode exploit:攻击手段,是能使攻击武器(payl ...