为网桥域和 VPLS 路由实例配置 VLAN 标识符
对于仅执行第 2 层交换的网桥域,无需指定 VLAN 标识符。
对于执行第 3 层 IP 路由的网桥域,必须指定 VLAN 标识符或双 VLAN 标识符标记。
对于 VPLS 路由实例,您必须指定 VLAN 标识符或双 VLAN 标识符标记。
您可以通过以下方式为网桥域或 VPLS 路由实例配置 VLAN 标识符:
通过使用输入 vlan 映射和
output-vlan-map
或[edit logical-systems logical-system-name interfaces interface-name]
层级的[edit interfaces interface-name]
语句来配置 VLAN 映射。有关配置输入和输出 VLAN 映射以在传入或传出帧中堆栈和重写 VLAN 标记的信息,请参阅路由设备的 Junos OS 网络接口库。通过使用
vlan-id
语句或vlan-tags
语句配置规范化 VLAN 标识符。本主题介绍如何在桥接域或 VPLS 路由实例中处理和转换规范化的 VLAN 标识符。
VLAN ID 和vlan-tags
语句用于指定桥接域或 VPLS 路由实例下的规范化 VLAN 标识符。规范化 VLAN 标识符用于执行以下功能:
将接收的接收数据包的 VLAN 标记转换为 learn VLAN 标识符,或者进行规范化。
创建多个学习域,每个域都包含一个学习 VLAN 标识符。学习域是 MAC 地址数据库,根据 Learn VLAN 标识符将 MAC 地址添加到该数据库。
如果使用 vlan-id 或语句为桥接域或 VPLS 路由实例配置标准化 VLAN 标识符,则无法使用输入 vlan 映射和vlan-tags
output-vlan-map
语句配置 VLAN 映射。
要为桥接域配置 VLAN 标识符,请在或层级添加 VLAN ID 或vlan-tags
[edit logical-systems logical-system-name interfaces interface-name unit logic-unit-number family bridge]
语句[edit interfaces interface-name unit logic-unit-number family bridge]
,然后该逻辑接口包含在网桥域配置中。有关配置网桥域的更多信息,请参阅配置网桥域。
对于 VPLS 路由实例,在或层级添加 vlan ID 或vlan-tags
语句[edit interfaces interface-name unit logic-unit-number]
[edit logical-systems logical-system-name interfaces interface-name unit logic-unit-number]
,然后将该逻辑接口包含在 VPLS 路由实例配置中。有关配置 VPLS 路由实例的更多信息,请参阅路由设备的 Junos OS VPN 库。
MX 系列路由器上可与网桥域或 VPLS 实例关联的第 2 层接口的最大数量为 4000。
对于单网桥域或 VPLS 路由实例,您可以包括 vlan ID 或vlan-tags
语句,但不能同时包含两者。如果未为网桥域或 VPLS 路由实例配置 VLAN-ID、VLAN 标记或 VLAN-id-list [ ]vlan-id-numbers,则接收的第 2 层数据包将被转发到出站第 2 层接口,而无需修改 VLAN 标记,除非在第 2 层接口上配置了输出 vlan 映射。这会导致帧转发到带有 VLAN 标记的第 2 层接口,该标记与为第 2 层接口配置的配置不同。请注意,仍然需要从第 2 层接口接收的帧来匹配接口配置中指定的 VLAN 标记。无效配置可能会导致发生第 2 层环路。
与入站逻辑接口关联的 VLAN 标记与规范化 VLAN 标识符进行比较。如果标记不同,将按照 表 1 所述重写标记。接收数据包的源 MAC 地址将根据规范化 VLAN 标识符进行学习。
您不必为仅执行第 2 层交换的网桥域指定 VLAN 标识符。要支持第 3 层 IP 路由,必须指定 VLAN 标识符或一对 VLAN 标记。但是,您不能为路由实例内的多个网桥域指定相同的 VLAN 标识符。每个网桥域都必须有一个唯一的 VLAN 标识符。
如果与出站逻辑接口关联的 VLAN 标记和规范化 VLAN 标识符不同,则规范化 VLAN 标识符将重写以匹配出站逻辑接口的 VLAN 标记,如 表 2 所述。
对于通过 VPLS 路由实例发送并由规范化 VLAN 标识符标记的数据包,请包括以下配置语句之一:
VLAN ID number 以使用 VLAN 标识符标记通过 VPLS 虚拟隧道 (VT) 接口发送的所有数据包。
vlan 外部标记 number 内部 number ,以使用双外部和内部 VLAN 标记来标记通过 VPLS VT 接口发送的所有数据包。
vlan-id none
当通过 VPLS VT 接口发送与入站逻辑接口关联的数据包时,使用该语句从这些数据包中移除 VLAN 标记。请注意,这些数据包可能仍会使用其他客户 VLAN 标记发送。
您可以通过该 vlan-id all
语句以最少的配置量为多个 VLAN 配置桥接。配置此语句将创建一个学习域,用于:
使用两个 VLAN 标记配置的逻辑接口的每个内部 VLAN 或学习 VLAN 标识符
使用一个 VLAN 标记配置的逻辑接口标识符(或学习 VLAN)
建议不要在 VPLS 路由实例中使用客户 VLAN ID,因为客户 VLAN ID 仅用于学习。
您应在 VPLS 路由实例中使用服务 VLAN ID,就像在以下配置中一样:
[edit] interface ge-1/1/1 { vlan-tagging; unit 1 { vlan-id s1; /* Service vlan */ encapsulation vlan-vpls; input-vlan-map pop; /* Pop the service vlan on input */ output-vlan-map push; /* Push the service vlan on output */ } } interface ge-1/1/2 { encapsulation ethernet-vpls; unit 0; } routing-instance { V1 { instance-type vpls; vlan-id all; interface ge-1/1/1.1; interface ge-1/1/2.0; } }
如果在 VPLS 路由实例中配置vlan-id all
语句,我们建议使用逻辑接口上的 input-vlan 映射弹出和output-vlan-map push
语句在输入上弹出服务 VLAN ID,并在输出时推送服务 VLAN ID,从而限制双标记帧对扩展的影响。当配置中包含语句时,vlan-id all
您不能使用本机vlan- id
语句。
您可以通过该 vlan-id-list [ vlan-id-numbers ]
语句为中继接口上的多个 VLAN 配置桥接。配置此语句将创建一个学习域,用于:
列出的每个 VLAN:
vlan-id-list [ 100 200 300 ]
一个范围内的每个 VLAN:
vlan-id-list [ 100-200 ]
列表和范围组合中的每个 VLAN:
vlan-id-list [ 50, 100-200, 300 ]
当您使用桥接域或 VPLS 路由实例的 vlan ID number 或 vlan-tags
语句指定规范化 VLAN 标识符时,以下步骤概述了通过第 2 层逻辑接口接收的数据包桥接的过程:
- 在物理端口上接收数据包时,只有当数据包的 VLAN 标识符与该端口上配置之一逻辑接口的 VLAN 标识符匹配时,才会接受数据包。
- 然后,将接收数据包的 VLAN 标记与规范化 VLAN 标识符进行比较。如果数据包的 VLAN 标记与规范化 VLAN 标识符不同,将按照 表 1 重写 VLAN 标记。
- 如果收到的数据包的源 MAC 地址在源 MAC 表中不存在,则会根据规范化 VLAN 标识符来学习该地址。
- 然后,该数据包会根据目标 MAC 地址转发到一个或多个出站第 2 层逻辑接口。具有已知单播目标 MAC 地址的数据包只会转发到一个出站逻辑接口。对于每个出站第 2 层逻辑接口,都会将为网桥域或 VPLS 路由实例配置的规范化 VLAN 标识符与该逻辑接口上配置的 VLAN 标记进行比较。如果与出站逻辑接口关联的 VLAN 标记与为桥接域或 VPLS 路由实例配置的规范化 VLAN 标识符不匹配,则 VLAN 标记将按照 表 2 进行重写。
下表显示如何为往返网桥域的流量应用 VLAN 标记,具体取决于为网桥域配置 VLAN ID 和 vlan-tags
语句,以及为网桥域或 VPLS 路由实例中的逻辑接口配置 VLAN 标识符。根据您的配置,对 VLAN 标记执行以下重写操作:
pop - 从 VLAN 标记堆栈顶部移除 VLAN 标记。
弹出 — 移除帧的外部和内部 VLAN 标记。
弹出-交换 — 移除帧的外部 VLAN 标记,然后替换帧的内部 VLAN 标记。
交换 - 替换帧的 VLAN 标记。
push - 将新 VLAN 标记添加到 VLAN 堆栈的顶部。
推送 - 在帧前面推送两个 VLAN 标记。
交换-推送 — 替换帧的 VLAN 标记,并将新的 VLAN 标记添加到 VLAN 堆栈的顶部。
交换- 替换帧的外部和内部 VLAN 标记。
表 1 显示了如何处理和转换发送到网桥域的数据包的 VLAN 标记的具体示例,具体取决于您的配置。“–”表示指定逻辑接口 VLAN 标识符不支持该语句。“无操作”表示接收数据包的 VLAN 标记不会转换为指定的输入逻辑接口。
逻辑接口的 VLAN 标识符 |
网桥域的 VLAN 配置 |
|||
---|---|---|---|---|
VLAN ID 无 |
VLAN ID 200 |
VLAN ID all |
vlan 标记外部 100 内部 300 |
|
没有 |
无操作 |
推送 200 |
– |
推送 100,推送 300 |
200 |
流行 200 |
无操作 |
无操作 |
交换 200 到 300, 推送 100 |
1000 |
流行 1000 |
交换 1000 到 200 |
无操作 |
交换 1000 到 300, 推送 100 |
VLAN 标记外部 2000 内部 300 |
流行 2000, 流行 300 |
pop 2000,交换 300 到 200 |
流行 2000 |
交换 2000 到 100 |
VLAN 标记外部 100 内部 400 |
流行 100, 流行 400 |
弹出 100,交换 400 到 200 |
流行 100 |
交换 400 到 300 |
vlan id 范围 10-100 |
– |
– |
无操作 |
– |
VLAN 标记外部 200 内部范围 10-100 |
– |
– |
流行 200 |
– |
表 2 显示了如何处理和转换从网桥域发送的数据包的 VLAN 标记的具体示例,具体取决于您的配置。“–”表示指定逻辑接口 VLAN 标识符不支持该语句。“无操作”表示出站数据包的 VLAN 标记不会转换为指定的输出逻辑接口。
逻辑接口的 VLAN 标识符 |
网桥域的 VLAN 配置 |
|||
---|---|---|---|---|
VLAN ID 无 |
VLAN ID 200 |
VLAN ID all |
vlan 标记外部 100 内部 300 |
|
没有 |
无操作 |
流行 200 |
– |
流行 100, 流行 300 |
200 |
推送 200 |
无操作 |
无操作 |
弹出 100,交换 300 到 200 |
1000 |
推送 1000 |
交换 200 到 1000 |
无操作 |
弹出 100,交换 300 到 1000 |
VLAN 标记外部 2000 内部 300 |
推送 2000,推送 300 |
交换 200 到 300, 推送 2000 |
推送 2000 |
交换 100 到 2000 |
VLAN 标记外部 100 内部 400 |
推送 100,推送 400 |
交换 200 到 400, 推送 100 |
推送 100 |
交换 300 到 400 |
vlan id 范围 10-100 |
– |
– |
无操作 |
– |
VLAN 标记外部 200 内部范围 10-100 |
– |
– |
推送 200 |
– |