背景介绍
随着云计算和虚拟化技术的发展,网络架构正在发生深刻地变革,软件定义网络(SDN - Software Defined Network)无疑是下一代网络的“范式”。
如何实现SDN呢?OpenFlow是目前最流行的SDN实现方式,具体而言有三种:
1、OpenFlow商业交换机,如思科、Juniper Network、盛科等厂商;
2、基于FPGA实现OpenFlow协议;
3、纯软件OpenFlow交换机实现,如Open vSwitch技术;
SDN(Software Defined Network)
SDN是由美国斯坦福大学Clean-Slate课题研究组提出的一种新型网络创新架构,是网络虚拟化的一种实现。其核心技术OpenFlow通过将网络设备的控制面与数据面分离开,从而实现网络流量的灵活控制。
如上图,数据面就是交换机和路由器硬件,SDN控制器负责整个拓扑网络的转发链路规划,这样可以形成统一的管理。
OpenFlow
OpenFlow是一个协议,可以理解为SDN的一种实现,通过Flow Table来描述报文转发规则,以下是OpenFlow 1.2定义的Flow Table结构:
- Match Fields:报文匹配字段,包括MAC地址、以太网类型、IP协议类型、IP地址、UDP端口号等
- Priority:报文优先级,多个匹配项中按照优先级匹配
- Counters:匹配的次数
- Instructions:匹配后的操作,如报文编辑、转发属性
- Timeout:该Flow Table在交换机中存在的时间
- COOKIE:控制器预留的信息,与报文(数据流)处理无关
除了Flow Table之外,还有Group Table、Meter Table等,这些表结构都可以在协议手册中找到。
此外,为了与控制器(Controller)进行通讯,OpenFlow协议还定义了一套交换机与控制器的通讯协议——OpenFlow Channel,这个协议包括:
- Controller-to-Switch:控制器操作交换机
- 异步通信(Asynchronous):交换机提交特定报文处理
- 对称通信(Symmetric):控制器与交换机互相调试
Open vSwitch
Open vSwitch可以理解为一个虚拟交换机,其架构如下:
如上图所示,Open vSwitch就是利用OpenFlow协议设计的虚拟交换机,其报文转发的规则完全依赖Flow Table。
Open vSwitch内部实现近似于一个基于OpenFlow协议的SDN结构,可以将User Space当作控制面(Control Plane),Kernel层当作数据面(Data Plane)。
【感谢龙石为本站提供数据交换平台,http://www.longshidata.com/pages/exchange.html】