首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

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

2024-12-18 来源:化拓教育网

摘要

  • Background:为什么需要 SDN
  • SDN的主要解决方案
  • SDN的整体应用架构
  • SDN与网络安全
  • OpenFlow工作原理
  • OpenFlow在SDN架构中的角色

Background

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

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

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

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 电信、高盛公司
    特点:面向用户

SDN 标准化组织

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

Commercial Solutions:

Open Source Solutions:

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

基础设施层( Infrastructure Layer )

应用层( 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 )

显示全文