初步剖析SDN架构

article/2025/9/6 3:31:22

第一章 概述

1.1 SDN概念

SDN(Software Defined Network)——软件定义网络。为了摆脱传统网络对于网络硬件的依赖,方便对网络进行调整、改变和升级,SDN应运而生。

SDN是一种将网络控制功能与转发功能分离、实现控制可编程的新兴网络架构。这种架构将从控制层从网络设备转移到外部计算设备,使得底层的基础设施对于应用和网络服务而言是透明的、抽象的,网络可被视为一个逻辑的或虚拟的实体。

1.2 SDN特征

转控分离:网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上。

集中控制:设备网元通过控制器集中管理和下发流表,这样就不需要对设备进行逐一操作,只需要对控制器配置即可。

开放接口:第三方应用只需要通过控制器提供的开放接口,通过编程方式定义一个新的网络功能,然后在控制器上运行即可。

SDN控制器不同于网管和规划工具,网管仍然需要设备的控制平面负责产生转发表项,并没有实现SDN的转控分离;规划工具下发的规划表项是参数,而SDN控制器下发的表项是流表,用于转发器转发数据包。

1.3 SDN的发展趋势

  1. 更加开放灵活的数据平面
  2. 更高性能的开源网络硬件
  3. 更加智能的网络操作系统
  4. 网络设备的功能虚拟化
  5. 高度自动化的业务编排

SDN产业发展趋势

  1. 数据中心场景下的创新应用
  2. 针对运营商网络场景的创新应用
  3. 实现产业大规模商用部署

第二章 SDN架构剖析

2.1 SDN网络架构

SDN是对传统网络架构的一次重构,由原来的分布式控制的网络架构重构为集中控制的网络架构,SDN网络架构如图1-1所示。

图 1-1 SDN网络架构

应用层:这一层主要是各种上层应用程序。

控制层:这一层是系统的控制中心,负责网络的内部交换路径和边界业务路由的生成。

转发层:这一层主要是转发器和连接器构成的转发网络。其中转发表项由控制层生成。

2.2 SDN架构工作原理

控制器收集网元资源信息,收集拓扑信息,生成SDN网络内部交换路由。

网元资源信息包括转发器注册信息、上报资源过程、MPLS标签信息、VLAN资源信息、接口资源信息等;

拓扑信息包括节点对象、接口对象、链路对象等;

控制器收集拓扑信息的目的是为了根据网络资源,计算合理的路径信息,通过流表的方式下发给转发器。

通常控制器作为服务端,转发器主动向控制器发起控制协议简历,通过认证后,控制协议建立连接。

2.3 SDN三种模型解析

2.3.1 网络虚拟化模型

市场上最简单的SDN模型就是网络虚拟化模型,因初创公司Nicira流行,但是该公司在2012年被VMware收购。网络虚拟化的主要目标是消除LAN分区限制(这种限制存在于虚拟LAN(VLAN)标准中),通过在一些基于以太网的虚拟网络架构中实现多播解决可扩展性的问题。

2.3.2 “渐进式”方法

第二种SDN模型可以称之为“渐进式”模型。这种模型的目标就是为了加强网络软件控制和运营而产生,但是是在当前网络技术的边界之内。为了实现这一点,网络服务提供商可能需要对标,比如VXLAN、GRE、BGP和MPLS,并且用这些标准将网络分区,成为虚拟社群,并且管理流量和服务质量。提供商可能需要将自身的解决方案结合到同一套管理接口中,这套接口可以为云服务环境所用,通过DevOps工具或者云虚拟接口。

2.3.3 OpenFlow模型

最后这种SDN模型就是OpenFlow模型,也是和SDN属于最紧密相关的一个。OpenFlow取代了交换机或者路由器中传统的、基于发现的转发表创建,取而代之的是集中控制转发,也意味着一个集中控制器项目对应每一个设备的转发表。这样做为中央控制节点提供了完整的规则,例如网络如何分段或者虚拟化,流量如何管理等。任何控制器和支持OpenFlow兼容版本的交换机的结合都可以用于这种SDN模型。最后这种SDN模型最大的好处就是这种模型是基于SDN的概念来建立的。

2.4 模型分析

云提供商纠结于VLAN的分段限制,或者面临着VLAN的多播问题,首先可能关注虚拟化网络的SDN模型。这种模型也能够覆盖渐进式SDN模型,尽管协调管理接口人存在很多问题。在数据中心网络设备中投资体量巨大的提供商可能更倾向于这种方式来避免冗余成本。未来的主流发展方向应该会倾向于OpenFlow,因此应该关注支持OpenFlow的服务和设备提供商,尤其是在部署新设备的时候。

第三章 传统架构和SDN架构

3.1 传统架构数据的控制与转发

传统网络是分布式控制的架构,每台设备都包含独立的控制平面、数据平面。

分布式控制是指在传统IP网络中,用于协议计算的控制平面和报文转发的数据平面位于同一台设备中。路由计算和拓扑变化后,每台设备都要重新进行路由计算过程,并称为分布式控制过程。在传统IP网络中,每台设备都是独立收集网络信息,独立计算,并且都只关心自己的选路。这种模型的弊端就是所有设备在计算路径时缺乏统一性。

3.2 传统网络架构

        传统网络架构包含:管理平面、控制平面、数据平面。

管理平面:主要包括设备管理系统和业务管理系统,设备管理系统负责网络拓扑、设备接口、设备特性的管理,同时可以给设备下发配置脚本。业务管理系统用于对业务进行管理,比如业务性能监控、业务告警管理等。

控制平面:主要功能为协议处理与计算。比如路由协议用于路由信息的计算、路由表的生成。

数据平面:是指设备根据控制平面生成的指令完成用户业务的转发和处理。例如路由器根据路由协议生成的路由表对接收的数据包从相应的出接口转发出去。

3.3 SDN架构的优势

3.3.1 硬件标准化/软件平台化

这概念说新颖不新颖,软件行业从OS诞生的那一天,就已经这么做了。但是网络设备行业一直没有形成这样的标准。我个人猜测原因应该是大厂商对于市场的垄断,各个网络设备厂商推出自己的设备时都将软硬件紧密的联系在一起,使用该公司的设备后就必须使用相应的软件,这样就可以套牢用户,使得用户不会轻易换其他厂商的设备。但是SDN可以形成一个生态系统,从而可以很好的解决这一问题。

3.3.2 简化网络

SDN的网络架构简化了网络,因为网络内部的路径计算和建立全部在控制器完成,控制器计算出流表,直接下发转发器,因此消除了很多网络内部协议,比如RSVP、LDP、MBGP、PIM组播协议等。未来大量的东西向协议会消失,取而代之的则是南北向控制协议不断演进来满足SDN的网络架构需求。

3.3.3 配置管理简便

在之前的课程设计中,查看过大型网络下防火墙在生产环境下实际配置,我发现这玩意儿不是一个好配置的主。动辄成百上千的address, policy, VPN等无论是CLI还是WebUI配置都是一种折磨。配置麻烦是传统网络设备的一大问题。另一个问题是服务器动态迁移带来的网络管理问题。这个问题是服务器虚拟化革命带来的,现在的网络设备对此基本无解,因此SDN网络架构的优势就体现出来了,可以统一配置,减少工作量。

3.3.4 Debug便捷

没做过网络设备的人可能不知道网络软件的Debug有多么辛苦。一般软件Debug步骤:

1. 信息搜集

2. 缩小问题空间,直至找到根本原因

3. 重复1

对于网络软件而言,信息搜集是一道坎,你要能拿到网络拓扑下面各个相关网络设备的配置和问题出现时的日志。这绝对不是一件容易的事儿。不信你问工程师。他们每天要死要活地抓日志,一次很难成功,两次,三次成功都算苍天有眼。就算成功抓到了需要的日志,想想AT&T给你个路由震荡的问题,一个大网络拓扑下数十台设备,数兆的配置信息,数十兆的日志。相关的,不相关的,反正都抛给你,你需要的量的时间进行查找原因,真的会有奔溃的状态。

SDN因为集中控制,所以可以,指定相关的网络设备同时打开需要的debug开关,将日志收集到中央云上。

运行一组predefined analysis tool分析问题的所在;建立一个virtualized environment,replay packets。

最后,可能有80%的问题都能找到一个前例;剩下那20%,到工程师手上,也是小范围的有价值的数据,甚至分析报告。

3.4 传统网络架构演变SDN网络架构

3.4.1 业务流量的明确划分

将原有业务按照一个应用对应一个区域的方式划分,在使用SDN后,将会变成一个服务体系作为一个区域划分。在每个区域中划分多个工作组来准确区分业务模块,更加清晰地了解业务之间的访问关系。

3.4.2 无限定的横向扩展

在现有的SDN网络中,通过使用选播网关的方式将网关部署在各个叶节点上。即使有新设备加入网络,无论处于任何区域,都可以准确的进入相对应逻辑位置。

3.4.3 控制平面和转发平面解耦合

在传统的网络交换设备中,控制平面和转发平面是紧密耦合的,被集成到单独的设备盒子中。各个设备的的控制平面被分布到网络的各个节点上,很难对全网的网络情况有全局把控。因此SDN网络一个重要的理念就是把每台单独网络设备中的控制平面从物理硬件中抽离出来,交给虚拟化的网络层处理,整个虚拟化的网络层加载在物理网络上,屏蔽底层物理转发设备的差异,在虚拟空间内重建整个网络。

3.4.4 集中化的网络控制

将控制平面进行集中控制,中央控制器可以获取网络资源的全局信息并根据业务需要进行资源的全局调配和优化,如服务质量负载均衡功能等。同时集中控制后,全网的网络设备都由中央控制器去管理,使得网络节点的部署以及维护更加敏捷。

第四章 总结

传统网络已经经过半个世纪的发展,有很多人也为之努力,凝聚了无数人的智慧和心血,但是其架构存在天生的缺陷和不可修改性,导致在很多应用场景上都存在心有余而力不足的表现,并且只会越来越复杂。

SDN虽然诞生没多久,但是其已经表现出非常强大的生命力。传统网络在安全、可靠性、可维护性和性能上还有存在很大的优势,但是随着SDN相关设备的更迭与发展,一定会慢慢缩小与传统网络架构的距离,这种优势也势必会越来越弱,而SDN的优势时传统网络架构所不能及的,所以SDN凭借自身的优势一定会不断占领传统网络的领地,成为主流的网络架构。


http://chatgpt.dhexx.cn/article/BAUAc46C.shtml

相关文章

SDN系统结构

SDN网络的整体结构分为三层,即应用平面、控制平面和转发平面。 SDN控制器是整个结构的核心。 SDN控制器向上与应用平面通信的接口称为北向接口,也称为NBI接口。 interface)。SDN控制器向下与数据平面通信的接口,也称为CDPI接口。 互联网&…

SDN概述及架构

原文链接:https://blog.csdn.net/weixin_43265596/article/details/89787232 一、SDN概述 1.1 SDN概念 SDN是一种将网络控制功能与转发功能分离、实现控制可编程的新兴网络架构。这种架构将从控制层从网络设备转移到外部计算设备,使得底层的基础设施对…

SDN介绍

SDN介绍 什么是SDN? 二.SDN解决什么问题?三.传统网络概念和结构体系传统网络数据控制与转发:传统网络架构: 四.SDN概述SDN(Software Defined Netrork)软件定义网络。SDN的分类 …

机器学习算法面试题

机器学习算法题 线性回归和逻辑回归的异同? SVM和LR(逻辑回归)有什么不同? 线性回归的输入变量和输出变量都是连续的,逻辑回归的输入变量是连续的,输出变量是类别(或者说是离散的、枚举的)。 SVM和LR一般都…

机器学习笔试面试题目 一

笔试题: 1、下列时间序列模型中,哪一个模型可以较好地拟合波动性的分析和预测。 A AR模型 B MA模型 C ARMA模型 D GARCH模型 正确答案是:D 解析: AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前…

深度学习(机器学习)算法面试(一)

1.请简要介绍下SVM。 SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。 扩展: 支持向量机学习方法包括构建由简至繁的模…

深度学习、机器学习面试问题总结

目录 1. 准确率2. 精确率、召回率和F13. BN4. GBDT梯度提升决策树5. XGboost6. 了解什么正则化方法?7. 什么是激活函数,为什么要用激活函数?8. 激活函数有哪些?8. 隐藏层为什么用relu不用sigmoid?9. 激活函数有什么性质…

[机器学习] 面试常见问题+解析汇总

机器学习面试题的分类 The first really has to do with the algorithms and theory behind machine learning. You’ll have to show an understanding of how algorithms compare with one another and how to measure their efficacy and accuracy in the right way.The se…

面试官如何判断面试者的机器学习水平?

我在阿里四年,在搜狗十年,在2010年开始从事机器学习算法工作,目前在淘系负责端智能和3D人工智能。应该是国内第一批大规模机器学习问题的参与者,和广告、推荐、CV、CG等不同方向的同学合作过,也面试过近千人了。下面我…

机器学习笔试面试题目 二

1、使用k1的knn算法, 下图二类分类问题, “” 和 “o” 分别代表两个类, 那么, 用仅拿出一个测试样本的交叉验证方法, 交叉验证的错误率是多少:A 0% B 100% C 0%到100 D 以上都不是 正确答案是: B 解析: knn算法就是, 在样本周围看k个…

【机器学习面试总结】————(一)

​ 🤵‍♂️ 个人主页:Lingxw_w的个人主页 ✍🏻作者简介:计算机科学与技术研究生在读 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 &#x1…

【转载】一篇搞定机器学习面试

序言 本文尽可能的不涉及到繁杂的数学公式,把面试中常问的模型核心点,用比较通俗易懂但又不是专业性的语言进行描述。希望可以帮助大家在找工作时提纲挈领的复习最核心的内容,或是在准备的过程中抓住每个模型的重点。 实战环境说明&#xf…

【机器学习面试总结】————(二)

🤵‍♂️ 个人主页:Lingxw_w的个人主页 ✍🏻作者简介:计算机科学与技术研究生在读 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 &#x1f4a…

机器学习面试题面经

机器学习面试题面经 深度学习卷积神经网络面试题面经 PyTorch面试题面经 Python面试题面经 Linux,Git面试题面经 HR面试题面经 KNN:特点是完全跟着数据走,没有数学模型可言。适用:需要一个容易解释的模型的时候,比…

给机器学习面试者的十项建议 | 面试官角度

在过去的一年里,我采访了一些在Expedia Group担任数据科学职位的人,职位从入门级到高级的都有。我想分享我的经验,这些经验适用于对申请数据科学职位的人。在这篇文章里,我还会给出关于你可能在面试中会遇到的问题的一些提示。 面…

51 个基本的机器学习面试问题和答案

51 个基本的机器学习面试问题和答案 机器学习面试问题:4个类别 我们传会看到机器学习面试问题涉及以下几个类别:   第一个类别与机器学习算法和理论有关。你需要展示对算法之间的比较以及如何正确地衡量它们的效果和准确性的理解。   第二个类别与你…

关于机器学习的面试题,你又了解多少呢?

前面已经陆续分享了几篇关于机器学习的博客,相信刚接触这个领域的朋友们肯定是比较感兴趣的,那么本篇博客让博主为大家介绍一些关于机器学习常见的面试题吧~ 文章目录 1、为什么需要对数值类型的特征做归一化?2、类别型特征如何处理的?3、距离/相似度…

40 个机器学习面试问题(文末福利送书)

原创 文章目录 初学者问题 (10)1. 偏差和方差之间的权衡是什么?2.解释有监督和无监督机器学习的区别3. 监督学习和无监督学习最常用的算法是什么?4.解释KNN和k-means聚类的区别5. 什么是贝叶斯定理?我们为什么用它?6. 什么是朴素…

机器学习笔试面试超详细总结(一)

文章目录 1、判别模型和生成模型2、最大概率分词3、中文分词的基本方法4、CRF(条件随机场)的特点5、隐马尔可夫模型(HMM)时间复杂度及可以使用的数据集6、在二分类问题中的评价方案7、决策树特点8、过拟合9、异方差性10、Fisher线…

机器学习常见面试题

特征工程 常用数据类型:结构化数据(类似于表)、非结构化数据(文本 图像 音频 视频…) 1.为什么要对数值类型的特征做归一化? 可以将所有特征都统一到一个相同的特征区间内。 线性函数归一化&#xff08…