SDN和NFV笔记

2023-11-11 07:15
文章标签 笔记 sdn nfv

本文主要是介绍SDN和NFV笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

SDN

SDN的引入

SDN的概念

SDN网络部署的方式

SDN架构

OpenFlow

SDN与传统网络的区别

SDN的应用

SDN的优点

NFV

NFV的概念:

NFV的架构:

NFV相比于传统物理网元:

NFV与SDN的关系

NFV与SDN的相似点

NFV与SDN的不同


SDN

SDN的引入

MPLS存在的问题:

•控制协议 (如 LDP)比较复杂,扩展性差,运行维护较困难。
•协议 LDP无法做到基于时延或带宽等要求的流量调度。
•为灵活地选择流量的转发路径,还需要再使用资源预留协议RSVP。但是RSVP的信令非常复杂,每个节点都要维护一个庞大的链路信息数据库。并且RSVP 只会选择一条最优路径,不支持等价多路径路由选择 ECMP(Equal-Cost Multipath Routing)。

所以出现了:段路由选择协议SR(Segment Routing)

段(segment): 标签,是转发指令的一种标识符。
SR的工作原理:
•基于标签交换,但不需要使用协议LDP。

•由源节点为发送的报文指定路径,并将路径转换成有序的段列表(Segment List),即 MPLS 标签栈,它被封装在分组首部。

•网络中的其他节点就执行首部中的指令 (即标签)进行转发。

其中就需要SDN控制器负责:

收集并掌握全网的拓扑信息和链路状态信息,计算出分组应传送的整个路径。
•给分组分配 SR 标签,指明分组从源点到终点的路径。

注:SR向IPv6 演进,这就是 SRv6。SRv6 直接利用IPv6 字段作为标签寻址(Locator)。

SDN的概念

SDN(软件定义网络):

SDN是一种网络管理方法,它支持动态、高效的网络配置,以提高网络性能和监控,其方式比传统网络管理更类似于云计算。SDN 旨在解决传统网络的静态架构问题,可用于通过将网络数据包的转发过程(数据平面)与路由过程(控制平面)分离来将网络智能集中在一个网络组件中。控制平面由一个或多个控制器组成,被视为 SDN 网络的大脑,其中包含了整个智能。然而,集中化在安全性、可扩展性和弹性方面存在一定的缺点。
自 2011 年 OpenFlow 出现以来,SDN 通常与OpenFlow协议(用于与网络平面元素进行远程通信,以确定网络数据包跨网络交换机的路径)联系在一起。但是,自 2012 年以来,专有系统也使用了该术语。其中包括Cisco Systems的开放网络环境和Nicira的网络虚拟化平台。
SD-WAN将类似的技术应用于广域网(WAN)。

OpenFlow是SDN 体系结构中控制层面和数据层面之间的通信接口。

•使控制层面的控制器可以对数据层面中的物理或虚拟设备进行直接访问和操纵。

•在逻辑上是集中式的、基于流的。

注:SDN未规定必须使用OpenFlow

SDN网络部署的方式

Underlay的网络
所有的转发行为都由控制器通过OpenFlow协议或定制的BGP协议将转发表下发给转发器,转发器仅仅执行动作,没有单独控制面。

Overlay的网络
这种网络的转发器一般都是传动设备,不支持OpenFlow,或者私有定制协议不能部署时,就要用隧道技术,基础网络还是传统网络形式,通过路由协议打同各个节点,但是在服务器接入点,才用隧道技术将数据报文进行封装或者解封装。对传统网络来说见到的就是普通数据报文,转发即可。隧道技术实际上就是报文的马甲,迷惑网络设备,让设备以为时自己人,但实际上报文的心是虚拟化的心。现一般才用Vxlan,GRE,NVGRE等隧道技术,而这些新增的协议,也需要升级现有网络设备才能支持(不支持上述协议的网络设备)。穿马甲索然能够在不进行大改造的情况下增加新的功能,但无疑会降低网络性能。


原文链接:https://blog.csdn.net/AtlanSI/article/details/95613225

SDN架构
通信层:完成SDN 控制器与受控网络设备之间的通信。通信层与数据层面的接口叫做南向接口,基本上采用 OpenFlow。
网络规范的状态管理层:完成核心功能管理和维护链路、主机、交换机等网络状态;确定和维护流表等。
到网络控制应用程序层的接口:SDN 控制器与网络控制应用程序交互的接口称为北向接口。该API接口允许网络控制应用程序对状态管理层里的网络状态和流表进行读写操作。

由此具有以下特点: 

直接可编程:网络控制是直接可编程的,因为它与转发功能解耦。
敏捷:从转发中提取控制,使管理员能够动态调整网络范围内的流量以满足不断变化的需求。
集中管理:网络智能(逻辑上)集中在基于软件的 SDN 控制器中,这些控制器维护网络的全局视图,对于应用程序和策略引擎而言,网络智能就像单个逻辑交换机一样。
以编程方式配置:SDN 允许网络管理员通过动态、自动化的 SDN 程序非常快速地配置、管理、保护和优化网络资源,他们可以自己编写这些程序,因为这些程序不依赖于专有软件。
基于开放标准且供应商中立:当通过开放标准实施时,SDN 简化了网络设计和操作,因为指令是由 SDN 控制器而不是多个供应商特定的设备和协议提供的。

OpenFlow

OpenFlow在数据层面通过完成“匹配+动作”完成广义转发

匹配是对不同层次(链路层,网络层,运输层)首部中的字段进行匹配。

动作则例如:转发,重写,丢弃等。

OpenFlow的流表规定了“匹配+动作”

每个OpenFlow交换机有一个或一个以上的流表。

每个流表可以包括多个流表项(flow entry)。

注:流表示穿过网络的一种分组序列,而在此序列中的分组都共享分组首部某些字段的值。

流表由远程控制器(SDN)管理

SDN远程管理控制器通过一个安全信道,使用OpenFlow协议来管理OpenFlow交换机中的流表。

流表由三个字段组成:头域,计数器和动作

(1)头域(首部字段值,也称匹配字段):

一组字段(12 个),用来使入分组的对应首部与之相匹配。匹配不上的分组被丢弃,或发送到远程控制器做更多的处理。

(2)计数器:

一组计数器,可包括已经与该表项匹配的分组数量,以及从该表项上次更新到现在经历的时间。

(3)动作:

一组动作。当分组匹配某个流表项时,把分组转发到指明的端口,或丢弃该分组,或把分组进行复制后再从多端口转发出去或重写分组的首部字段(第二,三和四层的首部字段)等。

OpenFlow的应用:

简单转发:

S1:

负载均衡

防火墙

总结:SDN的四个关键特征

1.基于流的转发。流表规定转发规则
2.数据层面与控制层面分离。二者不在同一个设备中
3.网络控制功能位于数据层面交换机之外,用软件实现
4.可编程的网络

SDN与传统网络的区别

SDN功能分散。交换机、SDN控制器、网络控制应用程序都是可以分开的实体,并且可以由不同的厂商和机构来提供。

传统网络中控制层面、数据层面、协议的实现都垂直集成在一个机器里。由单独的厂商提供。

SDN的应用

SD-WAN 

SD -WAN是使用软件定义网络原理进行管理的 WAN。SD-WAN 的主要驱动力是使用更实惠且商业化的租赁线路来降低 WAN 成本,作为更昂贵的MPLS线路的替代或部分替代。控制和管理通过中央控制器与硬件分开管理,从而更容易配置和管理。
 

SD-LAN

SD-LAN 是围绕软件定义网络原理构建的局域网 (LAN),尽管在拓扑、网络安全、应用程序可见性和控制、管理和服务质量方面存在重大差异。SD-LAN 将控制管理和数据平面解耦,从而为有线和无线 LAN 提供策略驱动的架构。SD-LAN 的特点是使用云管理系统和无线连接,无需物理控制器。

使用SDN的安全性:

由于控制器的网络中心视图及其随时重新编程数据平面的能力,SDN 架构可以启用、促进或增强网络相关的安全应用。虽然 SDN 架构本身的安全性仍然是一个悬而未决的问题,研究界已经研究过几次,以下仅关注已成为可能或重新审视的安全应用程序使用SDN。
一些关于 SDN 的研究工作已经研究了基于 SDN 控制器构建的安全应用程序,并具有不同的目标。分布式拒绝服务(DDoS)检测和缓解,以及僵尸网络和蠕虫传播,是此类应用程序的一些具体用例:基本上,这个想法在于定期收集网络以标准化方式(例如使用Openflow)从网络转发平面获取统计数据,然后对这些统计数据应用分类算法以检测任何网络异常。如果检测到异常,应用程序会指示控制器如何对数据平面重新编程以缓解异常情况。
另一种安全应用程序通过实施一些移动目标防御 (MTD) 算法来利用 SDN 控制器。MTD 算法通常用于通过定期隐藏或更改给定系统或网络的关键属性,使对该系统或网络的任何攻击比平时更加​​困难。在传统网络中,实现 MTD 算法并不是一项简单的任务,因为很难建立一个能够确定(对于要保护的系统的每个部分)哪些关键属性被隐藏或更改的中央机构。在 SDN 网络中,由于控制器的中心地位,此类任务变得更加简单。例如,一个应用程序可以定期向网络内的主机分配虚拟 IP,然后由控制器执行虚拟 IP/真实 IP 的映射。另一个应用程序可以在网络中的随机主机上模拟一些假的打开/关闭/过滤端口,以便在攻击者执行的侦察阶段(例如扫描)期间添加显着的噪声。还可以分别使用 FlowVisor 和 FlowChecker获得有关支持 SDN 的网络安全性的附加价值。前者尝试使用共享多个独立逻辑网络的单个硬件转发平面。采用这种方法,相同的硬件资源可用于生产和开发目的,以及分离监控、配置和互联网流量,其中每个场景都可以有自己的逻辑拓扑,称为切片。结合这种方法,FlowChecker实现了用户使用自己的切片部署的新 OpenFlow 规则的验证。
SDN控制器应用大多部署在大规模场景中,需要对可能的编程错误进行全面检查。2012 年描述了一个名为 NICE 的系统。引入总体安全架构需要采用全面且长期的 SDN 方法。自推出以来,设计人员一直在寻找在不影响可扩展性的情况下保护 SDN 安全的可能方法。一种架构称为SN-SECA(SDN+NFV)安全架构。

使用SDN进行分组数据传输

跨数据中心运行的分布式应用程序通常出于同步、故障恢复、负载平衡和让数据更接近用户的目的而复制数据(这减少了用户的延迟并增加了他们感知的吞吐量)。此外,许多应用程序(例如 Hadoop)会在数据中心内跨多个机架复制数据,以提高容错能力并使数据恢复更容易。所有这些操作都需要将数据从一台机器或数据中心传输到多台机器或数据中心。将数据从一台机器可靠地传送到多台机器的过程称为可靠组数据传送(RGDD)。
通过安装允许转发到多个传出端口的规则,SDN 交换机可用于 RGDD。例如,OpenFlow 从版本 1.1 开始提供对组表的支持,这使得这成为可能。使用SDN,中央控制器可以仔细、智能地为RGDD设置转发树。可以在构建此类树的同时关注网络拥塞/负载状态以提高性能。例如,MCTCP 是一种向数据中心内的许多节点进行交付的方案,依赖于数据中心网络的常规和结构化拓扑,而 DCCast 和 QuickCast 是跨数据中心快速高效地复制数据和内容的方法。私有广域网。

SDN的优点

•提高网络带宽利用率;

•网络运行更加稳定;

•管理更加高效简化;

•运行费用明显降低;

NFV

NFV的概念:

网络功能虚拟化(Network Functions Virtualization,NFV)是一种关于网络架构的概念。我们平时使用的x86服务器由硬件厂商生产,在安装了不同的操作系统以及软件后实现了各种各样的功能。而传统的网络设备并没有采用这种模式,路由器、交换机、防火墙、负载均衡等设备均有自己独立的硬件和软件系统。NFV借鉴了x86服务器的架构,它将路由器、交换机、防火墙、负载均衡这些不同的网络功能封装成独立的模块化软件,通过在硬件设备上运行不同的模块化软件,在单一硬件设备上实现多样化的网络功能。

NFV的架构:

不同于传统物理设备中软件与硬件强绑定的关系,在NFV架构中,实现各种网络功能的标准化软件必须能够应用在同一台硬件设备上。这就要求NFV需要有一个统一的标准。NFV架构由基础网络功能虚拟化架构、虚拟网络功能功能、管理自动化及网络编排三个部分组成:

基础网络虚拟化架构(Network Functions Virtualization Infrastructure, NFVI)NFVI就好比各手机厂商推出的手机系统,它给硬件设备赋予基本的组件,支持网络应用所需要的软件或者容器管理平台。
虚拟网络功能(Virtual Network Functions, VNF)VNF是实现网络功能(转发服务、IP配置等)的软件应用,就好比手机上的APP。在NFV架构中,各种VNF在NFVI的基础上实现。由于NFVI是标准化的架构,使得不同的VNF获得了通用性,不再依赖于原来的黑盒设备。
管理自动化及网络编排(Management and orchestration, MANO)MANO是用于管理各VNF以及NFVI的统一框架,方便运维人员进行业务编排与设备管理。

OSS/BSS
服务提供商的管理功能,不属于NFV框架内的功能组件,但MANO和网元需要提供对OSS/BSS 的接口支持。
VNF
Virtual Network Functions,指虚拟机及部署在虚拟机上的业务网元、网络功能软件等。
NFVI
NFV Infrastructure,NFV基础设施,包括所需的硬件及软件。为VNF提供运行环境。
•Hardware:硬件层,包括提供计算、网络、存储资源能力的硬件设备。
•Virtualization Layer:虚拟化层,主要完成对硬件资源的抽象,形成虚拟资源,如虚拟计算资源、虚拟存储资源、虚拟网络资源。NFV标准架构定义的主要功能模块。
MANO
Management and Orchestration,NFV的管理和编排。包括VIM,VNFM及NFVO,提供对VNF和NFVI资源的统一管理和编排功能。
•VIM:Virtualized Infrastructure Managers, NFVI管理模块,主要功能包括:资源的发现、虚拟资源的管理分配、故障处理等。
•VNFM:VNF Managers ,VNF管理模块,主要对VNF的生命周期(实例化、配置、关闭等)进行控制。
•NFVO:NFV Orchestrator,实现对整个NFV基础架构、软件资源、网络服务的编排和管理。

NFV相比于传统物理网元:

NFV适用于各种网络解决方案,目前使用较多的包括SD-WAN、网络切片、移动边缘计算等。由于NFV将软件功能与硬件设备进行了解耦,随着标准化架构的完善,NFV带来了诸多优势:

灵活的业务( Flexible services )

在服务器上运行不同的VNF,当网络需求变更时,根据需求变更和移动VNF即可,加快了网络功能交付和应用的速度。在测试新的网络功能时,无需建立专门的实验环境,只需请求新的虚拟机来处理该请求,当服务停用时释放该虚拟机即可,为网络功能测试提供了更便捷的方法。

更低的成本(Less Spending)

使用NFV后,网络通信实体将变为虚拟化的网络功能,这使得单一硬件服务器上可以同时运行多种网络功能,从而减少了物理设备的数量,实现了资源整合,降低了物理空间、功耗等带来的成本。但由于从传统设备切换为NFV在初期的投入较大,短期内的投资回报比并不比传统的物理网元具有足够的优势。

更高的资源利用率(Greater Resource Efficiency)

当网络需求发生变化时,无需更换硬件设备,避免了复杂的物理变更,通过软件重组快速更新基础网络架构,避免由业务变更带来的设备冗余和搬迁需求。

避免供应商锁定(Avoid Vendor Lock-in)

在统一制式的硬件上部署不同的网络功能,避免了某种功能被特定的供应商锁定,降低了网络设备维护带来的服务费用。

NFV与SDN的关系

NFV网络虚拟化技术是对SDN的补充概念。因此,NFV 不依赖于 SDN 或 SDN 概念。NFV 将软件与硬件分开,以实现灵活的网络部署和动态操作。NFV 部署通常使用商用服务器来运行以前基于硬件的网络服务软件版本。这些在 NFV 环境中运行的基于软件的服务称为虚拟网络功能 (VNF)。SDN-NFV 混合计划旨在实现高效、弹性和可扩展的 NFV 功能,旨在使用标准 IT 虚拟化技术加速服务创新和配置。SDN 提供了使用 SDN 控制器控制路由器和交换机等通用转发设备的灵活性。另一方面,通过使用虚拟化服务器为网络应用程序提供 NFV 敏捷性。使用现有网络和编排范例将虚拟化网络功能 (VNF) 作为独立实体实现是完全可能的。然而,利用 SDN 概念来实施和管理 NFV 基础设施具有固有的优势,特别是在考虑 VNF 的管理和编排时,这就是定义将 SDN 和 NFV 纳入协同生态系统的多供应商平台的原因。

NFV与SDN的相似点

NFV也是一种网络架构,它将传统物理设备的网络功能封装成独立的模块化软件,通过在硬件设备上运行不同的模块化软件,在单一硬件设备上实现多样化的网络功能。
SDN和NFV的相似之处主要体现在如下方面:
•都以实现网络虚拟化为目标,实现物理设备的资源池化。
•都提升了网络管理和业务编排效率。
•都希望通过界面操作或者编程语言来进行网络编排。

NFV与SDN的不同

SDN抽象物理网络资源(交换机、路由器等),并将决策转移到虚拟网络控制平面。控制平面决定将流量发送到哪里,而硬件继续引导和处理流量,无需依赖标准的硬件设备。NFV的目标是将所有物理网络资源进行虚拟化,允许网络在不添加更多设备的情况下增长,这依赖于标准的硬件设备。
其实经典SDN架构也将硬件与软件解耦作为目标,但在实现过程中由于软件研发成本、设备替换等原因的影响,现行的SDN方案弱化了控制面的分离,仅以网络可编程和自动化运维为目标。
华为NFV架构中,虚拟化层及VIM的功能由FusionSphere云操作系统实现,即华为FusionSphere可以实现计算资源、存储资源和网络资源的全面虚拟化,并能够对物理硬件虚拟化资源进行统一的管理、监控、优化。

这篇关于SDN和NFV笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/388399

相关文章

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus