1. 改造背景与痛点

家里目前的网络拓扑比较典型:

  • 核心设备:一台 6 网口的软路由(底层安装 ESXi,将 6 个网口全部分配给虚拟的 OpenWrt。其中网口 1 作为 WAN 口拨号,其余均为 LAN 口)。
  • 物理布线:门口弱电箱到客厅、卧室均只有一条网线,且客厅到卧室之间没有网线。
  • 痛点:软路由原本塞在弱电箱里,光猫网线直连软路由网口 1,网口 2 接客厅,网口 3 接卧室。但由于弱电箱空间狭小,散热成了大问题

为了解决散热,我需要将软路由挪到客厅放置。但这就面临一个死局:弱电箱到客厅只有一根网线,如果这根线用来走光猫的 WAN 数据,那客厅软路由处理好的 LAN 数据就无法传回弱电箱发给卧室了。

我的终极诉求

  1. 解决散热,软路由移至客厅。
  2. 绝对不改变软路由(ESXi 和 OpenWrt)端的任何内部设置(即软路由依然认为网口 1 是 WAN,网口 2/3 是 LAN)。
  3. 保证千兆内网网速无损。

2. 解决方案:双网管交换机“单线复用”

在只有一根网线且不改动路由配置的前提下,最完美的方案是利用两台支持 802.1Q VLAN 功能的千兆网管交换机进行“单线复用”。

原理解释(小白秒懂):
把那根唯一的网线想象成一条高速公路。光猫的数据(外网)和局域网的数据(内网)如果混在一起跑会乱套。交换机的作用就是给这两种数据“贴标签”。

  • 弱电箱交换机给外网数据贴上“红色标签”,内网数据贴上“蓝色标签”,一起扔上高速公路。
  • 客厅交换机收到后,把红标签撕掉交给路由器的 WAN 口,蓝标签撕掉交给路由器的 LAN 口。
    路由器全程只会看到没有标签的普通数据,完全察觉不到中间的复杂过程。

准备工作

  • 两台 5 口千兆网管交换机(假设为交换机 A 和交换机 B)。
  • 为了方便日后管理,先用电脑直连它们,将管理 IP 修改为软路由同网段内未使用的固定 IP(例如软路由是 192.168.132.1,交换机则设为 192.168.132.2192.168.132.3)。

3. 详细配置步骤

我们将两台交换机的 5号口 作为互联的“主干道(Trunk)”。

交换机 A(放置于弱电箱)

物理接线:

  • 1号口:接光猫
  • 2号口:接通往卧室的网线
  • 5号口:接通往客厅的网线(主干道)

VLAN 配置(802.1Q VLAN):

  1. 新建 VLAN 10(外网用):包含 1、5 口。1 口设为 Untagged(不带标签),5 口设为 Tagged(带标签)。
  2. 新建 VLAN 20(内网用):包含 2、5 口。2 口设为 Untagged,5 口设为 Tagged

PVID 配置:

  • 1号口 PVID 设为 10
  • 2号口 PVID 设为 20
  • 5号口 PVID 保持默认 1

交换机 B(放置于客厅)

物理接线:

  • 1号口:接软路由 网口 1(WAN)
  • 2号口:接软路由 网口 2(LAN)
  • 3、4号口:接客厅其他局域网设备(如电视机顶盒、AP面板)
  • 5号口:接墙壁网口(即弱电箱过来的主干道)

VLAN 配置:

  1. 新建 VLAN 10(外网用):包含 1、5 口。1 口设为 Untagged,5 口设为 Tagged
  2. 新建 VLAN 20(内网用):包含 2、3、4、5 口。2、3、4 口设为 Untagged,5 口设为 Tagged

PVID 配置:

  • 1号口 PVID 设为 10
  • 2、3、4号口 PVID 统一设为 20
  • 5号口 PVID 保持默认 1

完成以上设置并接好线后,网络成功通了!软路由顺利拨号,卧室和客厅的设备都能正常上网。但是,一个诡异的暗坑出现了。


4. 踩坑与排错:透明代理为何突然失效?

故障现象:
网络连通后,国内网站访问一切正常,但我部署在 OpenWrt 上的透明代理(dnsmasq + nftables + v2ray)失效了,所有走代理的外部链接全部连不通。在此之前(没加交换机时),这套代理配置是完美运行的。

深度排查与原理分析:
既然软件配置没变,问题必然出在新增的交换机这种“二层物理设备”对网络底层逻辑的影响上。最终锁定了元凶:IPv6 广播泄漏导致的代理被绕过

绝大多数家用网管交换机出厂时,所有端口默认都属于 VLAN 1(Untagged)
虽然我划分了 VLAN 10 和 VLAN 20,但如果这些端口没有从默认的 VLAN 1 中剥离,交换机底层依然存在一个相通的广播域。光猫非常喜欢向局域网发送 IPv6 的 RA(路由宣告)广播包。这些广播包顺着没清理干净的 VLAN 1 穿透了交换机,绕过软路由,直接下发给了我内网的手机和电脑。

由于我的 nftables 透明代理脚本仅对 IPv4(ipv4_addr)进行了拦截和重定向,终端设备拿到光猫下发的 IPv6 地址后,访问外网时优先走了 IPv6 裸奔,直接撞墙,导致代理看似失效。

终极解决办法:逻辑硬隔离

进入两台交换机的 VLAN 1 设置页面,将刚才配置过 VLAN 10 和 VLAN 20 的端口(1、2、3、4、5口),全部在 VLAN 1 中设置为 Not Member(非成员)。

这一步彻底切断了底层的隐形桥梁,将光猫的 IPv6 广播完美阻挡在弱电箱内。配置完成后,透明代理瞬间恢复正常工作。

(注:部分交换机的 Web 管理后台默认全局监听,即便将内网端口从 VLAN 1 移出,只要访问设置好的同网段 IP,依然可以正常进入管理页面,无需强求寻找“管理 VLAN”选项。)

5. 总结

通过两台廉价的网管交换机,我成功将软路由移至客厅解决了散热危机,且实现了真正的“软路由零设置修改”。这次改造不仅理清了 VLAN Tagged/Untagged 的基本逻辑,更深刻体会到了二层网络广播域隔离不彻底对上层应用(如透明代理)造成的隐性破坏。希望这篇记录能帮到有同样家庭网络改造需求的朋友!

标签:无

你的评论