OpenFlow Switch

The picture of OpenFlow Switch

在这里插入图片描述
openflow 架构分为2层,一个是控制器层,一个是switch 层。中间是由openflow protocal进行连接的,负责传输指令与数据。switch分为3大块,第一是openflow channe,他是负责向控制器传输数据集和指令。第二是group table,第三是pipeline, 其中pipeline是flowtable的集合。

openflow 流程

一个OpenFlow Switch内包含了一个或多个Flow Tables,以及一个Group Table,而每个Flow Table均包括下面几项 Flow Entry:1)Match Fields,2)Priority,3)Counters,4)Instructions Set。

当数据包进入到OpenFlow Switch后,首先会从Pipeline的第一个Flow Table开始根据每条Flow Entry的Match Fields项依据其Priority进行match,如果match成功,则会执行Instructions Set里的Actions,这些Actions或者是forward到某个port,或者是drop掉数据包,或者是跳转到指定的后续Flow Table继续match,或者是跳转到Group Table里处理;假若在(或者说后续的)Flow Table里没有发现能够match成功,或者match成功但是没有指定具体Action的数据包,其处理行为依赖于配置选项:1)要么通过OpenFlow Channel将其发送回Remote Controller,2)要么直接drop掉,3)要么将其继续流转到后续的Flow Table继续进行match。

每个Flow Entry的Instructions Set里大致包括这么几个Action:1)Forwarding,或者说转发到某个port出去,2)Packet Modification,修改数据包的一些头信息,3)流转到Group Table里去继续处理,4)继续交由Pipeline中后续的Flow Table处理,在进行Pipeline processing的时候,相邻两个Flow Table之间可以以metadata的方式进行数据传输。

当某个Flow Entry的Action是将该数据包直接forward到某个port时,这个port或者是物理port,或者是OpenFlow Switch定义的逻辑port,或者是OpenFlow Switch预留的Reserved port。Reserved port主要是用于OpenFlow Switch将数据包发送给Remote Controller,或者进行flooding等等一些其他非OpenFlow Switch规范的操作,而逻辑port主要是用于link aggregation、tunnels、loopback interface等等。

而每个Group Table包含了多个Group Entries,每个Group Entry又包含了一系列依赖于Group Type的Action Buckets,这些Action Buckets里的所有Actions将会全部应用到流转到Group Table里的数据包。

参考文献:https://www.cnblogs.com/CasonChan/p/4613812.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值