通过 PVLAN 桥接功能
本主题介绍如何在 MX 系列路由器上实施桥接,这将有助于您了解实施 PVLAN 桥接过程所涉及的独特增强功能。假设桥接域中有两个端口,其各自的端口位于不同的 FPC 和不同的数据包转发引擎上。当数据包进入端口时,假设该数据包是标记数据包,则如下所示:
-
作为起始过程,将执行 VLAN 查找以确定数据包形成的桥接域。查找结果标识桥接域 ID (bd_id)、网格组 ID (mg_id)。使用这些参数,即可发现为此桥接域配置的其他相关信息。
-
将执行源 MAC 地址 (SMAC) 查找,以确定是否已学习此 MAC 地址。如果不是学习地址,则会将 MLP 数据包(用于将流量泛洪到 MAC 学习芯片的路由)发送至与此桥接域映射的所有其他数据包转发引擎。此外,还会向主机发送 MLP 数据包。
-
使用元组(网桥域 ID、VLAN 和目标MAC 地址)进行目标MAC 地址 (DMAC) 查找。
-
如果观察到 MAC 地址匹配,则查找结果将指向出口下一跃点。出口数据包转发引擎用于转发数据包。
-
如果在查找过程中发生未命中,则使用网格组 ID 确定泛洪下一跃点以对数据包进行泛洪。
PVLAN 桥接考虑了以下两个重要条件: 只允许将特定端口转发到另一个端口。遍历并消耗交换矩阵带宽后,出口接口会发生丢包的情况。为避免流量丢弃,数据包是否需要丢弃的决策会在遍历交换矩阵之前到达,从而在 DoS 攻击期间节省交换矩阵带宽。由于存在多个重叠的网桥域,这意味着同一端口(混合端口或交换机间链路)作为成员出现在多个网桥域中,因此在一个端口中学习的 MAC 地址必须对另一个网桥域上的端口可见。例如,在混合端口上学习的 MAC 地址必须对各个社区网桥域上的隔离端口(隔离网桥域)和社区端口(社区网桥域)都可见。
为解决此问题,可使用共享 VLAN 进行 PVLAN 桥接。在共享 VLAN 模型中,跨所有端口获知的所有 MAC 都存储在同一桥接域(主 VLAN BD)和同一 VLAN(主 VLAN)中。对数据包进行 VLAN 查找时,还会使用 PVLAN 端口、PVLAN 网桥域以及 PVLAN 标记或 ID。使用共享 VLAN 方法可执行以下过程:
-
将执行源 MAC 地址 (SMAC) 查找,以确定是否已学习此 MAC 地址。如果不是学习地址,则会将 MLP 数据包(用于将流量泛洪到 MAC 学习芯片的路由)发送至与此桥接域映射的所有其他数据包转发引擎。此外,还会向主机发送 MLP 数据包。
-
使用元组(网桥域 ID、VLAN 和目标MAC 地址)进行目标MAC 地址 (DMAC) 查找。
-
如果观察到 MAC 地址匹配,则查找结果将指向出口下一跃点。出口数据包转发引擎用于转发数据包。
-
如果在查找过程中发生未命中,则使用网格组 ID 确定泛洪下一跃点以对数据包进行泛洪。
-
如果发生匹配,则从 VLAN 查找表派生组 ID,并执行以下验证以强制执行主 VLAN 转发:
Steps Source Destination Action
Step 1 0 {*} Permit
Step 2 {*} 0 Permit
Step 3 1 1 Drop
Step 4 X <-> Y (X > 1 and Y > 1 and X ≠ Y Drop
此处,{*} 是正则表达式表示法中的通配符,指代任何值。步骤 1 确保允许从混合端口或交换机间链路端口到任何其他端口的所有转发。步骤 2 确保允许从任何端口到混合链路端口或交换机间链路端口的所有转发。步骤 3 确保丢弃到另一个隔离端口的任何隔离端口。步骤 4 确保仅允许在同一社区内进行社区端口转发 (X == Y),并在跨社区 (X ≠ Y ) 时被丢弃。