家庭开源网关 02|主路由、旁路由与双重 NAT 的拓扑设计

家庭开源网关 02|主路由、旁路由与双重 NAT 的拓扑设计

比较主网关、旁路由、双重 NAT 与职责解耦拓扑,解释各自的数据路径、故障边界、回程与 IPv6 问题,并给出迁移场景下的选择方法。

家庭开源网关 02|主路由、旁路由与双重 NAT 的拓扑设计

家庭开源网关系列 · 第 2/8 篇

同一台 OpenWrt 设备,放在所有终端出口时是主网关,挂在现有路由器旁边时可能被称为“旁路由”,接在光猫路由模式之后又会形成双重 NAT。设备没有变,真正改变的是数据包路径、故障边界和谁负责 DHCP、DNS 与防火墙。

家庭网关拓扑首先要让每项职责都有一个明确负责人,设备数量反而是次要问题。

长期结构:接入、路由、交换和无线解耦

运营商接入、开源主网关、交换机、AP 与服务器解耦的家庭网络拓扑

图:网关只承担网络核心职责,AP、服务器和交换机可以独立升级或重启。

推荐的长期路径是:

运营商接入 / 桥接光猫
        ↓ WAN
    开源主网关
        ↓ LAN
      交换机
    ├── 无线 AP
    ├── 家庭服务器 / NAS
    └── 有线终端

这种结构的价值在于故障隔离。AP 重启不会影响有线终端,服务器升级不会中断基础 DNS 与路由,交换机扩容也不会改变出口策略。

职责解耦并不等于每项功能都必须购买一台独立设备。关键是逻辑边界清楚:路由和 DHCP 只有一个主控制点,AP 只做二层接入,应用服务即使与网关暂时共用硬件,也应拥有独立备份和可替换路径。设备可以合并,责任不能含糊。

设计时可以先填写一张“控制面归属表”:

职责 建议唯一负责人 需要记录的状态
上网认证 光猫或主网关 PPPoE/IPoE、业务 VLAN、MTU
默认网关与 NAT 主网关 LAN/WAN 地址、路由表、IPv6 PD
DHCP 主网关 地址池、租期、静态租约
DNS 入口 主网关上的唯一入口 上游、缓存、分流和回退链路
Wi-Fi AP SSID、加密、信道、VLAN 映射
存储与应用 NAS/服务器 数据备份、容器和恢复顺序

如果同一职责在表中出现两个“主负责人”,就应提前解释它们如何协作。解释不清的地方,通常就是未来最难定位的故障点。

四种常见拓扑

拓扑 流量路径 优点 主要代价
一体机 接入设备直接连接终端 简单、设备少 接入、路由、交换、Wi-Fi 强耦合
主网关串联 所有终端经过独立网关 路径清晰,DNS、代理和防火墙统一 网关故障会影响全屋
旁路由 主路由保留,部分流量交给辅助设备 改线少、便于逐台测试 回程、DNS、IPv6 与故障切换复杂
双重 NAT 上游与下游各执行一次 NAT 部署快、旧网络可保留 两个子网,端口映射和设备发现复杂

OpenWrt 官方文档也把设备作为路由器、交换机、网关和双重 NAT 路由器的差异放在数据路径中解释,而不是按硬件外形划分。

主网关为什么最容易长期维护

主网关是局域网终端的默认网关,通常也是 DHCP 和 DNS 的入口。所有出站连接自然经过它,因此连接跟踪、路由标记、TUN/TPROXY、DNS 分流和防火墙的正向与回程路径容易保持一致。

双网口设备很适合这一结构:WAN 接上游,LAN 接交换机。只要主网关工作,所有接在下游 AP 和交换机上的终端就共享同一套策略。

代价也很直接:它成为基础网络的单点。更实用的处理方式,是保留可快速启动的最小备用系统,并让服务器和存储独立于网关。

“旁路由”实际可能是四种不同设计

“旁路由”不是严格的协议术语,至少可能指:

  1. 终端手工把辅助设备设为默认网关。
  2. 主 DHCP 为特定设备下发不同的网关或 DNS。
  3. 主路由通过静态路由或 PBR 把特定流量送往辅助设备。
  4. 辅助设备只提供 DNS 或代理服务,并不承担三层路由。

这些方案的共同问题是必须解释回程。去程经过辅助设备、回程却直接返回主路由时,连接状态和透明代理可能失效;IPv4 已进入代理而 IPv6 仍从主路由直出,也会产生难以察觉的策略绕行。

旁路方案适合实验、逐台迁移和无法调整上游路由的环境。它可以稳定运行,但所需的路由与 DNS 知识通常高于直接使用主网关。

四种旁路实现分别会坏在哪里

终端手工改网关最容易理解,但每新增一台设备都要重复配置,手机切换网络后也可能丢失设置。DHCP 按设备下发不同网关适合集中管理,前提是主路由支持按客户端分配选项,并且租约更新后终端确实采用新参数。

主路由通过静态路由或 PBR 把流量送往旁路节点时,必须保证旁路节点知道回到原客户端网段的路径。若旁路节点再次 NAT,回程问题会被掩盖,但排障和端口映射更复杂;若不 NAT,则上游路由表必须完整。

只提供 DNS 或显式代理的旁路服务影响最小。它不替换默认网关,终端仍由主路由出网;故障时可以把 DNS 或代理设置恢复到主网关。这种模式适合广告过滤、局域网解析或少数需要显式代理的设备,但不能自动获得“所有流量都受策略控制”的效果。

无论采用哪一种,都要分别测试 IPv4 与 IPv6。旁路规则只接管 IPv4,而终端优先通过 IPv6 访问外网,是家庭透明代理最常见的策略绕行之一。

双重 NAT 适合作为迁移阶段

一个实用的测试结构是:

互联网
上游光猫路由:192.168.1.0/24
  ├── 原 Wi-Fi:继续直连
  └── 下游 OpenWrt WAN:从上游获取地址
      OpenWrt LAN:192.168.50.0/24
      测试电脑 / 新 AP

这样可以在不影响原网络的情况下验证 DHCP、DNS、代理、重启和温度。缺点是端口映射要处理两层,投屏与发现协议不能自然穿过两个广播域,游戏 NAT、P2P 和远程访问也会更复杂。

因此双重 NAT 很适合过渡和应急,不适合作为默认的最终结构。需要长期保留时,至少应明确两个网段、两个 Wi-Fi 的用途,并避免终端在两边自动切换。

可直接落地的双 Wi-Fi 过渡模板

原网络和测试网络可以这样命名与分工:

上游光猫/旧路由 Wi-Fi:Home-Direct
  └── 维持家人日常上网和应急直连

下游 OpenWrt:192.168.50.0/24
  └── 新 AP Wi-Fi:Home-Policy
      └── 用于测试代理、DNS、VLAN 与 IPv6

两个 SSID 应使用不同名称,测试终端关闭自动加入旧网络,避免测到一半悄悄切回上游。Home-Policy 中的终端会经历两次 NAT;Home-Direct 中的终端则绕过 OpenWrt。做性能对比时要记录终端连接的是哪一个 SSID,否则结果没有可比性。

这个模板还有一个明确退出条件:OpenWrt 连续运行稳定,拨号或 WAN 获取地址正常,DNS、IPv6、代理和回滚都完成验证后,再决定是否桥接光猫并把 Home-Policy 升级为主网络。过渡网络不应因为“暂时能用”而永久失去结束标准。

双重 NAT 下的入站连接为什么更复杂

假设内部 NAS 位于 192.168.50.20,OpenWrt WAN 从上游取得 192.168.1.10。要从公网 IPv4 访问 NAS,数据包至少需要经过两次明确转发:

公网端口
  → 上游光猫/旧路由:转发到 192.168.1.10
  → OpenWrt:再转发到 192.168.50.20
  → NAS 服务与主机防火墙

上游设置 Exposed Host 可以减少第一层逐端口配置,但 OpenWrt 仍处在 NAT 后面,而且 WAN 防火墙必须承担完整入站防护。如果运营商侧还有 CGNAT,即使家庭两层都配置正确,公网连接仍然到不了上游设备。

IPv6 又是另一条路径。终端可能从上游或下游获得全局地址,通信不经过 IPv4 NAT;如果只检查了 IPv4 端口映射和代理,IPv6 可能绕过预期策略。双重 NAT 环境必须分别画出 IPv4 与 IPv6 路径,不能用一次网页访问证明两者都正确。

投屏和设备发现的问题也不是简单的“端口没开”。mDNS、SSDP 等依赖广播或组播,同一服务的控制连接和发现报文可能采用不同路径。两个 NAT 后的广播域默认不会互相转发,强行开放大量端口也无法自动恢复发现机制。

是否改光猫桥接

桥接并不是部署开源网关的前置条件。判断可以简化为三步:

  1. 入户是否已经是普通以太网。如果是,新网关可以直接接管 WAN。
  2. 上游是否已经桥接。如果是,不需要再次调整。
  3. 上游是否正在做 NAT,而你是否希望新网关成为唯一默认网关。只有同时满足这一点时,改桥接才直接解决问题。

如果暂时不能桥接,可以先保持双重 NAT。若上游支持“Exposed Host/DMZ 主机”,可以把下游 OpenWrt 设为暴露主机以简化入站转发,但这不等于真正桥接,而且意味着 OpenWrt 的 WAN 口会承接更多入站流量,防火墙规则必须保持严格。

按目标选择拓扑

目标 推荐起点
先验证新设备,不影响家人上网 双重 NAT 测试
只给少量设备提供代理或 DNS 轻量旁路服务
全屋统一 DNS、代理、IPv6 与防火墙 独立主网关
IoT、访客和服务器严格隔离 主网关 + 管理型交换机 + VLAN AP
网关同时运行容器和 NAS 谨慎评估单点,并准备物理备用网关

还可以用三问快速排除不合适的方案:所有终端是否都必须经过统一策略?如果是,旁路服务不应成为最终默认;是否能解释回程和 IPv6?如果不能,先选择物理串联主网关;上游接入是否允许调整?如果暂时不允许,使用双重 NAT 测试,但给过渡阶段设定退出条件。

三套可复用的拓扑模板

稳定千兆家庭:桥接光猫或以太网入户 → 双千兆主网关 → 千兆交换机 → Wi-Fi 6 AP 与独立服务器。网关运行基础路由、一个代理管理器和必要 VPN,服务器维护不影响上网。

2.5G 内网与 NAS:双 2.5G 主网关 → 2.5G 交换机 → NAS/PC/AP。NAS 与 PC 同 VLAN 时在交换机内转发,不要把所有局域网流量强制绕过网关;需要隔离时再让跨 VLAN 流量进入网关。

进阶隔离家庭:主网关通过 Trunk 连接管理型交换机和 VLAN AP,可信、IoT、访客、服务器与管理网络独立。先完成访问矩阵,再写防火墙;默认拒绝跨 VLAN,只开放实际需要的方向和端口。

网关与服务器合并时要计算故障半径

x86 主机或带 NVMe 的开发板可以同时运行 OpenWrt、Docker 和轻量 NAS。这会减少设备、电源和布线,但也把更多服务放进同一个故障域:系统升级、磁盘损坏、容器内存泄漏或宿主机维护,都可能同时中断上网与应用。

如果确实采用一体化,至少满足以下条件:

  • 关键数据不只保存在网关系统盘;
  • Docker 或 NAS 停止后,基础 WAN、LAN、DHCP 和 DNS 仍能运行;
  • 存储挂载失败不会阻塞网关启动;
  • 虚拟化环境断电恢复后,虚拟交换机和 OpenWrt 虚拟机可以自动启动;
  • 家中保留一台可迅速接管的物理路由器或备用系统盘。

对于 24×7 家庭网络,减少一台设备带来的整洁感,通常不值得交换一个无法快速恢复的单点故障。

用六项测试验收拓扑

完成改线后,不要只打开网页确认“能上网”。至少验证:

  1. 所有终端获得预期网段、默认网关和 DNS。
  2. 同一广播域只有预期的 DHCP 服务器。
  3. 有线终端与 NAS 的局域网吞吐符合端口协商速率。
  4. 关闭代理后仍有明确的基础上网路径。
  5. 重启 AP 不影响有线网络,停止服务器不影响基础路由。
  6. 外网不能直接访问 LuCI、SSH、SMB 等内部管理服务。

再做一次故障演练:拔掉新网关,按记录恢复旧路由与原网线,确认家庭网络能在可接受时间内恢复。拓扑只有在正常路径和退路都可解释时,才算真正完成。

家庭网络的长期稳定来自路径可解释:每个终端应当知道默认网关是谁,每个网段应当知道 DHCP 在哪里,每条策略都应当覆盖正向、回程和 IPv6。

下一篇进入软件层,比较 OpenWrt、ImmortalWrt、iStoreOS,以及代理、DNS、VPN 与 PBR 的组件边界。

参考资料