网桥模式和 VPN 穿透常出现在同一个排障帖里,因为两者都被当作 VPN 连不上的解决办法。它们描述的是路由器不同的功能,而且任何一方本身都不会建立 VPN 隧道。桥接改变的是设备如何接入网段,或者由谁来做路由;穿透决定的是客户端的 VPN 流量能否穿过网关。选错一个,小问题就会变成花一下午重新分配地址。

两个名称,两种不同的功能

判断方法很简单:你是想改变网络的形状,还是想让已经存在的流量穿过去?这是两类不同的需求,后果也不同。

一张表就能看清对比:

SettingWhat it actually does
Bridge modeChanges the device's forwarding role: a modem bridge hands routing and NAT downstream, a software bridge joins selected interfaces
VPN pass-throughLets a client's VPN traffic cross the router; the credentials and encryption stay with the client
Router VPN clientTerminates the tunnel on the router, so the router becomes the endpoint
Router VPN serverAccepts inbound tunnels, which needs an upstream path that can reach it

只有后两种会在路由器上建立隧道。桥接和穿透都把端点留在别处,所以两者都无法解决由客户端缺失或服务器不可达引起的问题。这个区别很容易丢失,因为这些设置在同一界面里挨得很近。打开那个页面之前,先写下隧道归哪个端点所有。

穿透勾选框也不是协议支持的完整说明。现代 IPsec 的 NAT 穿越使用标准化的 UDP 封装,而较旧的辅助功能则因实现而异。

标着支持 VPN 的营销标签,并不会告诉你它指的是这四种角色中的哪一种。

网桥模式在你的设备上改变了什么

在调制解调器或路由器上,网桥选项通常把路由和 NAT 的职责移交给下游的另一台网关。在软件设备上,它可能意味着把选定的本地接口并入同一个广播域。具体范围取决于产品,所以要读该型号的文档,而不是只读这个词。两种解释都会改变地址分配、防火墙边界以及你访问管理界面的方式。

最后这一点正是桥接不适合作为 VPN 故障第一反应的原因。原始问题还没解决,你就可能先丢掉管理通道。

在改变网络角色之前先备份配置,因为地址分配可能随之一并改变。

先选角色,再动设置

要让家庭流量从外部出口出去,你需要兼容的路由器 VPN 客户端,而不是网桥。要从别处连回家里,你需要服务器角色,以及一条能到达它的上行路径。除了 VPN 这个词,这两个需求几乎没有共同点。在看菜单之前,先确定你在搭建哪一个。

一台设备可以同时支持两种角色,却仍可能达不到你期望的速度。

角色是设计决定;设置只是它的结果。

如果只有一种协议失败

当某一种协议在其余正常的路由器后面失败时,先查这种协议的传输方式和 NAT 路径。为了修好一个客户端而改动整个网关模式,相当于因为一盏灯坏了就重铺整栋房子的线路。检查流量是否采用 UDP 封装、路由器的辅助功能是否适用于该协议,以及故障是否对称。然后再判断是否真的需要改变角色。

RFC 3948 描述了让 IPsec 得以穿过 NAT 的 UDP 封装,在相信穿透勾选框之前,这才是应当核对的标准。

记录你改了什么以及为什么,因为下一个人会发现设备处于网桥模式,并以为那是有意为之。正确的结果是你自己选择形状的网络,而不是从一次排障会话里继承下来的网络。

相关文章