01-OpenFlow命令
本章节下载: 01-OpenFlow命令 (187.13 KB)
目 录
1.1.4 controller connect interval
1.1.5 controller echo-request interval
1.1.8 default table-miss permit
1.1.10 display openflow controller
1.1.11 display openflow flow-table
1.1.13 display openflow instance
1.1.15 display openflow summary
1.1.20 in-band management vlan
1.1.21 mac-ip dynamic-mac aware
1.1.24 reset openflow instance controller statistics
active instance命令用来激活OpenFlow实例。
undo active instance命令用来注消OpenFlow实例。
undo active instance
未激活OpenFlow实例。
OpenFlow实例视图
OpenFlow实例配置完成后,需要进行激活才能生效。
若当前实例已经与控制器建立连接,激活新配置后OpenFlow实例会重新与控制器建立连接。
使用undo active instance命令注消对应OpenFlow实例后,使用active instance命令即可再次激活该OpenFlow实例。
# 激活OpenFlow实例1。
[Sysname] openflow instance 1
[Sysname-of-inst-1] active instance
classification vlan命令用来配置OpenFlow实例对应的VLAN。
undo classification命令用来取消配置。
classification vlan vlan-id [ mask vlan-mask ] [ loosen ]
没有配置OpenFlow实例对应的VLAN。
OpenFlow实例视图
vlan-id:VLAN ID,取值范围为1~4094。与VLAN掩码共同生效。
vlan-mask:VLAN掩码,取值范围为0~4095,缺省值为4095。
loosen:松散模式,用来指定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
controller address命令用来配置主连接。
undo controller address命令用来取消配置。
controller controller-id address { ip ip-address | ipv6 ipv6-address } [ port port-number ] [ local address { ip ip-address | ipv6 ipv6-address } [ port port-number ] ] [ ssl ssl-policy-name ]
undo controller controller-id address
OpenFlow实例视图
controller-id:控制器ID,取值范围为0~63。
ip ip-address:配置设备和控制器的IPv4地址。
ipv6 ipv6-address:配置设备和控制器的IPv6地址。
local address:设备与控制器建立连接时使用的IPv4/IPv6地址。
port port-number:设备与控制器建立连接时,设备和控制器使用的端口号,取值范围为1~65535。缺省值为6633。
ssl ssl-policy-name:安全连接的客户端安全策略,用于控制器认证交换机,每个控制器连接配置独立的安全策略。ssl-policy-name为1~31个字符的字符串,不区分大小写。
多次执行该命令可以添加多个控制器,与每个控制器仅允许建立一个主连接。
主连接用于控制消息的处理(下发流表项、获取数据、信息上报等)。
# 配置实例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命令用来配置OpenFlow实例与控制器重连的时间间隔。
undo controller connect interval命令用来恢复缺省情况。
controller connect interval interval-value
undo controller connect interval
OpenFlow实例与控制器重连的时间间隔为60秒。
OpenFlow实例视图
interval-value:连接控制器的间隔时间,取值范围为10~120,单位为秒。
# 配置OpenFlow实例1与控制器重连的时间间隔为10秒。
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller connect interval 10
controller echo-request interval命令用来设置OpenFlow实例发送Echo request报文的时间间隔。
undo controller echo-request interval命令用来恢复缺省情况。
controller echo-request interval interval-value
undo controller echo-request interval
OpenFlow实例发送Echo request报文的时间间隔为5秒。
OpenFlow实例视图
interval-value:发送Echo request报文的时间间隔,取值范围为1~10,单位为秒。
设备CPU负担较大的情况下,请配置较大的发送Echo request报文的时间间隔。
# 配置OpenFlow实例1发送Echo request报文的时间间隔为10秒。
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller echo-request interval 10
controller mode命令用来配置OpenFlow实例与控制器的连接模式。
undo controller mode命令用来恢复缺省情况。
controller mode { multiple | single }
OpenFlow实例视图
multiple:OpenFlow实例与控制器的连接模式为多连接模式。
single:OpenFlow实例与控制器的连接模式为单连接模式。
当连接模式是Single时,OpenFlow实例仅与一个控制器建立连接,其它控制器作为备份,仅当连接断开后,OpenFlow实例连接下一个控制器,直到连接成功。
当连接模式为Multiple时,OpenFlow可以同时连接所有控制器,当一个或者多个控制器失效或者连接断开时,仍然能保证OpenFlow交换机正常工作。
# 配置实例1的控制器连接模式为Single。
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller mode single
datapath-id命令用来配置OpenFlow实例的Datapath ID。
undo datapath-id命令用来恢复缺省值。
缺省情况下,OpenFlow实例的Datapath ID由实例ID和设备桥MAC组成,前16位为实例ID,后48位为设备桥MAC。
OpenFlow实例视图
datapath-id:OpenFlow实例的Datapath ID,取值为16进制格式,取值范围为1~0xFFFFFFFFFFFFFFFF。
# 配置OpenFlow实例1的Datapath ID为0x123456。
[Sysname] openflow instance 1
[Sysname-of-inst-1] datapath-id 123456
default table-miss permit命令用来配置Table Miss表项的缺省动作。
undo default table-miss permit命令用来恢复缺省情况。
undo default table-miss permit
Table Miss表项的缺省动作为丢弃报文。
OpenFlow实例视图
使用active instance命令激活OpenFlow实例后,且Controller没有下发动作前,Table Miss表项的缺省动作为丢弃报文,配置该功能后,Table Miss表项的缺省动作修改为允许报文进行正常转发。
# 配置Table Miss表项的缺省动作为允许报文进行正常转发。
[Sysname] openflow instance 1
[Sysname-of-inst-1] default table-miss permit
description命令用来配置OpenFlow实例的描述信息。
undo description命令用来恢复缺省情况。
未配置OpenFlow实例的描述信息。
OpenFlow实例视图
text:OpenFlow实例的描述信息,为1~255个字符的字符串,不区分大小写。
# 配置实例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 ]
instance-id:OpenFlow实例号,取值范围为1~4094。
controller-id:控制器的ID号,取值范围为0~63。如果未指定本参数,将显示该实例下所有控制器的信息。
# 显示OpenFlow实例10的控制器信息。
<Sysname> display openflow instance 10 controller
Instance 10 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 : --
Connect type : TCP
Connect state : Idle
Packets sent : 0
Packets received : 0
SSL policy : --
VRF name : --
表1-1 display openflow controller命令显示信息描述表
OpenFlow实例下对应控制器的IP地址 |
|
当前连接控制器的TCP端口号 |
|
· --:未连接,未配置角色 · Equal:控制器的角色是Equal · Master:控制器的角色是Master · Slave:控制器的角色是Slave |
|
· TCP:使用TCP连接控制器 · SSL:使用SSL连接控制器 |
|
· Idle:未建立连接 · Established:成功建立连接 |
|
用于SSL连接的SSL策略的名称 |
display openflow flow-table命令用来显示OpenFlow实例的流表信息。
display openflow instance instance-id flow-table [ table-id ]
instance-id:OpenFlow实例号。取值范围为1~4094。
table-id:流表ID,取值范围为0~254。如果未指定本参数,将显示所有流表的信息。
# 显示OpenFlow实例10的所有流表信息。
<Sysname> display openflow instance 10 flow-table
Instance 10 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 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命令显示描述表
流表类型 : · 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的流表 |
|
元数据/掩码 |
||
以太网目的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代号 |
||
根据指定Group表处理报文 |
|
将流表项映射到指定队列ID,当报文被转发到特定端口时,队列ID通常被用于基本QoS |
|
表1-5 OpenFlow接口类型
GE1/0/3(端口名称) |
端口名称,包含物理口和逻辑口(如聚合口) |
display openflow group命令用来显示OpenFlow实例的Group表信息
display openflow instance instance-id group [ group-id ]
instance-id:OpenFlow实例号,取值范围为1~4094。
group-id:Group表项ID。取值范围为0~4294967040。如果未指定本参数,将显示实例所有Group表项的信息。
Group表项被流表项引用,使OpenFlow设备支持额外的报文转发功能(如组播和广播)。每个Group表中含有多个动作桶(Action Buckets),匹配Group表项的报文可以直接执行动作桶中的动作。
用户不能在设备上配置Group表项,需要在控制器中配置Group表项后,下发到OpenFlow设备。
# 显示OpenFlow实例10的Group表信息。
<Sysname> display openflow instance 10 group
Instance 10 group table information:
Group count: 1
Group entry 1:
Type: All, byte count: 55116, packet count: 401
Bucket 1 information:
Action count 1, watch port: any, watch group: any
Byte count 55116, packet count 401
Output interface: GE1/0/11
Bucket 2 information:
Action count 1, watch port: any, watch group: any
Byte count --, packet count --
Output interface: GE1/0/12
Referenced information:
Count: 3
Flow table 0
Flow entry: 1, 2, 3
表1-6 display openflow group命令显示信息描述表
当前OpenFlow实例中包含的Group表项的总数 |
|
当前Group表的类型,All表示执行所有动作桶,用于组播或者广播 |
|
动作桶的字节统计计数,“--”表示不支持 |
|
动作桶的报文统计计数,“--”表示不支持 |
|
Group表中包含的出端口 |
|
Group被流表项引用的信息 |
|
引用Group表项的流表项的总数 |
|
引用Group表项的流表项所在的流表ID |
|
引用Group表项的流表项ID列表 |
display openflow instance命令用来显示OpenFlow实例的详细信息。
display openflow instance [ instance-id ]
instance-id:OpenFlow实例号,取值范围为1~4094。
# 显示OpenFlow实例的详细信息。
<Sysname> display openflow instance
Instance 10 information:
Configuration information:
Description : test-desc
Active status : Active
Inactive configuration:
Classification VLAN, total VLANs(1)
3
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: 65535
Datapath ID: 0x0000001234567891
Default table-miss: Drop
Forbidden port: None
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 |
|
Table Miss表项的缺省动作 · Permit:允许 · Drop:丢弃 |
|
禁止上送Controller的端口类型,VLAN interface表示VLAN接口 |
|
已加入OpenFlow实例的端口 |
|
流表ID(类型) · MAC-IP:MAC-IP类型流表 · Extensibility:Extensibility类型流表 |
|
Controller id IP address: port: |
与OpenFlow实例建立连接的控制器的概要信息(该信息仅在OpenFlow实例与控制器建立连接时显示) |
OpenFlow实例与控制器连接断开时的运行模式(该信息仅在OpenFlow实例与控制器断开连接时显示): · secure:表示OpenFlow实例与控制器的连接断开后,交换机根据流表项转发 · standalone:表示OpenFlow实例与控制器的连接断开后,交换机正常转发 |
display openflow meter命令用来显示OpenFlow实例的Meter表项信息。
display openflow instance instance-id meter [ meter-id ]
instance-id:OpenFlow实例号,取值范围为1~4094。
meter-id:Meter表项ID,取值范围为0~4294901760。如果未指定本参数,将显示实例所有Meter表项的信息。
# 显示OpenFlow实例10的Meter表项信息。
<Sysname> display openflow instance 10 meter
Meter flags: KBPS -- Rate value in kb/s, PKTPS -- Rate value in packet/sec
BURST -- Do burst size, STATS -- Collect statistics
Instance 10 meter table information:
meter entry count: 2
Meter entry 100 information:
Meter flags: KBPS
Band 1 information
Type: drop, rate: 1024, burst size: 65536
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: 10240, burst size: 655360
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列表 |
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 0x0000000100001221 Connected 2 8 Y
10 Inactive - - - - -
4094 active 0x00000ffe00001221 Failed(Sa) 2 0 N
表1-9 display openflow summary命令显示描述表
OpenFlow实例ID |
|
OpenFlow实例的激活状态: · active:表示该OpenFlow实例已经激活 · Inactive:表示该OpenFlow实例未激活 |
|
OpenFlow实例的Datapath ID。未激活该OpenFlow实例时,显示为“-” |
|
OpenFlow实例与控制器建立的安全通道的状态: · connected:OpenFlow实例与控制器已经建立安全通道 · Failed(Se):安全通道断开,连接中断模式为Secure模式 · Failed(Sa):连接通道断开,连接中断模式为Standalone模式 · 未激活该OpenFlow实例时,显示为“-” |
|
OpenFlow实例中的流表数目。未激活该OpenFlow实例时,显示为“-” |
|
属于该OpenFlow实例的接口数目。未激活该OpenFlow实例时,显示为“-” |
|
该OpenFlow实例是否需要重新激活: · Y:表示该OpenFlow实例需要重新激活 · N:表示该OpenFlow实例无需重新激活 · 未激活该OpenFlow实例时,显示为“-” |
fail-open mode命令用来配置OpenFlow实例与控制器连接中断时的运行模式。
undo fail-open mode命令用来恢复缺省情况。
fail-open mode { secure | standalone }
OpenFlow实例建立时,缺省为Secure模式,且为该实例下发Table Miss表项(动作为drop)。
OpenFlow实例视图
secure:Secure模式,连接断开后,交换机根据流表项转发。
standalone:Standalone模式,连接断开后,交换机正常转发。
# 配置交换机与控制器连接中断时的运行模式为Standalone模式。
[Sysname] openflow instance 1
[Sysname-of-inst-1] fail-open mode standalone
flow-entry max-limit命令用来配置Extensibility表的流表项上限。
undo flow-entry max-limit命令用来恢复缺省情况。
flow-entry max-limit limit-value
Extensibility流表项的上限为65535。
OpenFlow实例视图
limit-value:流表项上限值。取值范围为1~65535。
# 配置Extensibility表的流表项上限为256。
[Sysname] openflow instance 1
[Sysname-of-inst-1] flow-entry max-limit 256
flow-table命令用来配置OpenFlow实例下的流表类型和流表ID。
undo flow-table命令用来恢复缺省情况。
flow-table { extensibility extensibility-table-id | mac-ip mac-ip-table-id }*
OpenFlow实例包含了流表ID为0的Extensibility流表。
OpenFlow实例视图
extensibility extensibility-table-id:Extensibility流表ID,取值范围为0~254。
mac-ip mac-ip-table-id:MAC-IP流表ID,取值范围为0~254。
用户激活实例之前,配置当前OpenFlow实例使用的流表类型以及与之对应的流表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
forbidden port命令用来配置禁止OpenFlow实例上送Controller的端口类型。
undo forbidden port命令用来恢复缺省情况。
OpenFlow实例中所有接口都上报Controller。
OpenFlow实例视图
vlan-interface:禁止OpenFlow实例中的VLAN接口上送到Controller。
# 配置OpenFlow实例1禁止上报VLAN接口。
[Sysname] openflow instance 1
[Sysname-of-inst-1] forbidden port vlan-interface
in-band management vlan命令用来配置带内管理VLAN。
undo in-band management vlan命令用来恢复缺省情况。
in-band management vlan vlan-list
OpenFlow实例视图
vlan-list:VLAN ID列表,表示方式为vlan-list = { vlan-id1 [ to vlan-id2 ] }&<1-10>。其中,vlan-id1和vlan-id2为指定VLAN的编号,取值范围为1~4094,&<1-10>表示前面的参数最多可以重复输入10次。
带内管理VLAN必须是OpenFlow实例对应VLAN的子集。
# 在OpenFlow实例1中配置带内管理VLAN为VLAN10。
[Sysname] openflow instance 1
[Sysname-of-inst-1] in-band management vlan 10
mac-ip dynamic-mac aware命令用来配置支持动态MAC地址。
undo mac-ip dynamic-mac aware命令用来恢复缺省情况。
不支持动态MAC地址,即忽略控制器下发的此类消息。
OpenFlow实例视图
此功能仅在支持MAC-IP流表情况下,决定是否支持控制器在查询或者删除流表项时包含动态MAC地址(动态MAC表项变化不需要上报控制器)。
# 配置实例1支持动态MAC地址。
[Sysname] openflow instance 1
[Sysname-of-inst-1] mac-ip dynamic-mac aware
mac-learning forbidden命令用来配置在OpenFlow实例对应的VLAN禁止MAC地址学习。
undo mac-learning forbidden命令用来恢复缺省情况
OpenFlow实例对应的VLAN允许MAC地址学习。
OpenFlow实例视图
# 配置OpenFlow实例1对应的VLAN禁止MAC地址学习。
[Sysname] openflow instance 1
[Sysname-of-inst-1] mac-learning forbidden
openflow instance命令用来创建OpenFlow实例,并进入OpenFlow实例视图。
undo openflow instance命令用来删除指定的OpenFlow实例。
undo openflow instance instance-id
没有配置OpenFlow实例。
instance-id:OpenFlow实例号,取值范围为1~4094。
# 创建OpenFlow实例1,并进入OpenFlow实例视图。
[Sysname] openflow instance 1
[Sysname-of-inst-1]
reset openflow instance controller statistics命令用来清除控制器发送和接收的报文的统计计数。
reset openflow instance instance-id controller [ controller-id ] statistics
instance-id:OpenFlow实例号,取值范围为1~4094。
controller-id:控制器的ID号,取值范围为0~63。如果未指定本参数,清除实例下所有控制器发送和接收的报文的统计计数。
# 清除OpenFlow实例1的所有控制器发送和接收的报文的统计计数。
<Sysname> reset openflow instance 1 controller statistics
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!