VLAN 和 VPLS 路由实例
为 VLAN 和 VPLS 路由实例配置 VLAN 标识符的准则
对于仅执行第 2 层 交换的 VLAN,无需指定 VLAN 标识符。
对于执行第 3 层 IP 路由的 VLAN,必须指定 VLAN 标识符或双 VLAN 标识符标记。
对于 VPLS 路由实例,您必须指定 VLAN 标识符或双 VLAN 标识符标记。
也可以看看
为 VLAN 和 VPLS 路由实例配置 VLAN 标识符
您可以通过以下方式为 VLAN 或 VPLS 路由实例配置 VLAN 标识符:
-
通过使用
vlan-id语句或vlan-tags语句配置规范化 VLAN 标识符来实现。本主题介绍如何在 VLAN 或 VPLS 路由实例中处理和转换规范化 VLAN 标识符。 -
通过使用 input-vlan-map 和
output-vlan-mapor[edit logical-systems logical-system-name interfaces interface-name unit logic-unit-number]层级的[edit interfaces interface-name unit logic-unit-number]语句来配置 VLAN 映射。
vlan-id 和vlan-tags语句用于在 VLAN 或 VPLS 路由实例下指定规范化 VLAN 标识符。规范化 VLAN 标识符用于执行以下功能:
-
将接收到的数据包的 VLAN 标记转换或规范化为学习型 VLAN 标识符。
-
创建多个学习域,每个域都包含一个学习 VLAN 标识符。学习域是一个 MAC 地址数据库,可根据学习 VLAN 标识符将 MAC 地址添加到该数据库。
如果使用 vlan-id 或vlan-tags语句为 VLAN 或 VPLS 路由实例配置规范化 VLAN 标识符,则无法使用 input-vlan-map 和output-vlan-map语句配置 VLAN 映射。
要为 VLAN 配置 VLAN 标识符,请在 [edit interfaces interface-name unit logic-unit-number] or [edit logical-systems logical-system-name interfaces interface-name unit logic-unit-number] 层次结构级别添加 vlan-id 或vlan-tags语句,然后将该逻辑接口包含在 VLAN 配置中。
对于 VPLS 路由实例,在 or 层次结构级别包含 [edit interfaces interface-name unit logic-unit-number] [edit logical-systems logical-system-name interfaces interface-name unit logic-unit-number] vlan-id 或vlan-tags语句,然后将该逻辑接口包含在 VPLS 路由实例配置中。
ACX 系列路由器不支持该 [edit logical-systems] 层次结构。
对于单个 VLAN 或 VPLS 路由实例,您可以添加 vlan-id 或 vlan-tags 语句,但不能同时添加两者。如果没有为 VLAN 或 VPLS 路由实例配置 vlan-id、 vlan-tags 或 vlan-id-list [ vlan-id-numbers ] ,则收到的第 2 层数据包将转发到出站第 2 层接口,无需修改 VLAN 标记,除非在第 2 层接口上配置了 输出 vlan-map 。这会导致将帧转发到第 2 层接口,其 VLAN 标记与为第 2 层接口配置的 VLAN 标记不同。请注意,仍需要从第 2 层接口接收的帧与接口配置中指定的 VLAN 标记匹配。无效的配置可能会导致发生第 2 层环路。
与入站逻辑接口关联的 VLAN 标记与规范化 VLAN 标识符进行比较。如果标记不同,则按照 表 1 中的说明重写它们。系统会根据规范化 VLAN 标识符学习接收数据包的源 MAC 地址。
您无需为仅执行第 2 层 交换的 VLAN 指定 VLAN 标识符。要支持第 3 层 IP 路由,必须指定一个 VLAN 标识符或一对 VLAN 标记。但是,不能为路由实例中的多个 VLAN 指定相同的 VLAN 标识符。每个 VLAN 都必须有一个唯一的 VLAN 标识符。
如果与出站逻辑接口关联的 VLAN 标记和规范化 VLAN 标识符不同,则会重写规范化 VLAN 标识符,以匹配出站逻辑接口的 VLAN 标记,如 表 2 中所述。
对于通过 VPLS 路由实例发送的数据包,这些数据包要由规范化 VLAN 标识符标记,请添加以下配置语句之一:
-
VLAN ID number 以使用 VLAN 标识符标记通过 VPLS 虚拟隧道 (VT) 接口发送的所有数据包。
-
vlan-tags 外部 number 内部 number ,使用双外部和内部 VLAN 标记标记通过 VPLS VT 接口发送的所有数据包。
vlan-id none当通过 VPLS VT 接口发送入站逻辑接口的数据包时,使用该语句从这些数据包中移除这些数据包。请注意,这些数据包可能仍会与其他客户 VLAN 标记一起发送。
该 vlan-id all 语句允许您以最少的配置量为多个 VLAN 配置桥接。配置此语句可为以下内容创建学习域:
-
配置了两个 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-instances {
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-map pop 和output-vlan-map push语句,在输入时弹出服务 VLAN ID,并在输出时推送服务 VLAN ID,从而限制双标记帧对扩展的影响。如果配置中包含 native 语句,则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 ]
使用 VLAN 或 VPLS 路由实例的 vlan-id number 或 vlan-tags 语句指定规范化 VLAN 标识符时,以下步骤概述了桥接通过第 2 层 逻辑接口接收的数据包的过程:
- 当物理端口收到数据包时,仅当数据包的 VLAN 标识符与该端口上配置的一个逻辑接口的 VLAN 标识符匹配时,才会接受该数据包。
- 然后,将接收数据包的 VLAN 标记与标准化 VLAN 标识符进行比较。如果数据包的 VLAN 标记与规范化 VLAN 标识符不同,则将重写 VLAN 标记,如 表 1 中的说明。
- 如果源 MAC 表中不存在接收数据包的源 MAC 地址,则会根据标准化 VLAN 标识符来学习该地址。
- 然后,数据包会根据目标 MAC 地址转发到一个或多个出站第 2 层 逻辑接口 MAC 地址。具有已知单播目标 MAC 地址的数据包只会被转发到一个出站逻辑接口。对于每个出站第 2 层 逻辑接口,为 VLAN 或 VPLS 路由实例配置的规范化 VLAN 标识符与该逻辑接口上配置的 VLAN 标记进行比较。如果与出站逻辑接口关联的 VLAN 标记与为 VLAN 或 VPLS 路由实例配置的规范化 VLAN 标识符不匹配,则将重写 VLAN 标记,如 表 2 中所述。
下表显示了如何将 VLAN 标记应用于向 VLAN 发送和从 VLAN 发送的流量,具体取决于为 VLAN 配置 VLAN id 和 vlan-tags 语句的方式,以及为 VLAN 或 VPLS 路由实例中的逻辑接口配置标识符的方式。根据您的配置,将对 VLAN 标记执行以下重写操作:
-
pop — 从 VLAN 标记堆栈顶部移除 VLAN 标记。
-
pop-pop — 移除帧的外部和内部 VLAN 标记。
-
pop-swap — 移除帧的外部 VLAN 标记并替换帧的内部 VLAN 标记。
-
swap — 替换帧的 VLAN 标记。
-
push — 将新的 VLAN 标记添加到 VLAN 堆栈的顶部。
-
push-push — 在帧前面推送两个 VLAN 标记。
-
交换-推送 — 替换帧的 VLAN 标记,并将新的 VLAN 标记添加到 VLAN 堆栈的顶部。
-
swap-swap — 替换帧的外部和内部 VLAN 标记。
表 1 显示了如何处理和转换发送到 VLAN 的数据包的 VLAN 标记的具体示例,具体取决于您的配置。“–”表示指定的逻辑接口 VLAN 标识符不支持该语句。“无操作”表示未针对指定的输入逻辑接口转换收到的数据包的 VLAN 标记。
|
逻辑接口的 VLAN 标识符 |
VLAN 的 VLAN 配置 |
|||
|---|---|---|---|---|
|
VLAN ID 无 |
VLAN ID 200 |
VLAN ID 全部 |
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 |
PoP 100,掉调 400 至 200 |
人口 100 |
将 400 交换到 300 |
|
VLAN ID 范围 10-100 |
– |
– |
无操作 |
– |
|
VLAN 标记 外部 200 内部范围 10-100 |
– |
– |
人口 200 |
– |
表 2 显示了如何处理和转换从 VLAN 发送的数据包的 VLAN 标记的具体示例,具体取决于您的配置。“–”表示指定的逻辑接口 VLAN 标识符不支持该语句。“无操作”表示未针对指定的输出逻辑接口转换出站数据包的 VLAN 标记。
|
逻辑接口的 VLAN 标识符 |
VLAN 的 VLAN 配置 |
|||
|---|---|---|---|---|
|
VLAN ID 无 |
VLAN ID 200 |
VLAN ID 全部 |
VLAN 标记:外部 100 、内部 300 |
|
|
无 |
无操作 |
人口 200 |
– |
人口 100、人口 300 |
|
200 |
推 200 |
无操作 |
无操作 |
PoP 100,掉期 300 至 200 |
|
1000 |
推 1000 |
将 200 交换到 1000 |
无操作 |
PoP 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 |
– |