文档章节

SDN 技术指南(一):架构概览

RiboseYim
 RiboseYim
发布于 2017/08/25 20:50
字数 2429
阅读 65
收藏 1
点赞 0
评论 0

Background

软件定义网络(Software-defined networking,SDN),一种新的网络架构。SDN 提出的控制与转发平面分离、网络状态集中控制、支持软件编程等理念并不是什么新鲜事,但是长久以来一直没有非常突破性的进展。

“为了让系统更好地工作,早期需要管理复杂性而后期需要提取简单性。” —唐·诺曼(Donald Arthur Norman)

目前 SDN 引起广泛关注得益于网络需求侧翻天覆地的变化:云计算业务(服务器虚拟化技术为代表)成为主流,移动互联网催生的大数据技术日益普及,包括网络在内的资源快速配置、弹性扩容、按需调用需求强烈。传统模式的弊端显现:网络设备硬件、操作系统和网络应用三部分紧耦合在一起,组成一个封闭系统,这三部分相互依赖、每一部分的创新和演进都要求其余部分做出同样的升级。

越来越多的网络新协议和新算法使得网络控制平面变得越来越复杂,但是现在的网络用户却对网络的易用性有更高的要求,希望网络具有更多的可编程能力,从而自动化、智能化网络管理。正如 SDN 的倡导者 Scott Shenker,U.C. Berkeley Professor 所言,网络发展目前还处于“管理复杂性”阶段,这样的架构严重阻碍了网络创新进程的开展。

SDN Solutions

如何解决从“管理复杂性”阶段转变到“提取简单性”阶段呢?最先取得成功商用经验的是互联网企业Google。

Google 的 SDN 实践

Google 基于 SDN 技术改造其骨干网 G-scale(Backbone Network,也称WAN网)。WAN网的主要任务是负责全球12个数据中心之间的互联,数据流量的内容包括:1. 用户数据备份,例如视频、图片、语音等;2. 跨数据中心存储访问,例如计算资源和存储资源分布不同;3. 大规模的数据同步。WAN 网成本高昂(包括很多海底光缆),而且存在数据流量大但是链路带宽利用率低的问题:为了实现负载均衡,同时避免大流量都被分发到同一个链路上导致丢包,Google不得不使用过量链路,提供比实际需要多得多的带宽,实际链路带宽利用率只有30%~40%,而且仍不可避免有的链路很空闲,有的链路产生拥塞,设备必须支持很大的包缓存,成本高。为了增强网络的可管理性,Google 首先在带宽分配和路径计算方面尝试。解决思路是当一个新的数据要开始传输时,应用程序会评估所需要耗用的带宽,为它选择一条最优路径(如负载最轻但非最短路径,虽不丢包但延时大),然后把这个应用对应的策略通过控制器(Controller)下发到定制的交换机中,跟选择的路径绑定在一起,从而整体上使链路带宽利用率达到最优。

SDN 架构中最显著的一个特点就是采用集中式控制器(Controller):

SDN 世界的两大山头

SDN 技术体系目前还处于激烈竞争阶段,相关新产品和新技术层出不穷,如果要梳理大致可以分为两个流派:

  • ONF(Open Networking Foundation,开放网络基金会 ) 董事会成员:德国电信(DT)、Facebook、 Google, Microsoft、Verizon、Yahoo!、日本 NTT 电信、高盛公司 特点:面向用户

  • 传统巨头大联盟(通过Linux基金会(Linux Foundation)合作) 成员:思科(Cisco)、IBM、 微软、Big Switch、博科、思杰、戴尔、爱立信、富士通、英特尔、瞻博网络、微软、NEC、惠普、红帽和VMware 协作项目:OpenDaylight(20130408) 特点:大厂控制“嫌疑”

SDN 标准化组织

  • IETF(Internet Engineering Task Force,互联网工程任务组) 相对 ONF 而言,更多是由网络设备厂商主导,已经发布了多篇 RFC 文稿,内容涉及需求、框架、协议、转发但愿模型及 MIB 等。

  • ETSI NFV(Network Functions Virtualisation) 成员:欧洲电信标准协会(European Telecommunications Standards Institute,ETSI)包括 AT&T, 英国电信(BT), 德国电信等 特点:主要工作成果是 “网络功能虚拟化白皮书”,对NFV的定义、应用场景、基本功能,以及SDN等技术的关系等内容进行描述。

  • ITU-T (国际电信联盟通信标准化组织) 由 ITU-T 指定的国际标准通常被称为建议(Recommendations),2012年开始 SDN 与电信网络结合的标准研究。

SDN Architecture

SDN在应用中大体上可以可以划分为三层体系结构:

  • 应用层(Application Layer)
  • 控制层(Control Layer)
  • 基础设施层(Infrastructure Layer)

不同层次之间通过接口通讯:

  • 北向接口(Northbound interface)
  • 南向接口(Sorthbound interface)

控制层( Control Layer )

控制层是 SDN 控制器管理网络的基础设施,可以根据需要灵活选择多种控制器。 在这一层中,控制器中包含大量业务逻辑,以获取和维护不同类型的网络信息、状态详细信息、拓扑细节、统计详细信息等。 由于 SDN 控制器是用于管理网络的,所以它必须具有用于现实世界网络使用情况的控制逻辑,如交换、路由、二层VPN、三层VPN、防火墙安全规则、DNS、DHCP和集群,网络供应商和开源社区需要在自己的 SDN 控制器中实现自己的服务。这些服务会向上层(应用层)公开自己的API(通常是基于 REST ,这使网络管理员可以方便地使用应用程序上的 SDN 控制器的配置、管理和监控网络。

目前市场上的 SDN 控制器解决方案大致可以分为两类:大型网络设备厂商提供商业方案,例如 Cisco Open SDN controller, Juniper Contrail, Brocade SDN controller, 和来自 NEC 公司的 PFC SDN controller ;社区组织提供的开源方案,例如 OpenDaylight, Floodlight, Beacon, Ryu 等等。

Commercial Solutions:

Open Source Solutions:

  • Beacon:由斯坦福大学开发,Java语言编写
  • Floodlight:源于Beacon,Big Switch Networks开发,Java语言编写,Apache许可证
  • OpenDaylight
  • Ryu:由 NTT 开发,Python 编写,能够与 OpenStack 平台整合,控制器API丰富
  • Mul: 由 Kulcloud 开发,内核采用 C 语言实现的多线程架构
  • NodeFlow: 由 Cisco 开发,基于 Node.js 的 OpenFlow 控制器,JavaScript 编写
  • Trema: 由 NEC 开发,Ruby/C 编写
  • NOX: 由 Nicira 开发,C++/Python编写,业界第一款 OpenFlow 控制器
  • POX: 由 Nicira 开发,是 NOX 的纯 Python 实现版本,目的是提供跨平台部署的便利性

基础设施层( Infrastructure Layer )

基础设施层,由各种网络设备构成。它可以是数据中心的一组网络交换机和路由器。控制层负责管理底层物理网络,物理层的实现可以是支持 OpenFlow 的硬件交换机,随着虚拟化技术的完善,SDN 交换机可以是软件形态,例如 Open vSwitch (OVS) 就是一款基于开源技术实现的、能够与服务器虚拟化(Hypervisor)集成,具备交换机的功能,可以实现虚拟化组网。另外,OVS 支持传统的标准管理接口,例如 NetFlow 、sFlow 等,监测虚拟环境中的流量情况,详见 《浅谈基于数据分析的网络态势感知》

应用层( Application Layer )

应用层对于开发者来说是开放区域,鼓励开发尽可能多的创新应用。包括网络的可视化:拓扑结构、网络状态、网络统计等;网络自动化相关应用:网络配置管理,网络监控,网络故障排除,网络安全策略等。SDN 应用程序可以为企业和数据中心网络提供各种端到端的解决方案。

例如,Brocade 应用实例:

  • Brocade Flow Optimizer
  • Brocade Virtual router
  • Brocade Network advisor

HPE 应用实例:

  • HPE Network Optimizer
  • HPE Network protector
  • HPE Network visualizer
  • NEC UNC for HP SDN VAN Controller
  • Aricent SDN Load balancer
  • TechM smart flow steering
  • TechM server load balancer

南向接口( Southbound interface )

控制层到基础设施层(网络交换机)通讯需要经过南向接口,目前主要的协议是 OpenFlow , NetConf,OVSDB 。 OpenFlow 协议是事实上的国际行业标准,NOX 、Onix 、Floodlight 等都是基于 OpenFlow 控制协议的开源控制器。作为一个开放的协议,OpenFlow 突破了传统网络设备厂商各自为政形成的设备能力接口壁垒。

北向接口( Northbound interface )

北向接口:应用层 通过 API 的方式 与 SDN 控制器通讯。与南向接口不同,现在北向接口还缺少业界公认的标准,实现方案思路有的从用户角度出发、有的从运营商角度出发、有的从产品能力角度出发。技术风格上,部分传统的网络设备厂商倾向于在现有的设备上提供编程接口供业务App调用,许多上层应用的开发者也比较倾向于采用 REST API 接口的形式。

Samsung 主办 ONOS Build 2017

Preview SDN 技术指南(二):OpenFlow Preview SDN 技术指南(三):OpenDaylight Preview SDN 技术指南(四):OpenSwitch Preview SDN 技术指南(五):NFV Preview SDN 技术指南(六):OpenStack

更多精彩内容扫码关注公众号:RiboseYim's Blog:http://riboseyim.github.io 微信公众号

© 著作权归作者所有

共有 人打赏支持
RiboseYim
粉丝 68
博文 70
码字总数 159285
作品 0
广州
程序员
SDN 技术指南(四):Open vSwitch

摘要 Open vSwitch 安装 Open vSwitch 命令行 Open vSwitch 运行原理 Open vSwitch 性能监控 前言 由之前发布的文章知道 Open vSwitch(Open Source Virtual Switch) 是一款基于软件实现的开源...

RiboseYim ⋅ 2017/10/16 ⋅ 0

我的 2017 年度盘点

一、Core Topics Learning based on full English. Operating System Kernel & Dynamic tracking & Go Programming Language. Lincoln Foundation & Absolutism Research. 二、年度成果 2.1 ......

RiboseYim ⋅ 2017/12/30 ⋅ 0

“2017年度中国SDN、NFV优秀案例”奖诞生,九州云金融案例入选

为更好地推动中国SDN/NFV产业的商业化落地,向业界分享成功的商用部署案例,在SDN/NFV产业联盟指导下,IT168和C114联合主办了“2017年度中国SDN、NFV优秀案例评选”活动。九州云凭借“基于S...

openinfra ⋅ 04/20 ⋅ 0

【特色】Hello,未来网络 –SDN实战特训营(第X期)

SDN实战特训营是未来网络学院的特色培训项目,目前已在各一线城市开展了八期。该项目以实战为牵引,结合OpenDaylight和OpenStack两大主流开源项目,帮助学员快速全面的掌握SDN编程方法和思路...

m2l0zgssvc7r69efdtj ⋅ 2017/11/29 ⋅ 0

面对SDN,我们该怎么办?

引言:回顾SDN的发展历史,可以发现:SDN作为一种新的网络体系结构,对网络学术圈和工业界都产生了深远的影响。SDN并不是昙花一现的网络技术新概念,而是一场网络领域的技术变革。 我们将如何...

博文视点 ⋅ 2017/04/28 ⋅ 0

SDN产业发展历程

SDN产业发展历程 网络技术随着计算机工业的高速发展在不断的完善,并且信息化进化到云计算的时代,支撑数以亿计的用户平台不断涌现,人类建立起遍布全球的超大规模数据中心来应对这一挑战。原...

tasnrh ⋅ 2017/09/13 ⋅ 0

SDN开启“场景化”竞争 新华三保持领跑优势

近日,权威ICT研究咨询机构发布《2016-2017年中国SDN市场发展状况白皮书》,并显示中国用户的SDN技术应用需求即将步入规模化的“春天”,厂商在这一领域的竞争也已从硬件设备上升到了软件开发...

玄学酱 ⋅ 04/17 ⋅ 0

以未来网络的名义 看新华三如何驱动网络应用

以SDN/NFV体系架构和技术引发的网络革命正在上演。4月26-27日,“2017·中国SDN/NFV大会”在北京·新云南皇冠假日酒店召开。会上,新华三集团副总裁、产品行销部副总经理毕首文强调要利用SDN...

玄学酱 ⋅ 04/12 ⋅ 0

图解SDN:软件定义网络导论篇

前言 SDN(Software Defined Network)即软件定义网络,是一种网络设计理念,或者一种推倒重来的设计思想。只要网络硬件可以集中式软件管理,可编程化,控制转发层面分开,则可以认为这个网络...

陈鑫杰 ⋅ 2015/09/22 ⋅ 0

不断超越自我 新华三实力领跑SDN领域

身为网络设备市场上最具实力与人气的高端路由器之一,新华三集团旗下的H3C SR6608云业务路由器一马当先,一举夺下高端路由器在Openflow v1.3一致性测试中的“首金”,获得开放网络基金会(O...

玄学酱 ⋅ 05/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

linux 安装docker

通过以下命令下载安装docker wget -qO- https://get.docker.com | sh 执行以上命令后输出以下内容说明安装成功,注意红框中的内容,docker安装成功后默认只有root能使用,红框中给出的提示是...

haoyuehong ⋅ 15分钟前 ⋅ 0

482. License Key Formatting - LeetCode

Question 482. License Key Formatting Solution 思路:字符串转化为char数组,从后遍历,如果是大写字母就转化为小写字母,如果是-就忽略,如果遍历了k个字符(排除-)就追加一个-。 Java实现...

yysue ⋅ 33分钟前 ⋅ 0

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 58分钟前 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 今天 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 今天 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 今天 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 今天 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 今天 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 今天 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部