OpenFlow学习笔记(一)

来源:互联网 发布:qq音乐网络好声音 编辑:程序博客网 时间:2024/06/03 21:07

OpenFlow协议目前被分为两部分:

  (1)线路协议(wire protectol):用于建立控制会话,定义了对于流的修改(flow mods)进行交互和对统计数据进行收集的消息结构,定义了一个交换机(端口,流表)的基本结构,支持多表(multiple table),对动作执行进行暂存以及元数据传递功能,最终在交换机内穿件了逻辑的流水线(pipeline)处理,用于处理流程。

  (2)配置与管理协议 of-config,基于NETCONF来给特定的控制器分配物理的交换机端口,并定义高可用性和控制器连接失败时的行为。

匹配字段:

              —————————————————————————————————————

                            |       Ethernet             |      VLAN          |                          IP              |    TCP/UDP    |

             入口端   |---------------------------|-------------------|-------------------------------- |------------------- |

                            |  SA  |  DA   |  Type    |   ID | Pirority   |     SA  | DA |  Proto | Tos  |   Src   |    Dst  |

             -----------------------------------------------------------------------------------------------------------------


转发动作:()中内容为预留端口介绍

                   ALL

                   CONTROLLER(允许转发分组的流规则(通过控制通道)从数据转发路径转发数据分组到控制器,启动PACKET_IN和PACKET_OUT行为 )

                   LOCAL(仅用于出端口,允许OpenFlow应用程序访问网元设备的主机操作系统的端口来访问进程)

                  TABLE

                  IN_PORT

                  NORMAL(仅用于出端口,允许交换机像传统以太网交换机那样运作,仅在混合交换机受支持)

                  FLOOD(用于出端口,使用网元设备的复制引擎把数据分组发送到所有标准端口,与All不同,ALL包含入端口.LLDP常采用FLOOD端口作为其输出端口)

                  放入队列(Enqueue)

                  修改字段

转发提供两种模式:主动模式:控制平面先于需求放置转发表项。

                                   被动模式:收到的表不能与现有的流表项匹配,运行者有两种选择,丢弃或使用PACKET_IN来决定,已创建适应这些数据分组的流表项。

控制器通道可以采用TCP,UDP,TLS,DTLS

0 0
原创粉丝点击