01-OpenFlow命令
本章节下载: 01-OpenFlow命令 (326.87 KB)
目 录
1.1.5 controller connect interval
1.1.6 controller echo-request interval
1.1.10 default table-miss permit
1.1.13 display openflow auxiliary
1.1.14 display openflow flow-table
1.1.16 display openflow instance
1.1.18 display openflow summary
1.1.23 forbidden packet-in arp controller
1.1.25 in-band management vlan
1.1.31 permit-port-type member-port
1.1.33 protocol-packet filter slow
1.1.35 reset openflow instance statistics
1.1.37 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 ] ] [ 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
data-plane enable命令用来开启OpenFlow数据转发平面功能。
undo data-plane enable命令用来关闭OpenFlow数据转发平面功能。
【命令】
data-plane enable
undo data-plane enable
【缺省情况】
OpenFlow数据转发平面功能处于关闭状态。
【视图】
OpenFlow实例视图
【缺省用户角色】
network-admin
【使用指导】
在转发与控制分离的组网中,设备需要开启OpenFlow数据转发平面功能,才能将用户侧接口(以太网服务实例所在的接口)与VXLAN的对应关系,以及VXLAN-DCI隧道与VXLAN的对应关系上送控制器,控制器根据这些接口对应关系生成流表项再下发到设备,指导报文转发。
仅当OpenFlow实例处于未激活状态时才能配置该命令。
【举例】
# 开启OpenFlow数据转发平面功能。
<Sysname> system-view
[Sysname] openflow instance 1
[Sysname-of-inst-1] data-plane enable
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表示该流表项未生效 MissRule (default)指Table Miss流表项 |
|
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 |
|
匹配字段名称 |
匹配掩码字段名称 |
描述 |
|
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类型 |