OpenFlow协议

功能


  • 1.0版本Openflow:控制器通过Openflow协议与交换机建立了安全通道(Sceure Channel),下发流表。

  • 1.3版本Openflow:多控制器,多流表。
  • 用于实现Controller和Switch之间的通信过程,定义了一系列标准术语。
  • 定义了Controller如何来控制Swithch以及Switch如何来反馈Ctroller。
  • 定义了Controller和Switch通信过程的消息类型和格式

版本


  • 版本升级功能升级。

流表


  • 相当于传统网络的路由表和CAM表。
  • 传统网络的表是死的,给我就按照上面的做,查找转发。
  • SDN的流表,很多张,可编程。

流(Flow)


  • 同一时间内,经过同一网络并且具有相同属性的数据包集合
  • 不同情况流的定义可以不同。一般基于端口以及源目IP。
  • SDN体系中,所有的数据都以“流”为单位进行处理。

流表(Flow Table)


  • 流过来就查表(基于序号查找)。
  • 每一张流表都有详细的流表项。
  • 每一个流表项中都有相应参数,根据参数做出相应的动作(要么转,要么丢,不转也不丢,下一张表处理)。
  • 虽然要递归似的查表,但是节约了计算的时间,总体上转发速度加快。

流表项-1.0版本(Flow Entry)


  • 不同版本的Openflow的流表项有些区别,下面是Openflow1.0版本的流表项。
  • 包含:包头域、计数器、动作三个部分。

包头域(Header Fields)


  • 除了进接口,传统的2-4层的寻址信息都出现在包头域中(MAC、IP、PORT)。
  • Openflow交换机相比传统网络交换机(路由器),是一个模糊的概念,不再区分二者,所以Openflow交换机可以广义的理解为Openflow转发设备(交换机、路由器、防火墙)。

计数器(Counters)


  • 计数器主要对每张表、每个端口、每个流等进行计数,方便流量监管。
  • 流量可视化奠定了基础。

动作(Actions)


  • 对匹配到的流进行处理,传统网络中要么转发要么丢弃,没有第三种选择。Openflow1.0中规定了必备动作(Required Actions)和可选动作(Optional Actions)。
  • 必备动作-转发(Forward):
    • ALL:转发到所有出口(不包括入口)。
    • CONTROLLER:封装并转发给控制器。
    • LOCAL:转发给本地网络栈。
    • TABLE:对要发出的包执行流表中的行动。
    • IN_PORT:从入口发出。
  • 必要行动-丢弃(Drop)
    • 没有明确指明处理行动的表项,所匹配的所有分组默认丢弃。
  • 可选行动-转发
    • NORMAL:按照传统交换机的2层或3层进行转发处理。
    • FLOOD:通过最小生成树从出口泛洪发出,注意不包括入口。传统网络只有在CAM表空或者满了的时候才会泛洪,现在更加灵活。
  • 可选行动-入队(Enqueue)
    • 将包转发到绑定到某个端口的队列中。(流控)
  • 可选行动-修改域(Modify-field)
    • 修改包头内容。
    • 这个动作是跟传统网络的最大区别,Openflow可以对数据包头部进行修改!(可修改2层-4层的信息)。

猜你喜欢

转载自www.cnblogs.com/031602523liu/p/8978212.html
今日推荐