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