出口选择,应该跟着设备走
给电视指定一个出口,或让电脑的工作流量走特定线路,表达的都是对设备与应用的安排。现代客户端还会自行选择 IPv4 或 IPv6 建立连接。要让设备策略覆盖日常使用,网关也需要把这两条路径衔接起来。
Wind Rose 将 OpenSurge 的设备策略延伸到下游 IPv6。客户端的 IPv6 路由经过 Mac 后,TCP 与 UDP 连接便可使用熟悉的设备规则和出口选择,与 IPv4 流量一起管理。
围绕 macOS,安排合适的流量入口
既有 mihomo TUN 路径负责 Mac 本机透明流量与下游 IPv4。对于下游 IPv6,OpenSurge 通过 macOS BPF 从选定物理接口接收数据包,交给项目适配的 mihomo 专用监听器,再由 gVisor 用户态网络栈处理 TCP 与 UDP。
两条入口在规则匹配与出口选择处汇合。这样的分工适应了 macOS 上不同的流量到达方式,同时让日常操作保持连贯:选择设备、调整分流规则,再查看实际连接。
让数据包带着设备身份进入网关
IPv6 客户端可能同时持有多个地址,也会随时间更换地址。因此,数据包代理会连同 IPv6 数据包一起传递来源 MAC,由监听器将其关联到已登记的设备,再应用相应策略。
入口与设备登记之间的这层关联,让独立出口可以覆盖两种地址族,也给排查提供了具体线索:先找到发起请求的设备,再沿着目标、命中规则与出口链查看连接。
把接入方式交给实际的网络拓扑
独立下游 LAN 为 OpenSurge 提供了清楚的地址、路由与 DNS 发布范围。DHCP 接管也能在共享网络自动提供 IPv6 配置,前提是先消除竞争的路由器通告。旁路由则适合更小的范围,通过手工设置接入选定客户端。
拓扑选择决定了启用方式。“网络”页将 IPv6 接管模式与 AAAA 设置放在一起,方便连贯配置;两者仍各司其职,一个建立流量路径,一个决定 DNS 是否返回 IPv6 目标。
同时考虑向外连接与停止恢复
下游接入与公网出口分别承担连接的一段。具备 IPv6 访问能力的代理,可以借助 IPv4 上游连接公网 IPv6 服务;原生 DIRECT 出站则需要上游 IPv6 地址与路由。QUIC 等 UDP 应用还需要所选出口支持相应协议。
网关停止后的恢复也属于这项设计。自动接入拓扑中,OpenSurge 会撤销自己发布的默认路由并清理运行资源;手工旁路由客户端则需要在停止使用 Mac 网关后恢复网关与 DNS 设置。
从一台设备,体验完整的 IPv6 路径
这项能力目前仍处于实验性阶段。第一次尝试可以从一台客户端开始:接入网络、访问真实 IPv6 服务、核对设备策略、切换出口,最后检查停止后的恢复。沿着这条过程,就能把设计与自己使用的网络和应用对应起来。
FAQ
改变网络前常见的问题
为什么叫 Wind Rose?
风向玫瑰图围绕同一个中心表达不同方向。对 OpenSurge 来说,它对应多条流量路径汇入一个网关,并通过一致的方式安排目标与出口。
开始配置 IPv6,应该先看哪里?
可以从实验性下游 IPv6 功能页开始,按自己的拓扑选择自动或手工接入,配置 DNS 与接管模式,再完成第一台设备的检查。
