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

SDN(软件定义网络)是一种概念和架构,可通过软件控制计算机网络中的通信设备。它将网络控制与物理硬件分离,从而支持动态更改网络配置和设置。

传统网络设备需要手动配置,网络结构高度依赖交换机和路由器的物理连接。这种依赖源于传统交换机将负责数据传输的数据平面与负责管理数据路由的控制平面集成在一起。虽然VLAN技术实现了第2层网络的虚拟化,但其支持的VLAN数量上限约为4,000个,因而限制了大规模虚拟化网络。

为应对这些挑战,OpenFlow应运而生,提供了一种将数据平面与控制平面分离并通过API连接二者的方法。这种分离为集中式软件管理和运维自动化创造了条件,并催生了软件定义网络(SDN)的概念。此后,业界提出并探讨了许多不局限于OpenFlow的SDN实现方法。

尽管SDN的定义仍不明确,但其核心围绕两个要点:

  1. 大规模网络虚拟化:
    SDN侧重于在第3层基础设施之上构建虚拟第2层网络。与以往的网络虚拟化方法不同,SDN强调通过软件构建和管理这些虚拟化网络,从而提高可扩展性和灵活性。
  2. 通过软件集中管理网络:
    SDN不仅将控制平面与交换机分离,还引入更高级别的API以实现编排。网络功能虚拟化(NFV)和服务链等互补技术,是实现SDN目标的关键组成部分。NFV可将防火墙等功能虚拟化,而服务链则可动态连接这些功能。