软件定义网络SDN是网络虚拟化的一种实现方式。
SDN的核心技术OpenFlow,通过将网络设备的控制面与数据面分离开来,从而实现对网络流量的灵活控制,使网络变得更加智能。
SDN可通过软件编程的形式定义和控制网络,具备控制平面和转发平面分离及开放性可编程的特点。
在网络的垂直方向上,网络是相对封闭的、没有框架的。SDN将整个网络的垂直方向变得开放、标准化、可编程,从而可以更容易、更有效地使用网络资源。
SDN解放了手工操作,减少了配置错误,易于统一快速部署:
数据控制解耦合使得应用升级与设备更新换代相互独立,加快了新应用的快速部署;
网络抽象简化了网络模型,将运营商从繁杂的网络管理中解放出来,能够更加灵活地控制网络;
控制的逻辑中心化使用户和运营商等可以通过控制器获取全局网络信息,从而优化网络,提升网络性能。
SDN的技术路线
在传统网络中,网络设备可以分为管理面、控制面和转发面。
管理面负责业务的编排和策略的制定;
控制面负责操作系统的运行以及各种算法的运算;
转发面负责数据包的转发和接收。
SDN将网络控制与物理网络拓扑分离,从而摆脱硬件对网络架构的限制。
SDN将网络设备上的控制权分离出来,由集中的控制器管理,无须依赖底层网络设备,屏蔽了底层网络设备的差异。
控制权是完全开放的,用户可以自定义任何想实现的网络路由和传输规则策略,从而更加灵活和智能。
SDN的架构
SDN架构有三层:应用层、控制层和基础设施层。
第一,应用层。
应用层包含组织使用的典型网络应用或功能,可能包括入侵检测系统、负载均衡或防火墙。传统网络将使用专用设备,例如防火墙或负载均衡器,而软件定义的网络则用使用控制器来管理数据平面行为的应用程序替换设备。
第二,控制层。
控制层由SDN控制软件组成,可通过标准化协议与转发设备进行通信,实现对基础设施层的控制。SDN控制软件驻留在服务器上并管理整个网络的策略和流量。
第三,基础设施层。
基础设施层主要为转发设备,由网络中的物理交换机组成,将网络流量转发到它们的目的地来实现转发功能。
第四,API接口。
SDN使用北向和南向应用程序接口(API)来进行层与层之间的通信,分为北向API和南向API。北向API负责应用层和控制层之间的通信,南向API负责基础设施层和控制层之间的通信。
SDN的工作原理
SDN包含多种类型的技术,包括功能分离、网络虚拟化和通过可编程性实现的自动化。
第一,功能分离。
SDN将网络控制平面和转发平面分离,当控制平面决定数据包应该如何流经网络时,转发平面将数据包从一个地方移动到另一个地方。
第二,网络虚拟化。
SDN的网络虚拟化通过虚拟覆盖发挥作用,虚拟覆盖是物理网络之上的逻辑独立网络,用户可以实现端到端的覆盖来抽象底层网络和分段网络流量。
第三,通过可编程性实现的自动化。
如果路由器自身内置的协议不符合用户的需求,可以通过编程的方式对其进行修改,以实现更好的数据交换性能。这样,网络设备用户便可以像升级、安装软件一样对网络架构进行修改,满足用户对整个网络架构进行调整、扩容或升级的需求,而底层的交换机、路由器等硬件设备则无需替换,节省大量成本的同时,网络架构的迭代周期也将大大缩短。
SDN的优点和缺点
第一,优点。
1)网络可编程。
网络设备提供应用编程接口(API),使得开发和管理人员能够通过编程语言向网络设备发送指令。网络工程师可以使用脚本自动化创建和分配任务,收集网络统计信息。将基于CLI与SNMP的封装脚本变为实实在在的可编程对象,提供了更丰富的功能。
2)网络抽象化。
控制器作为中间层,通过南北向API接口与网络设备和应用程序进行交互,将底层的硬件设备抽象为虚拟化的资源池,应用和服务不再与硬件紧密耦合。
3)减少硬件占用空间和运维成本。
保留了原有的网络设备,硬件设备仍然具备管理、控制、转发的全部功能,方便进行整网的改造,无需进行大规模的搬迁。控制器的引入将人工配置转变为机器配置,提升运维效率,降低运维成本。
SDN虚拟化了以前由专用硬件执行的硬件和服务,最大程度减少了硬件占用空间,降低了运维成本。
SDN技术能够有效降低设备负载,协助网络运营商更好地控制基础设施,降低整体运维成本。
4)业务灵活调度。
SDN在没有改变硬件设备整体逻辑的基础上,通过增加开放的南北向接口,实现了将计算机语言到配置命令行的翻译,使界面式的管理、集中管理变成了可能,解决了传统网络业务调度不灵活的问题。
5)集中管理。
网络管理员使用控制器来管理底层硬件设备,编排网络业务,分配网络资源和调整流量优先级。管理员可以直接感知整个网络的状态,及时调整带宽和优化策略,便于进行整网的管理。
6)开放性。
SDN架构支持供应商开发自己的生态系统,开放的API支持云编排、OSS/BSS、SaaS等多种应用程序,同时也可以通过Openflow控制多个供应商的硬件。
7)简化策略规则。
管理员可以在必要时使用SDN更改任何网络交换机的规则。此功能在云计算多租户架构中特别有用,因为它使管理员能够以灵活高效的方式管理流量负载,从本质上讲,这使管理员能够使用更便宜的商品交换机并更好地控制网络流量。
8)网络管理和端到端可见性。
网络管理员只需处理一个集中控制器就可以将策略分发到连接的交换机,这与配置多个单独的设备相反。此功能也是一个安全优势,因为控制器可以监控流量并部署安全策略,例如,如果控制器认为流量可疑,它可以重新路由或丢弃数据包。
9)网络创新。
SDN促成了软件定义广域网( SD-WAN )技术的出现,SD-WAN采用了SDN技术的虚拟覆盖方面,SD-WAN抽象了组织在其WAN中的连接链接,创建了一个虚拟网络,该网络可以使用控制器认为适合发送流量的任何连接。
第二,缺点。
1)安全性。
安全性既是SDN技术的一个好处,也是一个问题。如果SDN控制软件存在单点故障,被攻击者锁定,可能会对网络造成损害。
2)定义不明确。
业界确实没有对软件定义网络的既定定义,不同的供应商提供各种SDN方法。
3)市场混乱。
白盒网络、网络分解、网络自动化和可编程网络等网络计划经常被误认为是SDN。虽然SDN可以从这些技术和流程中受益并与之协同工作,但它仍然是一项独立的技术。
4)采用缓慢及成本大。
SDN技术采用速度相对较慢,尤其是在网络较小且资源较少的企业中。许多企业认为SDN部署的成本是一个阻碍因素。