OpenFlow交换机的组成及OpenFlow协议说明
OpenFlow网络由OpenFlow交换机、FlowVisor和Controller三部份组成。
OpenFlow交换机进行数据层的转发;
FlowVisor对网络进行虚拟化;
Controller对网络进行集中控制,实现控制层的功能。
OpenFlow交换机是全部OpenFlow网络的核心部件,主要管理数据层的转发。OpenFlow交换机接收到数据包后,首先在本地的流表上查找转发目标端口,如果没有匹配,则把数据包转发给Controller,由控制层决定转发端口。
Controller
OpenFlow实现了数据层和控制层的分离,其中OpenFlow交换机进行数据层的转发,而Controller实现了控制层的功能。Controller通过OpenFlow协议这个标准接口对OpenFlow交换机中的流表进行控制,从而实现对全部网络进行集中控制。Controller的这一切功能都要通过运行NOX来实现,因此NOX就像是OpenFlow网络的操作系统。另外,在NOX上还可以运行Plugnserve、OpenRoads和OpenPipes等利用程序。
PlugnServe通过规定数据传输路径来控制网络和服务器上的负载,从而使得负载均衡并下降响应时间。
OpenRoads是支持OpenFlow无线网络移动性研究的框架。
OpenPipes可以在网络系统中通过移动每一个子模块来测试每一个子模块,并可以决定如何划分设计单元。
OpenFlow交换机的组成
OpenFlow交换机由流表、安全通道和OpenFlow协议三部份组成。
安全通道是连接OpenFlow交换机到控制器的接口。控制器通过这个接口控制和管理交换机,同时控制器接收来自交换机的事件并向交换机发送数据包。交换机和控制器通过安全通道进行通讯,而且所有的信息一定要依照OpenFlow协议规定的格式来履行。
OpenFlow协议用来描写控制器和交换机之间交互所用信息的标准,和控制器和交换机的接口标准。协议的核心部份是用于OpenFlow协议信息结构的集合。
OpenFlow协议支持三种信息类型:ControllertoSwitch,Asynchronous和Symmetric,每个类型都有多个子类型。
a)Controller/Switch消息,是指由Controller发起、Switch接收并处理的消息,主要包括Features、Configuration、ModifyState、ReadState、Packetout、Barrier和RoleRequest等消息。这些消息主要由Controller用来对Switch进行状态查询和修改配置等操作。
b)异步(Asynchronous)消息,是由Switch发送给Controller、用来通知Switch上产生的某些异步事件的消息,主要包括Packetin、FlowRemoved、Portstatus和Error等。例如,当某一条规则由于超时而被删除时,Switch将自动发送一条FlowRemoved消息通知Controller,以方便Controller作出相应的操作,如重新设置相干规则等。
c)对称(Symmetric)消息,顾名思义,这些都是双向对称的消息,主要用来建立连接、检测对方是否是在线等,包括Hello、Echo和Experimenter三种消息。
另外出于安全和高可用性等方面的斟酌,OpenFlow的规范还规定了如作甚Controller和Switch之间的信道加密、如何建立多连接等(主连接和辅助连接)。