在主动模式下,控制器将其存储的流表相关信息主动下发至交换机,交换机根据收到的信息对本地存储的流表进行更新,并按照新的流表处理接下来流经交换机的数据流。在被动模式下,交换机收到数据包后,首先在本地存储的流表中查找是否存在与当前数据包匹配的流表项记录。如果没有流表项与报文特征匹配,则将该数据包封装到OpenFlow协议的packet_in消息并将该消息发送给OpenFlow控制器,等待控制器计算并得出针对该特征的数据流的具体处理方法并向该交换机下发流表。在被动模式下,交换设备不需要文护完整的流表,只需要在新的数据流流经交换设备时才需要向控制器请求转发方案,在方案超过生存周期后会及时清除相关信息,不产生荣誉信息,节省了交换设备上大量的本地存储空间。
OpenFlow交换机主要由流表、安全通道(Secure Channel)和OpenFlow协议三个部分组成[ ]。
其中,流表由多个流表项构成,每一行流表项对应了一组针对特定数据流的转发规则。交换机收到新的数据流后将其首个数据包的相关特征与本地保存的流表匹配信息进行匹配。流表项中的每一项主要由匹配规则、计数信息和对应操作三部分组成。其中,匹配规则包含了该数据流的特征,同时匹配规则也是该流表项的特征,用于匹配对应的数据流。计数信息记录了该流表项和数据流在本地OpenFlow交换机上的统计信息。对应操作在流表项对应的数据流流经交换机并成功匹配后执行,是交换机针对该数据流的具体处理过程,负责实现具体的网络和路由管理操作。
在OpenFlow交换网络中,安全通道是指OpenFlow交换机中与控制器进行连接的网络接口。控制器通过安全通道与交换机进行通信并传输控制信息,同时控制器通过该安全通道接收交换机发送的事件消息并向交换机返回处理后的响应数据。在安全通道中控制器和交换机进行的通信信息都依照OpenFlow协议的规范进行。
OpenFlow协议是用于描述交换机和控制器之间进行通信并传输控制信息的协议标准。OpenFlow协议的核心部分是多种用于信息交换的结构。在OpenFlow网络中,控制信息的传送可以通过三种通信类型进行。它们分别是控制器-交换机方式(Controller-to-Switch)、异步方式(Asynchronous)和对称方式(Symmetric)。其中每一个通信类型都包含多种子类型。在控制器-交换机方式下,控制信息由控制器端发起,主要用于检测交换机当前的状态。在异步方式下,控制信息由交换机端发起,通常用于上报交换机产生的时间并由控制器对交换机的网络状态进行管理。对称方式下控制信息可以通过控制器端或交换机端主动发起,不需要产生请求。
2.1.2 OpenFlow控制器
OpenFlow网络实现了数据层和控制层的分离,其中数据层在OpenFlow交换机进行转发,控制层逻辑则由OpenFlow控制器具体负责实现。控制器通过符合OpenFlow协议的控制信息对OpenFlow交换机进行控制,进而确定针对不同特征的数据流的转发方案,最终实现了对整个OpenFlow网络中交换设备的集中控制。Ryu控制器是一种应用十分普遍的OpenFlow控制器的实现。在本方案中,控制器的功能都需要通过Ryu控制器来实现,因此Ryu控制器可以被视为一种基于OpenFlow网络架构的操作平台。在Ryu控制器上还可以编写并运行多种针对不同应用背景和业务需求的APP程序。 OpenFlow协议数据中心下基于SDN的负载均衡调度(5):http://www.youerw.com/jisuanji/lunwen_26488.html