什么是OpenFlow?

OpenFlow是一项支持软件定义网络(SDN)的技术。软件定义网络是一种由软件驱动的网络配置方法。

传统上,网络设备集成了两项关键功能:负责路由管理的控制平面,以及负责数据转发的数据平面。OpenFlow的主要特征是将这两项功能分离。OpenFlow控制器负责控制平面(通常以软件实现),而OpenFlow交换机负责数据平面(通常以硬件实现,但也有Open vSwitch等软件实现)。

OpenFlow的另一个关键特性是使用流表来定义数据转发规则。流表指定数据包处理条件,例如MAC地址、IP地址、端口号、VLAN ID或MPLS标签,以及相应的操作,例如将数据包转发到特定端口、修改特定字段或丢弃数据包。

借助流表,OpenFlow可以执行通常由第2层(L2)交换机、路由器或第3层(L3)交换机处理的功能,还可以实现类似防火墙或负载均衡器的行为。此外,OpenFlow支持故障转移机制,可在交换机发生故障时通过备用路径自动重新路由,并支持类似VLAN的网络分段。由多台OpenFlow交换机组成的网络由OpenFlow控制器集中管理和控制。

OpenFlow提供高度灵活且可编程的方式来定义和管理网络配置与功能,相比传统的硬件网络基础设施具有显著优势。