Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解运行 Junos OS 的设备上的 OpenFlow 操作和转发操作

本主题解释瞻博网络设备如何隔离和控制 OpenFlow 流量。此外,还总结了 OpenFlow 的功能和支持的转发操作,即当数据包与流条目的条款匹配时,OpenFlow 可以采取的操作。有关支持特定 OpenFlow v1.0 消息和字段、匹配条件、通配符、流操作、统计信息和功能的详细信息,请参阅 运行 Junos OS 的 OpenFlow v1.0 合规性矩阵。有关受支持的 OpenFlow v1.3.1 消息和字段、端口结构标记和编号、匹配条件、流操作、多部分消息、流指令和组类型的详细列表,请参阅 运行 Junos OS 的设备的 OpenFlow v1.3.1 合规性矩阵

OpenFlow 操作和支持

要隔离和控制运行 Junos OS 的设备上的 OpenFlow 流量,请配置虚拟交换机。您可以在每个运行 Junos OS 支持 OpenFlow 的设备上配置一台 OpenFlow 虚拟交换机和一个活动 OpenFlow 控制器。您可以在层次结构级别配置 OpenFlow 协议、虚拟交换机和控制器连接信息 [edit protocols openflow]

OpenFlow 流量只能进出支持 OpenFlow 的端口。如果将流修改消息发送至未启用 OpenFlow 的入口端口,设备将发送具有OFPET_FLOW_MOD_FAILED错误类型的ofp_error_msg,并将OFPFMFC_UNKNOWN代码发送至控制器。如果为未为 OpenFlow 启用的端口请求流修改操作,设备会发送具有OFPET_BAD_ACTION错误类型的ofp_error_msg,并将代码OFPBAC_BAD_OUT_PORT控制器。

表 1 汇总了运行支持 OpenFlow v1.0 Junos OS 的设备上的常规功能支持情况。有关特定平台支持的信息,请参阅 瞻博网络设备上的 OpenFlow 支持

表 1:在运行 Junos OS 的设备上支持 OpenFlow v1.0

特征

支持

OpenFlow v1.0

支持。

OpenFlow 虚拟交换机

一台 OpenFlow 虚拟交换机。

控制器

每个虚拟交换机一个活动 OpenFlow 控制器。经过测试的控制器包括 Floodlight 和 OESS。

控制器连接

TCP/IP 连接。仅接受无源连接。控制器无法主动连接到 OpenFlow 交换机。

不支持 SSL 连接。

紧急模式

不支持在 OpenFlow 交换机规格 v1.0 中定义。如果控制器连接丢失且无法重新建立,交换机将维护控制平面和数据平面中的所有流状态。

作为第 2 层或 3 层路由的流分类和映射

不支持。

流优先级

受 OpenFlow 交换机规格 v1.3 的支持,其中完全匹配条目的优先级不会超过通配符条目。

流表

单流表。

转发操作

  • 转发至支持 OpenFlow 的物理端口

  • ALL、控制器、正常和泛洪(适用于正常流量操作)

  • 发送数据包流操作的 ALL 和泛洪

注意:

QFX5100 和 EX4600 交换机不支持正常流量操作。

混合接口

在某些设备上受支持。支持混合接口的 OpenFlow 设备允许物理接口同时支持正常流量的逻辑接口和用于 OpenFlow 流量的逻辑接口。

接口

您只能将以太网接口配置为 OpenFlow 接口。

多 VLAN 操作

在某些设备上受支持。支持多 VLAN 操作且支持 OpenFlow 的设备能够将不同的 VLAN 和不同的 VLAN 操作与每个出口端口相关联。

端口修改

不支持。启用 OpenFlow 的设备会忽略所有 OpenFlow 控制器OFPT_PORT_MOD请求。

队列、队列消息或排队操作

不支持。

表 2 汇总了运行 Junos OS、支持 OpenFlow v1.3.1 的设备上的常规功能支持情况。有关特定平台支持的信息,请参阅 瞻博网络设备上的 OpenFlow 支持

表 2:在运行 Junos OS 的设备上支持 OpenFlow v1.3.1

特征

支持

OpenFlow v1.3.1

支持。

OpenFlow 虚拟交换机

一台 OpenFlow 虚拟交换机。

控制器

每个虚拟交换机一个活动 OpenFlow 控制器。经过测试的控制器包括 NEC 和 Ixia。

控制器连接

TCP/IP 连接。仅接受无源连接。控制器无法主动连接到 OpenFlow 交换机。

不支持 SSL 连接。

作为第 2 层或 3 层路由的流分类和映射

不支持。

流优先级

受 OpenFlow 交换机规格 v1.3 的支持,其中完全匹配条目的优先级不会超过通配符条目。

流指令

对于每个流条目,支持一个流指令。流指令可以是以下其中一种:

  • OFPIT_APPLY_ACTIONS

  • OFPIT_WRITE_ACTIONS

流表

单流表。

转发操作

  • 转发到支持 OpenFlow 的物理端口。

  • ALL、控制器、正常和泛洪(适用于正常流量操作)

  • 发送数据包流操作的 ALL 和泛洪

注意:

QFX5100 和 EX4600 交换机不支持正常流量操作。

组操作

支持。一个组可以包含 1 到 32 个桶,一个桶可以包含一组操作(集、弹出或输出)。

支持组类型OFPGT_ALL和OFPGT_INDIRECT。

接口

您只能将以太网接口配置为 OpenFlow 接口。

IPv6 相关匹配条件

在某些设备上受支持。从 Junos OS 14.2R3 版开始,IPv6 源和目标地址以及子网掩码可用作匹配条件。

注意:

OpenFlow v1.3.1 的 Junos OS 实施不支持 IPv6 地址的任意位掩码。Junos OS 实施仅支持 IPv6 源地址和目标地址的持续掩码。

多 VLAN 操作

在某些设备上受支持。支持多 VLAN 操作且支持 OpenFlow 的设备能够将不同的 VLAN 和不同的 VLAN 操作与每个出口端口相关联。

多部分消息

支持请求和返回以下信息:

  • 交换机、组或端口说明

  • 单流、聚合流、流表、端口或组统计信息

  • 组或表格功能

OpenFlow 版本协商

支持 OpenFlow 控制器与运行 Junos OS 的设备之间的 OpenFlow 版本协商。

端口修改

不支持。启用 OpenFlow 的设备会忽略所有 OpenFlow 控制器OFPT_PORT_MOD请求。

队列、队列消息或排队操作

不支持。

OpenFlow 转发操作

注意:

本节中的信息适用于 OpenFlow v1.0 和 OpenFlow v1.3.1,除非另有说明。

运行 Junos OS 并支持 OpenFlow 的设备支持多种用于转发 OpenFlow 数据包的流操作。对于正常流操作,支持以下转发操作:

  • 物理端口 — 从支持 OpenFlow 的指定接口转发单播或组播数据包。

  • ALL — 将数据包泛洪到为该虚拟交换机实例配置的所有 OpenFlow 接口(入口接口除外)。

  • 控制器 — 将数据包发送至 OpenFlow 控制器进行处理。

  • 泛洪 — 沿最小生成树泛洪数据包,其中包括为该虚拟交换机实例配置的所有 OpenFlow 接口(入口接口和由生成树协议 (STP) 禁用的任何接口。由于运行 Junos OS 的设备不支持适用于 OpenFlow 的 802.1D STP 功能,因此 FLOOD 转发操作类似于 ALL 转发操作。

  • 正常 — 使用传统的第 2 层或第 3 层处理来处理数据包。

注意:

QFX5100 和 EX4600 交换机不支持正常流量操作。

OpenFlow 控制器还可以使用发送数据包消息 (OFPT_PACKET_OUT) 来引导 OpenFlow 虚拟交换机从指定端口发送数据包。发送数据包消息包括要转发的数据包和转发操作,指示必须转发数据包的接口。发送数据包消息支持的转发操作包括 ALL 和 FLOOD。

每台 OpenFlow 虚拟交换机都是一个逻辑上独立的泛洪域。因此,OpenFlow ALL 和 FLOOD 操作只会将数据包泛洪到该特定虚拟交换机下配置的 OpenFlow 接口(不包括入口 OpenFlow 接口)。

版本历史记录表
释放
描述
14.2R3
从 Junos OS 14.2R3 版开始,IPv6 源和目标地址以及子网掩码可用作匹配条件。