两个 SSID,两条出口:哪条策略在哪里生效
SSID 只是一张标签,直到网关把它映射到入站接口和路由策略。先定下两条出口,再测试隧道丢失的情形。
一个网关上的两个 SSID 看起来像两个网络,但在网关如此对待它们之前并不是。除非接入点把每个 SSID 映射到各自的 VLAN,否则射频会把两者交给同一座网桥。即便接口已经分开,流量仍遵循网关对该入口施加的路由与防火墙策略。SSID 是标签;策略才是你写下来的东西。
SSID 不是策略
动路由器之前,先给两个网络命名并写下它们各自的预期出口。家庭走普通 WAN,工作走 VPN 接口,谁也不继承对方的路径。如果两个 SSID 落在同一座未分段的网桥上,这些名字什么也没有创造。那座扁平网桥正是这套设计最常见的静默失败方式。
接入点必须把它们呈现为独立的接口,打上标签,或分开桥接。这是前提条件,不是细节。写下映射关系,再写第一条规则。
按入站接口分类
在数据包进入网关的位置分类。策略规则里的入站接口选择器与源前缀是两回事,这才是说明该流量来自工作的诚实方式。只匹配源地址,会让工作侧的客户端冒用家庭地址并走家庭的路径。
ip rule show也要对照入口校验源,让两项检查彼此一致而不是互相矛盾。只检查其中一项的规则,只是半条策略。
别把网关自己的隧道卷进来
让网关自身的外层 VPN 连接留在可用的底层之上。为转发的客户端编写的规则不应递归捕获承载它们的隧道,因为那正是制造只在负载下才出现的环路的经典做法。把本地输出路径排除在外,或把规则限定在转发流量上。测环路时用大文件传输,而不是单次 ping。
转换也需要同样的谨慎。若 VPN 出口要求以网关隧道地址作为源,就只把它用在离开 VPN 接口的工作源上。家庭的普通 WAN 转换是另一个范围,一条不加限定的 masquerade 规则无法同时表达两者。
把两条规则写在一起,让这对规则作为一套设计可见,而不是两行无关的配置。一句注明来源与预期出口的注释就够了。
有意识地决定失败状态
决定 VPN 路由消失时会发生什么。对工作网络,诚实的答案通常是拒绝:不回落到普通 WAN,因为独立 SSID 的意义就在于它的流量不从错误的路径离开。自动重连只是便利,不是拦截策略。一条从不记日志的拒绝规则,和一张坏掉的网络无从分辨。
ip route show table work从每个 SSID 各测一次全新连接,然后移走隧道再测一次。家庭应保留普通路径,而工作应当闭合失败。IPv6 要单独检查,因为两个 IPv4 子网并不能说明它的情况,而策略规则参考记录了上文用到的选择器。