第二条 WAN VPN 入口失效,而主入口仍然正常
第二条 WAN VPN 入口需要自己的监听器、匹配的证书身份和回程路径,客户端故障切换才能真正用上它。
主隧道依然在线,用户继续工作,而第二条 ISP 线路无论你怎么改都闲置着。你为备用线路发布了地址、把域名指向它,也许还在客户端里加了备用入口,结果客户端要么从不尝试,要么认证之后随即中断。我排查过的案例里,故障切换功能通常没问题;缺的是让入口可用的五件事之一。域名可以解析到备用地址,而该接口上没有任何监听;监听器可以接受连接,而应答却从主线路出去。把每条 WAN 当作有独立契约的单独入口,故障就不再像客户端缺陷。
每条 WAN 都需要自己的入口契约
为每条 WAN 记录五个字段:公网名称和地址、传输方式与端口、负责终止它的接口或上下文、它应出示的对端身份,以及应答从何处离开。两条线路意味着两套完整配置。如果第二套没有终止接口或没有回程路径,你就没有备用入口;你只有一条描述意图的 DNS 记录。
设备和它的版本也必须支持这种安排。DNS 记录无法在另一个接口上开启服务,而在许多平台上,监听器是按地址而非按设备配置的。ASA 上基于接口的 IPsec 会把加密映射和隧道组绑定到外部接口,因此第二条上行链路需要在报文真正到达的地方附带策略。基于路由的设计表现不同:监听器可以绑定所有地址或某个具名地址,这个选择决定 ISP B 究竟能否应答。
确认第二条 WAN 真的能应答
从两条线路的外部测试,而不是从网关后面的机器测试,并且测试客户端配置里使用的确切名称。对 TLS 监听器,快速检查是 openssl s_client -connect ADDRESS:443 -servername vpn.example.com -showcerts 在你网络之外的机器上运行。你要的是链路与配置中名称匹配的完整握手,而不只是一个能接受连接的 TCP 端口。
RFC 9525 说明了客户端在检查什么:它想抵达的身份,与服务出示的证书作比较。如果第二条入口返回主入口的证书,或返回一张两个名称都没列出的默认证书,即使端口开放、防火墙放行,这一项也过不了。
这里的大多数故障由两种模式解释。连接挂起通常意味着该接口上没有监听器、访问规则只允许主网段,或第二条线路前面的运营商设备丢弃了端口。以错误身份结束的握手通常意味着不同的信任点、默认虚拟主机,或从主入口复制却没调整身份的配置。
跟踪应答,而不只是请求
第二条 WAN 通常在回程上出问题。请求从 ISP B 到达,设备应答,而应答却沿 ISP A 的默认路由离开,源地址是客户端从未请求过的。有状态转换会让情况更糟:如果映射是按主接口建立的,回程报文就会错过转换,或带有被客户端防火墙丢弃的源地址。运营商还会丢弃不属于其所给线路的源地址,所以这看起来像单向黑洞,而不是干净的协议错误。
检查源自第二条入口的流量的路由决策。应答应当从请求进入的接口离开,或至少携带对端认可属于该路径的地址。在策略路由平台上,这意味着一条以入接口或转换后源为依据的规则,外加绑定到每个外部接口的转换语句。客户端连接时同时在两个接口上抓包;从 ISP B 进入的 SYN 与从 ISP A 出去的 SYN-ACK 一次就能定论。
让客户端有办法了解第二个入口
故障切换是客户端的决定,而各类客户端了解备用方案的方式不同。在 ASA 上,备用服务器列表通过组策略的 webvpn 属性下发;其他客户端则期待配置内的列表,或用户手动选择的第二份配置。思科的连接策略指南同时描述了客户端自行配置和网关提供的备用信息,这些协议特有的细节不应推广到所有客户端或隧道模式。在围绕错误机制搭建第二个入口之前,先确认已部署客户端实现的到底是哪一种。
无论采用哪种机制,客户端都必须能在丢失主路径之前解析备用名称。这一点正是人们常忽略的依赖:如果备用名称由只能通过刚刚失效的隧道才可达的解析器应答,回退根本起不来。把第二个名称发布在本地或互联网上可应答的解析器中。要预期切换后会重新认证并建立新的应用会话,因为客户端故障切换不是有状态切换,长连接熬不过去。
同一地址挂在两家运营商上是另一种产品
让同一个公网地址经两条线路都可达,是一项路由服务,而不是 VPN 里的一个勾选项。它需要两家运营商都愿意承载的地址空间,并且以其网络能接受的方式宣告,这正是使用独立于运营商的地址空间加 BGP 的多宿主所提供的。把 ISP A 的地址配到 ISP B 的接口上走不通;报文会进入一个从未宣告该前缀的网络,并在此被上游丢弃。
发布两个入口并不需要这些。如果客户端能持有两个名称并在其间切换,两个独立入口就够了,你还能省掉 AS 号、对等互联安排,以及一个必须在各处都被接受的前缀。只有当你的确需要一个客户端无法通过改配置替换的稳定入口,或者基于 DNS 的故障切换连同其 TTL 延迟对你正在设计的故障来说太慢时,才考虑可移植地址这一选项。
接下来检查什么
按这个顺序从失效入口向外排查:第二个地址从外部能应答吗,它出示的身份是客户端期待的吗,应答是否沿请求进来的路径离开,客户端能否在需要之前获知该名称。凡答案是否定的,就修那一层,并用实际部署的配置而不是测试主机重测,因为实验室里的握手能证明的东西少于真实客户端的完整连接。
为每条 WAN 保留简短记录,包含地址、端口、终止接口、证书名称、回程路径和转换规则,并在任一线路、NAT 设备或客户端版本变化时重新核对。闲置的备用路径会悄悄腐烂:没人用的入口不会触发任何告警,直到所有人都依赖它的那一天。