引言
楼主家中网络从最初的一个路由器,从WIFI问题开始折腾到软路由,最终实现到了目前一个比较满意的程度,写篇文章记录一下,启发大家组建自己的家庭网络系统。
同时也练练写文章
从需求出发首先一个优良的家庭网络系统需要解决什么问题,或者说我期望家庭网络能做啥?
家庭网络系统最先解决的是通网问题:把外部电信移动网络接入内网;保证内网里WIFI的高速和稳定。
在网络环境稳定的情况下需要支持一些常用的应用:可以常年挂机下载东西,下载的数据需要存储在可靠并且方便扩容的地方,下载的内容需要能在电视、pad、手机等任意设备上播放。
在搭建了常用的应用程序后,大体上已经能满足大部分人的需求,还希望实现一些高级功能,能从任意地点访问内网搭建的服务,同时也希望家里设备不用配置即可留学上网。
网络拓扑设计为了实现最基本的通网功能,先分析一下网络拓扑怎么设计。
通常来说最简单的方式就是一只路由器干所有的活:1. 负责接入外部网络,拨号上网;2. 做NAT,负责内网网络运行,并且可以直接插上电口上网;3. 无线WIFI功能,把电缆信号转换成无线信号。
如下图所示:
上图的网络拓扑结构的问题是:1. 家用路由器的口太少,设备一多线插不下;2. 单一无线路由性能受限,接入设备一多容易变卡顿(家里有土豪路由器请忽略这条);3. 房子大或者户型复杂时单一路由器无法覆盖全屋。
直接上楼主家里的网络拓扑:
广告社会化大数据分析平台×图示,楼主愿称之为最复杂家庭网络。
先来讲一下核心几个部件:
1. 拨号路由器用了移动送的光猫,负责PPPoE拨号,并把光纤转化为光口。
2. 入口路由器选用了刷了梅林的思科EA6200(性能较弱),该路由主要担任IP静态地址分配、网内流量监控。
3. 中央的交换机采购了一个8口普联带Web管理、VLAN功能交换机,用来解决入口路由器插口不够的问题,插上即用没啥好说(虽然最后Web管理、VLAN功能也没用上。。。)。
现在讲讲其他几个额外的东西:
4. 几个Mesh路由器用来扩展无线信号(解决户型转角多信号不好问题),采用了3个TL-WDR7650接入交换机做有线回程。实测这款便宜的Mesh路由器除了是WIFI5以外,并没有明显缺点,网络也比较稳定。为防止网络冲突,入口路由器的WIFI信号关闭。
5. 软路由也是老生常谈的东西了,能实现一些有趣的功能如留学、去广告,实际使用了一个闲置的树莓派4B(2G内存版),文章后面再谈。
6. 集群交换机本来不需要,但是两台NAS之间部署了分布式存储系统,使用集群交换机可以隔离网络,这里使用了一个库存的网件千兆交换机。相关内容后面会再讲。
作为轻度垃圾佬,本着能用就用的原则,采用了低性能入口路由器+单网口树莓派作旁路由,而不是直接用多口软路由接入网络。如果大家手头有软路由,可以直接用单一软路由换掉入口路由器。
NASNAS(Network Attached Storage:网络附属存储)是可以连接在网络上,具备存储功能的设备。
常见存储方式分为单机单磁盘、单机RAID(RAID 1、RAID5、RAID10)、单机ZFS、分布式文件系统(Ceph)。
广告遗失声明登报是怎样收费的×最终楼主采用了Ceph 2分片集群作为分布式存储,使用两台性能一高一低的机器组合高可用服务器。
硬件方面
先从万能某宝买了个15U机柜(500多点)再加两个服务器空壳(带电源,大约300多一个),如图:
广告做网络维护的互联网创业公司的日常工作会特别忙吗?×然后发挥垃圾佬精神,把之前淘汰的老机器零件重新组装一下,具体配置如下:
主服务器:i5-4570+Z87主板+32G杂牌内存
副服务器:J4105-ITX集成CPU主板+16G杂牌内存
两台机器+ 14个新旧硬盘+1个集群交换机,总功率在130W左右。粗测主服务器在70W左右,副服务器50W左右。
软件基础系统:主副服务器都安装Debian 10 Buster。
软件系统:主副服务器都安装OMV5(OpenMediaVault)、Ceph,主服务器上安装Docker,副服务器因性能略差不再安装其他软件。
OMV用于方便管理系统,毕竟手敲shell命令容易失手(手动狗头)。
Ceph是一套较为复杂的系统,使用了luminous(stable)稳定版本以免踩不必要的坑。鉴于大多数人对Ceph比较陌生,这边贴一个简单的Ceph网络架构图:
广告电商指数_大数据分析平台×虽然官方不建议,但是公共网络与集群网络仍然可以配置到同一个网络。从这张图可以看出,外部访问文件走了public network(公共网络),而Ceph的PG(可以理解为分片)恢复需要通过cluster network(集群网络)通信。即在硬盘发生故障自动恢复时,如果公共网络与集群网络相同,那么恢复数据的流量会挤压客户端正常访问数据的流量。
好了,上面说了这么多,其实就是手头多了一个交换机,正好拿来用下而已(狗头)。
那么Ceph到底如何使用?一般来说在家用场景,直接用Ceph的RBD映射成块设备,挂载到机器上像普通硬盘使用即可。
Docker直接使用了源安装,目前跑了一个数据库、Seafile、WizNote、某sync软件。通过Docker映射目录到Ceph的挂载点保障数据高可用。
这边还有个问题,Docker启动的服务怎么才能让外网访问到,后面再针对这个问题进行说明。、
远程下载因为上面介绍了NAS,远程下载变得比较容易了,主要介绍几个软件。
BT下载:Transmission(直接从Debian源里安装),偷懒了,没有docker化
广告招聘网络维护「猎聘」专业人才求职招聘平台×某Sync:类似PT,安装在了Docker里,并挂载了Ceph盘用于下载
广告网络维修到「58同城」免费上门,修不好不收费!×普通下载:直接使用OVM5里带的Downloader功能
广告网络维护员招聘-2022最新招聘信息×视频投影因为有OMV5界面管理,文件分享变得比较简单。首先把OMV里的公开的共享目录通过DLNA、NFS或SAMBA(以客户端支持为准)开放访问,楼主只映射了NFS(因为比较熟悉NFS);非公开的共享目录通过FTP加密码访问。
手机端/pad端使用nplayer通过ftp访问资源。
TV端使用了小米盒子,手动装了Kodi,仅访问NFS。如图:
广告高端会所,50多种项目,一朝拥有,别无所有!!×远程访问外部网络接入大概能分为两种,一种是带独立IP的接入,另一种是不带独立IP的接入。一般来说带独立IP的接入是最好的,但是现在越来越少,而且通常来说没得选择。如果有独立IP,可以通过DNSPOD域名解析,并通过网上广为流传的DNS自动上报DNSPOD脚本更新,这样域名可以直接访问进来。
因为楼主家里是移动运营商并且没有独立IP,所以后面都是以没有独立IP的背景介绍。
以楼主的网络为例,同时采用了双个网络穿透方案:Frp与Zerotier。
Frp与ZerotierFrp原理(Frp github文档原图):
广告5G传奇体验!原汁原味!开局记得选道士,装备好爆又好卖!×Zerotier原理(自己手画):
广告梦幻西游网页版,来了就是大神!别走,这就是经典!×Zerotier使用了P2P穿透原理,使用一个叫名称Planet的中心服务器记录两个Leaf(可理解为客户端)的路由每一跳的NAT信息。优点主要是无需公网服务器做流量代理,缺点是网络之间容易受网络波动影响,且每个客户端都需要一个Zerotier client运行着。
远程访问最终方案那么楼主最终采用了两种方案结合:
广告3股跌出黄金底,3月26日马上抄底买入,或将翻倍暴涨!×这里有几个要点:
Frp提供了公网IP访问NAS上的服务,可以实现类似的回调需求。因为会暴露内网的服务到公网端口,需要非常注意安全性。
信任的设备之间主要通过Zerotier访问,在两端都使用Zerotier的情况下,互相访问变得很容易,甚至可以互相访问全部端口,用于一些诸如Seafile、WizNote等服务的访问。只要不暴露Zerotier的Network ID,一般来说黑客很难进攻,安全性极佳。
在内网,也希望使用相同的访问方式,但是希望直接走内网(晚期懒癌),不用到zerotier planet绕一圈了。这时候域名的作用就发挥出来了,访问服务时都使用域名访问。不同点是在外网,域名解析到了Zerotier的IP;在内网,因为在路由器处设置了域名拦截,域名直接指向了内网服务器IP地址。
综上,完成了一套支持内网公网访问、需要回调地址特殊场景的远程访问方案。
留学上网压轴放在最后讲。
实现方式就是设置一个树莓派软路由(旁路由),所有流量自动走进软路由里,并在软路由里实现网内所有流量留学。
众所周知软路由需要两个以上的口才能运作,但是如果把软路由当作旁路由,就只需要一个口,闲置的单网口树莓派就能用上了!
使用suling哥哥的镜像,直接用Etcher工具写入SD卡即可使用。略过安装过程。
设置订阅配置
广告医生提醒:不管什么皮肤病,用这个土方法,终生受益!×设置客户端配置
广告上线送霸服神器,一刀9999+!装备爆满屏!×然后配置入口路由器(刷了梅林系统的EA6200),调整DHCP配置:
广告遗失声明登报是怎样收费的×总结费用情况:
整体费用接近2500,但是在可扩展性、稳定性上都达到了较好的状态。
感谢大家观看。上述的网络设计充分利用了手头各种器件,基本满足一般家庭需求。后续在万兆网络、WIFI6设备普及的情况下,可以逐步替换升级掉一些设备,此时可以进一步提升网络的性能。
当然楼主不得不承认,为了充分利用手上的硬件,方案有些地方还是过于复杂了,机柜有些买贵了。不想折腾的同学可以试下r2s软路由+WIFI6路由器+白群晖的方案。