软件定义网络(SDN)是控制功能和转发功能的分离,它使网络具有更大的自动化和可编程性。它通常与网络功能虚拟化(NFV)结合使用,NFV以虚拟化网络功能(VNFs)的形式将网络功能与硬件分离。
SDN支持网络中的云计算。这使得网络工程师和管理员能够通过从网络物理硬件中抽离出来的集中控制台快速响应业务需求的变化。换句话说,SDN为网络创建了一个集中的大脑,它即可以通信又可以指挥网络。
在SDN架构中有三个层面:
1.应用层:在网络上运行的应用及服务
2.控制层:SDN控制器或网络的“大脑”
3.基础面:交换机和路由器,以及其支撑的物理硬件
为了在这些层级之间进行完成通信,SDN使用北向和南向应用接口(API),其中北向接口在基础层和控制层之间进行通信,南向API在应用层和控制层之间进行通信。
北向接口:使用SDN的应用程序依赖于控制器来告诉他们网络基础状态,以便他们知道哪些资源是可用的。此外,SDN控制器可以根据网络管理员建立的策略自动确保应用程序流量路由。应用层与控制层通信,告诉它应用程序需要什么资源,以及它们的目的地。控制层协调如何向应用层提供网络中可用的资源。它还利用其智能,根据应用程序的延迟和安全需求,为应用程序找到最佳路径。整个业务流程是自动化完成的,而不是手动配置的。
南向接口:SDN控制器通过南向接口与基础层(如路由器和交换机)通信。网络基础层被告知应用程序数据必须采用由控制器决定的路径转发。控制器可以实时改变路由器和交换机转发的方式。数据不再依赖于设备路由表来确定数据转发路径。相反,控制器可以智能优化数据转发的路径。
SDN控制器是提供整个网络的集中视图和控制的软件。网络管理员使用控制器来控制底层基础层的转发面应如何处理流量。控制器还用于强制执行指示网络行为的策略。网络管理员建立统一应用于网络中多个节点的策略。网络策略是应用于流量的规则,用于确定流量对网络的访问级别、允许的资源量或分配的优先级。对网络和策略有一个集中的视图有助于更统一和一致的网络管理。
SDN提供了一个集中的、可编程的网络,可以动态地提供网络资源,以满足不断变化的业务需求。它还提供以下技术和业务好处:1.直接可编程性:SDN网络策略是直接可编程的,因为控制功能与转发功能是分离的,这使得网络可以由专有或开源自动化工具(包括OpenStack、Puppet、Salt、Ansible和Chef)以编程方式配置。2.集中式管理:智能网络逻辑上集中在SDN控制器软件中,该软件维护网络的全局视图,在应用层和SDN网络策略引擎看来,该视图是单个逻辑交换机。3.降低成本开支:SDN潜在地限制了购买专用的基于ASIC的网络硬件的需求,相反,它支持具有扩展能力的随增长付费模型。市场上的大多数交换机都支持SDN功能和OpenFlow(SDN通信协议)等软件。无论是在数据中心还是其他网络中,如果基础设施中包含具有SDN功能的交换机,则只需激活选项即可。不需要巨大的资源投入来替换基础设施。4.降低运营成本:自动化网络软件能力意味着,当业务需求或网络需求需要变更时,不需要剥离和替换整个基础设施。此外,策略可以在整个网络范围内统一传播,从而减少更新网络时出现人为错误的机会。自动化接管了网络管理员和运营商的任务,减少了整个网络管理时间。5.敏捷性和灵活性:SDN可以帮助组织快速部署新的应用、服务和基础设施,以快速满足不断变化的业务目标,因为只要创建了新的东西,一个简单的更新就可以在网络范围内完成部署。
SDN并非没有缺点。与所有IT行业一样,也存在安全问题、规模问题和缺乏广泛的行业合作。1.集中式管理的安全风险:虽然这使联网更容易,但也是一种安全风险。集中管理是单一点容易被攻击,如果它崩溃,整个网络都会受到影响。2.SDN控制器瓶颈:当SDN控制器只有一个实例时,它可能成为具有大量流量、路由和交换网络的瓶颈。对于控制器的一个实例来说,有太多的东西需要通信。3.没有一个普适的北向api标准:没有一个普适的北向api标准,导致各产商和开源组织都有不同的SDN控制器北向api接口标准。这使得应用程序开发变得困难,因为为了满足与不同的控制器进行相互操作,开发人员必须开发多个版本的应用程序。
SDN软件自动化支持开源,包括对应用程序和网络虚拟化部分的自动化测试和部署更改。智能建筑还可以利用SDN来处理连接建筑内所有设备的无线网络。
SDN网络虚拟化原理也可以引入应用于车辆自动驾驶完成与所有设备(V2X)的通信。SDN软件通常只覆盖一个数据中心,但是,它可以扩展到企业的整个园区。通过使用SDN技术,校园可以简化无线和有线网络连接,无论是WiFi还是以太网,集中管理它们,并自动化服务。
SDN所参与的虚拟化浪潮正在继续向前推进,各产商和他们的产品数量也是逐步增长中。SD-WAN、SD branch、SASE和云都是这样的例子。在5G网络中,网络核心的控制也是集中的,就像在SDN中一样。云也使用集中的控制。
NFV是一种网络组件的虚拟化功能,将它们与运行它们的硬件设备分离开来,以支持虚拟机。这些功能的范围从负载均衡到防火墙再到虚拟路由。
SDN将控制面和数据面分离,以实现集中控制,实现自动化,并创建可编程网络。从本质上看,NFV虚拟化了网络的组件,SDN却集中控制这些组件。虽然SDN和NFV并不是相互依赖,但它们采用软件方式代替传统网络来完成一切操作、管理和安全控制。
软件定义的广域网(SD-WAN)是SDN的一个扩展。SD-WAN将SDN应用于覆盖广泛地理区域的网络连接。根据IEEE的说法,这种技术允许企业将系统内的所有网络连接到一个广阔的地理区域,而不受节点之间距离的限制。
例如,一个国家企业内的所有分支机构网络和数据中心(每个国家都有分支机构)都可以通过SD-WAN连接,并由一个中央控制器进行管理。由于能够统一各种连接,越来越多的组织和公司转向SD-WAN。SD-WAN的另一个优点是,它在整个网络中提供端到端加密,从而提高了安全性。
SD-WAN也适用于局域网(LAN),用于为单一办公室或本地创建部署SD分支机构。分支机构仍然提供了SD-WAN的灵活性和可扩展性。