01-OpenFlow命令
本章节下载: 01-OpenFlow命令 (180.75 KB)
目 录
1.1.4 controller connect interval
1.1.5 controller echo-request interval
1.1.9 display openflow controller
1.1.10 display openflow flow-table
1.1.12 display openflow instance
1.1.14 display openflow summary
1.1.18 in-band management vlan
1.1.19 mac-ip dynamic-mac aware
OpenFlow实例视图
2:系统级
【描述】
active instance命令用来激活OpenFlow实例。
缺省情况下,未激活OpenFlow实例。
OpenFlow实例配置完成后,需要进行激活才能生效。
若当前实例已经与控制器建立连接,激活新配置后OpenFlow实例会重新与控制器建立连接。
# 激活OpenFlow实例1。
[Sysname] openflow instance 1
[Sysname-of-inst-1] active instance
classification vlan vlan-id [ mask vlan-mask ] [ loosen ]
OpenFlow实例视图
2:系统级
vlan-id:VLAN ID,取值范围为1~4094。与VLAN掩码共同生效。
vlan-mask:VLAN掩码,取值范围为0~4095,缺省值为4095。
loosen:松散模式,用来指定OpenFlow实例与对应的VLAN为松散模式。
【描述】
classification vlan命令用来配置OpenFlow实例对应的VLAN。undo classification命令用来取消配置。
缺省情况下,没有配置OpenFlow实例对应的VLAN。
多次执行该命令,后配置覆盖前配置。
VLAN & mask为实际生效VLAN区间。mask允许不连续,为0的比特位表示忽略。生效VLAN区间,可通过display openflow instance查看。
· 配置loosen参数后,仅当OpenFlow实例对应的VLAN与端口允许通过的VLAN存在交集时,该端口属于OpenFlow接口。
· 未配置loosen参数时,仅当OpenFlow实例配置的VLAN为端口允许通过的VLAN的子集时,该端口属于OpenFlow接口。
# 配置OpenFlow实例对应的VLAN为255,掩码为7。
[Sysname] openflow instance 1
[Sysname-of-inst-1] classification vlan 255 mask 7
undo controller controller-id address
OpenFlow实例视图
2:系统级
controller-id:控制器ID,取值范围为0~63。
ip ip-address:控制器的IPv4地址。
ipv6 ipv6-address:控制器的IPv6地址。
port port-number:控制器建立连接使用的端口号,取值范围为0~65535。缺省值为6633。
ssl ssl-policy-name:安全连接的客户端安全策略,用于控制器认证交换机,每个控制器连接配置独立的安全策略。ssl-policy-name为1~16个字符的字符串,不区分大小写。
【描述】
controller address命令用来配置主连接。undo controller address命令用来取消配置。
多次执行该命令可以添加多个控制器,与每个控制器仅允许建立一个主连接。
设备仅支持配置八个控制器。
主连接用于控制消息的处理(下发流表项、获取数据、信息上报等)。
# 配置实例1的控制器10的IP地址为1.1.1.1,端口号为6666。
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller 10 address ip 1.1.1.1 port 6666
controller connect interval interval-value
undo controller connect interval
OpenFlow实例视图
2:系统级
controller connect interval命令用来配置OpenFlow实例与控制器重连的时间间隔。undo controller connect interval命令用来恢复缺省情况。
缺省情况下,OpenFlow实例与控制器重连的时间间隔为60秒。
【参数】
interval-value:连接控制器的间隔时间,取值范围为10~120,单位为秒。
# 配置OpenFlow实例1与控制器重连的时间间隔为10秒。
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller connect interval 10
controller echo-request interval interval-value
undo controller echo-request interval
OpenFlow实例视图
2:系统级
interval-value:发送Echo request报文的时间间隔,取值范围为1~10,单位为秒。
controller echo-request interval命令用来设置OpenFlow实例发送Echo request报文的时间间隔。undo controller echo-request interval命令用来恢复缺省情况。
缺省情况下,OpenFlow实例发送Echo request报文的时间间隔为5秒。
设备CPU负担较大的情况下,请配置较大的发送Echo request报文的时间间隔。
【举例】
# 配置OpenFlow实例1发送Echo request报文的时间间隔为10秒。
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller echo-request interval 10
controller mode { multiple | single }
OpenFlow实例视图
2:系统级
multiple:OpenFlow实例与控制器的连接模式为多连接模式。
single:OpenFlow实例与控制器的连接模式为单连接模式。
【描述】
controller mode命令用来配置OpenFlow实例与控制器的连接模式。undo controller mode命令用来恢复缺省情况。
缺省情况下,连接模式为Multiple。
当连接模式是Single时,OpenFlow实例仅与一个控制器建立连接,其它控制器作为备份,仅当连接断开后,OpenFlow实例连接下一个控制器,直到连接成功。
当连接模式为Multiple时,OpenFlow可以同时连接所有控制器,当一个或者多个控制器失效或者连接断开时,仍然能保证OpenFlow交换机正常工作。
# 配置实例1的控制器连接模式为Single。
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller mode single
OpenFlow实例视图
2:系统级
datapath-id:OpenFlow实例的Datapath ID,取值为16进制格式,取值范围为1~0xFFFFFFFFFFFFFFFF。
datapath-id命令用来配置OpenFlow实例的Datapath ID。undo datapath-id命令用来恢复缺省值。
缺省情况下,OpenFlow实例的Datapath ID由实例ID和设备桥MAC组成,前16位为实例ID,后48位为设备桥MAC。
【举例】
# 配置OpenFlow实例1的Datapath ID为0x123456。
[Sysname] openflow instance 1
[Sysname-of-inst-1] datapath-id 123456
OpenFlow实例视图
2:系统级
text:OpenFlow实例的描述信息,为1~255个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。
description命令用来配置OpenFlow实例的描述信息。undo description命令用来恢复缺省情况。
缺省情况下,未配置OpenFlow实例的描述信息。
【举例】
# 配置实例1的描述信息为test-desc。
[Sysname] openflow instance 1
[Sysname-of-inst-1]description test-desc
display openflow controller命令用来显示OpenFlow实例的控制器信息。
display openflow instance instance-id controller [ controller-id ]
1:监控级
instance-id:OpenFlow实例号,取值范围为1~8。
controller-id:控制器的ID号,取值范围为0~63。如果未指定本参数,显示该实例下所有控制器的信息。
【描述】
# 显示OpenFlow实例1的控制器信息。
<Sysname> display openflow instance 1 controller
Instance 1 controller information:
Reconnect interval: 60 (s)
Echo interval : 5 (s)
Controller ID : 1
Controller IP address : 192.168.49.49
Controller port : 6633
Controller role : Equal
Connect type : TCP
Connect state : Established
Packets sent : 9
Packets received : 9
SSL policy : --
表1-1 display openflow controller命令显示描述表
OpenFlow实例1的控制器信息 |
|
控制器发送Echo request报文的时间间隔,单位为秒 |
|
OpenFlow实例下对应控制器的IP地址 |
|
当前连接控制器的TCP端口号 |
|
· --:未连接,未配置角色 · Equal:控制器的角色是Equal · Master:控制器的角色是Master · Slave:控制器的角色是Slave |
|
· TCP:使用TCP连接控制器 · SSL:使用SSL连接控制器 |
|
· Idle:未建立连接 · Established:成功建立连接 |
|
用于SSL连接的SSL策略的名称 |
display openflow instance instance-id flow-table [ table-id ]
1:监控级
instance-id:OpenFlow实例号。取值范围为1~8。
table-id:流表ID,取值范围为0~254。如果未指定本参数,将显示所有流表的信息。
display openflow flow-table命令用来显示OpenFlow实例的流表信息。
【举例】
# 显示OpenFlow实例1的所有流表信息。
<Sysname> display openflow instance 1 flow-table
Instance 1 flow table information:
Table 0 information:
Table Type: MAC-IP, flow entry count: 1, total flow entry count: 2
MissRule (default) Flow entry information:
cookie: 0x0, priority: 0, hard time: 0, idle time: 0, flags: reset_counts
|no_pkt_counts|no_byte_counts, byte count: --, packet count: --
Match information: any
Instruction information:
Write actions:
Drop
Flow entry 1 information:
cookie: 0x0, priority: 1, hard time: 0, idle time: 0, flags: none,
byte count: --, packet count: --
Match information:
Ethernet destination MAC address: 0000-0000-0001
Ethernet destination MAC address mask: ffff-ffff-ffff
VLAN ID: 100, mask: 0xfff
Instruction information:
Write actions:
Output interface: GE1/0/4
Write metadata/mask: 0x0000000000000001/0xffffffffffffffff
Goto table: 1
Table 1 information:
Table Type: Extensibility, flow entry count: 2, total flow entry count: 2
MissRule(default) Flow entry information:
cookie: 0x0, priority: 0, hard time: 0, idle time: 0, flags: none,
byte count: --, packet count: 60
Match information: any
Instruction information:
Write actions:
Drop
Flow entry 1 information:
cookie: 0x0, priority: 0, hard time: 0, idle time: 0, flags: flow_send_rem
|check_overlap, byte count: --, packet count: 1
Match information:
Input interface: GE1/0/3
Ethernet source MAC address: 0000-0000-0001
Ethernet source MAC address mask: ffff-ffff-ffff
Instruction information:
Set meter: 100
Apply actions:
Output interface: GE1/0/4
Write actions:
Output interface: Controller, send length: 128 bytes
表1-2 display openflow flow-table命令显示描述表
Table Type |
流表类型 : · MAC-IP:MAC-IP流表 · Extensibility:Extensibility流表 |
flow entry count |
|
total flow entry count |
|
· flow_send_rem:发送流表项删除消息 · check_overlap:检查流表项重复 · reset_counts:重置流表项统计信息 · no_pkt_counts:不统计报文计数 · no_byte_counts:不统计字节计数 · none:无标志位 |
|
写入元数据及掩码。元数据用于在OpenFlow实例内部的不同流表间传递信息 |
|
转向指定ID的流表 |
|
· 1表示匹配元数据中的目的MAC地址 · 2表示匹配元数据中的源MAC地址 · 4表示匹配元数据中的目的IP地址 |
||
以太网目的MAC地址/掩码 |
||
以太网源MAC地址/掩码 |
||
VLAN ID/掩码 |
||
VLAN优先级 |
||
DSCP(Differentiated Services Code Point,区分服务编码点)值 |
||
IP头的ECN(Explicit Congestion Notification,显式拥塞通知)值 |
||
IPv4或IPv6协议号 |
||
IPv4源地址/掩码 |
||
IPv4目的地址/掩码 |
||
TCP源端口/掩码 |
||
TCP目的端口/掩码 |
||
UDP源端口/掩码 |
||
UDP目的端口/掩码 |
||
ICMPV4类型 |
||
ICMPV4代号 |
||
ARP源IPv4地址/掩码 |
||
ARP源MAC地址/掩码 |
||
IPv6源地址/掩码 |
||
IPv6目的地址/掩码 |
||
IPv6流标签/掩码 |
||
ICMPv6类型 |
||
ICMPv6代号 |
OpenFlow接口为控制器时,指定上送报文的字节长度 |
|
根据指定Group表处理报文 |
|
将流表项映射到指定队列ID,当报文被转发到特定端口时,队列ID通常被用于基本QoS |
|
表1-5 OpenFlow接口类型
报文重新进入Flow Table进行匹配 |
|||
GE1/0/3(端口名称) |
端口名称,包含物理口和逻辑口(如聚合口) |
display openflow instance instance-id group [ group-id ]
1:监控级
instance-id:OpenFlow实例号,取值范围为1~8。
group-id:Group表项ID。取值范围为0~4294967040。如果未指定本参数,将显示实例所有Group表项的信息。
【描述】
display openflow group命令用来显示OpenFlow实例的Group表信息
Group表项被流表项引用,使OpenFlow设备支持额外的报文转发功能(如组播和广播)。每个Group表中含有多个动作桶(Action Buckets),匹配Group表项的报文可以直接执行动作桶中的动作。
用户不能在设备上配置Group表项,需要在控制器中配置Group表项后,下发到OpenFlow设备。
# 显示OpenFlow实例1的Group表信息。
<Sysname> display openflow instance 1 group
Instance 1 group table information:
Group count: 1
Group entry 4294967040:
Type: All, byte count: 0, packet count: 0
Bucket 1 information:
Action count 1, watch port: GE1/0/1, watch group: 0
Byte count 0, packet count 0
Output interface: GE1/0/2
Referenced information:
Count: 1
Flow table: 254
Flow entry: 2
表1-6 display openflow group命令显示描述表
当前OpenFlow实例中包含的Group表项的总数 |
|
Type |
|
Group表中动作桶的信息 |
|
动作桶的字节统计计数,“--”表示不支持 |
|
动作桶的报文统计计数,“--”表示不支持 |
|
Group表中包含的出端口 |
|
Group被流表项引用的信息 |
|
引用Group表项的流表项的总数 |
|
引用Group表项的流表项所在的流表ID |
|
引用Group表项的流表项ID列表 |
display openflow instance [ instance-id ]
1:监控级
instance-id:OpenFlow实例号,取值范围为1~8。
display openflow instance命令用来显示OpenFlow实例的详细信息。
【举例】
# 显示OpenFlow实例的详细信息。
<Sysname> display openflow instance
Instance 1 information:
Configuration information:
Description : test-desc
Active status : active
Inactive configuration:
Classification VLAN, total VLANs(1)
3
Flow table:
Table ID(type): 0(MAC-IP)
Table ID(type): 1(Extensibility)
Active configuration:
Classification VLAN, loosen mode, total VLANs(1)
2
In-band management VLAN, total VLANs(0)
empty VLAN
Connect mode: multiple
Mac address learning: Enabled
Flow table:
Table ID(type): 0(MAC-IP), count: 0
Flow-entry max-limit: 3072
Datapath ID: 0x0000001234567891
Port information:
GigabitEthernet1/0/3
Active channel information:
Controller 1 IP address: 192.168.49.49 port: 6633
Controller 2 IP address: 192.168.43.49 port: 6633
表1-7 display openflow instance命令显示描述表
OpenFlow实例的描述信息 |
|
OpenFlow实例的激活状态 |
|
未生效的OpenFlow实例配置 |
|
已生效的OpenFlow实例配置 |
|
已加入OpenFlow实例的VLAN列表,VLAN总数以及loosen模式 |
|
带内管理VLAN列表及VLAN数量,显示为empty VLAN时,表示没有配置带内管理VLAN |
|
OpenFlow实例与控制器的连接模式: · multiple:OpenFlow实例与控制器的连接模式为多连接模式 · single:OpenFlow实例与控制器的连接模式为单连接模式 |
|
OpenFlow实例对应的VLAN是否禁止MAC地址学习: · Enabled,表示OpenFlow实例对应的VLAN允许MAC地址学习 · Disabled,表示OpenFlow实例对应的VLAN禁止MAC地址学习 |
|
Extensibility表的流表项上限 |
|
OpenFlow实例的Datapath ID |
|
已加入OpenFlow实例的端口 |
|
流表ID(类型) · MAC-IP:MAC-IP类型流表 · Extensibility:Extensibility类型流表 |
|
Controller id IP address: port: |
与OpenFlow实例建立连接的控制器的概要信息(该信息仅在OpenFlow实例与控制器建立连接时显示) |
OpenFlow实例与控制器连接断开时的运行模式(该信息仅在OpenFlow实例与控制器断开连接时显示): · secure:表示OpenFlow实例与控制器的连接断开后,交换机根据流表项转发 · standalone:表示OpenFlow实例与控制器的连接断开后,交换机正常转发 |
display openflow instance instance-id meter [ meter-id ]
1:监控级
instance-id:OpenFlow实例号,取值范围为1~8。
meter-id:Meter表项ID,取值范围为0~4294901760。如果未指定本参数,将显示实例所有Meter表项的信息。
display openflow meter命令用来显示OpenFlow实例的Meter表项信息。
【举例】
# 显示OpenFlow实例1的Meter表项信息。
<Sysname> display openflow instance 1 meter
Meter flags: KBPS -- Rate value in kb/s, PKTPS -- Rate value in packet/sec
BURST -- Do burst size, STATS -- Collect statistics
Instance 1 meter table information:
meter entry count: 2
Meter entry 100 information:
Meter flags: KBPS
Band 1 information
Type: drop, rate: 64kbps, burst size: 256kb
Byte count: --, packet count: 0
Referenced information:
Count: 3
Flow table: 0
Flow entry: 1, 2, 3
Meter entry 200 information:
Meter flags: KBPS
Band 1 information
Type: drop, rate: 64kbps, burst size: 128kb
Byte count: --, packet count: --
Referenced information:
Count: 0
表1-8 display openflow meter命令显示描述表
当前实例包含的Meter表项的总数 |
|
当前Meter表项的所携带的flags: · KBPS:速率值以kbps为单位 · PKTPS:速率值以packet/sec(包/秒)为单位 · BURST:帧大小 · STATS:收集统计信息 |
|
Meter表项包含的band |
|
band类型: · drop:丢弃数据包 · dscp_remark:修改数据包IP头部的dscp |
|
band的字节统计计数,“--”表示不支持 |
|
band的报文统计计数,“--”表示不支持 |
|
Meter表项被流表项引用的信息 |
|
引用Meter表项的流表项的总个数 |
|
引用Meter表项的流表项所在的流表ID |
|
引用Meter表项的流表项ID列表 |
1:监控级
display openflow summary命令用来显示OpenFlow实例的概要信息,包括OpenFlow实例ID、激活状态、Datapath ID等信息。
【举例】
# 显示OpenFlow实例的概要信息。
<Sysname> display openflow summary
Fail-open mode: Se - Secure mode, Sa - Standalone mode
ID Status Datapath-ID Channel Table-num Port-num Reactivate
1 Active 11000a0b0c0d0 Connected 2 8 Y
2 Active 21000a0b0c0d0 Connected 2 6 N
表1-9 display openflow summary命令显示描述表
OpenFlow实例ID |
|
OpenFlow实例的激活状态: · Active:表示该OpenFlow实例已经激活 · Inactive:表示该OpenFlow实例未激活 |
|
OpenFlow实例的Datapath ID。未激活该OpenFlow实例时,显示为“-” |
|
OpenFlow实例与控制器建立的安全通道的状态: · Connected:OpenFlow实例与控制器已经建立安全通道 · Failed(Se):安全通道断开,OpenFlow实例处于Secure模式 · Failed(Sa):连接通道断开,OpenFlow实例处于Standalone模式 · 未激活该OpenFlow实例时,显示为“-” |
|
OpenFlow实例中的流表数目。未激活该OpenFlow实例时,显示为“-” |
|
属于该OpenFlow实例的接口数目。未激活该OpenFlow实例时,显示为“-” |
|
该OpenFlow实例是否需要重新激活: · Y:表示该OpenFlow实例需要重新激活 · N:表示该OpenFlow实例无需重新激活 · 未激活该OpenFlow实例时,显示为“-” |
fail-open mode { secure | standalone }
OpenFlow实例视图
2:系统级
secure:Secure模式,连接断开后,交换机根据流表项转发。
standalone:Standalone模式,连接断开后,交换机正常转发。
fail-open mode命令用来配置OpenFlow实例与控制器连接中断时的运行模式。undo fail-open mode命令用来恢复缺省情况。
缺省情况下,OpenFlow实例建立时,缺省为Secure模式,且为该实例下发Table Miss表项(动作为drop)。
【举例】
# 配置交换机与控制器连接中断时的运行模式为Standalone模式。
[Sysname] openflow instance 1
[Sysname-of-inst-1] fail-open mode standalone
flow-entry max-limit limit-value
OpenFlow实例视图
2:系统级
limit-value:流表项上限值。取值范围如下:
· 对于S5500-28SC-HI和S5500-52SC-HI,取值范围为1~1024。
· 对于其它机型,取值范围为1~3072。
flow-entry max-limit命令用来配置Extensibility表的流表项上限。undo flow-entry max-limit命令用来恢复缺省情况。
· 对于S5500-28SC-HI和S5500-52SC-HI,缺省情况下,Extensibility流表项的上限为1024。
· 对于其它机型,缺省情况下,Extensibility流表项的上限为3072。
【举例】
# 配置Extensibility表的流表项上限为256。
[Sysname] openflow instance 1
[Sysname-of-inst-1] flow-entry max-limit 256
flow-table { extensibility extensibility-table-id | mac-ip mac-ip-table-id }*
OpenFlow实例视图
2:系统级
extensibility extensibility-table-id:Extensibility流表ID,取值范围为0~254。
mac-ip mac-ip-table-id:MAC-IP流表ID,取值范围为0~254。
【描述】
flow-table命令用来配置OpenFlow实例下的流表类型和流表ID。undo flow-table命令用来恢复缺省情况。
缺省情况下,OpenFlow实例包含了流表ID为0的Extensibility流表。
用户激活实例之前,配置当前OpenFlow实例使用的流表类型以及与之对应的流表ID。
MAC-IP表和Extensibility表的ID不能相同,且MAC-IP表的ID值必须小于Extensibility表的ID值。
# 配置OpenFlow实例1使用流表类型为MAC-IP表ID为0,Extensibility表ID为1。
[Sysname] openflow instance 1
[Sysname-of-inst-1] flow-table mac-ip 0 extensibility 1
in-band management vlan vlan-list
OpenFlow实例视图
2:系统级
vlan-list:VLAN ID列表,表示方式为vlan-list = { vlan-id1 [ to vlan-id2 ] }&<1-10>。其中,vlan-id1和vlan-id2为指定VLAN的编号,取值范围为1~4094,&<1-10>表示前面的参数最多可以重复输入10次。
【描述】
in-band management vlan命令用来配置带内管理VLAN。undo in-band management vlan命令用来恢复缺省情况。
缺省情况下,没有配置带内管理VLAN。
带内管理VLAN必须是OpenFlow实例对应VLAN的子集。
# 在OpenFlow实例1中配置带内管理VLAN为VLAN10。
[Sysname] openflow instance 1
[Sysname-of-inst-1] in-band management vlan 10
OpenFlow实例视图
2:系统级
【描述】
mac-ip dynamic-mac aware命令用来配置支持动态MAC地址。undo mac-ip dynamic-mac aware命令用来恢复缺省情况。
缺省情况下,不支持动态MAC地址,即忽略控制器下发的此类消息。
此功能仅在支持MAC-IP流表情况下,决定是否支持控制器在查询或者删除流表项时包含动态MAC地址(动态MAC表项变化不需要上报控制器)。
# 配置实例1支持动态MAC地址。
[Sysname] openflow instance 1
[Sysname-of-inst-1] mac-ip dynamic-mac aware
OpenFlow实例视图
2:系统级
mac-learning forbidden命令用来配置在OpenFlow实例对应的VLAN禁止MAC地址学习。undo mac-learning forbidden命令用来恢复缺省情况
缺省情况下,OpenFlow实例对应的VLAN允许MAC地址学习。
【举例】
# 配置OpenFlow实例1对应的VLAN禁止MAC地址学习。
[Sysname] openflow instance 1
[Sysname-of-inst-1] mac-learning forbidden
undo openflow instance instance-id
2:系统级
instance-id:OpenFlow实例号,取值范围为1~8。
openflow instance命令用来创建OpenFlow实例,并进入OpenFlow实例视图。undo openflow instance命令用来删除指定的OpenFlow实例。
缺省情况下,没有配置OpenFlow实例。
【举例】
# 创建OpenFlow实例1,并进入OpenFlow实例视图。
[Sysname] openflow instance 1
[Sysname-of-inst-1]
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!