首页 > 编程知识 正文

openflow协议,openflow流表中不包含的信息

时间:2023-05-06 02:42:54 阅读:260377 作者:1588

OpenFlow概述

OpenFlow即

Ethane项目:OpenFlow的前身(集中式,主动式,基于Flow的控制)

OpenFlow定义了开放的南向接口、通用转发抽象模型、网络x86指令集。  

传统网络数据平面:

固定的模块,不可改变

通用转发抽象模型:

以流表的形式传输,把所有的转发数据抽象成通用的形式。 

 

 

OpenFlow通用抽象 

术语:

Match是指匹配域,类似于传统网络中的MAC地址,IP地址,端口号的作用。

OpenFlowSwitch定义了通用转发抽象模型:

                   早期的版本                                                                                          1.5后的版本

FlowTable处理流程一览:

多级流表处理:

FlowTable流表子模型:

FlowEntry流表项:

 匹配域中的内容:

OXM是它的类型分为0和1;0是标准类型,1是下面的格式。

OXM的TLV匹配域描述(type、length、value):

OXM TLV的基本结构 :

掩码标志相当于ip地址的掩码;载荷长度定义了TLV这四个头的长度。

OXM实例-无掩码目的以太网地址:

14=4+4+4+2  填充字节不算

 带掩码

Instructions流表项指令:

Actions包处理动作:

ActionsSet包处理动作集合:

执行顺序默认从上到下,也可自定义顺序

TableMiss专用指令:

假如一个新的数据包出现,上面所有的流选项都没有匹配到,那么就和TableMiss匹配,否则该数据包会被丢弃。

该选项可以匹配任意的数据包,并且它的优先级为0

流表项计数器与失效时间:

FlowTable详细处理流程:

Metadata一开始在流表0时为空;数据包若匹配后直接执行则ActionsSet{}无特定操作

OpenFlow SwitchV1.5:

GroupTable组表:

向一组端口做特定的一组操作 

GroupEntry组表项:

组表箱类型:

MeterTable计量表:

MeterEntry计量表项:

计量带--制定这条计量表项该如何处理这个数据包

MeterBands计量带:

Ports端口抽象子模型:

Counters计时器子模型:

OpenFlow通用转发抽象模型:

 

 

OpenFlow协议

 

OpenFlow消息:

异步即交换机主动发送给控制器;

对称即交换机与控制器互相发送消息;

CtoS消息:

 异步消息:

对称消息:

OpenFlow消息格式:

xid定义消息传输的唯一ID

Hello消息:

Switch features消息:

Switch消息:

FlowEntryMod消息

GroupEntryMod消息:

Multipart消息:

Packet-out消息:

用于控制器往交换机发送一个数据包。控制器定义了一个数据包之后通过Packet-out方式把这个数据包发送给交换机,让交换机做一定的处理。

Packet-in消息:

使得OpenFlow交换机可以把数据包发送给控制器

FlowRemoved消息:

失效时间到时交换机会把某条流表项删除

OF通道建立与维护:

控制器角色通知:

控制器1是默认的主控制器,其他两个控制器作为备份控制器。

流表项下发:

状态查询和收集:

OpenFlow相关的协议:

OF-Config:OpenFlow交换机配置协议

OVS-DB:针对OVS的数据库管理协议

OpFlex:思科私有的协议,控制控制器与数据平面设备之间的数据传输

NETCONF:网络的配置协议

 

 

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。