无线链路备用:走路由切换还是单一网段?
判断备用链路是恢复路由可达性,还是扩展一个以太网网段。这个选择决定了环路控制、健康检查和恢复方式。
两栋建筑、一条点对点无线链路,以及一条可作为第二路径的互联网 VPN。在备用变成自动之前,有一个问题几乎决定了其他一切:什么必须存活——是不同子网之间的 IP 可达性,还是一个共享的以太网段?无线设备表现得像电缆,并不构成把每个广播帧都送到互联网上的理由。请先回答这个问题,因为两种答案需要不同的环路控制、不同的健康检查,以及对“恢复”的不同理解。
确定故障中必须保住什么
列出必须继续工作的应用,并记录它们依赖的是 Layer 3 可达性还是 Layer 2 邻接。文件共享、数据库连接和 Web 服务通常只关心路由;发现协议、部分集群产品以及一切需要单一广播域的东西则关心邻接。恢复了错误类型可达性的备用,会造出一个技术上连通、实际上无用的站点。
把这份清单写下来并附在设计里,因为一旦第一位应用负责人听说新链路,答案往往就会变。
路由式切换:两个前缀,一条首选路径
有了各自的站点前缀,备用就变成路由问题。每台路由器都有一条经无线链路的首选路径,以及一条经隧道的次选路径,无线链路停止转发流量时会 撤掉首选路由。对端需要自己的回程路由,两端还应就每个方向的首选路径达成一致,以免流量只在某一个方向上绕远路。
ip route show | grep -E '10.44\.|10.45\.'
ip route get 10.45.0.10
ip route get 10.45.0.10 from 10.44.0.1
第三条命令要像第二条一样读:策略规则、第二张路由表或基于源地址的决定,都可能让某个子网的流量走法与其他子网不同,而单看一次默认查询会把这一点藏起来。
桥接式切换:一个网段,一条阻塞路径
如果确实需要邻接,备用就必须承载以太网帧,而路由式 IP 隧道做不到这一点。部分平台支持 把一个 VPN 接口桥接进本地网段,这些接口随后就成为桥成员,并带来相应的后果。两条同时转发的 Layer 2 路径会形成环路,因此设计需要一个覆盖两地的生成树,并明确说明哪条路径应当阻塞。
这是实质性的设计决定,而不是一个复选框;平台关于桥接的文档,例如 pfSense 的 桥接概述,才是确认 VPN 成员究竟参与什么的地方。在单台不相干的设备上打开生成树选项,并不能证明端到端的安排。
监控真正重要的边界
无线设备通电、接口 up、隧道健康,各自描述的只是本地事实。它们都不能证明一个包从一栋楼到达了另一栋楼的主机,而这才是切换逻辑唯一应该依据的事实。若策略允许,请监控远端路由器之外的目标,并分别监控两个方向,让不对称的故障可见。
ping -c 3 -W 2 10.45.0.10
ip -brief link show dev wlan0
ip route get 10.45.0.10
让检查保持廉价且有界:短间隔、小次数、与应用容忍度匹配的超时。一个自身依赖所测路径的监控,会一直报告成功,直到它再也报告不出任何东西的那一刻。
在负载下演练两个方向
不要照抄别人拓扑里的单一收敛目标。检测时间、路由或桥接收敛、隧道就绪和应用恢复各自贡献自己的延迟,而你们设备上的总和才是唯一有意义的数字。在有代表性流量运行时演练,这样测量才包含生产环境里存在的队列和会话。
sudo ip link set dev wlan0 down
ip route get 10.45.0.10
sudo ip link set dev wlan0 up
ip route get 10.45.0.10
测试恢复要和测试故障一样仔细。不稳定的无线链路反复通断时,如果首选逻辑没有阻尼,流量就会被来回拉扯,而用户会觉得那比一次干净的断线更糟。记录每个阶段选中的路径、哪些新请求成功,以及路径切换时已打开的会话发生了什么。正是这份记录,把第二根电缆变成了运行策略。