当前位置: 首页 > 工具软件 > OpenFlow > 使用案例 >

OpenFlow学习笔记(二)——OpenFlow1.1

商琛
2023-12-01

0x01 OpenFlow1.1中的要点变更

OpenFlow1.1中添加了多流表处理和组表等新概念。

0x02 匹配字段的变更

OpenFlow 1.0中“头字段”变更为OpenFlow 1.1中的“匹配字段”。

此外,在匹配字段中新添加了MPLS标签、MPLS流量类别、元数据等3个字段。

0x03 多流表规范的变更(流水线处理)

OpenFlow 1.1开始,交换机中可以设置多个流表,还可以为一个数据包匹配多个流表项,即“可以将多个流表中分别记载的流表项应用到数据包中”。

3.1 流水线处理

在各表中的处理如下:

  • 1)在流表内发现要进行匹配的优先级最高的流表项。
  • 2)执行流表项中描述的指令:变更数据包,更新匹配的字段(应用行动的指令),更新行动集(清除行动and/or书写行动指令),更新元数据。
  • 3)将匹配数据和行动集发送到下一流表中

行动集,匹配前为空,在流水线处理过程中将行动添加到行动集中。

3.2 元数据

元数据可以在多个流表间传递信息(规范并未限定用途)。

0x04 指令

流表构成要素由“头域,计数器,行动”变为“匹配字段,计数器,指令”。

指令是对于流表项匹配的数据包所执行的命令,提供了执行行动、在之后批量执行的行动集中追加及删除行动、写入元数据等功能。

0x05 组

一个抽象化的概念,可将多个端口作为“组”进行处理。组对应的行动可以通过“Group行动”指定对象组ID号来执行。

组表项有要素:组ID,组类型,计数器,行动桶。

0x06 虚拟端口的扩展

OpenFlow1.1开始,虚拟端口的定义进行了扩展,LAG(链路聚合组)、隧道(Tunnel)和环回接口(Loopback Interface)都作为虚拟端口进行处理。也可以指定虚拟端口为Output行动中的数据包发射的目的地。

ALL、CONTROLLER、LOCAL、TABLE、NORMAL、IN_PORT、FLOOD等这些OpenFlow1.0中称为“虚拟端口”的项,已经更名为“根据规范保留的虚拟端口”。

0x07 TTL字段操作

OpenFlow1.1开始就能够谁IPv4头的TTL字段进行操作了,也可以对MPLS头的TTL字段进行操作。操作包括在TTL中设置任意数值的行动和将TTL减1的行动。还可以将位于没车的TTL字段数值复制到外侧和外侧的数值复制到内侧。

虽然可以进行TTL字段的操作,但是不能对TTL字段进行匹配。

0x08 其他变更

8.1 支持MPLS标签和VLAN标签的Push/Pop

可以实现VLAN标签的添加、删除、变更,从而可以在多级中处理VLAN标签,也可以实施QinQ。

可以实现MPLS shim头的添加、删除、变更。

8.2 Strip VLAN行动的废止和Set VLAN ID的规范变更

由于添加了标签的Push/Pop行动,Strip VLAN行动的废止。

Set VLAN ID行动不再在VLAN ID存在时变更VLAN ID,而是将变更最外侧的VALN标签的VALN ID。

8.3 OpenFlow混合交换机

OpenFlow1.1定义了间距OpenFlow和通常L2交换机功能的OpenFlow混合交换机。

8.4 支持SCTP

8.5 支持ECN

增加了能够进行用于ECN的2位操作的行动。

8.6 OpenFlow交换机与控制器之间连接名称的变更

由安全通道变为OpenFlow通道。由使用TLS进行加密变为使用TLS加密或使用TCP报文进行连接。

8.7 紧急事态流缓存的取消

8.8 Vendor消息名称的变更

变更为Experimenter消息。

参考自《图解OpenFlow》
转载请注明出处

 类似资料: