无线客户端可以待在 VPN 后面,而接入点对隧道一无所知。把无线射频桥接到网关的局域网,让网关掌握地址分配和隧道,Wi-Fi 上的每台设备就继承同一套策略。另一种做法是带自己网关的第二段路由网段,那是另一种设计,也有另一种失效方式。

两者容易混淆,是因为它们都在互联网和你的设备之间放了一个盒子。比较各自掌握什么,是做出选择最快的办法。

把 VPN 放在 Wi-Fi 前面的两种方式

在桥接布局中,接入点只在无线射频和有线网段之间转发帧,别的什么都不做:一个子网、一个地址权威、一台执行策略的路由器。在路由布局中,第二个盒子有自己的地址、自己的 DHCP 范围和自己的默认路由,所以流量在到达隧道之前还要跨过另一道边界。桥接设计让每台无线设备在网关看来都是本地设备,因此一套规则就能覆盖全部。路由设计则给你一个需要推理的网段,以及第二个可能把策略弄错的地方。

internet
  -> vpn-capable gateway: routing, tunnel, dns, failure policy
  -> bridged access point: radio onto the same lan
  -> wifi clients

如果要求无线设备使用与有线设备相同的隧道,就选桥接。如果你想要一个可以隔离的网段,或者第二个盒子已经作为路由器存在,就选路由。

桥接布局到底改变了什么

桥接去掉了转换层和一个相互竞争的默认网关,却增加了管理问题。接入点仍然需要一个你能访问到的地址,厂商流程通常通过主局域网来安排。它的 DHCP 服务必须关闭,否则两个权威会发出相互冲突的租约。网关保留隧道、解析器设置以及隧道断开时该怎么办的决定,因此策略只存在于一个地方。

无线射频并不会自动从隧道继承这些东西。它只是不再叠加会把它遮住的层。

第二段路由网段适合放在哪里

当后面的设备需要与局域网其余部分不同的处理时,路由网段才值得这份复杂度。访客网络、实验室,或者一组必须始终从某个国家出口的客户端,都是把路由器放进路径的理由。代价是第二个地址权威、第二道需要保持一致性的防火墙,以及如果那边有人需要访问该网段时从主局域网回程的路由。这些是义务,不是配置细节。

常见的错误是意外搭出了路由版本:复用了仍在运行自己 DHCP 和转换的路由器。那会产生双重转换,以及没人能追踪的策略。

从 Wi-Fi 客户端测试,而不是从网关

在网关上请求成功,只能证明隧道对这个网关有效。真正的问题是无线客户端转发的流量是否使用它,而这必须从客户端观察。下面的命令检查客户端的地址、它的路由,以及远程服务看到的地址。

ip -4 addr show wlan0
ip route get 1.1.1.1
curl -sS https://api.ipify.org; echo
traceroute -n -m 4 1.1.1.1

网关局域网内部的地址,确认网桥是在转发帧而不是转换帧。第一跳是网关的路由,确认客户端没有从别处获得第二条默认路由。出口地址检查回答了真正的问题,短程跟踪则显示前几跳是否符合预期。如果客户端的地址来自另一个范围,第一个嫌疑对象就是游离的 DHCP 服务器。

写下每个盒子的角色、它的地址以及 DHCP 权威。三行示意图就够了,它能平息大多数关于某条规则该归谁的争论。

相关文章