01-OpenFlow命令
本章节下载: 01-OpenFlow命令 (354.82 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.31 openflow normal-forward vlan
1.1.32 openflow permit-flag ignore
1.1.34 openflow ttp-controller global-ssl
1.1.35 permit-port-type member-port
1.1.37 protocol-packet filter slow
1.1.40 reset openflow instance statistics
1.1.42 snmp-agent trap enable openflow
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 ] ] [ global-ssl | ssl ssl-policy-name [ access-control-policy acp-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,缺省值为随机分配的值。
global-ssl:TTP控制器使用全局SSL策略认证交换机。
ssl ssl-policy-name:安全连接的SSL客户端策略。需要通过ssl client-policy命令创建该策略并通过本参数引用。每个控制器连接可配置独立的安全策略。ssl-policy-name为1~31个字符的字符串,不区分大小写。如果未指定本参数,则交换机与控制器不建立SSL连接。
access-control-policy acp-policy-name:安全连接的证书访问控制策略,用于进一步检测控制器(SSL服务器)的证书。需要通过pki certificate access-control-policy命令创建该策略并通过本参数引用。acp-policy-name为1~31个字符的字符串,不区分大小写。关于证书访问控制策略的介绍,请参见“安全配置指导”中的“PKI”。
vrf vrf-name:指定控制器所在的VRF,vrf-name表示MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写。如果未指定本参数,则表示控制器位于公网中。
【使用指导】
多次执行该命令可以添加多个控制器,与每个控制器仅允许建立一个主连接。
主连接一般用于控制消息的处理(下发流表项、获取数据、信息上报等),使用TCP/SSL保持可靠的连接。
对于开启TTP模式的OpenFlow实例,配置主连接时指定的TTP控制器可以通过以下两种方式指定SSL策略:
· 通过ssl ssl-policy-name参数使用独立的SSL策略。
· 通过global-ssl参数使用预先配置的全局SSL策略。全局SSL策略需要通过openflow ttp-controller global-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
# 配置实例1的控制器1的IP地址为1.1.1.1,控制器对本实例使用名为p1的SSL策略以及名为myacp的证书访问控制策略进行认证。
<Sysname> system-view
[Sysname] pki certificate attribute-group mygroup
[Sysname-pki-cert-attribute-group-mygroup] attribute 1 subject-name dn ctn abc
[Sysname-pki-cert-attribute-group-mygroup] quit
[Sysname] pki certificate access-control-policy myacp
[Sysname-pki-cert-acp-myacp] rule 1 deny mygroup
[Sysname-pki-cert-acp-myacp] quit
[Sysname] openflow instance 1
[Sysname-of-inst-1] controller 1 address ip 1.1.1.1 ssl p1 access-control-policy myacp
以上配置中,PKI相关命令的含义为:
· 配置证书属性组mygroup,创建属性规则1:证书主题名的DN包含字符串abc。
· 创建访问控制策略myacp,定义访问控制规则1:当证书的属性与属性组mygroup1里定义的属性匹配时,认为该证书无效。
【相关命令】
· pki certificate access-control-policy(安全命令参考/PKI)
· ssl client-policy(安全命令参考/SSL)
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: XGE1/0/4
Write metadata/mask: 0x0000000000000001/0xffffffffffffffff
Goto table: 1
Table 1 information:
Table type: Extensibility, 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: 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: XGE1/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: XGE1/0/4
Write actions:
Output interface: Controller, send length: 128 bytes
表1-3 display openflow flow-table命令显示信息描述表
字段 |
描述 |
Table information |
流表信息 |
Table type |
流表类型 |
flow entry count |
控制器下发的流表项个数 |
total flow entry count |
流表中流表项总个数 |
Flow entry information |
流表项信息,Not effective表示该流表项未生效 MissRule (default)指Table Miss流表项 |
cookie |
流表项cookie |
priority |
流表项的优先级,数值越大,优先级越高 |
hard time |
流表项的hard time超时时间,单位为秒,0代表永不超时。当定时器超时后就清除该流表项,无论该流表项是否匹配到数据流 |
i |