Openflow详解

  SDN是一种网络架构的理念,是一个框架,他不规定任何具体的技术实现。而Openflow是一个具体的协议,这个协议实现了SDN这个框架中的一部分(南向接口),而且除了Openflow也存在别的同样功能的协议来完成相似的工作,Openflow的维护者是ONF组织。

  Openflow被Controller用来控制网络设备,网络设备通过Openflow来反馈信息给Controller。

  并且Openflow还规定了网络设备对报文的转发和编辑方式(flowtable),而是不同于传统的路由器和交换机设备。

  Openflow协议涉及两个网络元素:Openflow ControllerOpenflow Switch。Openflow协议有一部分运行在Controller上,另一部分运行在Switch上。

  Openflow交换机转发面内部可以认为在逻辑上由两部分组成: Port 和 FlowTable。

  FlowTable:流表就是芯片中一张张的转发表,每张流表都有很多条流表项组成。

  FlowEntry: 流表项是流表中最小单位,每条流表项对应了网络中传输的一条流。流表项是Openflow中最核心的元素,根据Openflow标准,每条流表项由以下6个组成部分:

    1、Match Field

    2、Priority

    3、Counter

    4、Instruction

    5、Timeout

    6、Cookie

  Controller和Switch之间的3种消息:

    1、Controller-to-Switch消息: 这种类型的消息是从Controller发往Switch的,它包含以下几种子类型;

      Features、Configuration、Modify-State、Read-State、Packet-out、Barrier、Role-Request、Asynchronous-Configuration

    2、Asynchronous消息:用于交换机向Controller发送消息;目前定义了以下四种子类型;

      Packet-in、Flow-removed、Port-status、Error

    3、Symmetric消息:对称消息可以由任何一方发起;目前定义了如下三种子类型;

      Hello(启动时通告)、Echo(获取reply确认连接状态)、Experimenter

  • Openflow的系统性能指标:

  1、交换机处理带宽

  2、流表项数量

  3、流表项下发能力

  4、To-Controller报文转发

OF-Config介绍

  OF-Config是Openflow的一个伴侣协议,Openflow仅仅实现Flow的match-action相关的行为,但是Flow所依赖的很多资源,Openflow并不负责去管理。OF-Config需要去支持的工作范畴如下:

  1、配置Openflow Controller地址

  2、队列和物理端口的配置管理

  3、逻辑端口的创建和管理

  4、Controller和交换机之间通信通道的创建和配置,包括安全认证

  5、交换机的能力发现

Controller

  Controller是一个运行在独立的服务器上的软件程序,可以用各种不同的语言来实现,可以运行在不同的操作系统上。

  一类是广义的Controller,也叫SDN Controller,这种Controller支持多种协议,Openflow只是其中的一种,目前OpenDayLight组织开发的就是SDN Controller。

  一类是狭义的Controller,也叫Openflow Controller,Openflow是它唯一支持的协议。

  Controller有很多个属性: 北向接口、集成的服务和应用、南向接口、控制方式、对物理和虚拟设备的通用管理、支持的Openflow标准