记一次完美的家庭网络改造:弱电箱“单线复用”与透明代理排错全指南
1. 改造背景与痛点
家里目前的网络拓扑比较典型:
- 核心设备:一台 6 网口的软路由(底层安装 ESXi,将 6 个网口全部分配给虚拟的 OpenWrt。其中网口 1 作为 WAN 口拨号,其余均为 LAN 口)。
- 物理布线:门口弱电箱到客厅、卧室均只有一条网线,且客厅到卧室之间没有网线。
- 痛点:软路由原本塞在弱电箱里,光猫网线直连软路由网口 1,网口 2 接客厅,网口 3 接卧室。但由于弱电箱空间狭小,散热成了大问题。
为了解决散热,我需要将软路由挪到客厅放置。但这就面临一个死局:弱电箱到客厅只有一根网线,如果这根线用来走光猫的 WAN 数据,那客厅软路由处理好的 LAN 数据就无法传回弱电箱发给卧室了。
我的终极诉求:
- 解决散热,软路由移至客厅。
- 绝对不改变软路由(ESXi 和 OpenWrt)端的任何内部设置(即软路由依然认为网口 1 是 WAN,网口 2/3 是 LAN)。
- 保证千兆内网网速无损。
2. 解决方案:双网管交换机“单线复用”
在只有一根网线且不改动路由配置的前提下,最完美的方案是利用两台支持 802.1Q VLAN 功能的千兆网管交换机进行“单线复用”。
原理解释(小白秒懂):
把那根唯一的网线想象成一条高速公路。光猫的数据(外网)和局域网的数据(内网)如果混在一起跑会乱套。交换机的作用就是给这两种数据“贴标签”。
- 弱电箱交换机给外网数据贴上“红色标签”,内网数据贴上“蓝色标签”,一起扔上高速公路。
- 客厅交换机收到后,把红标签撕掉交给路由器的 WAN 口,蓝标签撕掉交给路由器的 LAN 口。
路由器全程只会看到没有标签的普通数据,完全察觉不到中间的复杂过程。
准备工作
- 两台 5 口千兆网管交换机(假设为交换机 A 和交换机 B)。
- 为了方便日后管理,先用电脑直连它们,将管理 IP 修改为软路由同网段内未使用的固定 IP(例如软路由是
192.168.132.1,交换机则设为192.168.132.2和192.168.132.3)。
3. 详细配置步骤
我们将两台交换机的 5号口 作为互联的“主干道(Trunk)”。
交换机 A(放置于弱电箱)
物理接线:
- 1号口:接光猫
- 2号口:接通往卧室的网线
- 5号口:接通往客厅的网线(主干道)
VLAN 配置(802.1Q VLAN):
- 新建 VLAN 10(外网用):包含 1、5 口。1 口设为
Untagged(不带标签),5 口设为Tagged(带标签)。 - 新建 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 配置:
- 新建 VLAN 10(外网用):包含 1、5 口。1 口设为
Untagged,5 口设为Tagged。 - 新建 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 的基本逻辑,更深刻体会到了二层网络广播域隔离不彻底对上层应用(如透明代理)造成的隐性破坏。希望这篇记录能帮到有同样家庭网络改造需求的朋友!
标签:无