【网络新技术1】一文了解SDN技术及其原理

科技   2024-12-11 15:00   河北  

1.什么是SDN?

SDNSoftware-Defined Networking,软件定义网络)是一种新型的网络架构和技术理念,旨在通过软件编程的方式来实现网络的配置、管理和控制。其核心思想是将网络的控制平面数据转发平面分离,使得网络的控制更加灵活和可编程,从而能够适应快速变化的业务需求。

2.传统网络体系结构及其局限性

传统的 IP 网络是一个分布式的、对等控制的网络架构。每台网络设备存在独立的数据平面、控制平面和管理平面。设备的控制平面对等的交互路由协议,然后独立的生成数据平面指导报文转发。

# 管理平面(Management Plane)

管理平面提供对网络设备进行远程管理和配置的功能。它允许网络管理员通过TELNETWEBSSHSNMPRMON等协议和设备进行交互,监控设备的运行状态、环境状况、日志和告警信息,并进行系统加载、升级等维护工作。管理平面还负责设置控制平面中各种协议的相关参数,并在必要时对控制平面的运行进行干预。

  • 运行状态监控:实时监控设备的运行状态和性能指标。
  • 环境监控:监控设备的物理环境(如温度、湿度等)。
  • 日志和告警信息处理:记录和分析设备的日志和告警信息,及时发现和解决网络问题。
  • 系统加载和升级:加载新的配置文件或升级设备软件,以支持新功能或修复漏洞。
  • 网络协议设置:通过命令行或图形界面设置和管理网络协议参数。

# 控制平面(Control Plane)

控制平面负责交换机的配置、路由计算、转发决策等智能功能。它处理网络协议(如OSPFBGPSTP等)的交互,并生成和维护转发平面所需的路由表和转发表。控制平面还负责系统资源的调度和流量统计,以确保网络的稳定性和效率。

  • 协议处理:支持各种网络协议的运行和交互。
  • 路由运算:计算网络拓扑和最佳路径。
  • 转发控制:基于路由表和转发表,决定数据包的转发路径。
  • 业务调度:根据业务需求分配网络资源。
  • 流量统计:收集和分析网络流量数据,用于网络优化和故障排除。
  • 系统安全:确保控制平面的安全,防止恶意攻击和未授权访问。

# 数据平面(Data Plane)

数据平面是交换机的核心部分,负责高速、无阻塞地传输数据包。它直接处理从各个端口接收到的数据,并根据预先设定的规则(如L2交换、L3路由、ACL访问控制列表、QoS服务质量、组播、安全防护等)进行转发。转发平面的设计目标是实现低延迟、高吞吐量的数据传输,确保数据包能够迅速而准确地到达目的端口。

  • L2交换:基于MAC地址表的二层交换,实现数据包在同一子网内的传输。
  • L3路由:基于IP地址的三层路由,实现数据包在不同子网间的传输。
  • ACL:访问控制列表,用于过滤和限制网络流量。
  • QoS:服务质量,确保关键应用的网络带宽和优先级。
  • 组播:将数据包发送给多个目的地的技术,用于视频会议、流媒体等应用。
  • 安全防护:如防止DDoS攻击、端口安全等,保护网络免受恶意攻击。

对于传统网络,其局限性如下图:

3.SDN的起源

2006年,以斯坦福大学教授Nike McKeown为首的团队提出了OpenFlow 的概念,并基于 OpenFlow 技术实现网络的可编程能力,使网络像软件一样灵活编程,SDN 技术应运而生。

SDN的三个主要特征:

  • 转控分离:网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上。
  • 集中控制:设备网元通过控制器集中管理和下发流表,这样就不需要对设备进行逐一操作,只需要对控制器进行配置即可。
  • 开放接口:第三方应用只需要通过控制器提供的开放接口,通过编程方式定义一个新的网络功能,然后在控制器上运行即可。

SDN 控制器既不是网管,也不是规划工具:

网管没有实现转控分离:网管只负责管理网络拓扑、监控设备告警和性能、下发配置脚本等操作,但这些仍然需要设备的控制平面负责产生转发表项。

规划工具的目的和控制器不同:规划工具是为了下发一些规划表项,这些表项并非用于路由器转发,是一些为网元控制平面服务的参数,比如IP地址,VLAN等。控制器下发的表项是流表,用于转发器转发数据包。

4.SDN架构

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

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

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

5.SDN架构下的接口

  • OpenFlow接口OpenFlow接口是控制器与下层转发器之间的一种基于芯片的接口协议。OpenFlow协议基于TCP/IP,用于转发器与控制器之间的通信。

  • BGP接口:BGP接口是在BGP协议基础上添加一些BGP路由属性(比如Additional Path属性和BGP Flowspecification属性),用于下发BGP的一些路由特性,从而使得IDC数据中心出口路由器根据这些特性实现流量调优。

  • PCE接口 :PCE接口用于控制器根据网络可用带宽计算出流量工程路径,用于数据中心AS内部的TE隧道的建立。

运营商网络已经大规模部署了传统分布式网络,不能在较短时间内升级到 SDN 网络,与传统网络互通就是必要的。SDN 控制器必须支持各种传统的跨域路由协议,以便解决和传统网络互通问题。

东西向协议是必须的,在SDN 控制器上运行东西向协议,通过简单的修改或升级控制器程序就能提供新业务。另一方面,东西向协议为SDN 控制器跨域互联及SDN 控制器分层部署提供了接口。

6.传统网络架构与SDN架构对比

在传统网络中,网络设备可以分为管理面、控制面和转发面。管理面负责业务的编排和策略的制定,控制面负责操作系统的运行以及各种算法的运算,转发面负责数据包的转发和接收。

SDN的理念是将网络设备的控制和转发功能解耦,使网络设备的控制面可直接编程,将网络服务从底层硬件设备中抽象出来。

SDN架构与传统网络架构的对比如下图所示:

7.软件SDN与硬件SDN对比

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

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

下图为两种SDN技术路线的对比,经典的SDN技术路线又可以称为软件SDN,而弱化控制面剥离的SDN技术路线可以称为硬件SDN

8.SDN的优点

# 网络可编程

  • 特点SDN架构下的网络设备提供应用编程接口(API),允许开发和管理人员通过编程语言向网络设备发送指令。
  • 优势:网络工程师能够利用脚本自动化创建和分配任务,收集网络统计信息,从而显著提高网络配置和管理的效率。这种基于API的可编程性使得网络行为可以根据业务需求进行灵活调整,提供了比传统网络配置方法更丰富的功能和更高的灵活性。

# 网络抽象化

  • 特点:控制器作为中间层,通过南北向API接口与网络设备和应用程序进行交互,将底层的硬件设备抽象为虚拟化的资源池。
  • 优势:这种抽象化使得应用和服务不再与硬件紧密耦合,而是可以更加灵活地利用网络资源。它简化了网络管理的复杂性,使得网络管理员可以更加专注于业务需求的实现,而不是底层硬件的细节。

# 降低成本

  • 特点SDN架构保留了原有的网络设备,这些设备仍然具备管理、控制、转发的全部功能。
  • 优势:由于无需进行大规模的搬迁和替换,SDN架构可以显著降低网络改造的成本。同时,控制器的引入将人工配置转变为机器配置,提高了运维效率,进一步降低了运维成本。

# 业务灵活调度

  • 特点SDN架构通过增加开放的南北向接口,实现了计算机语言到配置命令行的翻译,使得界面式的管理和集中管理成为可能。
  • 优势:这解决了传统网络业务调度不灵活的问题。在SDN架构下,网络流量可以根据业务需求进行灵活调度,最优路由上的转发任务可以得到更加均衡的分配,从而提高了网络的性能和可靠性。

# 集中管理

  • 特点SDN架构使用控制器来管理底层硬件设备,编排网络业务,分配网络资源和调整流量优先级。
  • 优势:管理员可以直接感知整个网络的状态,及时调整带宽和优化策略,便于进行整网的管理。这种集中管理的方式提高了网络管理的效率和准确性,降低了管理成本。

# 开放性

  • 特点SDN架构支持供应商开发自己的生态系统,开放的API支持云编排、OSS/BSSSaaS等多种应用程序。
  • 优势:这种开放性促进了市场竞争,降低了用户的选择成本。同时,它也使得网络能够根据业务需求进行灵活扩展,满足了不同场景下的网络需求。此外,通过Openflow等协议,SDN架构还可以控制多个供应商的硬件,进一步提高了网络的兼容性和可扩展性。

综上,SDN架构通过其网络可编程性、网络抽象化、降低成本、业务灵活调度、集中管理和开放性等优点,为现代网络管理提供了更加高效、灵活和可扩展的解决方案。


Python运维实践
Python运维实践,专注于互联网技术的总结与交流,内容涉及Python自动化运维、Django框架、园区网络技术、linux云计算、系统架构及网络空间安全等知识的实践与分享。
 最新文章