Junos 逻辑隧道是两个接入,而非一条链路
一对 lt 接口从两端把二层业务接到 VPLS。提交之前先核对对端单元、封装方式和实例成员关系。
在路由器内部,lt- 接口看起来和一根线缆完全一样,正是这种印象造成了大部分误解。它不是一条链路,而是两个接入:每一端都属于一个业务,每一端都有自己的封装,只有两个业务正确对接时,这对接口才会转发。请按顺序完成下面五个步骤,并把一次干净提交视为验证的开始,而不是工作的结束。每一步都会留下记录,下一位工程师无需重复排查就能核对。
第 1 步:写出接入工作表
在动配置之前,先画出什么应该接到什么。一侧终结点到点Layer 2 电路,另一侧加入 VPLS 实例,逻辑隧道位于两者之间,把帧从一侧送到另一侧。请明确写出两个业务的名称,因为点对点电路、VPLS 实例和 EVPN-VXLAN 互联并不能仅仅因为都能被称为「缝合」就彼此互换。
记录两端的单元编号以及每个单元属于哪个业务。三次变更和一次回滚之后仍然正确的唯一产物,就是这张表。
第 2 步:固定对端单元和封装方式
两个单元必须位于同一个逻辑隧道接口上并互相指向,而一个单元只能有一个对端。Juniper 关于逻辑隧道的文档同时给出了这两项限制,以及受支持的封装和该接口占用的平台资源。请以已安装的硬件和版本来核对,而不是照搬另一块线卡的实验室示例。跨两个不同 lt 接口引用对端单元时,配置能干净提交,却什么也不转发。
然后为每一端选择与业务匹配的封装。这一对接口的草图如下:
set interfaces lt-0/0/0 unit 0 encapsulation vlan-ccc
set interfaces lt-0/0/0 unit 0 peer-unit 1
set interfaces lt-0/0/0 unit 1 encapsulation vlan-vpls
set interfaces lt-0/0/0 unit 1 peer-unit 0在没有对齐标记方式的情况下把 Ethernet-CCC 和 Ethernet-VPLS 关键字照搬到 VLAN 业务里,是造出「能起来但什么也不转发」的另一条常见路径。
第 3 步:把每一端接到各自的业务上
每个单元都归属于某个业务定义,而业务必须真的把它包含进去。对于受支持的 MX Layer 2 组网,文档指出桥域或 VPLS 成员关系才是让转发双向生效的东西,也就是说,配置正确的对端配对但单元没有成员关系,就是一对各说各话的端点。请把成员关系与单元放在同一次提交里,这样两者永远不会互相矛盾。
把伪线信令和实例成员关系作为同一次变更的一部分来配置,因为正是电路远端让 VPLS 一侧有东西可学。
第 4 步:估算资源和帧大小
内部链路仍然消耗转发资源。文档列出了逻辑隧道对平台带宽的影响,所以请去核对,而不是假定「内部」就等于免费。
让两个接入和远端伪线上的业务 MTU 与标记模型保持一致。不要在没弄清相关设置统计哪些报头之前照抄示例 MTU 值,因为悄悄压缩预算的内部跳点,恰恰会在用户流量最大的地方出问题。
第 5 步:验证转发,然后排查环路
双向发送流量,并检查业务状态,而不只是接口状态。show interfaces lt-0/0/0 只能说明这对接口在管理上是 up 的,show vpls connections 只能说明实例是否有可供学习的连接。两者都不能证明从一侧进入的帧从另一侧出去,所以要专门测试。请让流量持续运行并保持业务状态可见,从一侧主机向另一侧主机发送。
最后,检查是否已有另一条物理或逻辑路径接入同一个以太网域。增加这个接入可能改变泛洪行为并制造出此前不存在的环路,而症状会出现在完全不同的地方。与其在事故中才发现一条无人监管的 Layer 2 路径,不如事先规划好你想要的冗余。