首页 > 其他分享 >【干货】什么是SDN-软件定义网络

【干货】什么是SDN-软件定义网络

时间:2024-01-05 14:34:18浏览次数:31  
标签:架构 网络 硬件 干货 软件 SDN 网络设备 设备

原创:厦门微思网络   【微思 2002年成立,专业IT认证培训21年!华为、思科、红帽、oracle、VMware、CISP、PMP等】

  • 为什么需要SDN
  • SDN架构
  • SDN的优点
  • SDN与NFV有什么区别
  • SDN的未来与挑战
  • 华为SDN解决方案

Meta Description

SDN是一种新型网络管理方法,具有控制面与转发面分离、可集中管理的特点,资源调度灵活、管理效率高。

同义词

Software-defined Networking

Software-designed Network

软件定义网络

分类

可编程网络

虚拟化

摘要

软件定义网络(Software-defined Networking,简称SDN)技术是一种网络管理方法,它支持动态可编程的网络配置,提高了网络性能和管理效率,使网络服务能够像云计算一样提供灵活的定制能力。SDN将网络设备的转发面与控制面解耦,通过控制器负责网络设备的管理、网络业务的编排和业务流量的调度,具有成本低、集中管理、灵活调度等优点。

题图

图1-1 什么是SDN?SDN和NFV有什么区别?

【干货】什么是SDN-软件定义网络_华为SDN解决方案


为什么需要SDN

传统网络的局限

传统网络是一个分布式的网络,在二层网络中,设备通过广播的方式传递设备间的可达信息。在三层网络中,设备间通过标准路由协议传递拓扑信息。这些模式要求每台设备必须使用相同的网络协议,保证各厂商的设备可以实现相互通信。随着业务的飞速发展,用户对网络的需求日新月异,一旦原有的基础网络无法满足新需求,就需要上升到协议制定与修改的层面,这样就会导致网络设备升级十分缓慢。

传统网络为了适应不同的需求和场景,发展也越来越复杂。部署一个传统网络往往需要使用到很多协议,由于标准协议中往往存在一些未明确的地方,导致各厂商的实现有差异。

传统网络以单台设备为单位,以命令行的方式进行管理。网络管理和业务调度时效率低下,运维成本高。

SDN的技术路线

为了解决传统网络发展滞后、运维成本高的问题,服务提供商开始探索新的网络架构,希望能够将控制面(操作系统和各种软件)与硬件解耦,实现底层操作系统、基础软件协议以及增值业务软件的开源自研,这就诞生了SDN技术。

在传统网络中,网络设备可以分为管理面、控制面和转发面。管理面负责业务的编排和策略的制定,控制面负责操作系统的运行以及各种算法的运算,转发面负责数据包的转发和接收。SDN的理念是将网络设备的控制和转发功能解耦,使网络设备的控制面可直接编程,将网络服务从底层硬件设备中抽象出来。SDN架构与传统网络架构的对比如下图所示。

图1-2 传统网络架构与SDN架构对比

【干货】什么是SDN-软件定义网络_SDN_02

经典的SDN技术路线强调控制面的剥离,希望能够将网络设备变为白盒设备,实现网络功能的自定义。

但在SDN的发展过程中,由于底层协议的复杂性、软件开发投入等多方面原因,厂商逐渐转向了以自动化运维为主要目标,弱化控制面剥离的SDN技术路线。厂商们主张将操作系统以及大部分的软件仍放在硬件设备上进行,保留原有的网络设备形态,通过控制器实现与硬件设备、与网络配置管理工具的对接,由控制器在管理面的维度完成对硬件设备的统一管理和业务编排。下图为两种SDN技术路线的对比,经典的SDN技术路线又可以称为软件SDN,而弱化控制面剥离的SDN技术路线可以称为硬件SDN。

图1-3 软件SDN与硬件SDN对比

【干货】什么是SDN-软件定义网络_软件定义网络_03

SDN架构

SDN架构可分为基础设施层、控制层和应用层。

  • 基础设施层:主要为转发设备,实现转发功能,例如数据中心交换机。
  • 控制层:由SDN控制软件组成,可通过标准化协议与转发设备进行通信,实现对基础设施层的控制。
  • 应用层:常见的有基于OpenStack架构的云平台。另外,也可以基于OpenStack构建用户自己的云管理平台。

SDN使用北向和南向应用程序接口(API)来进行层与层之间的通信,分为北向API和南向API。北向API负责应用层和控制层之间的通信,南向API负责基础设施层和控制层之间的通信。

图1-4 SDN架构

【干货】什么是SDN-软件定义网络_SDN_04

SDN的优点

在当前主流的SDN架构中,保留了传统硬件设备上的操作系统和基础的协议功能,通过控制器收集整个网络中的设备信息,具有如下优点:

  • 网络可编程网络设备提供应用编程接口(API),使得开发和管理人员能够通过编程语言向网络设备发送指令。网络工程师可以使用脚本自动化创建和分配任务,收集网络统计信息。将基于CLI与SNMP的封装脚本变为实实在在的可编程对象,提供了更丰富的功能。
  • 网络抽象化控制器作为中间层,通过南北向API接口与网络设备和应用程序进行交互,将底层的硬件设备抽象为虚拟化的资源池,应用和服务不再与硬件紧密耦合。
  • 降低成本保留了原有的网络设备,硬件设备仍然具备管理、控制、转发的全部功能,方便进行整网的改造,无需进行大规模的搬迁。控制器的引入将人工配置转变为机器配置,提升运维效率,降低运维成本。
  • 业务灵活调度传统的硬件设备在网络中无法进行灵活的负载分担,最优路由上往往承担着最重的转发任务,即使QoS、流控等功能缓解了这一问题,但流量的调度仍然强依赖于管理员对单台设备的配置,因此我们可以将传统的硬件设备看作是一种孤岛式的、分布式的管理模式。SDN在没有改变硬件设备整体逻辑的基础上,通过增加开放的南北向接口,实现了将计算机语言到配置命令行的翻译,使界面式的管理、集中管理变成了可能,解决了传统网络业务调度不灵活的问题。
  • 集中管理传统网络设备的管理是分布式的,单台网络设备不感知整个网络的状态。网络管理员使用控制器来管理底层硬件设备,编排网络业务,分配网络资源和调整流量优先级。管理员可以直接感知整个网络的状态,及时调整带宽和优化策略,便于进行整网的管理。
  • 开放性SDN架构支持供应商开发自己的生态系统,开放的API支持云编排、OSS/BSS、SaaS等多种应用程序,同时也可以通过Openflow控制多个供应商的硬件。

SDN与NFV有什么区别

NFV也是一种网络架构,它将传统物理设备的网络功能封装成独立的模块化软件,通过在硬件设备上运行不同的模块化软件,在单一硬件设备上实现多样化的网络功能。

SDN和NFV的相似之处主要体现在如下方面:

  • 都以实现网络虚拟化为目标,实现物理设备的资源池化。
  • 都提升了网络管理和业务编排效率。
  • 都希望通过界面操作或者编程语言来进行网络编排。

SDN和NFV的不同之处参见下图。

图1-5 NFV与SDN有什么不同

【干货】什么是SDN-软件定义网络_SDN与NFV有什么区别_05

SDN抽象物理网络资源(交换机、路由器等),并将决策转移到虚拟网络控制平面。控制平面决定将流量发送到哪里,而硬件继续引导和处理流量,无需依赖标准的硬件设备。NFV的目标是将所有物理网络资源进行虚拟化,允许网络在不添加更多设备的情况下增长,这依赖于标准的硬件设备。

其实经典SDN架构也将硬件与软件解耦作为目标,但在实现过程中由于软件研发成本、设备替换等原因的影响,现行的SDN方案弱化了控制面的分离,仅以网络自动化运维为目标。

SDN的未来与挑战

在数据中心领域,大多数大规模数据中心已经采用扁平化架构,这给网络设备的管理带来了极大的挑战。SDN带来的自动化运维、集中管理在数据中心的自动化调配以及扩容中有极大的应用空间。

在视频领域,由于SDN支持数据流的实时调配,使得网络能够承载更多的流量。

在机器学习和人工智能领域,SDN也会受到运营需求和软件创新的影响,提供更丰富、更新潮的网络体验。

在未来的网络自动驾驶(ADN)中,SDN架构也能够发挥重要作用。

SDN并非没有缺点,与其他IT产品一样,SDN存在安全、扩展以及缺乏广泛合作、缺乏生态的问题。

  • 集中管理的安全风险虽然集中管理十分方便,但这也是一种安全风险。集中管理的单节点被攻ji,整个网络可能都会受到影响。
  • SDN控制器的瓶颈对于软件完全从硬件上分离的SDN思路来说,控制器的软件开发难度、控制器的计算压力都是巨大的挑战。
  • 北向API缺乏统一标准缺乏标准的北向API导致供应商提供的接口不统一,应用程序开发困难上升,同一组开发人员必须同时开发与不同控制器的相互操作。

华为SDN解决方案

目前华为解决方案通过iMaster-NCE实现对网络设备的统一管理和自动化运维,为IT应用和云平台提供可自动运维的网络服务。面向园区网络提出了CloudCampus解决方案,面向数据中心网络提出了CloudFabric解决方案,面向无线网络提出了SD-WAN解决方案。

CloudCampus智简园区网络解决方案:华为CloudCampus解决方案基于ADN(自动驾驶网络)的理念和架构,应用5G、Wi-Fi 6、SDN、云和智能等技术,为各组织构建满足一网接入全千兆,一跳上云智体验,统一管理新运维的园区网络,可提升数字化运营效率,并综合性地降低园区网络CAPEX和OPEX。

CloudFabric数据中心网络解决方案:CloudFabric是华为推出的数据中心网络SDN解决方案,该方案由华为数据中心CloudEngine系列交换机配合华为数据中心控制器iMaster NCE-Fabric、智能网络分析平台iMaster NCE-FabricInsight以及安全解决方案HiSec,为客户提供覆盖数据中心网络的“规划建设 → 业务发放 → 运维监控 → 变更优化”全生命周期的极简运营体验;对网络故障实现发现、分析、隔离的智能闭环;同时CloudFabric还能满足数据中心全以太网络演进,可融合计算专网与存储专网,实现以太零丢包,提升计算和存储性能。

SD-WAN解决方案:针对企业网络面临的WAN封闭架构、业务体验难保障、业务部署和运维困难的问题,华为SD-WAN解决方案为企业提供分支与分支、分支与数据中心、分支与云之间的全场景互联,通过应用级智能选路、智能加速、智能运维,构建更好的业务体验,重塑WAN互联全流程的业务体验。

原创:厦门微思网络   【微思 2002年成立,专业IT认证培训21年!华为、思科、红帽、oracle、VMware、CISP、PMP等】

标签:架构,网络,硬件,干货,软件,SDN,网络设备,设备
From: https://blog.51cto.com/xmws/9114080

相关文章

  • 再次拓宽信创生态版图,思迈特软件与统信软件完成产品兼容适配认证
    近日,思迈特软件与统信软件科技有限公司(简称“统信软件”)完成产品兼容性适配互认证,加速国产信创生态化建设进程。本次测试由商业智能与数据分析软件(简称:SmartbiInsightV11)产品与统信服务器操作系统V20 进行适配认证。测试结果显示SmartbiInsightV11在统信服务器操作系统V20上整......
  • Linux软件包安装管理命令
    假设你想要安装的软件包叫做app,注意,这里的命令通常需要sudo或者root权限。//centos系统、redhat系统rpm-qa|grepapp#查找本机是否安装了app;rpm-ivhapp.rpm#假设你有app的rpm包,这样直接安装sudoyuminstallapp#否则就在线安装yumupdateapp#更新apprpm-e......
  • 软件兼容性测试要考虑什么?
    《兼容性测试 兼容性测试报告 软件兼容性测试要考虑什么?》1、向前兼容和向后兼容。向前兼容是指可以使用软件的未来版本,向后兼容是指可以使用软件的以前版本。并非所有的软件都要求向前兼容和向后兼容,这是软件设计者需要决定的产品特性。2、不同版本之间的兼容。不同版本之间的......
  • [Mac软件]Boxy SVG 4.20.0 矢量图形编辑器
    BoxySVG是一款入门级矢量图形编辑器,具有全套基本功能、易于学习的选项卡式界面和可自定义的键盘快捷键。有了它,您可以轻松创建横幅、图标、按钮、图形、界面草图,甚至有趣的表情包。编辑器支持使用多种工具创建和编辑矢量对象,用颜色渐变装饰它们,用文本元素补充它们。元数据编辑功......
  • Linux软件安装(Ⅱ)
    系统软件查询1.使用root用户连接到具有图形界面的CentOS7系统2.使用rpm命令查看系统中一共安装了哪些软件包,将查询结果保存到/root/rpm_packge文件中[root@test-server~]#rpm-qa>>/root/rpm_packge3.统计一下你的系统中一共安装了多少个软件包[root@test-server~]#rpm-qa|......
  • rcs群发软件功能分析,这些代码缺一不可!
    在当今数字化时代,信息传递的重要性日益凸显,rcs群发软件作为一种高效的信息传递工具,在企业和个人用户中得到了广泛应用。本文将为你深入分析rcs群发软件的功能特点,并分享一些关键源代码,让你更好地了解其工作原理和实现方式。一、rcs群发软件功能分析1、高效的信息传递rcs群发软件能......
  • csdn免登录复制,非会员看付费文章的办法
    1、在html里搜索“content_views”,干掉这个id;2、在html里删掉所有的这个块3、控制台输入 javascript:$={};干掉所有的js备注:复制后,还是带尾巴,不知道如何弄。有大神欢迎和我联系,谢谢......
  • 软件测试/测试开发全日制培训|Pytest跳过用例和失败重试
    前言在我们日常进行自动化测试时,经常会遇到功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了,如果我们注释掉或删除掉这些测试用例,后面可能还要进行恢复操作,这个时候pytest的跳过测试功能就能帮助我们,先跳过,等到问题解决时,恢复执行即可;同时我们还有可能会遇到需要对失败用例重......
  • 软件测试/测试开发|什么是Python,我们为什么选择Python?
    简介要说最近几年,哪个编程语言是最受欢迎的?学习人数最多的?那非Python莫属,加上人工智能时代的到来,Python热度就更加持续,那么Python为什么能够超越Java和C语言,成为现在最受欢迎的语言呢?本文就带大家一探究竟。Python简介Python发展背景Python是一种高级编程语言,由荷兰人吉多·范罗苏......
  • 软件测试/测试开发|什么是pytest,我们为什么选择pytest?
    前言作为一个程序猿,免不了要为自己写的代码做单元测试,因为我是一个Pythoner,所以最开始用的是unittest测试框架,但是我的使用体验很不好,后面我了解到了pytest,简直能把uinttest秒成渣,在这里和大家一起分享下pytest使用经验,本文先来给大家介绍一下pytest以及它如何安装,运行一下最简单的......