OpenFlow,一种网络通信协议,属于数据链路层,能够控制网上交换器或路由器的转发平面(forwarding plane),借此改变网络数据包所走的网络路径。
OpenFlow网络由OpenFlow网络设备(OpenFlow 交换机)、控制器(OpenFlow控制器)、用于连接设备和控制器的安全通道(Secure Channel)以及OpenFlow表项组成。其中,OpenFlow 交换机设备和OpenFlow控制器是组成OpenFlow网络的实体,要求能够支持安全信道和OpenFlow表项。
在OpenStack网络中OpenFlow规则的作用是在一定一个“流”及其附属的一些“操作”。
“流”是一组定义的帧或者数据包(类似于一个MPLS流)与一组操作。例如:
Source IP/Port、Destination IP/Port
Source IP、Destination IP
Source MAC、Destination MAC
通过OpenFlow规则,可以将想要实现的规则发送给硬件设备交换机或者路由器。然后每个设备会根据处理这些数据。交换机会更新它的MAC地址表以转发帧,路由器会添加访问列表,而防火墙会更新它的规则。
常规的实现方式是网工在交换机,路由器,防火墙配置,在交换机上vlan划分端口实现Source、Destination MAC转发,在路由器上面配置路由信息实现Source Destination IP的转发。在防火墙上面配置策略实现Source Destination Port的转发。