01-OpenFlow命令
本章节下载: 01-OpenFlow命令 (327.23 KB)
目 录
1.1.5 controller connect interval
1.1.6 controller echo-request interval
1.1.9 default table-miss permit
1.1.12 display openflow auxiliary
1.1.13 display openflow flow-table
1.1.15 display openflow instance
1.1.17 display openflow summary
1.1.22 forbidden packet-in arp controller
1.1.24 in-band management vlan
1.1.27 mac-ip dynamic-mac aware
1.1.30 openflow lossless enable
1.1.32 permit-port-type member-port
1.1.34 protocol-packet filter slow
1.1.37 reset openflow instance statistics
active instance命令用来激活OpenFlow实例。
undo active instance命令用来取消激活OpenFlow实例。
【命令】
active instance
undo active instance
【缺省情况】
未激活OpenFlow实例。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【使用指导】
新配置或修改OpenFlow实例后,需要激活实例使配置生效。重新激活实例时,交换机会断开与所有控制器的连接,清除已下发的流表,更新能力集,重新与控制器建立连接。
【举例】
# 激活OpenFlow实例1。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] active instance
classification命令用来配置OpenFlow实例的类型。
undo classification命令用来恢复缺省情况。
【命令】
classification { global | vlan vlan-id [ mask vlan-mask ] [ loosen ] }
undo classification
【缺省情况】
未配置OpenFlow实例的类型。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
global:全局类型OpenFlow实例。
vlan:VLAN类型OpenFlow实例,实例按VLAN划分。
vlan-id:VLAN ID,取值范围为1~4094。
vlan-mask:VLAN掩码,取值范围为0~4095,缺省值为4095。
loosen:loosen模式。配置loosen模式后,如果接口所在VLAN与实例配置VLAN存在交集,则接口就属于OpenFlow实例。未配置loosen模式时,只有当实例配置的VLAN是接口所在VLAN的子集,该接口才属于OpenFlow实例。
【使用指导】
多次执行本命令,最后一次执行的命令生效。
VLAN & mask为实际生效VLAN区间。mask比特位为1表示符合,可以不连续;比特位为0表示忽略。生效VLAN区间,可通过display openflow instance查看。
【举例】
# 配置OpenFlow VLAN实例1对应的VLAN为255,掩码为7。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] classification vlan 255 mask 7
【相关命令】
· display openflow instance
controller address命令用来配置主连接。
undo controller address命令用来删除指定的主连接。
【命令】
controller controller-id address { ip ipv4-address | ipv6 ipv6-address } [ port port-number ] [ local address { ip local-ipv4-address | ipv6 local-ipv6-address } [ port local-port-number ] ] [ ssl ssl-policy-name ] [ vrf vrf-name ]
undo controller controller-id address
【缺省情况】
不存在主连接。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
controller-id:控制器的ID号,取值范围为0~63。
ip ipv4-address:控制器的IPv4地址。
ipv6 ipv6-address:控制器的IPv6地址。
port port-number:控制器建立连接使用的端口号,取值范围为1~65535,缺省值为6633。
local address:交换机与控制器连接的源IP地址。如果交换机与控制器之间存在多条路由可达,当交换机进行主备倒换时或者重启后,希望通过原来的路由重新建立连接,而不是新选择的路由,此时可以通过本参数进行配置。
ip local-ipv4-address:源IPv4地址。
ipv6 local-ipv6-address:源IPv6地址。
port local-port-number:源端口号,取值范围为1~65535,缺省值为随机分配的值。
ssl ssl-policy-name:安全连接的客户端安全策略,用于控制器认证交换机,每个控制器连接配置独立的安全策略。ssl-policy-name为1~31个字符的字符串,不区分大小写。
vrf vrf-name:指定控制器所在的VRF,vrf-name表示MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写。如果未指定本参数,则表示控制器位于公网中。
【使用指导】
多次执行该命令可以添加多个控制器,与每个控制器仅允许建立一个主连接。
主连接一般用于控制消息的处理(下发流表项、获取数据、信息上报等),使用TCP/SSL保持可靠的连接。
【举例】
# 配置实例1的控制器1的IP地址为1.1.1.1,端口号为6666。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller 1 address ip 1.1.1.1 port 6666
controller auxiliary命令用来配置辅助连接。
undo controller auxiliary命令用来删除指定的辅助连接。
【命令】
controller controller-id auxiliary auxiliary-id transport { tcp | udp | ssl ssl-policy-name } [ address { ip ipv4-address | ipv6 ipv6-address } ] [ port port-number ]
undo controller id auxiliary auxiliary-id
【缺省情况】
不存在辅助连接。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
controller-id:控制器的ID号,取值范围为0~63。
auxiliary auxiliary-id:辅助连接编号,取值范围为1~255。
transport:传输类型。
tcp:TCP连接。
udp:UDP连接。
ssl ssl-policy-name:SSL策略的名称,为1~31字符的字符串,不区分大小写。
ip ipv4-address:控制器的IPv4地址。
ipv6 ipv6-address:控制器的IPv6地址。
port port-number:控制器的端口号,取值范围为1~65535,缺省值为6633。
【使用指导】
辅助连接用于提高控制器和OpenFlow交换机的通信能力。
辅助连接配置和主连接配置不做配置冲突检查,如果辅助连接与主连接配置冲突,则无法建立辅助连接。
辅助连接的目的地址和端口号可以和主连接不一致。目的地址和端口号未配置时,和主连接一致。
【举例】
# 为实例1下编号为10控制器配置编号为1的辅助连接。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller 10 auxiliary 1 transport tcp
controller connect interval命令用来配置重连定时器的值。
undo controller connect interval命令用来恢复缺省情况。
【命令】
controller connect interval interval
undo controller connect interval
【缺省情况】
重连定时器的值为60秒。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
interval:重连定时器的值,取值范围为1~120,单位为秒。
【举例】
# 配置实例1重连定时器的值为10秒。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller connect interval 10
controller echo-request interval命令用来配置连接检测定时器的值。
undo controller echo-request interval命令用来恢复缺省情况。
【命令】
controller echo-request interval interval
undo controller echo-request interval
【缺省情况】
连接检测定时器的值为5秒。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
interval:连接检测定时器的值,取值范围为1~10,单位为秒。
【举例】
# 配置实例1连接检测定时器的值为10秒。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller echo-request interval 10
controller mode命令用来配置控制器连接模式。
undo controller mode命令用来恢复缺省情况。
【命令】
controller mode { multiple | single }
undo controller mode
【缺省情况】
控制器连接模式为Multiple。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
multiple:同一时刻可以与多个控制器建立连接。配置该模式后,交换机会同时连接实例内所有的控制器,在与某个控制器连接失败或者断开连接时,在重连定时器超时后重新进行连接,直到连接成功。
single:同一时刻仅与一个控制器建立连接,其他控制器作为备份。配置该模式后,当且仅当当前的连接断开后,交换机会连接下一个控制器,直到连接成功。
【举例】
# 配置实例1的控制器连接模式为Single。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller mode single
datapath-id命令用来配置OpenFlow实例的Datapath ID。
undo datapath-id命令用来恢复缺省情况。
【命令】
datapath-id id
undo datapath-id
【缺省情况】
OpenFlow实例的Datapath ID是由实例ID和设备桥MAC组成,前16个比特为实例ID,后48个比特为设备桥MAC。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
id:OpenFlow实例的Datapath ID,取值范围为十六进制数1~ffffffffffffffff。
【使用指导】
Datapath ID用来在唯一标识OpenFlow实例,不同OpenFlow实例的Datapath ID不能相同。
【举例】
# 配置实例1的Datapath ID为123456。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] datapath-id 123456
default table-miss permit命令用来配置Table Miss流表项的缺省动作为正常转发。
undo default table-miss permit命令用来恢复缺省情况。
【命令】
default table-miss permit
undo default table-miss permit
【缺省情况】
Table Miss流表项的缺省动作为丢弃。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【举例】
# 配置Table Miss流表项的缺省动作为正常转发。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] default table-miss permit
description命令用来配置OpenFlow实例的描述信息。
undo description命令用来恢复缺省情况。
【命令】
description text
undo description
【缺省情况】
未配置OpenFlow实例的描述信息。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
text:OpenFlow实例的描述信息,为1~255个字符的字符串,区分大小写。
【举例】
# 配置实例1的描述信息为test-desc。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] description test-desc
display openflow命令用来显示OpenFlow实例的控制器信息。
【命令】
display openflow instance instance-id { controller [ controller-id ] | listened }
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
instance-id:OpenFlow实例号,取值范围为1~4094。
controller-id:控制器的ID号,取值范围为0~63。如果未指定本参数,将显示实例下所有控制器的信息。
listened:OpenFlow实例作为SSL服务器连接的控制器(SSL客户端)。
【举例】
# 显示OpenFlow实例100的控制器信息。
<Sysname> display openflow instance 100 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
Local IP address : 192.0.0.1
Local port : 5566
Controller role : Equal
Connect type : TCP
Connect state : Established
Packets sent : 9
Packets received : 9
SSL policy : --
VRF name : --
表1-1 display openflow controller命令显示信息描述表
字段 |
描述 |
Instance x controller information |
OpenFlow实例号 |
Reconnect interval |
实例内所有控制器的断开重连时间间隔,单位为秒 |
Echo interval |
实例内所有控制器发送保活报文的时间间隔,单位为秒 |
Controller ID |
控制器的ID号 |
Controller IP address |
OpenFlow实例对应的控制器的IP地址 |
Controller port |
当前连接控制器的TCP端口号 |
Local IP address |
OpenFlow实例对应的控制器的源IP地址 |
Local port |
当前连接控制器的源TCP端口号 |
Controller role |
控制器的角色: · --:未连接,未配置角色 · Equal:控制器的角色是Equal · Master:控制器的角色是Master · Slave:控制器的角色是Slave |
Connect type |
连接类型, · TCP:使用TCP连接控制器 · SSL:使用SSL连接控制器 |
Connect state |
连接状态: · Idle:未建立连接 · Established:成功建立连接 |
Packets sent |
已经向控制器发送的报文的计数 |
Packets received |
已经接收控制器的报文的计数 |
SSL policy |
用于SSL连接的SSL策略的名称,--表示未配置 |
VRF name |
控制器所在的VRF名称,--表示未配置 |
display openflow auxiliary命令用来显示OpenFlow实例的辅助连接信息。
【命令】
display openflow instance instance-id auxiliary [ controller-id [ auxiliary auxiliary-id ] ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
instance instance-id:OpenFlow实例号,取值范围为1~4094。
controller-id:控制器编号,取值范围为0~63。
auxiliary auxiliary-id:辅助连接编号,取值范围为1~255。
【举例】
# 显示OpenFlow实例100的控制器辅助连接信息。
<Sysname> display openflow instance 100 auxiliary
Controller ID: 1 Auxiliary connection number: 2
Auxiliary connection ID : 1
Controller IP address : 192.168.49.48
Controller port : 6633
Connect type : TCP
Connect state : Established
Packets sent : 9
Packets received : 9
SSL policy : --
Auxiliary connection ID : 2
Controller IP address : 192.168.49.49
Controller port : 6633
Connect type : TCP
Connect state : Established
Packets sent : 9
Packets received : 9
SSL policy : --
表1-2 display openflow auxiliary命令显示信息描述表
字段 |
描述 |
Controller ID |
控制器ID |
Auxiliary connection number |
辅助连接总数量 |
Auxiliary connection ID |
辅助连接的ID |
Controller IP address |
已经配置在实例下的Controller的IP地址 |
Controller port |
当前连接Controller的TCP端口号 |
Connect type |
连接类型, · TCP:使用TCP连接Controller · SSL:使用SSL连接Controller · UDP:使用UDP连接Controller |
Connect state |
连接状态: · Idle:未建立连接 · Established:成功建立连接 |
Packets sent |
已经向控制器发送的报文的计数 |
Packets received |
已经接收控制器的报文的计数 |
SSL policy |
用于SSL连接的SSL客户端策略的名称,--表示未配置 |
display openflow flow-table命令用来显示OpenFlow实例的流表信息。
【命令】
display openflow instance instance-id flow-table [ table-id ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
instance-id:OpenFlow实例号,取值范围为1~4094。
table-id:流表ID,取值范围为0~254。如果未指定本参数,将显示所有流表的信息。
【举例】
# 显示OpenFlow实例100的所有流表信息。
<Sysname> display openflow instance 100 flow-table
Instance 100 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: --
Create time: 09:39:42 10/24/2017, Last modified time: 09:39:42 10/24/2017
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: --
Create time: 09:39:42 10/24/2017, Last modified time: 09:39:42 10/24/2017
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: WGE1/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: 300, packet count: 60
Create time: 09:39:42 10/24/2017, Last modified time: 09:39:42 10/24/2017
Match information: any
Instruction information:
Write actions:
Drop
Flow entry 1 information: (Not effective)
cookie: 0x0, priority: 0, hard time: 0, idle time: 0, flags: flow_send_rem
|check_overlap, byte count: 8, packet count: 1
Create time: 09:39:42 10/24/2017, Last modified time: 09:39:42 10/24/2017
Match information:
Input interface: WGE1/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: WGE1/0/4
Write actions:
Output interface: Controller, send length: 128 bytes
表1-3 display openflow flow-table命令显示信息描述表
字段 |
描述 |
Table information |
流表信息 |
Table type |
流表类型: · MAC-IP:MAC-IP流表 · Extensibility:Extensibility流表 |
flow entry count |
控制器下发的流表项个数 |
total flow entry count |
流表中流表项总个数 |
Flow entry information |
流表项信息,Not effective表示该流表项未生效 |
cookie |
流表项cookie |
priority |
流表项的优先级,数值越大,优先级越高 |
hard time |
流表项的hard time超时时间,单位为秒,0代表永不超时。当定时器超时后就清除该流表项,无论该流表项是否匹配到数据流 |
idle time |
流表项的idle time超时时间,单位为秒,0代表永不超时。如果idle time超时时间内没有数据流匹配到该流表项,该流表项被清除 |
flags |
流表项的标志位: · flow_send_rem:发送流表项删除消息 · check_overlap:检查流表项重复 · reset_counts:重置流表项统计信息 · no_pkt_counts:不统计报文计数 · no_byte_counts:不统计字节计数 · none:无标志位 |
byte count |
匹配当前流表项的字节计数 |
packet count |
匹配当前流表项的报文计数 |
Create time |
流表项创建时间 |
Last modified time |
流表项最后修改时间 |
Match information |
匹配规则信息(表1-4) |
Instruction information |
动作指令集信息: · Set meter:应用指定的Meter表 · Write metadata:写入元数据,元数据用来在不同流表间传递信息 · Write metadata mask:元数据掩码 · Goto table:进入下一级流表 · Clear actions:清除动作集中的所有动作 · Apply actions:立即执行动作序列中的动作 · Write actions:更改动作集中的所有动作 更多信息,请参见表1-5 |
表1-4 流表项匹配规则信息(不同产品支持的匹配信息不同,请以设备的实际情况为准)
匹配字段名称 |
匹配掩码字段名称 |
描述 |
Input interface |
无 |
入端口(表1-6) |
Physical input interface |
无 |
入物理端口 |
Metadata |
Metadata mask |
元数据/掩码 |
Ethernet destination MAC address |
Ethernet destination MAC address mask |
以太网目的MAC地址/掩码 |
Ethernet source MAC address |
Ethernet source MAC address mask |
以太网源MAC地址/掩码 |
Ethernet type |
无 |
以太网类型 |
VLAN ID |
mask |
VLAN ID/掩码 |
VLAN PCP |
无 |
VLAN优先级 |
IP DSCP |
无 |
DSCP(Differentiated Services Code Point,区分服务编码点)值 |
IP ECN |
无 |
IP头的ECN(Explicit Congestion Notification,显式拥塞通知)值 |
IP protocol |
无 |
IPv4或IPv6协议号 |
IPv4 source address |
mask |
IPv4源地址/掩码 |
IPv4 destination address |
mask |
IPv4目的地址/掩码 |
TCP source port |
mask |
TCP源端口/掩码 |
TCP destination port |
mask |
TCP目的端口/掩码 |
UDP source port |
mask |
UDP源端口/掩码 |
UDP destination port |
mask |
UDP目的端口/掩码 |
SCTP source port |
mask |
SCTP(Stream Control Transmission Protocol,流控制传输协议)源端口/掩码 |
SCTP destination port |
mask |
SCTP目的端口/掩码 |
ICMPv4 type |
无 |
ICMPv4类型 |
ICMPv4 code |
无 |
ICMPv4代号 |
ARP opcode |
无 |
ARP操作类型 |
ARP source IPv4 address |
mask |
ARP源IP地址/掩码 |
ARP target IPv4 address |
mask |
ARP目标IP地址/掩码 |
ARP source MAC address |
ARP source MAC address mask |
ARP源MAC地址/掩码 |
ARP target MAC address |
ARP target MAC address mask |
ARP目的MAC地址/掩码 |
IPv6 source address |
IPv6 source address mask |
IPv6源地址/掩码 |
IPv6 destination address |
IPv6 destination address mask |
IPv6目的地址/掩码 |
IPv6 flow label |
mask |
IPv6流标签/掩码 |
ICMPv6 type |
无 |
ICMPv6类型 |
ICMPv6 code |
无 |
ICMPv6代号 |
IPv6 ND target address |
无 |
IPv6邻居发现协议报文的目的IP地址 |
IPv6 ND source MAC address |
无 |
IPv6邻居发现协议报文的源MAC地址 |
IPv6 ND target MAC address |
无 |
IPv6邻居发现协议的目的MAC地址 |
MPLS label |
无 |
MPLS第一个头部的标签 |
MPLS tc |
无 |
MPLS第一个头部的TC(Traffic Class,流量等级) |
MPLS bos |
无 |
MPLS标签栈底标识位 |
Tunnel ID |
mask |
与一个逻辑口相关的MetaData/掩码 |
IPv6 extension header |
mask |
IPv6扩展头/掩码 |
Output interface |
无 |
出接口 |
VRF index |
无 |
VPN索引 |
Fragment |
无 |
分片标志 |
Physical output interface |
无 |
出物理端口 |
CVLAN ID |
mask |
CVLAN ID/掩码 |
Experiment |
无 |
扩展匹配项:Address ID表示地址区分ID |
动作名称 |
描述 |
Drop |
丢弃报文(非协议Action) |
Output interface |
从指定端口发送报文(表1-6) |
Group |
根据指定Group表处理报文 |
Set queue |
将流表项映射到指定队列ID |
Set field |
修改报文指定的域 |
端口名称 |
入端口 |
出端口 |
说明 |
Normal |
不支持 |
支持 |
报文正常转发 |
Flood |
不支持 |
支持 |
报文广播发送 |
All |
不支持 |
支持 |
报文从所有接口发送 |
Controller |
支持 |
支持 |
报文上送控制器 |
Local |
支持 |
支持 |
报文上送本地CPU |
(端口名称) |
支持 |
支持 |
实例有效端口,包含物理接口和逻辑接口 |
display openflow group命令用来显示OpenFlow实例的Group表信息。
【命令】
display openflow instance instance-id group [ group-id ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
instance-id:OpenFlow实例号,取值范围为1~4094。
group-id:Group ID,取值范围为0~4294967040。如果未指定本参数,将显示实例所有Group表项的信息。
【举例】
# 显示OpenFlow实例100的Group表项信息。
<Sysname> display openflow instance 100 group
Instance 100 group table information:
Group count: 2
Group entry 103:
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: BAGG100
Bucket 2 information:
Action count 1, watch port: any, watch group: any
Byte count 0, packet count 0
Output interface: Controller, send length: 128 bytes
Referenced information:
Count: 3
Flow table 0
Flow entry: 1, 2, 3
Group entry 104:
Some buckets are invalid.
Type: All, byte count: 0, packet count: 0
Bucket 1 information:
Action count 2, watch port: any, watch group: any
Byte count 0, packet count 0
Output interface: Controller, send length: 128 bytes
Referenced information:
Count: 0
表1-7 display openflow group命令显示信息描述表
字段 |
描述 |
Group count |
当前实例包含的Group表项的总个数 |
Some buckets are invalid. |
由于硬件资源不足或设备异常,Group表项中的某些bucket无效 |
Type |
当前Group表项的类型,All表示执行所有动作桶,用于组播或者广播 |
Bucket |
Group表项包含的bucket |
Action count |
当前bucket包含的action的个数 |
Byte count |
group/bucket的字节统计计数,如果显示为“--”则表示不支持该统计项 |
packet count |
group/bucket的报文统计计数,如果显示为“--”则表示不支持该统计项 |
watch port |
影响bucket的live状态的端口 |
watch group |
影响bucket的live状态的group ID |
Output interface |
转发报文到特定的OpenFlow接口 |
Referenced information |
Group表项被流表项引用的信息 |
Count |
引用Group表项的流表项的总个数 |
Flow table |
引用Group表项的流表项所在的流表ID |
Flow entry |
引用Group表项的流表项ID列表 |
display openflow instance命令用来显示OpenFlow实例的详细信息。
【命令】
display openflow instance [ instance-id ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
instance-id:OpenFlow实例号,取值范围为1~4094。如果未指定本参数,将显示所有实例的详细信息。
【举例】
# 显示所有OpenFlow实例的详细信息。
<Sysname> display openflow instance
Instance 100 information:
Configuration information:
Description : test-desc
Active status : Active
Inactive configuration:
None
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: Disabled
TCP DSCP value: 10
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
Qinq Network: Disabled
TCP connection backup: Enabled
Port information:
Twenty-FiveGigE1/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-8 display openflow instance命令显示信息描述表
字段 |
描述 |
Configuration information |
配置信息 |
Description |
实例的描述信息 |
Active status |
实例状态: · Active:激活 · Inactive:未激活 |
Inactive configuration |
未生效的实例配置 |
Active configuration |
已生效的实例配置 |
Classification: VLAN, total VLANs |
实例VLAN信息及VLAN总个数 |
loose mode |
处于loosen模式 |
In-band management VLAN, total VLANs |
带内管理VLAN列表及VLAN个数 |
Connect mode |
控制器连接模式: · Single:串行 · Multiple:并行 |
MAC address learning |
MAC地址学习: · Enabled:允许 · Disabled:禁止 |
TCP DSCP value |
OpenFlow报文的DSCP值 |
Flow table |
实例的流表信息 |
Table ID(type) |
流表ID,类型 · MAC-IP:MAC-IP类型流表 · Extensibility:Extensibility类型流表 |
count |
对应流表的流表项总个数 |
Flow-entry max-limit |
当前实例Extensibility表的流表项最大个数 |
Datapath ID |
实例的Datapath ID |
Default table-miss |
缺省table miss动作: · Permit:允许 · Drop:丢弃 |
Forbidden port |
禁止上送Controller的端口类型: · L3 Physical Interface:三层以太网接口和三层聚合接口 · VLAN interface:VLAN接口 |
Qinq Network |
是否配置QINQ模式: · Disabled:未配置 · Enabled:配置 |
TCP connection backup |
OpenFlow连接备份功能: · Disabled:关闭 · Enabled:开启 |
Port information |
已加入实例的端口的名称列表 |
Active channel information |
生效的控制通道信息 |
IP address |
已经配置在实例下的控制器的IP地址 |
Port |
当前连接Controller的TCP端口号 |
Failopen mode |
连接中断时的运行模式: · Standalone:Standalone模式 · Smart:Smart模式 · Secure:Secure模式 |
display openflow meter命令用来显示OpenFlow实例的Meter表信息。
【命令】
display openflow instance instance-id meter [ meter-id ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
instance-id:OpenFlow实例号,取值范围为1~4094。
meter-id:Meter ID,取值范围为1~4294901760。如果未指定本参数,将显示实例所有Meter表项的信息。
【举例】
# 显示OpenFlow实例100的Meter表信息。
<Sysname> display openflow instance 100 meter
Meter flags: KBPS -- Rate value in kb/s, PKTPS -- Rate value in packet/sec
BURST -- Do burst size, STATS -- Collect statistics
Instance 100 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: 0, 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: 0, packet count: 0
Referenced information:
Count: 0
表1-9 display openflow meter命令显示信息描述表
字段 |
描述 |
Meter entry count |
当前实例包含的Meter表项的总个数 |
Meter flags |
当前Meter表项的所携带的flags: · KBPS:速率值以kbps为单位 · PKTPS:速率值以packet/sec(包/秒)为单位 · BURST:帧大小 · STATS:收集统计信息 |
Band |
Meter表项包含的band |
Type |
band类型: · drop:丢弃数据包 · dscp_remark:修改数据包IP头部的dscp |
rate |
速率 |
burst size |
帧大小 |
Byte count |
band的字节统计计数,如果显示为“--”则表示不支持该统计项 |
packet count |
band的报文统计计数,如果显示为“--”则表示不支持该统计项 |
Reference information |
Meter表项被流表项引用的信息 |
Count |
引用Meter表项的流表项的总个数 |
Flow table |
引用Meter表项的流表项所在的流表ID |
Flow entry |
引用Meter表项的流表项ID列表 |
display openflow summary命令用来显示OpenFlow实例的概要信息。
【命令】
display openflow summary
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【举例】
# 显示OpenFlow概要信息。
<Sysname> display openflow summary
Fail-open mode: Se - Secure mode, Sa - Standalone mode, Sm - Smart mode
ID Status Datapath-ID Channel Table-num Port-num Reactivate
1 Active 0x0000000100001221 Connected 2 8 N
10 Inactive - - - - -
4094 Active 0x00000ffe00001221 Failed(Sa) 2 0 N
表1-10 display openflow summary命令显示信息描述表
字段 |
描述 |
ID |
实例ID |
Status |
实例的激活状态: · Active:实例已经激活 · Inactive:实例尚未激活 |
Datapath-ID |
实例的Datapath ID。未激活该OpenFlow实例时,显示为“-” |
Channel |
实例与控制器建立的安全通道的状态: · Connected:与控制器已经建立安全通道 · Failed(Se):安全通道断开,连接中断模式为Secure模式 · Failed(Sm):安全通道断开,连接中断模式为Smart模式 · Failed(Sa):安全通道断开,连接中断模式为Standalone模式 · 未激活该OpenFlow实例时,显示为“-” |
Table-num |
实例中流表数目。未激活该OpenFlow实例时,显示为“-” |
Port-num |
属于该实例的接口数目。未激活该OpenFlow实例时,显示为“-” |
Reactivate |
是否需要重新激活该OpenFlow实例: · N:配置未改变,不需要重新激活 · 未激活该OpenFlow实例时,显示为“-” |
fail-open mode命令用来配置连接中断模式。
undo fail-open mode命令用来恢复缺省情况。
【命令】
fail-open mode { secure | smart | standalone }
undo fail-open mode
【缺省情况】
连接中断模式为Secure。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
secure:Secure模式,连接断开后,交换机根据流表项转发。不主动删除控制器下发的表项,而是等待表项超时后进行删除,一旦连接建立成功,未超时的表项依然存在。
smart:Smart模式,连接断开后,交换机根据流表项转发。匹配的流表项中执行output controller动作转发的流量,会进行正常转发。
standalone:Standalone模式,连接断开后,交换机正常转发。
【举例】
# 配置连接中断模式为Standalone模式。
<Sysname> system-view
[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
undo flow-entry max-limit
【缺省情况】
Extensibility表的流表项的最大个数为65535。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
limit-value:Extensibility的流表项的最大值。取值范围为1~65535。
【使用指导】
控制器下发的流表表项数量超过最大值时,向控制器返回失败。
【举例】
# 配置Extensibility的流表项的最大值为256。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] flow-entry max-limit 256
flow-log disable命令用来关闭流表项变化成功后打印日志的开关。
undo flow-log disable命令用来恢复缺省情况。
【命令】
flow-log disable
undo flow-log disable
【缺省情况】
流表项变化成功后打印日志的开关处于开启状态。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【举例】
# 关闭OpenFlow实例1流表项变化成功后打印日志的开关。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] flow-log disable
flow-table命令用来配置流表类型和流表ID。
undo flow-table命令用来恢复缺省情况。
【命令】
flow-table { ingress-vlan ingress-table-id | mac-ip mac-ip-table-id | extensibility extensibility-table-id | egress-vlan egress-table-id }*
undo flow-table
【缺省情况】
流表类型为Extensibility,流表ID为0。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
ingress-vlan ingress-table-id:表示入方向添加VLAN Tag流表。ingress-table-id为Ingress-vlan流表ID,取值范围为0~254。
mac-ip mac-ip-table-id:MAC-IP流表ID,取值范围为0~254。
extensibility extensibility-table-id:Extensibility流表ID,取值范围为0~254。
egress-vlan egress-table-id:表示出方向剥离VLANTag流表。egress-table-id为Egress-vlan流表ID,取值范围为0~254。
【使用指导】
多次执行本命令,最后一次执行的命令生效。
Extensibility流表ID必须大于MAC-IP流表ID。
Ingress-vlan流表和Egress-vlan流表与MAC-IP流表、Extensibility流表同时配置时,Ingress-vlan流表必须为第一个流表,Egress-vlan流表必须为最后一个流表。
Ingress-vlan流表和Egress-vlan流表仅在设备处于Standalone模式,且配置QINQ模式后生效。
QINQ表和Extensibility表配合使用时,必须配置QINQ模式。
【举例】
# 配置实例1流表类型为MAC-IP表ID为0,Extensibility表ID为1。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] flow-table mac-ip 0 extensibility 1
【相关命令】
· qinq-network enable
forbidden packet-in arp controller命令用来配置禁止ARP报文上送的控制器。
undo forbidden packet-in arp controller命令用来恢复缺省情况。
【命令】
forbidden packet-in arp controller controller-id-list
undo forbidden packet-in arp controller [ controller-id-list ]
【缺省情况】
未配置禁止ARP报文上送的控制器。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
controller-id-list:控制器的ID号列表,表示方式为controller-id-list = { controller-id1 [ to controller-id2 ] }&<1-10>,其中controller-id1和controller-id2为控制器的ID号,取值范围为0~63。controller-id2的值要大于或等于controller-id1的值,&<1-10>表示前面的参数最多可以输入10次。执行undo命令时,如果未指定该参数,则所有该功能配置都恢复为缺省情况。
【举例】
# 配置禁止ARP报文上送到控制器0。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] forbidden packet-in arp controller 0
forbidden port命令用来配置禁止上送控制器的端口类型。
undo forbidden port命令用来恢复缺省情况。
【命令】
forbidden port { l3-physical-interface | vlan-interface | vsi-interface } *
undo forbidden port
【缺省情况】
未配置禁止上送控制器的端口类型,即所有接口类型都上送控制器。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
l3-physical-interface:三层以太网接口和三层聚合接口。
vlan-interface:VLAN接口。
vsi-interface:VXLAN中的VSI虚接口(暂不支持)。
【举例】
# 配置OpenFlow实例1禁止上送VLAN接口。
<Sysname> system-view
[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-id [ to vlan-id ] } &<1-10>
undo in-band management vlan
【缺省情况】
未配置带内管理VLAN。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
vlan-id:VLAN ID,取值范围为1~4094。
【使用指导】
带内管理VLAN内的流量进行正常转发,用于OpenFlow设备与控制器建立安全通道。
【举例】
# 在实例1中配置VLAN 10为带内管理VLAN。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] in-band management vlan 10
listening port命令用来配置OpenFlow实例作为SSL服务器监听控制器。
undo listening port命令用来恢复缺省情况。
【命令】
listening port port-number ssl ssl-policy-name
undo listening port
【缺省情况】
未配置OpenFlow实例作为SSL服务器监听控制器。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
port-number:服务器的端口号,取值范围为1~65535。
ssl ssl-policy-name:SSL服务器端策略的名称,为1~31字符的字符串,不区分大小写。
【使用指导】
未开启SSL服务器时,设备作为TCP/SSL客户端主动连接控制器(SSL服务器);启动SSL服务器之后,设备作为SSL服务器端被动等待控制器(SSL客户端)连接。关于SSL的详细介绍,请参见“安全配置指导”中的“SSL”。
不能通过重复执行本命令修改OpenFlow实例启动的SSL服务器。如需修改,请先通过undo listening port命令删除OpenFlow实例启动的SSL服务器,再执行listening port命令重新启动SSL服务器。
【举例】
# 配置OpenFlow实例1作为SSL服务器监听控制器,端口号为20000,SSL服务器端策略的名称为ssl_name。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] listening port 20000 ssl ssl_name
loop-protection enable命令用来使能环路保护功能。
undo loop-protection enable命令用来恢复缺省情况。
【命令】
loop-protection enable
undo loop-protection enable
【缺省情况】
环路保护功能处于关闭状态。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【使用指导】
用户将OpenFlow实例去激活之后,OpenFlow下发一条流表项,用于丢弃实例所属VLAN范围内的所有流量,从而避免环路。
【举例】
# 配置实例1使能环路保护功能。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] loop-protection enable
mac-ip dynamic-mac aware命令用来配置匹配控制器查询或删除流表项指令中的动态MAC地址。
undo mac-ip dynamic-mac aware命令用来恢复缺省情况。
【命令】
mac-ip dynamic-mac aware
undo mac-ip dynamic-mac aware
【缺省情况】
忽略控制器查询或删除流表项指令中的动态MAC地址。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【使用指导】
仅MAC-IP流表支持该命令。
【举例】
# 配置实例1匹配控制器查询或删除流表项指令中的动态MAC地址。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] mac-ip dynamic-mac aware
mac-learning forbidden命令用来配置OpenFlow实例对应的VLAN禁止MAC地址学习。
undo mac-learning forbidden命令用来恢复缺省情况。
【命令】
mac-learning forbidden
undo mac-learning forbidden
【缺省情况】
OpenFlow实例对应的VLAN允许MAC地址学习。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【举例】
# 配置实例1对应的VLAN禁止MAC地址学习。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] mac-learning forbidden
openflow instance命令用来创建OpenFlow实例,并进入OpenFlow实例视图。如果指定的OpenFlow实例已经存在,则直接进入OpenFlow实例视图。
undo openflow instance命令用来删除OpenFlow实例。
【命令】
openflow instance instance-id
undo openflow instance instance-id
【缺省情况】
不存在OpenFlow实例。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
instance-id:OpenFlow实例号,取值范围为1~4094。
【举例】
# 创建OpenFlow实例1,并进入OpenFlow实例视图。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1]
openflow lossless enable命令用来开启OpenFlow的无丢包模式。
undo openflow lossless enable命令用来关闭OpenFlow的无丢包模式。
【命令】
openflow lossless enable
undo openflow lossless enable
【缺省情况】
OpenFlow的无丢包模式处于关闭状态。
【视图】
系统视图
【缺省用户角色】
network-admin
【使用指导】
在OpenFlow场景中,OpenFlow的流表下发过程中设备可能会出现丢包,从而引发很多问题,比如流量误上送控制器,导致误下发OpenFlow表项等,此时需要开启OpenFlow的无丢包模式。在无丢包模式下,设备不会丢包,OpenFlow在实际网络中可以正常使用,但是匹配能力会受限制,比如不能匹配IPv6地址。
在非OpenFlow场景中,请不要开启OpenFlow的无丢包模式,否则会影响转发效率和能力集匹配。
配置本功能后,需要重启设备,使配置生效。重启设备前,请保存当前配置,以免配置丢失。
【举例】
# 开启OpenFlow的无丢包模式。
<Sysname> system-view
[Sysname] openflow lossless enable
Enable lossless traffic function? [Y/N]:y
For the setting to take effect, save the configuration, and then reboot the device.
openflow shutdown命令用来关闭接口。
undo openflow shutdown命令用来恢复缺省情况。
【命令】
openflow shutdown
undo openflow shutdown
【缺省情况】
OpenFlow的关闭接口功能处于关闭状态。
【视图】
接口视图
【缺省用户角色】
network-admin
【使用指导】
开启本功能后,可以通过display interface命令查看到接口显示信息中Current state为OFP DOWN。
使用OpenFlow关闭接口后,可以通过如下方式打开接口:
· undo openflow shutdown命令打开接口。
· 通过控制器下发PORT_MOD消息打开接口。
【举例】
# 在接口Twenty-FiveGigE1/0/1下使用OpenFlow关闭接口。
<Sysname> system-view
[Sysname] interface twenty-fivegige 1/0/1
[Sysname-Twenty-FiveGigE1/0/1] openflow shutdown
permit-port-type member-port命令用来允许控制器下发的流表中包含聚合接口的成员端口。
undo permit-port-type命令用来恢复缺省情况。
【命令】
permit-port-type member-port
undo permit-port-type
【缺省情况】
禁止控制器下发的流表中包含聚合接口的成员端口。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【举例】
# 允许控制器下发的流表中包含聚合接口的成员端口。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] permit-port-type member-port
precedence dynamic arp命令用来配置允许动态ARP表项覆盖OpenFlow ARP表项。
undo precedence dynamic命令用来恢复缺省情况。
【命令】
precedence dynamic arp
undo precedence dynamic arp
【缺省情况】
禁止动态ARP表项覆盖OpenFlow ARP表项。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【使用指导】
仅MAC-IP流表支持本功能。
【举例】
# 配置OpenFlow实例1允许动态ARP表项覆盖OpenFlow ARP表项。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] precedence dynamic arp
protocol-packet filter slow命令用来配置丢弃慢速协议报文。
undo protocol-packet filter命令用来恢复缺省情况。
【命令】
protocol-packet filter slow
undo protocol-packet filter
【缺省情况】
未配置丢弃慢速协议报文。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【使用指导】
慢速协议目前支持LACP和OAM协议。
【举例】
# 配置丢弃慢速协议报文。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] protocol-packet filter slow
qinq-network enable命令用来配置QINQ模式,使带有双层VLAN Tag的报文通过Extensibility流表后仍然为双层VLAN Tag。
undo qinq-network enable命令用来恢复缺省情况。
【命令】
qinq-network enable
undo qinq-network enable
【缺省情况】
未配置QINQ模式,带有双层VLAN Tag的报文通过Extensibility表后,只带一个内层的VLAN Tag。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【举例】
# 配置QINQ模式。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] qinq-network enable
【相关命令】
· flow-table
refresh ip-flow命令用来刷新MAC-IP流表的三层表项。
【命令】
refresh ip-flow
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【使用指导】
某些情况下,MAC-IP流表的三层表项会被覆盖,此时需要手工执行本命令刷新MAC-IP流表,重新从控制器获取新的三层表项。
【举例】
# 刷新OpenFlow实例1下MAC-IP流表的三层表项。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] refresh ip-flow
reset openflow instance statistics命令用来清除控制器发送和接收报文的统计计数。
【命令】
reset openflow instance instance-id { controller [ controller-id ] | listened } statistics
【视图】
用户视图
【缺省用户角色】
network-admin
【参数】
instance-id:OpenFlow实例号,取值范围为1~4094。
controller-id:控制器的ID号,取值范围为0~63。如果未指定本参数,则清除实例下所有控制器发送和接收报文的统计计数。
listened:实例启动的服务端连接的客户端。
【举例】
# 清除OpenFlow实例1对应的所有控制器发送和接收报文的统计计数。
<Sysname> reset openflow instance 1 controller statistics
tcp dscp命令用来配置OpenFlow报文的DSCP值。
undo tcp dscp命令用来恢复缺省情况。
【命令】
tcp dscp dscp-value
undo tcp dscp
【缺省情况】
未配置OpenFlow报文的DSCP值。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【参数】
dscp-value:OpenFlow报文的DSCP值,取值范围为0~63。
【举例】
# 配置OpenFlow报文的DSCP值为63。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] tcp dscp 63
tcp-connection backup命令用来开启OpenFlow连接备份功能。
undo tcp-connection backup命令用来关闭OpenFlow连接备份功能。
【命令】
tcp-connection backup
undo tcp-connection backup
【缺省情况】
OpenFlow连接备份功能处于开启状态。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【使用指导】
配置本功能后,设备在发生主备倒换时,OpenFlow实例仍然保持与控制器的连接。
本功能仅支持IRF只有两台成员设备进行主备倒换的场景。
仅基于TCP的OpenFlow连接支持本功能。
【举例】
# 关闭OpenFlow实例1的OpenFlow连接备份功能。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] undo tcp-connection backup
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!