0%

记家庭网络组网

本文仅作为技术讨论及分享,严禁用于任何非法用途。

前言

本文是博主一次家庭网络从零到一组网的过程,其中涉及到的很多坑在搜索引擎上并未找到解决方法,所以在此记录一下,以帮助有缘人。

本文涉及:

  • openwrt固件编译
  • 光猫桥接
  • openwrt iptv单线复用
  • WiFi漫游
  • wireguard ipv6 异地组网
  • frp、nps
  • 阿里云webdav

网络结构介绍

博主的户型及物理网络结构如下:

物理线路:

需求说明

由于网线在是开发商预埋好的,网络布线其实是不太合理的,但是没办法变更了。

最大的难点是,弱电箱到客厅电视只有一条网线,如果用来给iptv,则没办法装在客厅放路由器,只能放在弱电箱,就很难受了,所以需要进行iptv线路的单线复用。

因为不常住,所以并没有放置x86服务器做软路由的想法,按照最小预算的想法,选择了mt7621的瑞斯康达MSG1500 X.00刷入openwrt担当主路由,小黄鱼仅需49元包邮。

配置如下:

  • CPU:MT7621
  • 接口:1WAN+4LAN,USB2.0(全千兆网口)
  • 无线:2.4G/5G(7615DN)
  • Flash:128M(NAND)
  • 内存:256M

无线网络的话,中国移动宽带送了一个WiFi 6路由器,将就着废物利用,充当AP,放置在房间1。在客厅放置一个AX 3000无线路由器设置AP模式充当AP。

然后是异地组网,在工作地宿舍也有一个小型网络,需要打通网络进行互访,以方便内网访问群晖、摄像头等资源,而移动没有ipv4的公网ip,所以通过ipv6组网。

最终组网效果如下,192.168.100.0/24网段是本次家庭网络的网段。

openwrt固件编译

因为博主的各种需求,而且也不想用别人的固件,所以选择了自行定制openwrt编译固件。

主要是加入了aliyundrive-webdav、omcproxy、wireguard、ipv6helper、frp、nps、mwan3等拓展,具体的配置文件如下:

1
https://github.com/ryanInf/OpenWrt-MSG1500-Actions/blob/main/.config

编译方法参考:

1
https://p3terx.com/archives/build-openwrt-with-github-actions.html

通过Github Actions编译好固件:

MSG1500刷入固件

请注意,MSG1500路由器有两个版本,一个白色,一个黑色,请购买黑色的X.00版本,白色为阉割版,下面简述输入固件过程。

官方的固件,是直接telnet可以连上,配置好路由器ip后,通过telnet连接,账号:root/root

然后备份路由器分区:

1
2
dd if=/dev/mtd4 of=/tmp/firmware_backup.bin
dd if=/dev/mtd1 of=/tmp/Bootloader_backup.bin

下载tftpd32.exe,搭建tftp服务,或者用群晖的tftp服务,通过tftp把备份文件取出:

1
2
3
4
# 这里 192.168.1.100 是tftp服务器地址
cd /tmp/
tftp -pl Bootloader_backup.bin 192.168.1.100
tftp -pl firmware_backup.bin 192.168.1.100

下载 breed breed-mt7621-hiwifi-hc5962.bin
https://breed.hackpascal.net/

下载后把breed-mt7621-hiwifi-hc5962.bin放入tftpd目录,再通过tftp下载到msg1500上面:

1
tftp -gr breed-mt7621-hiwifi-hc5962.bin 192.168.1.100

刷入Breed:

1
mtd write /tmp/breed-mt7621-hiwifi-hc5962.bin Bootloader

路由器断电,然后按住路由WPS键并通电(WPS键继续按住8秒左右),在浏览器输入192.168.1.1访问Breed后台进行固件刷入:

刷入第一步编译出来的固件:openwrt-ramips-mt7621-raisecom_msg1500-x-00-initramfs-kernel.bin

静待路由器重启,然后刷新浏览器可看到openwrt登陆页面,账号:root/password,此时刷机已完成。

光猫桥接配置

光猫改桥接后有利于P2P下载、内网穿透、减少NAT层级性能更优,也方便自定义网络,所以需要进行光猫改桥接,改之前请确保你知道自己的宽带账号及密码。

博主是广东移动的宽带,配置仅供参考。

首先获取光猫的超管密码,搜一下就有,用户名是CMCCAdmin,如果找不到就咨询宽带客服。
首先我们得区分哪个是上网连接,哪个是IPTV,博主这里是41和48连接:

通过LAN1口绑定的信息,可以知道vlan41连接是上网连接,vlan48是iptv:

然后可以开始改桥接了,在修改之前,最好是对以上页面截图保存,以防配置失败改不回来。
首先进行用户侧vlan的绑定,我们知道,运营商网络通过vlan来区分上网和iptv等流量,我们知道上网是vlan41,iptv是vlan48,这里的vlan900是组播vlan,为了让openwrt能够区分这两组流量,所以需要给他们打上vlan标签。当然了,你把光猫插上两条网线到openwrt也能做这个区分,但这就白白浪费一根网线了,也不优雅。

很简单,只需要把原来的路由模式,改成桥接模式:

然后登陆路由器对wan口进行pppoe拨号配置:

注意MTU要设置的比光猫那小,LCP 响应故障阈值设置为0,防止误判定为掉线。博主在这里踩坑了,刚开始MTU默认为1500导致经常性掉线,需要手动重新拨号才能上网:

物理接口需要绑定vlan41,即在原来接口名称后加上.41

防火墙区域按默认的WAN即可:

保存后返回接口页面,应该可以看到成功拨号并获取到ip地址:

接下来配置LAN,设置自己的LAN网段:



强制DHCP建议勾选上,移动送的路由器即便设置成AP默认仍然会启动DHCP导致内网设备不能上网,勾选后就不会有这个问题:

配置完成后,通过WiFi连接或者LAN口连接可访问公网。

IPTV单线复用

iptv单线复用,是指iptv网络流量与本地内网流量共用一条线路。很多时候我们客厅可能只有一根网线,需要给iptv机顶盒使用,如果需要WIFI覆盖就只能把无线路由放到弱电箱或者其它房间,导致无线网络质量变差,通过iptv单线复用使我们可以同时在客厅使用iptv机顶盒与无线路由器。

要配置单线复用,首先要理解单线复用原理。其实很简单,就是把iptv机顶盒的流量指定走光猫的iptv线路(不用地域与运营商可能有额外校验方式,只需增加一些配置,基本原理不变),理解这个原理实现起来就很简单了,概括起来大致有以下方法实现:

  • vlan (需购买至少1个支持vlan的交换机或同等设备,配置复杂,成本高,适合有定制需求的高玩)
  • 爱快分流 (需购买爱快路由器或者x86虚拟机安装,配置简单,优雅)
  • openwrt mwan3分流 (openwrt支持的设备比较多,方便,但配置起来不优雅)
  • 支持iptv的无线路由器 (适合使用无线路由器充当主路由的,如有其它设备做主路由的如软路由,则配置起来复杂点)
  • 把8芯网线拆成4+4 (最高速率只能百兆,得不偿失,极度不推荐)

这里选择openwrt mwan3分流的方法,因为暂时还没有24小时运行的pc机放家里。

在openwrt上新建一个wan_iptv接口,接口类型是wan,同时绑定光猫上配置的vlan号:

协议是dhcp,主机名的话可默认,如果不行可尝试修改为机顶盒的主机名,通过openwrt的dhcp设置页可看到主机名:

网关跃点需要设置为比默认网关(即wan口)的大,习惯设置为100,这样内网设备默认不会走此线路:

防火墙区域是wan,这样内网设备使用此网关的话会经过nat:

保存配置后,可看到wan_iptv接口成功获取到10段的iptv线路地址,注意如果获取到的是100段或者其它段的地址是不行的,需要检查下MAC地址主机名等配置是否有冲突,正常情况下移动的是按默认可获取到正确的ip:

现在iptv线路没问题了,难点就在于让iptv机顶盒的流量走wan_iptv接口,需要用到mwan3,可尝试通过opkg安装或自行编译或找别人编译好的,在第一步的估计编译中博主已集成该模块。

找到负载均衡,然后新建一个接口wan_iptv

创建成员iptv_member,此处最好把该成员规则置顶:

创建策略iptv

创建规则iptv_rule,源地址写iptv机顶盒的ip,策略选择iptv

配置组播代理,把wan_iptv接口的组播流量转发到lan口,下面图从其它地方截的所以没有wan_iptv,下次有机会再换回来。

配置完成,保存,重启机顶盒查看能否成功登陆并播放电视节目,如果不能,可通过在openwrt上面抓包查看有哪些流量异常再进行排错。

WIFI漫游

WIFI漫游最简单的方式是,把无线路由器都设置为AP模式(主路由不需要配置AP模式;如果没有AP模式可关闭DHCP并把主路由LAN接入到无线路由器的LAN口),然后配置相同的SSID、加密方式、密码。效果还行,比AC+AP效果稍差,胜在配置简单,无需额外成本,家用足矣。

配置AP模式:

建议固定选WPA2+AES组合,如果不指定可能影响漫游效果:

另一个无线路由器也进行相同配置,不再一一截图。

完成后可进行漫游测试,使用移动设备连接WiFi长ping网关,移动不同位置可看到信号切换。如需调试可使用WinFi进行测试,不多赘述。

异地组网

由于移动申请ipv4公网ip很难,默认宽带也有ipv6地址,可通过ipv6进行异地组网。

首先需要获取ipv6地址,因为光猫桥接模式下wan6并未能获取到ipv6地址,故切换wan6接口的协议为不配置协议

然后在WAN口打开ipv6设置:

保存后可在LAN口看到公网ipv6地址:

此时已经可以正常访问ipv6,接下来搭建WireGuard。我们再看一眼网络拓扑,目标是通过WireGuard架设隧道,让192.168.100.0/24192.168.200.0/24可互访。

首先在地域B的192.168.200.2上架设WireGuard服务,具体搭建步骤可搜索教程,非常简单,关键配置如下:
192.168.11.0/24网段用于VPN服务器之间的内网通信,59120是服务监听端口,切记需在防火墙放通(如有)。
同时需在Peer声明对端LAN网络子网,这样才允许WireGuard转发数据包到对端网络。

然后是地域A配置:
接口ip地址写上地域B中配置的Peer地址,允许的IP写上地域B中的内网子网段192.168.200.0/24,必须勾上路由允许的IP,端点主机写地域B的WireGuard服务器的ipv6地址或域名(推荐进行DDNS,ipv6地址会定期变)


防火墙区域设置为LAN:

接下来新建一个防火墙规则wg_lan,允许两个地域内网间的流量转发:

最后在地域B的网关即爱快路由器上配置一条静态路由,把地域A的内网段192.168.100.0/24的网关指向WireGuard服务器,即可让两地内网地址直连。

NPS

nps配置比较简单,在公网的服务器启动nps服务端后,在openwrt上配置nps的连接信息即可,主要用于备用连接,防止ipv6网络连接失败导致连接不上内网。

阿里云WEBDAV

阿里云WebDav非常推荐使用,在openwrt启动后内网设备可通过webdav协议打开网盘里的高清电影、音频等多媒体文件,配合电视或智能盒子安装Kodi播放,即可体检无广告、在线播放、高清电影,只要找到阿里云资源保存一份到自己网盘即可播放,非常方便。
只需要登录网盘网页版获取token填入,然后设置监听的端口及密码即可:

小结

本文记录了一次家庭网络的折腾过程,希望能帮到有需求的有缘人。