软件定义网络(Software-Defined Networking, SDN)是一种新型网络架构,它将网络的控制平面与数据平面分离,使得网络能够以软件的方式进行定义、配置和管理。SDN的出现,极大地简化了网络的开发和自动化,使得IT组织能够更加快速地提供网络资源和服务,包括安全策略。SDN支持对网络进行集中管理,将手动配置的任务从人工转移到技术层面,从而降低了运营成本。
在SDN网络中,控制层扮演着核心角色,它负责管理和控制基础设施层。控制层可以灵活选择多种控制器,这些控制器中包含了大量的业务逻辑,用于获取和保护各种网络信息,如状态详细信息、拓扑细节、统计信息等。由于SDN控制器用于管理网络,因此它需要具备实际网络使用情况所需的控制逻辑,如交换、路由、VPN、防火墙安全规则、DNS和DHCP等。网络服务提供商和开源社区需要在这些方面进行深入开发,以确保SDN控制器的功能完备。
基础设施层由各种网络设备组成,包括数据中心中的网络交换机和路由器。控制层通过南向接口(如OpenFlow、NetConf、OVSDB等)与基础设施层通信。OpenFlow是目前事实上的行业标准,它打破了传统网络设备厂商之间的壁垒,实现了网络能力的标准化接口。基于OpenFlow控制协议的开源控制器有NOX、Onix和Floodlight等。
利用层是SDN网络中开放的创新区域,鼓励开发者开发各种利用程序。这一层包括网络可视化工具,如网络拓扑、状态和统计信息的可视化;以及网络自动化相关的利用,如网络配置管理、监控、故障排除和安全策略管理等。SDN利用程序可以为企业和数据中心网络提供端到端的解决方案。