配置第 2 层虚拟交换机
总结
了解第 2 层虚拟交换机
仅在 MX 系列路由器上,您可以将一个或多个桥接域分组以形成虚拟交换机,以隔离 LAN 分段及其生成树协议实例,并分离其 VLAN ID 空间。桥接域由一组共享相同泛洪或广播特性的逻辑端口组成。与虚拟 LAN 一样,桥接域跨越多个设备的一个或多个端口。您可以配置多个虚拟交换机,每个虚拟交换机都独立于路由平台上的其他虚拟交换机运行。因此,每个虚拟交换机都可以参与不同的第 2 层网络。
您可以将虚拟交换机配置为仅参与第 2 层桥接,并可选择执行第 3 层路由。此外,您还可以配置三个第 2 层控制协议之一(生成树协议、快速生成树协议 (RSTP) 或多生成树协议 (MSTP),以防止转发环路。有关如何在接口上配置第 2 层逻辑端口的详细信息,请参阅 路由设备的 Junos OS 网络接口库。
在 Junos OS 9.2 及更高版本中,您可以将一个或多个配置为中继接口的逻辑接口与虚拟交换机相关联。中继接口或第 2 层中继端口使您能够配置 逻辑接口 以表示物理接口上的多个 VLAN。在中继接口上接收的数据包在具有相同 VLAN 标识符的桥接域中转发。有关如何配置中继接口的详细信息,请参阅 路由设备的 Junos OS 网络接口库。
您还可以为虚拟交换机以及属于虚拟交换机的任何桥接域配置第 2 层转发和学习属性。.
有关为第 2 层 VPN 配置路由实例的详细信息,请参阅 路由设备的 Junos OS VPN 库。.
配置第 2 层虚拟交换机
第 2 层虚拟交换机将 LAN 网段与其生成树协议实例隔离开来,并分离其 VLAN ID 空间,仅在数据链路层过滤和转发流量。不执行第 3 层路由。每个桥接域都由一组参与第 2 层学习和转发的逻辑端口组成。虚拟交换机表示第 2 层网络。
虚拟交换机层次结构中使用两种主要类型的接口:
第 2 层逻辑接口 — 这种类型的接口使用 VLAN-ID 作为虚拟电路标识符,VLAN-ID 的范围是接口端口的本地范围。这种类型的接口通常用于以服务提供商为中心的应用程序。
接入或中继接口 — 这种类型的接口使用具有全局意义的 VLAN-ID。接入或中继接口根据 VLAN 成员资格与桥接域隐式关联。接入或中继接口通常用于以企业为中心的应用程序。
注意:接入接口和中继接口之间的区别在于,接入接口只能是一个 VLAN 的一部分,并且该接口通常连接到最终用户设备(数据包与配置的 VLAN 隐式关联)。相比之下,中继接口可多路复用来自多个 VLAN 的流量,并且通常互连交换机。
要配置第 2 层虚拟交换机,请包括以下语句:
[edit] routing-instances { routing-instance-name ( instance-type virtual-switch; bridge-domains { bridge-domain-name { domain-type bridge; interface interface-name; vlan-id (all | none | number); # Cannot be used with ’vlan-tags’ statement vlan-id-list [ vlan-id-numbers ]; vlan-tags outer number inner number; # Cannot be used with ’vlan-id’ statement } } protocols { mstp { ...mstp-configuration ... } } } }
要启用虚拟交换机,您必须指定 virtual-switch 作为 instance-type。
对于您为虚拟交换机配置的每个桥接域,请指定一个 bridge-domain-name.您还必须为domain-type
语句指定值 bridge。
对于该 vlan-id
语句,您可以指定有效的 VLAN 标识符或 none 或 all 选项。
IRB 不支持 all 选项。
您不必为桥接域指定 VLAN 标识符。但是,您不能为虚拟交换机中的多个桥接域指定相同的 VLAN 标识符。虚拟交换机中的每个桥接域都必须具有唯一的 VLAN 标识符。
对于单个桥接域,您可以包括 statement 或 vlan-tags
statement,但不能同时包含vlan-id
两者。vlan-id
statement、 vlan-id-list
statement 和 vlan-tags
statement 是互斥的。
该 vlan-id-list
语句允许您为列表中的每个 vlan-id 自动创建多个桥接域。
要指定要包含在桥接域中的一个或多个逻辑接口,请为您在[edit interfaces]
层次结构级别配置的以太网接口指定一个interface-name。有关更多信息,请参阅 路由设备的 Junos OS 网络接口库。
在 MX 系列路由器上配置虚拟交换机路由实例
仅在 MX 系列路由器上,使用 virtual-switch
路由实例类型将 LAN 分段与其生成树实例隔离,并分离其 VLAN ID 空间。桥接域由一组共享相同泛洪或广播特征的端口组成。每个虚拟交换机代表一个第 2 层网络。您可以选择配置虚拟交换机以支持集成路由和桥接 (IRB),这有助于在同一接口上同时进行第 2 层桥接和第 3 层 IP 路由。您还可以配置第 2 层控制协议以提供环路解析。支持的协议包括生成树协议 (STP)、快速生成树协议 (RSTP)、多生成树协议 (MSTP) 和 VLAN 生成树协议 (VSTP)。
要为虚拟交换机创建路由实例,请在配置中至少包含以下语句:
[edit] routing-instances { routing-instance-name instance-type virtual-switch; bridge-domains { bridge-domain-name { domain-type bridge; interface interface-name; vlan-id (all | none | number); vlan-tags outer number inner number; } } protocols { (rstp | mstp | vstp) { ...stp-configuration ... } } } }
有关配置虚拟交换机的更多信息,请参阅 配置第 2 层虚拟交换机 。
在虚拟交换机中配置 VPLS 端口
在 Junos OS 9.3 及更高版本中,您可以在虚拟交换机中配置 VPLS 端口,以便虚拟交换机中第 2 层桥接域的逻辑接口可以处理 VPLS 路由实例流量。VPLS 配置不再需要 VPLS 类型的专用路由实例。在第 2 层中继接口上接收的数据包在具有相同 VLAN 标识符的桥接域中转发。
中继接口根据 VLAN 成员身份与桥接域隐式关联。虽然接入接口只能是一个 VLAN 的一部分,但中继接口可多路复用来自多个 VLAN 的流量,并且通常互连交换机。第 2 层中继端口还支持 IRB。
要在虚拟交换机中配置 VPLS 端口,请执行以下任务:
要配置将与虚拟交换机中的桥接域关联的第 2 层中继端口,请在配置中包含以下语句:
[edit] interfaces { interface-name { unit logical-unit-number { # Call this ’L2-trunk-port-A’ family bridge { interface-mode trunk; vlan-id-list [ vlan-id-numbers ] ; # Trunk mode VLAN membership for this interface } } } . . . interface-name { unit logical-unit-number { # Call this ’L2-trunk-port-B’ family bridge { interface-mode trunk; vlan-id-list [ vlan-id-numbers ] ; # Trunk mode VLAN membership for this interface } } } }
要将逻辑接口配置为中继端口,请在层次结构级别包含
interface-mode
statement 和 trunk 选项[edit interfaces interface-name unit logical-unit-number family bridge]
。要配置所有 VLAN 标识符以与第 2 层中继端口关联,请在层次结构级别包含该
vlan-id-list [ vlan-id-numbers ]
语句[edit interfaces interface-name unit logical-unit-number family bridge]
。每个逻辑接口 “L2-trunk-port-A” 和 “L2-trunk-port-B” 都接受使用相应
vlan-id-list
语句中指定的任何 VLAN ID 标记的数据包。要配置由一组桥接域组成的虚拟交换机,这些桥接域与配置为中继端口的一个或多个逻辑接口相关联,请在配置中包含以下语句:
[edit] routing-instance { routing-instance-name instance-type virtual-switch; interface L2-trunk-port-A; # Include one trunk port interface L2-trunk-port-B; # Include the other trunk port bridge-domains { bridge-domain-name-0 { domain-type bridge; vlan-id number; } bridge-domain-name-1 { domain-type bridge; vlan-id number; } } protocols { vpls { vpls-id number; ... vpls-configuration ... } } } }
要开始配置虚拟交换机,请在层次结构级别包含
instance-type
statement 和 virtual-switch 选项[edit routing-instances routing-instance-name]
。要配置由一组桥接域组成的虚拟交换机,这些桥接域与配置为中继端口的一个或多个逻辑接口相关联,必须通过在层次结构级别包含
interface interface-name
语句[edit routing-instances routing-instance-name]
来识别每个逻辑接口。对于为中继端口配置的每个 VLAN,必须配置一个桥接域,该桥接域包括中继端口逻辑接口,并使用该中继接口承载范围内的 VLAN 标识符。要进行配置,请在层次结构级别包括 domain-type bridge、 vlan-id number和 statements
[edit routing-instances routing-instance-name bridge-domain bridge-domain-name]
。
使用第 2 层中继端口配置第 2 层虚拟交换机
您可以将一个或多个第 2 层中继接口与虚拟交换机关联。第 2 层中继接口允许您配置逻辑接口以表示物理接口上的多个 VLAN。在虚拟交换机中,您可以为中继接口上配置的每个 VLAN 标识符配置桥接域和 VLAN 标识符。在中继接口上接收的数据包在具有相同 VLAN 标识符的桥接域内转发。您配置的每个虚拟交换机都独立运行,并且可以参与不同的第 2 层网络。
配置了第 2 层中继端口的虚拟交换机也支持桥接域内的 IRB。IRB 在同一接口上同时支持第 2 层桥接和第 3 层 IP 路由。只有配置了该 interface-mode (access | trunk)
语句的接口才能与虚拟交换机相关联。接入接口使您能够接受没有 VLAN 标识符的数据包。有关配置中继和接入接口的详细信息,请参阅 路由设备的 Junos OS 网络接口库。
此外,您还可以为虚拟交换机配置第 2 层学习和转发属性。
要使用第 2 层中继接口配置虚拟交换机,请包括以下语句:
[edit] routing-instances { routing-instance-name { instance-type virtual-switch; interface interface-name; bridge-domains { bridge-domain-name { vlan-id number; } } } }
您必须为中继接口配置的每个 VLAN 标识符配置桥接域和 VLAN 标识符。
第 2 层中继端口用于两种不同类型的虚拟交换机配置。一种方法称为服务提供商风格,另一种称为企业风格。这两种方法可能会令人困惑,因为这两种方法都涉及配置称为中继接口的接口。但是,这两种类型的配置是不同的。
服务提供商风格和企业风格各有优缺点。
服务提供商风格 - 提供更多控制,但在配置时需要更加小心。服务提供商可以使用任何形状或大小的所有桥接功能,但对于大型桥接设计,定制要求会迅速增长。
企业风格 — 提供通过简单网桥连接的单个第 2 层网络。更易于使用,但功能更有限。配置简单明了,精简。
术语“服务提供商风格”和“企业风格”并不意味着基于组织类型或规模的任何限制。任何大型企业都可以使用服务提供商风格的配置,而小型区域服务提供商可以免费使用企业风格。差异仅适用于配置样式。
了解两种样式配置差异的最简单方法是使用相同的接口和 VLAN ID 比较它们。
您可以在同一对以太网接口之间配置多个桥接域, xe-0/0/1
例如 和 xe-0/0/2
。如果需要两个桥接域,您可以将一个桥接域配置为 ,将另一个桥接域 VLAN-100
配置为 VLAN-200
。但是,在实施服务提供商风格或企业风格时,配置要求有所不同。以下是使用相同接口和 VLAN 的两种样式。
服务提供商样式涉及配置三个主要参数的值,以及用于连接它们的桥接域:
VLAN 标记 — 配置桥接的物理接口
vlan-tagging
,以允许它们在 IEEE 802.1Q 模式(也称为中继接口)下运行。扩展 VLAN 网桥 — 使用 encapsulation 语句类型
extended-vlan-bridge
配置物理接口,以允许在每个逻辑接口上桥接。逻辑单元 — 为每个桥接的 VLAN ID 配置一个逻辑单元。在大多数情况下,您将单元号配置为与 VLAN ID 相同(即单元 100 = VLAN ID 100)。
网桥域 - 配置 VLAN 网桥域以将逻辑接口与正确的 VLAN ID 相关联。
以下是服务提供商样式的配置,显示了用于跨两个桥接域(VLAN ID 100 和 200)桥接的两个接口。
[edit] interfaces { xe-0/0/1 { vlan-tagging; encapsulation extended-vlan-bridge; unit 100 { vlan-id 100; } unit 200 { vlan-id 200; } } xe-0/0/2 { vlan-tagging; encapsulation extended-vlan-bridge; unit 100 { vlan-id 100; } unit 200 { vlan-id 200; } } } bridge-domains { VLAN-100 { vlan-id 100; interface xe-0/0/1.100; interface xe-0/0/2.100; } VLAN-200 { vlan-id 200; interface xe-0/0/1.200; interface xe-0/0/2.200; } }
请注意,每个物理接口都启用了 VLAN 标记以及扩展的 VLAN 网桥封装。还有更多参数可以以服务提供商样式进行配置。
相比之下,企业风格涉及为三个 不同的 参数配置值,以及用于连接它们的桥接域:
系列 — 使用 family type
bridge
配置每个桥接的物理接口。接口模式 - 配置逻辑接口,以便物理接口作为未标记的接入端口(本主题中未显示)或 IEEE 801Q
trunk
运行。VLAN ID — 使用 VLAN ID 配置每个逻辑接口,以确定该接口属于哪个网桥。
网桥域 - 配置 VLAN 网桥域以与正确的 VLAN ID 关联。
企业风格比服务提供商风格更简单。Enterprise style 在提交配置时自动将接口放置在桥接域中。
以下是企业样式配置,显示了用于跨相同两个桥接域(VLAN ID 100 和 200)进行桥接的相同两个接口。
[edit] interfaces { xe-0/0/1 { unit 0 { family bridge { interface-mode trunk; vlan-id-list [ 100 200 ]; } } } xe-0/0/2 { unit 0 { family bridge { interface-mode trunk; vlan-id-list [ 100 200 ]; } } } } bridge-domains { VLAN-100 { vlan-id 100; } VLAN-200 { vlan-id 200; } }
为了换取简单性,企业样式不允许您配置 VLAN 标记选项或封装类型。您不必为每个 VLAN ID 创建单独的逻辑接口。
您可以在每种样式中配置更多参数。这些进一步的参数超出了本基本配置主题的讨论范围。
为第 2 层虚拟交换机中的桥接域配置集成路由和桥接
集成路由和桥接 (IRB) 在同一接口上同时支持第 2 层桥接和第 3 层 IP 路由。IRB 使您能够将本地数据包路由到另一个路由接口或配置了第 3 层协议的另一个桥接域。您可以通过在层次结构级别包含 irb
语句 [edit interfaces]
来配置逻辑路由接口,并将该接口包含在桥接域中。有关如何配置路由接口的详细信息,请参阅 路由设备的 Junos OS 网络接口库。
您只能在桥接域中包含一个路由接口。
要配置支持 IRB 的虚拟交换机,请包括以下语句:
[edit] routing-instances { routing-instance-name { instance-type virtual-switch; bridge-domains { bridge-domain-name { domain-type bridge; interface interface-name; routing-interface routing-interface-name; vlan-id (none | number); vlan-tags outer number inner number; } } } }
要启用虚拟交换机,您必须指定 virtual-switch 作为 instance-type。层次结构级别不支持[edit logical-systems logical-system-name]
该instance-type virtual-switch
语句。
对于您为虚拟交换机配置的每个桥接域,请指定一个 bridge-domain-name.您还必须为domain-type
语句指定值 bridge。
对于该 vlan-id
语句,您可以指定有效的 VLAN 标识符或 none 选项。
对于单个桥接域,您可以包括 statement 或 vlan-tags
statement,但不能同时包含vlan-id
两者。
要在桥接域中包括一个或多个逻辑接口,请为要在层次结构级别配置[edit interfaces irb]
的每个以太网接口指定 interface-name 。
要将路由接口与桥接域相关联,请包含该routing-interface routing-interface-name
语句并指定您在层次结构级别配置的 [edit interfaces irb]
arouting-interface-name。您只能为每个桥接域配置一个路由接口。有关如何配置逻辑接口和路由接口的详细信息,请参阅 路由设备的 Junos OS 网络接口库。
如果将路由接口配置为在桥接域中支持 IRB,则不能对语句使用 all 选项 vlan-id
。
在 ACX 系列中配置集成路由和桥接
集成路由和桥接 (IRB) 在同一接口上同时支持第 2 层桥接和第 3 层路由。IRB 使您能够将数据包路由到另一个路由接口或配置了 IRB 接口的另一个桥接域。您可以通过在层次结构级别包含 irb
语句 [edit interfaces]
来配置逻辑路由接口,并将该接口包含在桥接域中。有关如何配置路由接口的详细信息,请参阅 路由设备的 Junos OS 网络接口库。
您只能在桥接域中包含一个路由接口。
以下是 IRB 支持的功能列表:
Family
inet
、inet6
和iso
在 IRB 接口上受支持。IRB 接口支持的路由协议包括 BGP、ISIS、OSPF、RIP、IGMP 和 PIM。
IRB 接口支持带选项 82 的 DHCP 中继。
IRB 可以添加到 VRF 路由实例中。
IRB 接口支持 VRRP。
IRB 接口支持双向转发检测 (BFD) 协议。
IRB 接口支持以下服务等级配置:
-
固定分类器可应用于 IRB 逻辑接口。
-
防火墙过滤器(多域过滤器)可用于分配转发类和丢失优先级。您应定义 family inet 或 inet6 过滤器,并将其作为 family inet 下 IRB 逻辑接口上的输入过滤器。
注意:physical-interface-filter
IRB 逻辑接口上的 family inet6 过滤器不支持。 -
DSCP、inet-precedence、IEEE-802.1 和 IEEE-802.1AD 值可以重写。
-
ACX 路由器不支持 IRB 上的 MPLS 系列。
IRB 可以在以下层次结构下进行配置:
[
edit intefaces irb interface_type
] 层次结构级别disable — 禁用接口
gratuitous-arp-reply — 启用免费 ARP 回复
hold-time—链路接通和链路关闭的保持时间
mtu—最大传输数据包大小 (256..9192)
no-gratuitous-arp-reply— 不启用免费 ARP 回复
no-gratuitous-arp-request— 忽略无故 ARP 请求
[
edit interfaces irb.unit family (inet | inet6 | iso)
] 层次结构级别[
edit bridge-domains routing-interface interface irb.unit
] 层次结构级别[
edit routing-instances instance-type vrf
] 层次结构级别[
edit protocols (bgp | isis | ospf | rip | igmp | pim) interface irb.unit
] 层次结构级别[
edit class-of-service interfaces irb]
] 层次结构级别
在 ACX5048 和 ACX5096 路由器中,您可以在 IRB 级别配置 IRB [edit vlans vlan-name] l3-interface irb.unit;
。
与其他 ACX 系列路由器相比,ACX5048 和 ACX5096 路由器的第 2 层 CLI 配置和 show 命令有所不同。有关更多信息,请参阅 ACX 系列的第 2 层下一代模式。
要配置支持 IRB 的桥接域,请包括以下语句:
[edit] bridge-domains { bridge-domain-name { domain-type bridge; interface interface-name; routing-interface routing-interface-name; vlan-id (none | number); vlan-tags outer number inner number; } }
对于您配置的每个桥接域,请指定一个 bridge-domain-name.您还必须为domain-type
语句指定值 bridge。
对于该 vlan-id
语句,您可以指定有效的 VLAN 标识符或 none 选项。
该 vlan-tags
语句允许您指定一对 VLAN 标识符;一个 外部 标记和一个 内部 标记。
对于单个桥接域,您可以包括 statement 或 vlan-tags
statement,但不能同时包含vlan-id
两者。
要在桥接域中包括一个或多个逻辑接口,请为要在层次结构级别配置[edit interfaces]
的每个以太网接口指定 interface-name 。
为第 2 层桥接配置的桥接域最多支持 4000 个活动逻辑接口。
要将路由接口与桥接域相关联,请包含该routing-interface routing-interface-name
语句并指定您在层次结构级别配置的 [edit interfaces irb]
arouting-interface-name。您只能为每个桥接域配置一个路由接口。有关如何配置逻辑接口和路由接口的详细信息,请参阅 路由设备的 Junos OS 网络接口库。
在 Junos OS 9.0 及更高版本中,组播侦听支持 IRB 接口。有关组播侦听的详细信息,请参阅 Junos OS 组播协议用户指南。
配置多个 IRB 逻辑接口时,所有 IRB 逻辑接口共享相同的 MAC 地址。
以下是桥接域上的 IRB 的示例配置:
[edit] interfaces { ge-1/0/0 { encapsulation flexible-ethernet-services; flexible-vlan-tagging; unit 0 { encapsulation vlan-bridge; vlan-id 100; } } } ge-1/0/1 { encapsulation flexible-ethernet-services; flexible-vlan-tagging; unit 0 { encapsulation vlan-bridge; vlan-id 100; } } } irb { unit 0 { family inet { address 10.0.1.2/24 { } } } } bridge-domains { bd { domain-type bridge; vlan-id none; interface ge-1/0/0.0; interface ge-1/0/1.0; routing-interface irb.0; } }