• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

17-OpenFlow配置指导

目录

01-OpenFlow配置

本章节下载 01-OpenFlow配置  (324.02 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S12500/S12500/Configure/Operation_Manual/H3C_S12500_CG-R7374-6W732/17/201505/868988_30005_0.htm

01-OpenFlow配置


1 OpenFlow

·     设备支持两种运行模式:独立运行模式和IRF模式,缺省情况为独立运行模式。有关IRF模式的介绍,请参见“虚拟化技术配置指导”中的“IRF”。

·     设备工作在标准模式或二层增强模式时,如果设备运行在IRF模式并开启IRF增强功能,则设备不支持OpenFlow功能。有关于设备工作模式的详细介绍请参见“基础配置指导”中的“设备管理”; 有关IRF增强功能的介绍,请参见“虚拟化技术配置指导”中的“IRF”。

1.1  OpenFlow简介

1.1.1  OpenFlow概述

OpenFlow是SDN(Software Defined Network,软件定义网络)架构中定义的一个控制器与转发层之间的通信接口标准。OpenFlow允许控制器直接访问和操作网络设备的转发平面,这些网络设备可能是物理上的,也可能是虚拟的。

OpenFlow的思想是分离控制平面和数据平面,二者之间使用标准的协议通信;数据平面采用基于流的方式进行转发。

OpenFlow网络由OpenFlow网络设备(Switch)和控制器(Controller)通过安全通道(OpenFlow channel)组成,如图1-1所示。Switch与Controller通过TLS或者TCP建立安全通道,进行OpenFlow消息交互,实现表项下发、查询以及状态上报等功能。下文如果没有特殊说明,交换机指的就是OpenFlow设备。

图1-1 OpenFlow网络组成

 

1.1.2  基本概念

1. Switch类型

OpenFlow Switch有下面两种:

·     OpenFlow-Only Switch:仅支持OpenFlow转发。

·     OpenFlow-Hybrid Switch:既支持OpenFlow转发,也支持正常转发。S12500即属于OpenFlow-Hybrid Switch类型。

2. OpenFlow接口

OpenFlow接口有下面三类。

·     物理接口:比如交换机的二层以太网接口等。可以作为入接口和出接口。

·     逻辑接口:比如二层聚合接口等。可以作为入接口和出接口。

·     保留接口:由转发动作定义的接口,实现OpenFlow转发功能。除Any接口外,其他接口仅可以作为出接口。具体类型请参见表1-1

表1-1 保留接口说明

类型

说明

ALL

报文从所有接口发送

Controller

报文上送控制器

Table

报文重新进入流表进行匹配

In Port

报文从入接口转发

Any

接口通配描述,不能作为入接口以及出接口

Local

报文上送本地CPU

Normal

报文正常转发

Flood

报文广播发送

 

1.1.3  OpenFlow实例

OpenFlow支持多实例,S12500在独立运行模式或IRF模式下都最多仅支持配置64个实例。每个OpenFlow实例可以单独连接控制器(一个OpenFlow实例最多可以连接64个控制器),相当于一台独立的OpenFlow设备,根据控制器下发的流表项指导流量转发。下文如果没有特殊说明,交换机指的就是一个OpenFlow实例。

说明

S12500在独立运行模式或IRF模式下允许的最大连接数为128,即一台整机上所有OpenFlow实例连接控制器个数总和的最大值不允许超过128。

 

1. 实例划分

划分实例的作用范围,在实例的作用范围内,流量转发遵循流表中定义的规则。

2. 实例激活

OpenFlow需要将设备的支持能力、当前的接口信息等设备信息上报给控制器后,控制器才能够下发流表项指导转发。

在配置更改的情况下,需要重新激活实例使配置生效。激活配置后,OpenFlow实例会与所有控制器断开连接,然后重新进行连接。

3. 实例所属接口

OpenFlow协议规定需要将接口信息上报给控制器,这些接口包括物理接口、逻辑接口以及保留接口中的Local。

对于通过VLAN划分作用范围的OpenFlow实例:

·     非Loosen模式:当且仅当接口所属VLAN完全包含了OpenFlow实例配置的映射VLAN后,该接口才是此OpenFlow实例的接口,可以被交换机上报给控制器。

·     Loosen模式:如果配置了loosen模式,只要接口所在VLAN与实例配置的映射VLAN存在交集,该接口就属于OpenFlow实例。

1.1.4  Flow Table

OpenFlow通过流表(Flow Table)来匹配和处理报文,每个流表由一个或多个流表项(Flow Entry)组成,在同一个流表中按流表项的优先级进行先后匹配。

流表分为两种类型:

·     MAC-IP流表:通过MAC地址表和FIB表实现。只能匹配目的MAC地址、VLAN以及目的IP地址,动作也仅支持修改目的MAC地址、源MAC地址、VLAN以及指定出接口。

·     Extensibility流表:即扩展流表。可以匹配报文的源MAC地址、目的MAC地址、源IP地址、目的IP地址、报文优先级、TCP源端口、TCP目的端口等。

需要注意的是,目前S12500的一个OpenFlow实例仅支持配置1Extensibility流表,MAC-IP流表暂不支持。

1. 流表项结构

一条OpenFlow流表项的结构如图1-2所示。

图1-2 流表项结构

 

·     Match Fields:匹配规则。可以匹配入接口、报文头等字段。

·     Priority:优先级。定义流表项之间的匹配顺序,优先级高的先匹配。

·     Counters:统计计数。统计有多少个报文或字节匹配到该流表项。

说明

·     目前S12500的流表项是基于报文进行统计计数的,且上送控制器的报文不支持统计。

·     当流表项的动作指令集中包含Meter动作指令时,不支持对匹配该流表项的报文进行统计。

 

·     Instructions:动作指令集。定义匹配到该流表项的报文需要进行的处理。一个流表项的动作指令集可以包含表1-2中的一个或者多个动作指令,包含多个动作指令时按照表1-2从上到下的先后顺序执行。动作指令是对匹配该流表项的报文的动作集(Action Set)进行的操作,动作集是对报文进行操作的动作(如转发报文、修改报文等)的集合,一个动作集中可以包含多个动作,但每种动作仅能存在一个。

表1-2 动作指令集定义

Instruction

处理

Meter

对匹配到流表项的报文进行限速

Apply-Actions

立即执行动作集中的动作

Clear-Actions

清除动作集中的所有动作

Write-Actions

更改动作集中的所有动作

·     Timeouts:超时时间。包括了idle time和hard time。

¡     idle time:在idle time时间内,如果没有报文匹配到该流表项,则在idle time超时后删除此流表项;如果有报文匹配到该流表项,则刷新idle time(上送控制器的报文即使匹配了流表项,也不会更新该表项的idle time)。

¡     hard time:在hard time时间超时后,无论是否有报文匹配到该流表项,此流表项都会被删除。

提示

·     为了更好的查询、下发流表,建议idle time时间配置为不小于60s的数值;当设备上OpenFlow流表总数较多时(比如大于>1k),建议idle time时间配置为300s或以上。具体如何设置idle time请参见《H3C VCF控制器联机帮助》。

·     您可以通过命令display openflow summary查看设备上的流表个数。

 

·     Cookie:控制器下发的流表项的标识。

2. 流表处理流程

下文介绍的流表处理流程,仅针对1个OpenFlow实例而言,并非针对整台物理设备。由于目前在S12500上一个OpenFlow实例仅包含1个流表,因此不存在多个流表的处理过程。

如果一个OpenFlow实例内包含多个流表,那么报文匹配流表的处理流程如图1-3所示,报文进入交换机后,将从流表ID最小的流表开始,按照流表编号从小到大依次匹配,在同一流表中按流表项的优先级进行先后匹配,如果匹配表项成功,则根据流表项中的动作指令集进行相应操作(比如更改动作集中的动作、清除动作集中的动作等),同时更新计数器。当报文通过最后一个流表时,该报文对应动作集中的所有动作都将被执行(比如转发至某一端口、修改报文某一字段或丢弃报文等)。

图1-3 OpenFlow转发示意图

 

3. Table Miss表项

每个流表都包含一个Table Miss流表项,该表项用于定义在流表中没有匹配的报文的处理方式,该表项的匹配域为通配,即匹配任何报文,优先级为0,表项结构与普通表项相同,支持的动作指令集也和普通表项相同。

1.1.5  Group Table

Group Table由Group表项组成,Group表项被流表项所引用,提供额外的报文转发功能。

图1-4 Group表项结构

 

·     Group Identifier:Group ID,用于识别Group,32bits。

·     Group Type:Group类型。

¡     All:执行所有动作桶,用于组播或者广播。

¡     Select:自动选择一个动作桶执行。

¡     Indirect:始终执行固定的动作桶。

¡     Fast failover:始终执行第一个活跃的动作桶。

·     Counters:当报文被Group处理时,更新计数器。目前S12500暂不支持组表的统计计数功能。

·     Action Buckets:一个由动作桶组成的有序列表。每个动作桶由许多动作组成。

1.1.6  Meter Table

Meter Table由Meter表项组成,Meter表项被流表项所引用,为所有引用Meter表项的流表项提供报文限速的功能。

图1-5 Meter表项结构

 

·     Meter Identifier:Meter ID,用于识别meter,32bits。

·     Meter Band:定义了速率以及动作。当报文的速率超过了Meter Band,根据定义的动作进行处理。

·     Counters:当报文被Meter处理时,更新计数器。

图1-6 Meter Band结构

 

·     Band Type:Band类型,定义报文如何处理。超过Band定义速率的报文会被丢弃。

·     Rate:报文速率高于该速率,该Band将被应用。

·     Counters:当Band处理报文时,更新计数器。目前S12500的Meter Band是基于字节进行统计计数的。

·     Type Specific arguments:某些Band含有的特定参数。

1.1.7  协议规范

·     OpenFlow Switch Specification Version 1.3.1

1.2  OpenFlow配置任务简介

表1-3 OpenFlow配置任务简介

配置任务

说明

详细配置

配置OpenFlow实例

创建OpenFlow实例

必选

1.3.1 

配置OpenFlow实例的基本能力

配置实例作用域

必选

1.3.2  1.

配置流表ID

可选

1.3.2  2.

配置控制器模式

可选

1.3.2  3.

配置Extensibility表的流表项的最大个数

可选

1.3.2  4.

配置带内管理VLAN

可选

1.3.2  5.

配置禁止MAC地址学习

可选

1.3.2  6.

配置Datapath ID

可选

1.3.2  7.

激活OpenFlow实例

必选

1.3.3 

配置连接控制器

配置主连接

必选

1.4.1 

配置连接中断模式

可选

1.4.2 

配置OpenFlow定时器

可选

1.5 

 

1.3  配置OpenFlow实例

1.3.1  创建OpenFlow实例

表1-4 创建OpenFlow实例

操作

命令

说明

进入系统视图

system-view

-

创建OpenFlow实例,并进入OpenFlow实例视图

openflow instance instance-id

缺省情况下,没有配置OpenFlow实例

(可选)配置OpenFlow实例描述

description text

缺省情况下,没有配置OpenFlow实例的描述信息

 

1.3.2  配置OpenFlow实例的基本能力

下面配置用于定义OpenFlow实例的基本能力,交换机在与控制器建立连接后会上报这些基本能力,控制器根据这些能力下发表项。

1. 配置OpenFlow实例作用域

OpenFlow实例通过配置的对应VLAN来隔离OpenFlow作用域,配置VLAN内的流量根据OpenFlow流表项转发,其它VLAN内的流量进行正常转发。

·     如果OpenFlow实例的对应VLAN不存在,在激活实例后,不存在的VLAN会自动创建。

·     如果同一个接口所属VLAN被分配到不同OpenFlow实例,该接口上的配置以最后收到的控制器下发的接口状态修改消息为准。

·     在IRF模式下,如果为OpenFlow实例的对应VLAN创建了VLAN接口,为了确保IRF成员设备间的流量能够正常转发,请不要在该VLAN接口上配置BFD MAD检测功能。BFD MAD检测功能的相关内容请参见“虚拟化技术配置指导”中的“IRF”。

 

表1-5 配置OpenFlow实例作用域

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

配置OpenFlow实例作用域

classification vlan vlan-id [ mask vlan-mask ] [ loosen ]

缺省情况下,没有配置OpenFlow实例作用域

 

2. 配置流表ID

表1-6 配置流表ID

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

配置流表ID

flow-table extensibility table-id

缺省情况下,实例包含了一个Extensibility流表,流表ID0

一个OpenFlow实例只支持配置一个Extensibility表,如果多次配置本命令,新配置将覆盖旧配置,重新激活实例后新配置生效

 

3. 配置控制器模式

OpenFlow实例支持两种模式与多个控制器建立连接。

·     Single模式:同一时刻,仅与一个控制器建立连接,配置的多个控制器之间互为备份。当且仅当当前的连接断开后,交换机会连接下一个控制器,直到连接成功。

·     Multiple模式:同一时刻,允许与多个控制器建立连接。交换机会连接配置的所有控制器,在与某个控制器连接失败或者断开连接后,在重连时间间隔后重新与之进行连接,直到连接成功。

表1-7 配置控制器模式

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

配置实例内的多个控制器的连接模式

controller mode { multiple | single }

缺省情况下,连接模式为Multiple

 

4. 配置Extensibility表的流表项的最大个数

在OpenFlow实例中允许定义Extensibility流表支持的表项最大值,当控制器下发的流表表项个数超过最大值的时候,向控制器返回失败。

表1-8 配置Extensibility表的流表项的最大个数

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

配置Extensibility表的流表项的最大个数

flow-entry max-limit limit-value

Extensibility流表项的上限跟单板型号及ACL硬件模式有关,缺省情况请以设备实际显示的取值范围的最大值为准。ACL硬件模式的相关内容请参见“ACL和QoS配置指导”中的“ACL”。

 

5. 配置带内管理VLAN

带内管理VLAN是OpenFlow实例对应的VLAN中的一个或多个VLAN,可以用于在OpenFlow实例内建立该实例与控制器的连接。

OpenFlow实例对应的VLAN内的流量进行的是OpenFlow转发,不能用于和控制器建立连接。缺省情况下,OpenFlow实例仅能通过非OpenFlow实例对应VLAN的接口尝试与控制器建立连接。如果用户想配置OpenFlow实例通过其对应VLAN的接口与控制器建立连接,可以将该对应VLAN配置成带内管理VLAN。

配置带内管理VLAN后,带内管理VLAN中的数据报文不再进行OpenFlow转发,并且仅在带内管理VLAN中的端口不再属于OpenFlow接口。因此,进行该功能的配置前,请用户做好网络规划。

提示

带内管理VLAN中配置的VLAN必须是OpenFlow实例对应的VLAN的子集。

 

表1-9 配置带内管理VLAN

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

配置带内管理VLAN

in-band management vlan { vlan-id [ to vlan-id ] } &<1-10>

缺省情况下,没有配置带内管理VLAN

 

6. 配置禁止MAC地址学习

配置该功能后,OpenFlow实例对应的VLAN的MAC地址学习的功能被禁止。

提示

带内管理VLAN不受该功能限制。

 

表1-10 配置禁止MAC地址学习

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

配置禁止MAC地址学习

mac-learning forbidden

缺省情况下,实例配置的VLAN上允许MAC地址学习

 

7. 配置Datapath ID

Datapath ID用来唯一标识交换机(OpenFlow实例),不同交换机(OpenFlow实例)的Datapath ID如果配置相同,则首先激活实例的配置生效,其它相同Datapath ID的实例激活失败。

表1-11 配置Datapath ID

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

配置Datapath ID

datapath-id id

缺省情况下,OpenFlow实例的Datapath ID由实例ID与设备桥MAC组成,其中前16个比特为实例ID,后48个比特为设备桥MAC

 

1.3.3  激活OpenFlow实例

此功能用于激活实例。如果实例已经与控制器建立了连接,此时修改了实例基本能力配置并重新激活,交换机会断开与所有控制器的连接,清除已经下发的流表,根据当前的配置更新OpenFlow实例的能力集,重新与控制器建立连接。

注意

OpenFlow实例的基本能力配置修改并重新激活实例会导致流量中断,请谨慎使用。

 

表1-12 激活OpenFlow实例

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

激活OpenFlow实例

active instance

缺省情况下,未激活OpenFlow实例

 

1.4  配置连接控制器

1.4.1  配置主连接

一个OpenFlow实例可以连接多个控制器,但仅允许与每个控制器建立一个主连接,一般用于控制消息的处理(下发流表项、获取数据、信息上报等),需要使用TCP/SSL保持可靠的连接。

表1-13 配置主连接

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

配置主连接

controller controller-id address { ip ip-address | ipv6 ipv6-address } [ port port-number ] [ ssl ssl-policy-name ] [ vrf vrf-name ]

缺省情况下,没有配置主连接

S12500最多可以支持和64个控制器分别建立主连接

 

1.4.2  配置连接中断模式

一旦交换机与所有控制器断开连接,则交换机必须进入连接中断模式,模式分为两种:

·     Secure模式:连接断开后,交换机根据流表项转发。不主动删除控制器下发的表项,而是等待表项超时后进行删除,一旦连接建立成功,未超时的表项依然存在。

·     Standalone模式:连接断开后,交换机立即生成优先级为65536,出接口为Normal的流表项,数据匹配该流表项后进行普通转发。不主动删除控制器发的表项,而是等待表项超时后进行删除,一旦连接建立成功,未超时的表项依然存在。

如果交换机与控制器重新连接成功,则继续作为OpenFlow设备根据流表项进行转发。

表1-14 配置连接中断模式

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

配置连接中断模式

fail-open mode { secure | standalone }

缺省情况下,OpenFlow实例建立时,缺省为Secure模式,且为该实例下发Table Miss表项(动作为drop)

 

1.5  配置OpenFlow定时器

控制器和交换机都会发送Echo request/reply报文,用于验证连接是否正常。

连接检测定时器用来定义发送Echo request报文时间间隔,当超过三次Echo request报文发送并且没有收到Echo reply报文,则交换机与控制器的连接断开。

重连定时器用来定义OpenFlow实例与控制器断开连接后下次开始重新连接的时间。

表1-15 配置OpenFlow定时器

操作

命令

说明

进入系统视图

system-view

-

进入OpenFlow实例视图

openflow instance instance-id

-

配置连接检测定时器

controller echo-request interval interval-value

缺省情况下,发送Echo request报文的时间间隔为5秒

配置重连定时器

controller connect interval interval-value

缺省情况下,OpenFlow实例与控制器重连尝试的时间间隔为60秒

 

1.6  OpenFlow显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后OpenFlow的运行情况。

表1-16 OpenFlow显示和维护

操作

命令

显示OpenFlow实例的详细信息

display openflow instance [ instance-id ]

显示OpenFlow实例的流表信息

display openflow instance instance-id flow-table [ table-id ]

显示OpenFlow实例的控制器信息

display openflow instance instance-id controller [ controller-id ]

显示OpenFlow实例的Group信息

display openflow instance instance-id group [ group-id ]

显示OpenFlow实例的Meter信息

display openflow instance instance-id meter [ meter-id ]

显示OpenFlow实例的概要信息

display openflow summary

清除控制器发送和接收报文的统计计数

reset openflow instance instance-id controller [ controller-id ] statistics

 

1.7  OpenFlow典型配置举例

1. 组网需求

·     创建OpenFlow实例1,把VLAN 4092和4094映射到OpenFlow实例中1,并激活实例。

·     使用VLAN 1作为OpenFlow与控制器通信的VLAN。

·     配置OpenFlow实例1连接的控制器,用来控制Switch上的流量转发。

2. 组网图

图1-7 OpenFlow配置组网图

 

3. 配置步骤

(1)     配置VLAN

# 创建VLAN 4092和4094。

<Switch> system-view

[Switch] vlan 4092

[Switch-vlan4092] quit

[Switch] vlan 4094

[Switch-vlan4094] quit

# 创建VLAN接口1并配置IP地址。

[Switch] interface vlan-interface 1

[Switch-Vlan-interface1] undo shutdown

[Switch-Vlan-interface1] ip address 192.168.49.1 24

[Switch-Vlan-interface1] quit

(2)     创建OpenFlow实例1并配置实例对应的VLAN

[Switch] openflow instance 1

[Switch-of-inst-1] classification vlan 4092 mask 4093

(3)     配置控制器1的IP地址为192.168.49.49,并激活实例

[Switch-of-inst-1] controller 1 address ip 192.168.49.49

[Switch-of-inst-1] active instance

4. 验证配置

# 显示实例详细信息。

[Switch-of-inst-1] display openflow instance 1

Instance 1 information:

 

Configuration information:

 Description   : --

 Active status : Active

 Inactive configuration:

  None

 Active configuration:

  Classification VLAN, total VLANs(2)

   4092, 4094

  In-band management VLAN, total VLANs(0)

   Empty VLAN

  Connect mode: Multiple

  MAC address learning: Enabled

  Flow table:

   Table ID(type): 0(Extensibility), count: 0

  Flow-entry max-limit: 8192

  Datapath ID: 0x00010000fc002500

  Default table-miss: Drop

  Forbidden port: None

Port information:

 GigabitEthernet3/0/1

Active channel information:

 Controller 1 IP address: 192.168.49.49 port: 6633

1.8  附录 A 应用限制

1.8.1  Flow Entry的限制

1. 匹配的限制

(1)     VLAN匹配

在使用VLAN划分OpenFlow实例的情况下,对VLAN的匹配存在一定的限制。

表1-17 VLAN匹配项列表

VLAN

MASK

匹配的报文

-

-

匹配在OpenFlow实例VLAN内的所有报文

0

-

匹配无VLAN tag的报文,但是入接口的PVID必须是在OpenFlow实例内

0

有值

不支持

有效VLAN

-/有值

不支持

0x1000

-/非0x1000的值

不支持

0x1000

0x1000

匹配有VLAN tag的报文,但是该VLAN tag必须在OpenFlow实例内

有效VLAN

| 0x1000

-/有值

根据VLAN+MASK进行匹配,前题是VLAN+MASK必须在OpenFlow实例内

其它

其它

不支持

 

(2)     协议报文的匹配

对于协议报文,一旦相关的协议配置使能后,协议报文不会进入OpenFlow转发处理,仍然由相关协议进行处理,但是对于LLDP报文比较特殊,对于LLDP报文的使用限制请参见1.8.4 

1.8.2  Packet Out的处理限制

1. 入接口限制

在Packet out消息中Output为Normal、Local、In port或To Controller时,入接口只能是设备上的物理接口或者逻辑接口,不能是OpenFlow保留口。

2. 报文ID和报文内容同时存在的处理

在Packet Out消息中如果同时存在报文ID和报文,OpenFlow Switch只会获取报文ID对应的缓存报文进行处理,忽略消息中携带的报文。

3. 无VLAN Tag报文的处理

·     如果Packet Out消息中的报文没有VLAN tag,则OpenFlow Switch将入接口的PVID做为报文所在的VLAN进行转发处理。

·     如果入接口不是设备上的接口,且Output是设备上的接口,则使用出接口的PVID发送。

·     如果入接口不是设备上的接口,且Output是保留口Flood和All,请参见4. 的处理。

4. 出接口限制

Packet Out中指定的Output为保留口的Flood和All时的处理机制

(1)     出接口为Flood的情况

·     Packet Out的报文携带VLAN tag,则报文在该VLAN内广播。

·     Packet Out的报文没有携带VLAN tag,但是入接口是OpenFlow Swtich上的接口,则报文在入接口的PVID内广播。

·     Packet Out的报文没有携带VLAN tag,并且入接口是Controller,则报文在所有OpenFlow接口发送一份。

(2)     出接口为All的情况

·     Packet Out的报文携带VLAN tag,则报文在该VLAN内广播。

·     Packet Out的报文没有携带VLAN tag,无论入接口是什么接口,报文都在所有OpenFlow接口发送一份。

1.8.3  Packet in的处理限制

1. 报文VLAN tag处理

对于Packet in消息中的报文:

·     上送时如果其VLAN tag与该报文入接口的PVID相同,那么该报文的VLAN tag会被删除。

·     上送时如果其VLAN tag与该报文入接口的PVID不同,那么该报文的VLAN tag不会被删除。

2. 报文缓存限制

·     对于上送原因是No Match的报文支持缓存,缓存大小是1K个报文。

·     对于其它上送原因的报文不支持缓存,整个报文都会被上送,并且Cookie是全F。

1.8.4  匹配LLDP报文的限制

OpenFlow网络可以通过LLDP发现拓扑,对于匹配LLDP报文存在如下限制:

·     设备上必须全局使能LLDP。

·     LLDP报文匹配后上送Controller不受实例限制,只要收到报文的接口在OpenFlow实例内,并且实例内有匹配LLDP报文并上送Controller的表项,则LLDP报文就会在该实例上送Controller。

1.8.5  Flow Mod的限制

1. Table Miss表项的添加、修改和删除

·     Switch在激活后会默认生成Table Miss表项,其动作是Drop,默认表项不能够被Controller通过Modify的动作修改,不能被Controller通过Mulipart消息查询到,仅能由Controller通过Add进行添加Table Miss的动作进行修改。

·     Table Miss表项仅能通过严格匹配进行修改和删除,在非严格匹配的情况下,即使匹配项是通配也不能够操作Table Miss表项。

·     Table Miss表项被删除后,会生成默认的Table Miss表项,其动作是Drop。

2. 普通表项的添加、修改和删除

·     在非严格匹配的情况下,不支持通过match域为通配修改所有普通流表项。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们