• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

17-OpenFlow命令参考

目录

01-OpenFlow命令

本章节下载 01-OpenFlow命令  (354.82 KB)

01-OpenFlow命令


1 OpenFlow

1.1  OpenFlow配置命令

1.1.1  active instance

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

1.1.2  classification

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

1.1.3  controller address

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)

1.1.4  controller auxiliary

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

1.1.5  controller connect interval

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

1.1.6  controller echo-request interval

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

1.1.7  controller mode

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

1.1.8  datapath-id

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

1.1.9  default table-miss permit

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

1.1.10  description

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

1.1.11  display openflow

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名称,--表示未配置

 

1.1.12  display openflow auxiliary

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客户端策略的名称,--表示未配置

 

1.1.13  display openflow flow-table

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