订一条运营商 VPN,站间路由最终总会落到某个人头上,不管你有没有点名这位负责人。签下 Layer 2 交接,运营商提供一条管道,邻接关系由你自己的路由器建立;签下 Layer 3 服务,运营商在自己的路由上下文里承载你的前缀。两者都是正当产品,值班故事却不一样。把订单从报价走到第一次验收测试,选择就不再抽象。

从交接单开始,而不是从拓扑幻灯片开始

每家运营商最终都会发来一张表单,问你它该交给你什么:一条伪线、一个多点以太网段,还是共享服务边缘上的一个路由接入。这一个答案比销售材料里任何一张图都更能定事,因为它固定了你的责任从哪里开始。

点到点伪线是两条接入之间的一条电路,多点以太网服务则把多个站点并入同一个广播域。在图上它们看着相似,一旦出现环路或广播风暴,行为就完全不同。在规划地址之前,先确认报的是哪一种。

产品名字决定不了这件事。MPLS 标签、暗光纤交接和基于互联网的叠加网络都可以叫私有网络,而框架文档把服务模型和客户—运营商的分工当作需要定义的东西。书面索取接入语义,然后用平实的话向自己的团队复述一遍。

读一读开通当天到货的东西

开通当天,先看看交给你的接口,再往上面配任何东西。Layer 3 路由接入通常表现为带一个小型点到点子网的端口,或者一个你必须到达的下一跳。Layer 2 接入则表现为一条等待帧的链路,所以你第一条有用的命令是网桥或邻居检查,而不是查路由。

ip -br link show
ip -br addr show
ip route show default
ip neigh show

这四行告诉你身处哪个世界。指向运营商地址的默认路由意味着运营商替你路由。没有可用 Layer 3 地址但网桥已被填充的接口,意味着路由要由你来做,缺哪个前缀就由你补。

看起来混杂的链路也可能说明交接带了标签,所以在怪罪电路之前先确认 VLAN 约定。多点服务里重复的 MAC 地址是设计症状,不是运营商故障。

在第一个前缀之前,给每个对象指定一位负责人

把对象清单过一遍,大声说出每一项归哪个团队。客户前缀和站点之间的通告。与运营商边缘建立关系的邻接关系或服务标识。谁负责断环,谁同意住在同一个更宽的广播域里。MTU 上限在哪里,故障怎么被发现,服务怎么恢复。访问策略,以及服务不包含的任何加密。

清单很短,因为出故障时坏的就是这一块。如果两个团队都认为路由策略归自己,一次中断会在同一小时里产生两处互相冲突的变更。如果谁都不管,第一条非对称路径就会一直存在,直到客户报障。

路由型服务通常给你一条 BGP 或静态边界,所以你这一侧需要可读的会话状态:birdc show protocols 或路由器上的等价命令会告诉你邻接是否起来,计数器则告诉你它是否只在上班时间抖动。Layer 2 交接没有这种信号,所以客户必须自己持有明确的连通性检查。

走一遍单个站点的故障情形

在服务上线之前先写好验收测试:断开一个站点的接入,记录每个团队看到什么。在 Layer 3 服务里,运营商撤回该站点前缀的可达性,你的会话记录这次撤回,其余站点保留各自路径。在 Layer 2 服务里,电路断开,你的路由协议发现邻居死亡,同样的收敛完全取决于你的定时器。

恢复链路,检查情形后半段,因为残留的旧状态才是常态。确认邻接恢复、前缀带着预期属性回来,并且表里没有从事故中留下的临时静态路由。

也测一测无聊的故障:单个站点流量翻倍。路由型交接能看到按前缀的计数器;桥接型交接也许只能看到接口吞吐,于是你只能猜是哪台主机的问题。

合同买不到的东西

Layer 2 或 Layer 3 标签并不说明时延、专用骨干或加密。这些是另外的承诺,可用性数字也不代表其中任何一项。读服务协议里承诺了什么,其余一律当作需要自己验证的假设。

如果你要的是两台客户路由器之间的点到点接入,Layer 2 服务就合适,不必让运营商来跑你的内部路由。如果你要的是多个不同子网的站点加上一支小运维团队,路由型服务通常能省掉本来要你承担的工作。

两者都不是默认答案。检查设备对封装的支持、站点之间真实的流量关系、冗余模型,以及你的团队能不能运维刚刚接手的那部分。然后把负责人名字写进运行手册,因为决定里唯一能扛住人员变动的就是这一条。

相关文章