(三)OpenFlow协议

OpenFlow协议是基于网络中“流”的概念设计的南向接口协议。在OpenFlow引入了“流”的概念之后,控制器可以根据某次通信中“流”的第一个数据分组的特征,使用OpenFlow协议提供的接口对数据平面设备部署策略——流表,而这次通信的后续流量则按照相应流表在硬件层次上进行匹配、转发,从而实现了灵活的网络转发策略。

OF交换机是利用基于安全连接的OpenFlow协议与控制器通信。流表是一些针对特定流的策略表项的集合,负责数据分组的查询和转发。OF交换机通过安全通道与控制器相连,安全通道上传输的就是OpenFlow协议消息,负责控制器和交换机的交互。

流表项的结构如下图所示,其主要由三部分组成,分别是用于数据分组匹配的分组头域,用于统计流表项匹配情况的计数器,还有匹配表项对数据分组执行的动作表。

这里写图片描述
分组头域是数据分组匹配流表项时参照的依据。流表项的分组头域包括了12个字段,协议称其为12元组,它提供了1~4组层的网络控制信息。具体信息介绍见表3-1。
这里写图片描述
OpenFlow v1.0中的12元组

这里写图片描述

计数器是用来统计相关流的一些信息。OpenFlow针对每张表、每个流表项、每个端口、每个队列都维护它们相应的技术其,如表3-2所示
这里写图片描述这里写图片描述

动作表指定了OF交换机处理相应“流”的行为。动作表可以包含0个或多个动作,交换机会按照这些动作的先后顺序依次执行。动作可以分为两种类型:必选动作和可选动作,必选动作是默认支持的,而交换机需要通知控制器它支持的可选动作,当流表中存在OF交换机不支持的动作时将向控制器返回错误信息。具体动作见表3-3。交换机根据支持的动作类型不同,可分为OpenFlow专用交换机,另一类是支持OpenFlow交换机。前者不支持使用NORMAL端口对数据分组按照传统二、三层策略转发,后者则可以运行传统的二三层协议对特定的“流”进行处理。

这里写图片描述这里写图片描述

流表匹配的整个流程如下图3-3所示。
这里写图片描述
图3-3 OpenFlow中流表的匹配过程

数据分组头解析流程如下图3-4所示。
这里写图片描述

        图3-5   OpenFlow 对数据分组头的解析流程

OF交换机对控制器下发的流表项的匹配顺序进行了优化,分组头域中确定的字段越多,就代表精度越高,应该优先传输。

流表是OF交换机上对数据转发逻辑的抽象,是交换机进行转发策略控制的核心数据结构,交换芯片通过查找流表项对进入交换机的网络流量进行决策并执行合适的动作。

OpenFlow安全通道承载着OpenFLow协议的消息。OpenF控制器开启TCP的6633端口等待交换机的连接,为了保证安全性,每个交换机至少需要配置两个证书(一个用来认证控制器,一个用来向控制器发出认证),并通过交换证书来进行认证。当认证通过后,双方发送带有支持最高协议版本号的消息,接收方将采用双方所支持的最低协议版本进行通信,然后建立安全通道;否则发送错误消息,描述失败原因,并终止连接。

openFLow安全通道建立后,交换机与控制器通过消息协商一些参数,并定时交换一些“保活”的信息来维持连接。当连接异常,多次尝试均失败后,交换机将进入紧急模式,并会重置所有的TCP连接,分组将匹配指定的紧急模式表项,其他所有表项被删除。当交换机刚启动时,默认进入紧急模式。

OpenFLow协议支持3种消息类型:Control-to-Switch、Asynchronous和Symmetric。
OpenFLow协议的演进过程如下图3-6所示。
这里写图片描述

    图3-6     OpenFlow协议发布时间线

数据分组进入流水线后的处理流程如下图3-7所示,流水线处理总是从优先级最高的流表Table0开始,根据某个流表进行处理时,将数据分组各个字段与各流表项中的匹配域对照,若匹配某流表项,则该流表项中指令集被执行。当新的流表不存在匹配项时会上交给控制器,或者匹配到不包括GOTO指令的表项立即执行相关的动作集。上述两种情况都视为流水线匹配结束。流水线处理只能前进,不能后退。
这里写图片描述
图3-7 流水线对数据分组的处理流程

水线匹配数据分组的优点:
1)通过提取流表项的特征形成流水线,降低了总的流表数目,提高了匹配的效率;
2)这种匹配的过程分解成多个步骤的处理方式,使得处理的逻辑变得更加清晰,允许控制平面根据网络算法分步实现对数据平面策略的部署,增强了SDN的可操作性。

OpenFlow协议面临的问题:
1)协议类型尚不完善
2)控制平面的安全性与扩展性问题
3)数据平面的设备性能问题

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值