OpenFlow交换机中的流表与传统交换机的转发表有啥不同?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenFlow交换机中的流表与传统交换机的转发表有啥不同?相关的知识,希望对你有一定的参考价值。

传统交换机使用Mac地址进行转发,而OpenFlow交换机使用流标签进行数据转发。后者更加智能,转发速率更快。 参考技术A penFlow交换机分为:纯of交换机(of-only)和支持of交换机(of-enable)。前者仅需要支持必备行动,后者还可以支持NORMAL(NORMAL 指按照传统交换机的2 层或3 层进行转发处理)行动,同时,双方都可已支持泛洪行动(Flood Action)。 参考技术B 回答

OpenFlow交换机分为:纯of交换机(of-only)和支持of交换机(of-enable)。前者仅需要支持必备行动,后者还可以支持NORMAL(NORMAL 指按照传统交换机的2 层或3 层进行转发处理)行动,同时,双方都可已支持泛洪行动(Flood Action)。OpenFlow交换机由FlowTable(流表)、SecureChannel(安全通道)和OpenFlowProtocol(协议)三部分组成。OpenFlow交换机是整个OpenFlow网络的核心部件,主要管理数据层的转发。OpenFlow协议支持三种信息类型:Controller-to-Switch,Asynchronous和Symmetric,每一个类型都有多个子类型。流表:交换机中的流表,用于进行包查找和转发。每个表项包括三个域,包头域(header field),计数器(counters),行动(actions)。传统网络设备中,交换机和路由器的数据转发需要依赖设备中保存的二层MAC地址转发表或者三层IP地址路由表,而OpenFlow交换机中使用的流表也是如此,不过在它的表项中整合了网络中第二层至第四层的网络配置信息,从而在进行数据转发时可以使用更丰富的规则。流表中包头域包括12 个域(元组),包括:进入接口,Ethernet 源地址、目标地址、类型,vlan id,vlan 优先级,IP 源地址、目标地址、协议、IP ToS 位,TCP/UDP 目标端口。每一个元组中的数值可以是一个确定的值或者是“ANY”以支持对任意值的匹配。计数器:流表中计数器可以针对每张表、每个流、每个端口、每个队列来维护。用来统计流量的一些信息,例如活动表项、查找次数、发送包数等。统计信息所需要的计数器在表格 2-4 中给出信息,例如活动表项、查找次数、发送包数等。行动:必备行动和可选行动

提问

这不是流表的介绍吗,我问的是流表和转发表的区别

回答

稍等亲我在帮您看看

提问

还没好吗

回答

稍等亲在帮您整理

所谓流表,其实可被视作是OpenFlow对网络设备的数据转发功能的一种抽象。在传统网络设备中,交换机和路由器的数据转发需要依赖设备中保存的二层MAC地址转发表或者三层IP地址路由表,而OpenFlow交换机中使用的流表也是如此,不过在它的表项中整合了网络中各个层次的网络配置信息,从而在进行数据转发时可以使用更丰富的规则。转发表表中数据往往被存储在一个ASIC专用集成电路中,这使得设备在表中进行数据查询时,可以实现相当高的速度。当然,表空间是有限的,因此,大型网络中要关注设备的路由表规模,在保证数据可达的前提下,通过各种机制及手段来减小设备路由表的规模。

亲为您找到这些

提问

好的,

谢谢

回答

不客气亲

如果对您有帮助还请给个赞谢谢亲

提问

还有个问题,不好意思,打扰了,

回答

亲您说

提问

传统交换机转发表的组成

回答

我帮您看看稍等亲

1) 转发表(fib_table)是记录IP转发信息的索引表, 转发表的每一记录(节点)描述了具有某一类目的地址的IP包应该使用哪一输出设备发给哪一目的主机. 转发表记录按网络区进行分类, 每一网络区描述了在特定网络地址位长下具有不同网络号的目的地址的转发信息. 第0区的网络地址位长为0, 与所有的IP地址都匹配, 用来描述缺省网关, 第32区的网络地址位长为32, 用来与完整的IP地址匹配. 在建立网络区时, 它们按网络地址位长从大到小的顺序排列, 在搜索IP地址时, 先从全主机地址的第32区开始匹配, 最后第0区与所有的地址都匹配, 产生缺省网关.

软件定义网络基础---OpenFlow流表

一:流表

(一)流的概念

我们把同一时间经过同一网络中,具有某种共同特征或属性的数据,抽象为一个流
比如:我们将访问同一个地址的数据视为一个流
流一般是由网络管理员定义的,可以根据不同的流执行不同的策略,
在OpenFlow中,数据都是作为流进行处理的。
所以流表就是针对特定流的策略表项的集合,负责数据包的查找和转发
一张流表包含了一系列的流表项flow entries

技术图片

(二)流表项组成 (包头域、计数器、动作表3个)

技术图片

技术图片

(三)包头域

技术图片

技术图片

(四)计数器 

 技术图片

 (五)动作表

动作表用于指示交换机,在收到匹配的数据包后应该如何进行处理

技术图片

动作分类

技术图片

OpenFlow端口类型 

动作转发,与交换机的端口直接相关。OpenFlow交换机的端口是交换机传递数据包的网络接口。
交换机通过接口和其他交换机建立逻辑连接

技术图片

物理端口、逻辑端口不做介绍

技术图片

技术图片

流表动作列表 

技术图片

二:数据包

(一)数据包的处理流程

技术图片

其中匹配表按照优先级进行排序,从高到低
如果匹配成功,对应计数器进行更新并去执行相应动作
如果表项没有对应的动作执行,则数据包将会被丢弃
如果没有找到匹配的表项,则封装数据包转发给控制器

技术图片

(二)包头解析匹配流程

包头解析是为了得到数据分组的12元组(包头域)

技术图片

1.初始化包头
2.根据以太网类型得到VLAN或三层IP的信息
3.根据IP分组头中的协议类型,确定是TCP/UDP/ICMP协议
4.得到四层的TCP/UDP的源目的端口号或者ICMP类型和编码

三:后续版本的变化

(一)流表项结构的变化

技术图片

(二)1.3版本中的组表和计量表 

 技术图片

 技术图片

以上是关于OpenFlow交换机中的流表与传统交换机的转发表有啥不同?的主要内容,如果未能解决你的问题,请参考以下文章

关于OpenFlow协议

ovs tag

OpenFlow协议简单介绍

ovs源码阅读--流表查询原理

OpenFlow协议(OVS)

Floodlight下发流表过程分析