2.交换机元素 OpenFlow1.5核心概念翻译与理解-OpenFlow1.5中文版

来源:互联网 发布:网络诈骗图片大全 编辑:程序博客网 时间:2024/06/06 03:38
2.交换机元素
一个OpenFlow交换机包含多个流表(flow table)与一个组表(group table),他们完成封包匹配与转发的功能;同时还包含于控制器相连的信道(见Figure 1)。交换机与控制器之间的通信交互都是通过OpenFlow协议来完成的。
借助OpenFlow协议,控制器可以增加更新以及删除流表中的流表项(flow entry),包含主动与被动两种模式。交换机上的每个流表都是一个流表项的集合,流表项由匹配域计数器指令集组成。
封包匹配从第一个流表开始,且可能会跳转到流水线(pipeline)上的下一个流表上继续匹配(见5.1)。流表的匹配是有优先级的,通常会执行第一个匹配到的流表项(见5.3)。匹配到一个流表项后,控制器会执行与该流表项相关的指令(见5.5)。如果没有找到匹配的流表项,控制器就会执行配置的默认缺省规则,例如,将封包转发给控制器,丢弃封包或者可能会把封包转发给下一跳的流表(见5.4)。
流表项上的指令不是包含动作就是修改流水线处理封包的过程。动作包含封包转发,封包修改还有组表处理。流水线处理指令使得封包可以送到随后的流表中进行进一步处理,让信息以环境变量的形式在流表之间沟通。当匹配到的流表项没有指明跳转下一个流表时,流水线停止运作,此时封包通常会被修改或转发(见5.6)。
流表项的动作可能将封包转发至端口,通常情况下是交换机上的物理端口,也有可能是交换机上定义的逻辑端口或是本文中定义的保留端口(见4.4)。保留端口指明通用的转发规则,如:转发给控制器,使用非OpenFlow方式转发,泛洪,诸如普通的物理端口一样的处理功能(见4.5)。交换机定义的逻辑端口制定了链路聚合组,隧道或者是回环接口。
流表项上的动作也可能将封包导向一个组,组中包含对封包的额外处理。组代表了一个动作集,用于泛洪和更复杂的转发语义(如多径,快速重构路由,链路聚合)。作为通用的间接层,可以将多个流表项导向同一个组(如:多个IP封包转发到相同的下一跳)。这种抽象能动达到快速有效率地修改跨流表项的共同的输出动作。
组表中包含了组项(group entries)。每个组项包含了一系列的动作桶,依赖于不同的组类型动作桶里有不同的语义(见5.10.1)。封包送达到组后,将会执行组里的动作。
在保证匹配和指令语义正确的前提下,交换机设计者们可以使用任何方法来实现这些特性。例如,一个流表项可能会使用“all”组将封包组播给多个端口,这时交换机设计者就可以选择一个硬件的端口掩码来让硬件进行组播。又如,可以通过不同数字的硬件表来实现OpenFlow交换机的流表匹配。
0 0
原创粉丝点击