示例:在 MX 系列路由器上配置 OpenFlow 混合接口
在支持 OpenFlow 的 MX 系列路由器上,您可以将支持多个逻辑接口的物理接口配置为混合接口。混合接口同时支持 OpenFlow 逻辑接口和非 OpenFlow 逻辑接口,因此允许 OpenFlow 和非 OpenFlow 流量遍历同一接口。
混合接口使您能够更高效地使用物理接口,特别是在端口密度问题的情况下。
此示例说明了如何使用 OpenFlow 混合接口配置 MX 系列路由器。
要求
此示例具有以下硬件和软件组件:
MX240 13.3 Junos OS版本运行的路由器
包含软件包的 OpenFlow 软件包,与Junos OS安装设备的同一版本匹配
路由器与 OpenFlow 控制器之间的 TCP 连接
路由器的 fxp0 管理接口与管理网络之间的连接,从 OpenFlow 控制器 IP 地址可到达
概述
此示例将配置具有混合接口 ge-1/0/1、OpenFlow 接口 ge-1/0/2 和非 OpenFlow 接口 ge-1/0/3 的 MX240 路由器。在混合接口上,逻辑接口 ge-1/0/1.0 参与 OpenFlow,而逻辑接口 ge-1/0/1.1 和 ge-1/0/1.2 不参与 OpenFlow。
使用 OpenFlow 混合接口时,您可以使用 VLAN 区分 OpenFlow 流量与正常流量。因此,您必须在所有接口上启用 VLAN 标记,而进入接口的流量必须带有 vlan 标记。进入混合接口的未标记信息流将丢弃。此示例使用 配置混合接口,启用 VLAN 标记,并且为接口上的所有流量支持 flexible-vlan-tagging
802.1Q VLAN 单标记和双标记帧。您可使用 配置接口 ge-1/0/2 和 ge-1/0/3。 vlan-tagging
您可将混合接口封装配置为灵活的以太网服务。请注意,对于具有此封装的接口,所有 VLAN ID 都有效。从 1 到 511 的 VLAN ID 不再保留用于常规 VLAN。此示例将 VLAN 1 到 100 用于 OpenFlow 流量,而 VLAN 101 到 200 和 VLAN 300 用于正常流量。
除了 ge-1/0/1.2 之外,所有逻辑接口均使用家族和接口模式配置为第 2 层中继 bridge
接口 trunk
。逻辑接口 ge-1/0/1.0 和 ge-1/0/2.0 参与 OpenFlow,使用 OpenFlow VLAN ID 1 至 100 接收和转发流量。逻辑接口 ge-1/0/1.1 和 ge-1/0/3.0 不参与 OpenFlow,使用非 OpenFlow VLAN ID 101 至 200 接收和转发流量。
ge-1/0/1.2 是一种第 3 层逻辑接口,其 IP 地址为 198.51.100.10/24,用于执行第 3 层路由。此接口不参与 OpenFlow,使用 VLAN ID 300 路由流量。
表 1 汇总了逻辑接口、流量类型和相关 VLAN ID。
逻辑接口 |
流量类型 |
Vlan |
---|---|---|
ge-1/0/1.0 |
OpenFlow |
1 到 100 |
ge-1/0/1.1 |
非 OpenFlow |
101 到 200 |
ge-1/0/1.2 |
非 OpenFlow |
300 |
ge-1/0/2.0 |
OpenFlow |
1 到 100 |
ge-1/0/3.0 |
非 OpenFlow |
101 到 200 |
您可以在 层次结构级别配置 OpenFlow 虚拟交换机和 OpenFlow [edit protocols openflow]
协议语句。虚拟交换机 OFwitch2 通过 IP 地址 172.16.1.1 上的 TCP 连接连接到控制器。虚拟交换机配置必须包含参与 OpenFlow 的所有逻辑接口,包括 ge-1/0/1.0 和 ge-1/0/2.0。
在 MX 系列路由器上配置 OpenFlow 时,您必须为将其与正常网络流量隔离的 OpenFlow 流量配置虚拟交换机路由实例。此外,使用混合接口时,您同时配置 OpenFlow 流量的虚拟交换机路由实例,以及正常流量的单独虚拟交换机路由实例。此示例为 OpenFlow 流量和路由实例 rt2 配置正常流量的路由实例 rt1。
路由实例 rt1 包括参与 OpenFlow、ge-1/0/1.0 和 ge-1/0/2.0 的接口。在路由实例中,您将桥接域配置为包括所有 OpenFlow VLAN 1 到 100。路由实例 rt2 包括不参与 OpenFlow、ge-1/0/1.1 和 ge-1/0/3.0 的 2 层接口。在路由实例中,您将桥接域配置为包含非 OpenFlow VLAN 101 到 200。
为了引导 OpenFlow 信息流,OpenFlow 控制器必须安装流条目,这些条目将选择适当的信息流并转发至正确的 OpenFlow 接口。
配置
CLI快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit]
commit
set interfaces ge-1/0/1 flexible-vlan-tagging set interfaces ge-1/0/1 encapsulation flexible-ethernet-services set interfaces ge-1/0/1 unit 0 family bridge interface-mode trunk set interfaces ge-1/0/1 unit 0 family bridge vlan-id-list 1-100 set interfaces ge-1/0/1 unit 1 family bridge interface-mode trunk set interfaces ge-1/0/1 unit 1 family bridge vlan-id-list 101-200 set interfaces ge-1/0/1 unit 2 vlan-id 300 set interfaces ge-1/0/1 unit 2 family inet address 198.51.100.10/24 set interfaces ge-1/0/2 vlan-tagging set interfaces ge-1/0/2 unit 0 family bridge interface-mode trunk set interfaces ge-1/0/2 unit 0 family bridge vlan-id-list 1-100 set interfaces ge-1/0/3 vlan-tagging set interfaces ge-1/0/3 unit 0 family bridge interface-mode trunk set interfaces ge-1/0/3 unit 0 family bridge vlan-id-list 101-200 set protocols openflow switch OFswitch2 controller address 172.16.1.1 set protocols openflow switch OFswitch2 controller protocol tcp port 6633 set protocols openflow switch OFswitch2 interfaces ge-1/0/1.0 set protocols openflow switch OFswitch2 interfaces ge-1/0/2.0 set routing-instances rt1 instance-type virtual-switch set routing-instances rt1 interface ge-1/0/1.0 set routing-instances rt1 interface ge-1/0/2.0 set routing-instances rt1 bridge-domains bd-of vlan-id-list 1-100 set routing-instances rt2 instance-type virtual-switch set routing-instances rt2 interface ge-1/0/1.1 set routing-instances rt2 interface ge-1/0/3.0 set routing-instances rt2 bridge-domains bd-nonof vlan-id-list 101-200
配置接口
逐步过程
要配置接口:
在混合物理接口上,启用 VLAN 标记并配置封装。
[edit interfaces ge-1/0/1] user@host# set flexible-vlan-tagging user@host# set encapsulation flexible-ethernet-services
将 OpenFlow 逻辑接口 ge-1/0/1.0 配置为支持 VNS 1-100 的 2 层中继。
[edit interfaces ge-1/0/1] user@host# set unit 0 family bridge interface-mode trunk user@host# set unit 0 family bridge vlan-id-list 1-100
将非 OpenFlow 逻辑接口 ge-1/0/1.1 配置为支持 V VPN 101-200 的 2 层中继。
[edit interfaces ge-1/0/1] user@host# set unit 1 family bridge interface-mode trunk user@host# set unit 1 family bridge vlan-id-list 101-200
将非 OpenFlow 逻辑接口 ge-1/0/1.2 配置为第 3 层子接口。
[edit interfaces ge-1/0/1] user@host# set unit 2 vlan-id 300 user@host# set unit 2 family inet address 198.51.100.10/24
在 ge-1/0/2 上,启用 VLAN 标记,将逻辑接口配置为支持 VLAN 1-100 的 2 层中继。
[edit interfaces ge-1/0/2] user@host# set vlan-tagging user@host# set unit 0 family bridge interface-mode trunk user@host# set unit 0 family bridge vlan-id-list 1-100
在 ge-1/0/3 上,启用 VLAN 标记,将逻辑接口配置为支持 VLAN 101-200 的 2 层中继:
[edit interfaces ge-1/0/3] user@host# set vlan-tagging user@host# set unit 0 family bridge interface-mode trunk user@host# set unit 0 family bridge vlan-id-list 101-200
配置 OpenFlow
逐步过程
要配置 OpenFlow:
配置 OpenFlow 控制器 IP 地址和连接协议。
[edit protocols openflow switch OFswitch2] user@host# set controller address 172.16.1.1 user@host# set controller protocol tcp port 6633
在此虚拟交换机实例下指定参与 OpenFlow 的逻辑接口。
[edit protocols openflow switch OFswitch2] user@host# set interfaces ge-1/0/1.0 user@host# set interfaces ge-1/0/2.0
配置虚拟交换机路由实例
逐步过程
要配置虚拟交换机路由实例:
为 OpenFlow 流量配置虚拟交换机路由实例。
[edit] user@host# set routing-instances rt1 instance-type virtual-switch user@host# set routing-instances rt1 interface ge-1/0/1.0 user@host# set routing-instances rt1 interface ge-1/0/2.0 user@host# set routing-instances rt1 bridge-domains bd-of vlan-id-list 1-100
为非 OpenFlow 流量配置虚拟交换机路由实例。
[edit] user@host# set routing-instances rt2 instance-type virtual-switch user@host# set routing-instances rt2 interface ge-1/0/1.1 user@host# set routing-instances rt2 interface ge-1/0/3.0 user@host# set routing-instances rt2 bridge-domains bd-nonof vlan-id-list 101-200
提交配置。
[edit] user@host# commit
结果
在配置模式下,输入 、 和 show interfaces
命令 show protocols openflow
以确认您的 show routing-instances
配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以更正配置。
user@host# show interfaces ge-1/0/1 { flexible-vlan-tagging; encapsulation flexible-ethernet-services; unit 0 { family bridge { interface-mode trunk; vlan-id-list 1-100; } } unit 1 { family bridge { interface-mode trunk; vlan-id-list 101-200; } } unit 2 { vlan-id 300; family inet { address 198.51.100.10/24; } } } ge-1/0/2 { vlan-tagging; unit 0 { family bridge { interface-mode trunk; vlan-id-list 1-100; } } ge-1/0/3 { vlan-tagging; unit 0 { family bridge { interface-mode trunk; vlan-id-list 101-200; } }
user@host# show protocols openflow switch OFswitch2 { interfaces { ge-1/0/1.0; ge-1/0/2.0; } controller { protocol tcp { port 6633; } address 172.16.1.1; } }
user@host# show routing-instances rt1 { instance-type virtual-switch; interface ge-1/0/1.0; interface ge-1/0/2.0; bridge-domains { bd-of { vlan-id-list 1-100; } } } rt2 { instance-type virtual-switch; interface ge-1/0/1.1; interface ge-1/0/3.0; bridge-domains { bd-nonof { vlan-id-list 101-200; } } }
验证
确认配置工作正常。
验证 OpenFlow 控制器连接是否开启
目的
验证 OpenFlow 控制器连接是否开启。
行动
发出 show openflow controller
操作模式命令,并验证控制器连接状态为 up
。由于虚拟交换机配置只有一个控制器,因此虚拟交换机应在提交配置后自动启动与控制器的连接。
user@host> show openflow controller Openflowd controller information: Controller socket: 11 Controller IP address: 172.16.1.1 Controller protocol: tcp Controller port: 6633 Controller connection state: up Number of connection attempt: 1 Controller role: equal
意义
输出显示,除了有关控制器的其他信息之外,OpenFlow 控制器的连接状态 up
为 。
验证 OpenFlow 接口是否启动
目的
验证 OpenFlow 接口是否打开。
行动
发出 show openflow interfaces
操作模式命令,并验证每个 OpenFlow 接口的状态为 Up
。
user@host> show openflow interfaces Switch name: OFswitch2 Interface Name: ge-1/0/1.0 Interface port number: 41500 Interface Hardware Address: 00:00:5e:00:53:a1 Interface speed: 1Gb Full-duplex Interface Auto-Negotiation: Disabled Interface media type: Fiber Interface state: Up Switch name: OFswitch2 Interface Name: ge-1/0/2.0 Interface port number: 41501 Interface Hardware Address: 00:00:5e:00:53:00 Interface speed: 1Gb Full-duplex Interface Auto-Negotiation: Disabled Interface media type: Fiber Interface state: Up
意义
除了有关这些接口的其他信息,输出还显示每个 OpenFlow 接口 Up
的状态为 。