软件定义网络基础(SDN①)

article/2025/9/26 1:58:08

1.SDN的产生:

        SDN(软件定义网络)的产生源于传统网络无法满足现代网络环境对网络灵活性、可扩展性和安全性等方面的要求。传统网络架构中,网络设备(如交换机和路由器)负责控制和转发数据流量,网络管理员需要手动配置和管理这些设备,使其在网络中传输数据。这种方式存在以下几个问题:

  1. 网络设备的控制逻辑和数据转发逻辑紧密耦合,导致网络管理复杂,难以扩展和自动化。
  2. 传统网络架构缺乏对网络流量的全面可见性和实时控制,难以应对网络安全威胁。
  3. 难以支持新型应用(如云计算和大数据),对网络架构提出了更高的要求。

        为了解决这些问题,SDN应运而生。SDN是一种新型的网络架构,其主要思想是将网络控制平面和数据转发平面分离。网络管理员通过控制器来管理和配置网络设备,控制器可以根据网络状态和策略动态地调整网络拓扑和流量转发路径,从而实现网络的可编程性、可扩展性和安全性等方面的要求。SDN架构使得网络管理员可以通过编程方式来控制网络设备,而不是手动配置每个设备。这种方式不仅使得网络管理更加灵活和可扩展,而且也提高了网络的安全性和可靠性。

---------------------------------------------------------------------------------------------------------------------------------

1 什么是SDN网络

软件定义网络(Software-Defined Networking,SDN)由 Stanford 大学的 Nick McKeown 教授提出的一种可软件编程的新型的网络架构,其最大的特点在于控制平面与数据平面分离、支持集中化的网络状态控制、实现底层网络设施对上层应用的透明。

ONF是一家非盈利的组织机构,是当前业界最活跃、规模最大的SDN标准组织,致力于SDN的发展和标准化,根据ONF的定义,SDN是一种新型的网络架构,具有动态性、可控性、高性价比和高适应性等特性。这种架构抽象了底层的基础实施,对网络控制进行直接编程,从而解耦了功能控制和数据转发。从广义上讲,只要是控制层和数据转发层相分离,数据转发层能够接受控制层的集中控制,并且应用层能够通过开发接口灵活地控制网络,都可以成为一种SDN。

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

2 SDN不是什么
1、SDN不是一个网络协议,不是一个网管工具,他仅仅是一个网络架构的理念。
2、 SDN不等于OpenFlow,SDN不等于网络虚拟化,不等于网络功能虚拟化(NFV network function Virtualization)。OpenFlow已经不再可能成为标准,思科提出的SR将成为数据平面的主流协议
3、SDN不意味着一定要用OpenFlow,OpenFlow只是用的最多的一种南向接口协议。
SDN不能适用于所有网络。
---------------------------------------------------------------------------------------------------------------------------------

2.SDN的发展过程

SDN(软件定义网络)的发展可以分为以下几个部分:

  1. 发展初级阶段:在2011年左右,SDN的概念开始出现并得到了广泛的关注。当时,SDN的研究和实验主要集中在学术界和一些网络厂商,如斯坦福大学、Open Networking Foundation(ONF)和诺基亚等公司。这个阶段的主要工作是提出SDN的理论和技术架构,并进行一些实验验证。

  2. 发展中期阶段:在2012年左右,SDN开始进入实际应用阶段。一些企业开始尝试使用SDN来优化其数据中心网络和校园网络,如谷歌、亚马逊和微软等。同时,SDN的标准化工作也逐渐加速,ONF成立了多个工作组来推进SDN标准的制定和推广。此外,SDN也开始向周边技术扩展,如网络功能虚拟化(NFV)和云计算等。

  3. 发展趋势:在目前的阶段,SDN已经成为网络领域的一个重要研究和发展方向。SDN的发展趋势主要包括以下几个方面:

    • SDN与云计算和虚拟化的深度融合,为数据中心网络提供更好的灵活性和可扩展性;
    • SDN的应用场景不断扩大,如边缘计算、5G网络和物联网等;
    • SDN的安全性和可靠性不断提升,如通过网络智能化、人工智能等技术来实现网络安全防御;
    • SDN与其他技术的融合,如与区块链、人工智能等技术的结合,为网络架构和服务提供更加全面和深入的支持。
  4. SDN与其他技术的融合:SDN与其他技术的融合是当前SDN发展的一个重要趋势。例如,SDN和网络功能虚拟化(NFV)的结合,可以实现网络功能的快速部署和调整,提高网络的灵活性和可扩展性;SDN和人工智能的结合,可以实现网络的智能化管理和安全防御;SDN和区块链的结合,可以提高网络的可信度和安全性,保证网络数据的不可篡改性和可追溯性等。

3.SDN主流框架

ONF定义的SDN基本构架:

        ONF提出的SDN架构有包含基础设施层、控制层和应用层三层。

        (1)底层是基础设施层,包括各种硬件的交换设备或虚拟的交换设备,主要任务是处理和转发数据,并向控制层提供状态信息。

        (2)中间层是控制层,是整个SDN最为核心的部分,主要任务是收集交换机信息、管理网络拓扑、下发指令控制交换机的行为。

        (3)顶层是应用层,用户可以根据自己的业务和需求来制定相应的应用。

        如果将这跟计算机相比,基础设施层可以看成是计算机的硬件,控制层可以看成是计算机的操作系统,应用层可以看成是计算机的各种应用软件。除了这三层,ONF定义的SDN架构中还有两个重要的接口:南向接口和北向接口。 

四大平面+两大接口:

      SDN中的四大平面是:

  1. 控制平面(Control Plane):负责定义网络的拓扑结构,制定网络策略和规则,为数据转发平面提供指令和配置。控制平面通常由控制器(Controller)承担,控制器可以根据网络的实时需求动态调整网络的路由和转发规则,从而实现网络的智能化管理。

  2. 数据转发平面(Data Plane):负责实际的数据包转发和路由决策。数据转发平面通常由交换机(Switch)和路由器(Router)等设备承担,这些设备根据控制器的指令和配置,将数据包转发到目的地。

  3. 管理平面(Management Plane):负责网络设备的管理和配置,包括设备的监测、诊断、更新和维护等。管理平面通常由网络管理系统(Network Management System,NMS)和设备管理协议(如SNMP)承担。

  4. 应用平面(Application Plane):是SDN的应用层,提供各种面向业务的网络应用,如负载均衡、安全防护、带宽控制、服务质量保障等。应用平面通常由各种SDN应用程序、控制器应用程序和网络服务承担。

        这四个平面各自有不同的任务,但也有一定的交叉和关联。例如,控制平面和数据转发平面紧密配合,实现网络的智能化管理;管理平面则与控制平面和数据转发平面协同工作,实现网络的自动化管理和运维;应用平面则依赖于控制平面和数据转发平面提供的基础服务,实现面向业务的网络应用和服务。 

---------------------------------------------------------------------------------------------------------------------------------

交换机和路由器都是网络设备,但是它们的功能和工作原理有所不同,因此处于OSI模型的不同层次。

交换机通常工作在OSI模型的第二层,即数据链路层。它通过MAC地址来转发数据包,并且能够根据网络拓扑结构动态地学习和更新MAC地址表,以实现更高效的数据转发。

路由器则工作在OSI模型的第三层,即网络层。它通过IP地址来转发数据包,并且能够根据路由表中的信息选择最优路径进行数据转发,从而实现跨网络的通信。路由器还能够实现网络地址转换(NAT)等功能,增强网络的安全性和灵活性。 

---------------------------------------------------------------------------------------------------------------------------------

      SDN中的两大接口是:

        南向接口:南向接口是SDN控制器与网络设备之间的接口,主要负责控制平面与数据平面之间的交互,实现网络设备的编程和管理。南向接口主要有两种类型:设备本地接口和网络设备通用接口。设备本地接口由不同厂商自行实现,而网络设备通用接口是由ONF制定的开放接口。南向接口的主要任务包括:

  • 数据流控制:对数据包进行流量控制和限制
  • 网络拓扑控制:控制网络设备之间的通信拓扑结构
  • 网络状态控制:监控网络设备的运行状态和网络流量情况

        ONF在南向接口中采用OpenFlow技术,通过OpenFlow协议来实现对网络设备的编程和管理。

        北向接口:北向接口是SDN控制器与上层应用程序之间的接口,主要负责将上层应用程序的需求转换为控制器的指令,进而控制底层网络设备。北向接口主要有两种类型:原生API和Web服务API。北向接口的主要任务包括:

  • 提供应用程序接口:提供给上层应用程序使用的API
  • 接收应用程序需求:接收上层应用程序的需求,并将其转换为底层控制器指令
  • 控制底层网络设备:通过向南向接口发送指令,控制底层网络设备的运行状态和流量情况

        ONF在北向接口中采用REST API和Java API等技术,为上层应用程序提供开放的编程接口。

SDN控制器

---------------------------------------------------------------------------------------------------------------------------------

那平面属于接口吗?

平面(plane)不属于接口(interface),它们是SDN体系结构中的不同组件。在SDN中,平面通常指控制平面、数据平面和管理平面,而接口则是用于连接各个组件的标准或协议。控制平面、数据平面和管理平面各自有自己的接口,例如控制平面使用南向接口与数据平面通信,管理平面使用北向接口与上层管理应用程序通信。

---------------------------------------------------------------------------------------------------------------------------------

OpenFlow协议

它被广泛使用于SDN中的数据平面和控制平面之间的通信。OpenFlow协议定义了数据平面中交换机和控制平面中控制器之间的通信方式,这种通信方式是基于一个定义良好的协议格式的,可以进行可编程控制的网络。

OpenFlow协议允许控制器控制数据平面中的交换机,以实现对网络流量的控制和管理。具体来说,OpenFlow协议包括一组指令和数据结构,用于定义如何转发和处理网络数据包,以及如何向控制器发送通知和状态更新。

OpenFlow协议通常与SDN中的OpenFlow交换机一起使用,这些交换机可以使用OpenFlow协议来与控制器通信,并实现在数据平面上进行实时流量控制和路由决策的能力。流表结构

---------------------------------------------------------------------------------------------------------------------------------

在SDN中,RESTful API通常被用作北向接口,提供了控制器与应用程序之间的交互方式。SDN控制器通过RESTful API向上提供了一组API接口,应用程序可以通过这些接口向控制器发送命令和请求,获取网络拓扑、流表、统计信息等数据,并对网络进行编程和控制。

具体来说,SDN中的RESTful API主要包括以下三类接口:

  1. Topology API:提供了获取网络拓扑信息的接口,包括交换机、端口、链路等元素的信息。

  2. Flow API:提供了操作流表的接口,包括添加、删除、修改流表等操作。

  3. Statistics API:提供了获取交换机、端口、流表等统计信息的接口,包括数据包、字节数、丢包数等。

---------------------------------------------------------------------------------------------------------------------------------

 4.SDN和传统网络的对比

        控制层面

前面提到传统的路由器根据路由算法,和相邻的路由器周期性交换路由信息才能得出路由表,由路由表得到转发表。

传统路由器

 在SDN中,远程控制器掌握各主机和整个网络的状态,能够为每一个数据分组计算出最佳的路由并为每一个路由器生成正确的转发表(实际上是流表)。因此不需要再进行路由信息分组的转发。

远程控制器

数据层面
传统路由器的分组转发:

1.进行“匹配”:查找转发表中的网络前缀,并进行最长前缀匹配2.执行“动作”:把分组从匹配结果指明的接口转发出去

SDN的广义转发:

1.进行“匹配”:能够对网络体系中各层(数据链路层,网络层,运输层)首部中的字段进行匹配2.执行“动作”:不仅转发分组,还可以负载均衡,重写IP首部(类似NAT路由器中的地址转发),人为阻挡或丢弃一些分组(类似防火墙)

在SDN的广义转发中,完成“匹配+动作”的设备并不局限在网络层工作,因此不再称为路由器,而称为“OpenFlow交换机”或“分组交换机”。在交换机中,既可以处理数据链路层的帧,也可以处理网际层的IP数据报,还可以处理运输层的TCP或UDP报文。

相应的路由器中的转发表变为流表。SDN远程控制器通过一个安全信道使用OpenFlow协议来管理OpenFlow交换机中的流表。
---------------------------------------------------------------------------------------------------------------------------------

SDN(软件定义网络)和传统网络的对比如下:

        网络控制方式:

传统网络的控制方式是分布式的,每个设备都独立做出决策;而SDN中控制方式是集中的,由控制器负责整个网络的决策和控制。

        网络管理:

传统网络的网络管理需要人工干预,通过CLI(命令行界面)或Web界面等手动配置设备;而SDN中网络管理可以通过控制器的中央化控制,通过API调用进行程序化管理。

        网络安全:

传统网络中,网络安全是通过在每个设备上配置ACL(访问控制列表)和防火墙等安全设备实现;而SDN中,网络安全可以通过控制器对流量进行集中的策略控制和监控,从而更加高效和精确地保护网络安全。

        网络可扩展性:

传统网络中,网络可扩展性受到网络设备的限制,需要不断增加设备才能扩展网络;而SDN中,网络可扩展性可以通过在控制器中增加逻辑控制实现,从而更加灵活和高效地扩展网络。

        网络应用创新:

传统网络中,网络应用创新受到网络设备和传输层协议的限制,需要复杂的开发和测试过程;而SDN中,网络应用创新可以通过在控制器中开发应用程序来实现,从而更加高效和灵活地满足网络需求。

---------------------------------------------------------------------------------------------------------------------------------

SDN包含以下核心思想:

  1. 分离控制平面和数据平面:SDN将网络设备的控制功能与数据转发功能分离开来,将控制平面集中到SDN控制器中,而将数据平面留给交换机或路由器。这样可以使网络管理人员能够更加方便地控制和管理网络。

  2. 集中控制:在SDN中,SDN控制器集中管理网络设备,可以动态地下发转发策略,控制网络流量的转发和路由。这样可以使网络管理人员更容易地监控和优化网络性能。

  3. 程序化网络:SDN中的网络设备和控制器都可以通过编程进行控制和管理,使网络管理员能够自动化和自定义网络管理任务。这样可以大大减少手动管理网络设备的工作量,提高网络管理的效率。

  4. 开放标准:SDN使用开放标准的协议和API,如OpenFlow等,使各种网络设备和控制器之间可以更加容易地交互和协作。这样可以使不同厂商的设备能够互相兼容,提高网络的灵活性和可扩展性。


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

相关文章

什么是软件定义网络 (SDN)

什么是软件定义网络? 软件定义网络 (SDN) 是一种架构,它抽象了网络的不同、可区分的层,使网络变得敏捷和灵活,SDN 的目标是通过使企业和服务提供商能够快速响应不断变化的业务需求来改进网络控制。 在软件定义的网络中&#xff…

秋天来了

秋风清,秋月明, 落叶聚还散,寒鸦栖复惊, 相思相见知何日,此时此夜难为情。 李白《三五七言》 中秋月东海陈光剑 开窗一望中秋月,皎如飞镜临丹阙。东坡望月叹悲欢,舞弄清影在人间。太白举杯邀明月…

足坛最火红人VS三国神将,谁会胜?

张飞武艺高强,勇猛过人,作战能力强,是刘备手下的一把利器,但是他性格过于暴躁,自控能力较差。与张飞有着相似之处的足球明星是科斯塔,因为他是切尔西足球俱乐部的一把利剑。科斯塔球风稳健有力,…

火烧火燎

通电后,如果电路板中出现电源线短路会出现什么情况?那就会出现火烧火燎的情况。 首先是一些电路板中脆弱的器件遭殃。0603封装的0欧姆电阻在施加3V短路电压的时候,瞬间就烧坏了。瞬间电流估计超过了10A。 如果短路器件个头再大一些&#xff0…

新年快乐,大展宏图

祝程序员们,写代码快如闪电,挣钞票日进斗金

新年新气象。

今天每层Pantry里都多了个小玩具。上pp吧:)

在那薪火点燃的地方

年终总结,从去年的今天说起——作品展 时间大约:2013-3-1~2014-5-20 去年的现在,刚开学,提高班便如火如荼地投入到了作品展的准备当中,各自都忙得不亦乐乎。从结组到定主题,从查资料到写代码,从…

农村的新年烟花

英文关键词: Photograph of Colorful fireworks, rural children holding fairy sticks, cold fireworks,,8Khyper quality, --v 4 --upbeta 中文关键词:五颜六色的烟花照片,拿着仙女棒的农村孩子,冷烟花,8 Kh yp er质量,-v 4-up…

和cesuim类似的三维GIS平台_绿城南宁,火红的三维GIS

十月,绿城南宁,三角梅、朱槿和红鸡蛋花满城开放,花香、果香弥漫,一片姹紫嫣红的景象。10月24日,2020中国地理信息产业大会14个分论坛在南宁召开,100多场报告涵盖新一代三维GIS软件技术、自然资源空间信息化…

春天来了

春天了了 带尺寸的图片: 居中的图片: 居中并且带尺寸的图片: 当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。 如何插入一段漂亮的代码片 去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码…

宝可梦火红存档修改器

花了好久的功夫,终于把宝可梦火红的存档修改器编完了。实现了包括训练师姓名、ID、金钱、宝可梦种族、技能、物品等属性的修改。我把宝可梦火红的GBA文件、模拟器,还有我编写的修改器都打包上传到百度网盘了。下载地址:链接:https…

ARM9协处理器CP15

在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。 访问CP15寄存器的指令 MCR ARM寄存器到协处理器寄存器的数据传送 MRC 协处理器寄存器到ARM寄存器的数据传送 MCR指令和M…

CP15协处理器访问指令MCR/MRC解析

ARM11协处理器从CP0到CP15, 其中CP15位系统控制协处理器。功能如下: • overall system control and configuration • cache configuration and management • Tightly-Coupled Memory (TCM) configuration and management • Memory Management Unit (MMU) con…

ARM协处理器CP15(设置MMU,cache等)学习

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 作者:wogoyixikexie@gliet 一直对协处理器CP15很恐惧,因为在网上基本上找不到中文的…

ARM存储器之:协处理器CP15

链接:http://www.eefocus.com/embedded/323216/r0 ARM存储器之:协处理器CP15 ARM存储系统有非常灵活的体系结构,可以适应不同的嵌入式应用系统的需要。ARM存储器系统可以使用简单的平板式地址映射机制(就像一些简单的单片机一样…

协处理器CP15

在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。ARM处理器使用协处理器15(CP15)的寄存器来控制cache、TCM和存储器管理。CP15包含16个32位的寄存器,其编号为0~15。 CP15访问CP15寄存器的指令 MCR ARM寄存器到协处理器寄存…

ARM协处理器(CP15)指令介绍

什么是协处理器 协处理器是一种芯片,用于减轻系统微处理器的特定处理任务。例如,数学协处理器可以控制数字处理;图形协处理器可以处理视频绘制。例如,intel pentium微处理器就包括内置的数学协处理器。   协处理器可以附属于AR…

(转)ARM协处理器CP15寄存器详解

用于系统存储管理的协处理器CP15 MCR{cond} coproc,opcode1,Rd,CRn,CRm,opcode2 MRC {cond} coproc,opcode1,Rd,CRn,CRm,opcode2 coproc 指…

浅谈ARMv7-A协处理器CP15

协处理器,顾名思义就是协助型处理器,主要协助做一些主处理器无法执行或者执行效率不佳的事情,比如浮点、图像、音频处理这一类,随着硬件的发展,大多协处理器的功能都慢慢集成到主处理器中,但是某些特定的工…

i.MX6ULL(三) CP15协处理器

CP15 CP15协处理器是ARM处理器中一门重要的协处理器,主要用来控制 cache、TCM( tiny code memory)和存储器管理。 CP15协处理器包含16个32位的寄存器,其编号为0~15,其中CP15寄存器0是预留的,所以CP15实际有…