前言
整个 2020 年一直在更新和优化自己的家庭网络,从Merlin
系统转到OpenWrt
在转到ROS + OpenWrt
双软路由,最终到ROS + 多个 OpenWrt
的终极环境.在稳定运行了近半年后,将整套方案在复制到父母家里.借此机会给大家分享下我在家里部署的硬件及软件的家庭网络方案.
写在前面
为了您的身心健康,阅读前请注意:
- 本文无任何详细安装配置教程
- 本文为博主分享个人家庭组网的
规划
和方案设计
- 本文含有博主大量
主观功能需求
和现实环境需求
,并伴有严重的强迫症. - 对大多数人来说本文毫无意义,可能全是废话.请慎重阅读.
本文方案适用于什么用户?
- 在需求层面:适用于打算新装修或者想改造现有家庭网络环境的用户,可以通过本文学习如何规划和设计自己的家庭网络.
- 在技术层面:适用于已经在用
OpenWrt
等固件的软路由用户.已经了解PPPoE/DNS/DHCP/网关/内网IP/公网IP
等基础网络知识. - 本文并不适合于仅使用过品牌路由器并且毫无计算机和网络基础知识的新手用户.
拓扑图
先附上一张博主家庭网络的拓扑图,看似复杂,其实是非常简单和规范的网络规划.供大家参考.
装修布线和设备
博主家里装修就是以AC + AP
标准的有线网络来设计的.因为家庭网络中无论如何有线连接是绝对好与无线连接,所以在非移动的大型设备处一定要规划好有线网络.
确定设备位置
根据拓扑图可以看出,博主规划的物理位置分为三大块,分别为弱电箱
,数据中心机柜
.各房间有线面板
,需要提前考虑好每个地方需要放置什么设备.例如,电脑,NAS,打印机,电视,各种电视盒子,游戏机等等.甚至要为未来 10 年打算购买的设备留好多余的接口,也可作为冗余备用.
- 弱电箱 - 电信光纤入户弱电箱.由于弱电箱太小,不足以放置更多设备.仅仅只用于放光猫.
- 数据中心 - 选择一个合适的地方,放置
路由器,交换机,AC,NAS,USP
等设备.方便管理. - 面板和 AP - 确定好每个房间有线接入点,用于网线面板和 AP 面板
(有吊顶强烈推荐吸顶式 AP)
.
确定布线方案
- 弱电箱分配
1-2
根网线到数据中心,用于路由器拨号,预留两根冗余. - 弱电箱分配
1-2
根网线到需要ITV
的地方,例如客厅,预留两根冗余. - 数据中心分配
其他所有
网线到各房间,用于有线面板和 AP 面板. - 吸顶式 AP 用户记得吊顶内预留网线
确定硬件设备
- 光猫 - 运营商赠送设备并设置
桥接模式
用于光电转换 - 路由器 - 主路由器或者其他软路由, ESXi 主机等
- 交换机 - 千兆 POE 交换机 (接口数量根据自己所需端口决定)
- AC + AP - 选择一套合适的品牌 (博主目前使用的是 TP 的)
网络规划
本文的核心在于规划和设计网络结构,主要分为硬件功能规划
和软件网络设计
.博主由于从事于商用 IT 相关行业,所以特别认可专业的事情专业设备来干.所以在设计本方案时就必须考虑到如果整个方案中的某一项硬件出现故障,是否能以最快的时间和最易的方法来解决,同时要保证不能影响到所有已连接的设备(即恢复网络后各客户端无需任何修改设置).
硬件功能规划
网络硬件设备根据上述确定硬件设备
提到的4
组硬件,可以分为外网端和内网端:
光猫
和路由器
属于外网端,用于外网访问.交换机
和AC + AP
属于内网端,用于搭建整个内网.
这样的设计有利于网络的升级,维护和故障排查:
- 当外网访问有问题时,可以直接在
光猫
和路由器
中找问题.光猫坏了换光猫,路由器坏了换路由器,经过最基础的配置即可恢复整个网络.所有客户端都无需任何修改. - 当内网相互传输通信有问题时,可以在
交换机
和AC + AP
中找问题.交换机坏了换交换机.AP
坏了直接换AP
,直接通过AC
添加到现有无线网络中.
所以即使你的路由器有多余的口,博主也并不推荐把终端设备的有线直接接到路由器上,而是统一连接到交换机上,在由交换机连入到路由器中.这样即使路由器出现问题,也并不会影响内网,依旧可以在电视和电脑上访问 NAS 看电影.
软件功能规划
软件功能的规划也是整个家庭网络中的核心,几乎所有服务都要在路由器中提供,包括并不限于PPPoE 拨号,DNS 服务器,DHCP 服务器,DDNS 动态域名解析服务,端口转发
等基础服务,使用 OpenWrt 路由器还可以提供文件存储,文件分享,去广告,下载,Docker,科学上网,VPN
等各种个性化服务来提升家庭网络的可玩性.
OpenWrt
单独一台运行 OpenWrt 固件的设备作为路由器即可使用上述所有功能.
ROS + OpenWrt
双软路由模式即,让ROS
作为核心路由器,仅提供上述提到的网络基础服务,保持稳定高效. OpenWrt
作为旁路由
来做辅助工作,提供上述的个性化服务.
ROS + 多个软路由或虚拟机组合
在功能上和上述双软路由模式几乎相同,所以并不是必须的选择,常规情况下选择双路由模式即可.
博主选择此方案有大量主观的需求,有兴趣的可以继续看下文中的详细讲述.
博主选择使用
ROS
作为主路由器也是因为受到各路大神和油管博主们的推荐而尝试的,体验半年多感觉非常稳定,占用资源小,转发能力高.但
ROS
也并不是唯一的选择,还有例如老毛子
,爱快
等其他优秀的路由固件选择,当然也能够使用强劲的品牌路由器作为主路由,完全根据你的功能需求和喜好决定.
ROS + OpenWrt + AdGuard Home 方案详解
方案简介
博主家庭网络中路由器
这一设备是采用一台联想m720q + i350 T4v2网卡
.在该主机上安装了 ESXi 虚拟机平台,最后在 ESXi 中安装了以下5
台虚拟机,并提前规划好对应的固定 IP :
- 192.168.1.1 - ROS 作为主路由器
- 192.168.1.2 - Proxy 作为科学上网网关
- 192.168.1.3 - DNS 作为 DNS 服务器
- 192.168.1.4 - DDNS 作为 DDNS 动态域名服务器
- 192.168.1.5 - VPN 作为 OpenconnectVPN 服务器
ROS
ROS 作为主路由器,主要作为连接光猫提供PPPoE 拨号
上网功能,同时提供DHCP 服务
和负责管理端口转发
服务.
- 本设备的内网 IP 为
192.168.1.1
. - 本设备的 DNS 指向类似
114.114.114.114
的公共 DNS 供国内域名解析,或者运营商提供的 DNS 服务器地址以确保速度最快.
DHCP 分配
IP地址/网关/DNS
.所以需要注意请关闭所有其他 OpenWrt 内的 DHCP 功能.
- 分配 IP 池设置为
192.168.1.21 - 192.168.1.200
,剩下的 IP 地址可以预留给其他需要固定 IP 的设备,例如打印机,NAS,AP等等. - 网关 设置为
192.168.1.2
的 Proxy 旁路由.所有访问流量将先由 Proxy 处理分流,在走向 ROS 主路由. - DNS 设置为
192.168.1.3
的 DNS 服务器.装有 Adguard Home 的 DNS 服务器提供最前置
的广告过滤和DNS 缓存
.
Proxy
OpenWrt 作为主要的科学上网网关,提供科学上网分流服务,主要依靠插件来处理分流工作:
- 本设备的内网 IP 为
192.168.1.2
. - 本设备的网关指向
192.168.1.1
的ROS
. - 本设备的 DNS 指向
192.168.1.1
的ROS
. - 配置好科学上网插件提供上网分流服务.
当客户端访问请求为国内网站,将直接转发至
1.1
的ROS
主路由器进行访问.当访问请求为国外网站,将先经过插件进行TCP DNS查询
并返回真实 DNS 结果
,然后在依靠插件进行代理访问
.完全避免了DNS 污染
.
DNS
由一台 Linux 服务器部署 docker 版的 AdGuard Home,提供广告过滤和 DNS 缓存服务.
- 本设备的内网 IP 为
192.168.1.3
. - 本设备的网关指向
192.168.1.2
的Proxy
. - 本设备的 DNS 指向
192.168.1.1
的ROS
.
博主规划和配置 DNS 花费了几个月的时间来测试到底将 AdGuard Home 放在局域网的哪个环节更合适.最终还是选择将
ADG
放在最前端,并把上游 DNS 服务器
设置为Proxy
的内网 IP .这样无论境内还是境外网站会先由ADG
中的规则来过滤,在将过滤后必要的DNS 请求
发送至Proxy
,并由科学上网插件进行TCP DNS查询
返回真实 DNS 结果
以达到最快的解析速度和避免DNS 污染
关于上图的平均处理时间
这几个月折腾 DNS 主要就是为了提高 DNS 解析的速度,博主的方案是能够将平均处理时间降低到5ms
内,但是此处理时间并不仅仅是外网 DNS 的解析速度,还包含了返回结果给客户端.博主家中由于户型奇葩等客观原因,多个 AP 都被临时挡住,导致无线设备 Ping 路由器或者 DNS 服务器时很不稳定,此环节导致平均处理时间大增.同时好的科学上网环境也是降低处理时间的关键因素.
DDNS
使用一台 OpenWrt 作为 DDNS 功能型服务器,由于有内网设备的外网访问需求,而一些其他的 DDNS 服务有可能错误的解析为科学上网的 IP ,所以博主才单独的部署一台设备来做服务.同时该服务无任何科学上网需求.
- 本设备的内网 IP 为
192.168.1.4
. - 本设备的网关指向
192.168.1.1
的ROS
. - 本设备的 DNS 指向
192.168.1.1
的ROS
.
DDNS 只是动态域名解析的一个功能需求,可以在任何一台 OpenWrt 或者群晖 NAS 上来实现,但是为了避免识别错误的境外 IP 的情况,博主选择了单独的 OpenWrt 来配置,并且无需任何科学上网,所以 网关/DNS 都可以直接设置为 ROS 的地址,所以即使科学上网受到影响也不会影响此 DDNS 服务.
VPN
此需求纯属博主个人需求,由于家庭网络环境优化的非常稳定,并且需要经常访问内网 NAS 和内网 ESXi 虚拟机上的其他 Linux 服务器来折腾.所以在外或公司通过VPN
服务连接回家是最好的解决方案.目前家用宽带30M
的上行速率也基本满足日常使用需求.
- 本设备的内网 IP 为
192.168.1.5
. - 本设备的网关指向
192.168.1.2
的Proxy
. - 本设备的 DNS 指向
192.168.1.3
的DNS
.
由于有频繁的回家访问的需求,所以 VPN 需单独部署为一台服务器.这样在进行其他虚拟机配置,升级导致重启时也不会影响 VPN 的连接.回家访问的同时还需要科学上网,所以网关指向
Proxy/1.2
, DNS 由Openconnect VPN
中来设置为DNS/1.3
.
主观方案总结:
以上5
台虚拟机来部署整个路由器环境的目的是为分离各功能点,方便排查和维护各项服务,同时在配置,升级或维护某些服务时,并不会影响整个网络.
国内访问流程:
当访问国内网站时,首先 DNS 请求会走向DNS/1.3
进行过滤,在转到Proxy/1.2
进行境内外分流处理,境内 DNS 请求在转发至ROS/1.1
最后得到返回的 DNS 结果.由网关Proxy/1.2
进行访问分流,在转发至ROS/1.1
进行网站的访问.
国外访问流程:
当访问国外网站时,首先 DNS 请求会走向DNS/1.3
进行过滤,在转到Proxy/1.2
进行境内外分流处理,境外 DNS 请求将由插件进行TCP DNS查询
避免DNS 污染
返回真实的 DNS 结果
由网关Proxy/1.2
进行访问分流,通过科学上网插件进行网站的访问.
维护时切换网关和DNS
当需要维护科学上网或 DNS 时,为了避免其他客户端收到影响,可以将ROS
主路由的 DHCP 功能中的网关修改为ROS/1.1
,DNS 修改为ROS/1.1
,此时你家庭的整个网络就恢复成单路由的状态,对于基本的国内访问没有任何影响.
主路由的重要性
从上文可以看出,家庭网络最重要的就是ROS
这台主路由了,它负责处理了所有的网络核心功能.请不要折腾它,同时使用其他服务器来提供类似 DDNS VPN 这样的服务.这样当ROS
挂掉时,可以以最快的方式用一台任意路由器来替代这些核心功能.也就不会影响其他服务和客户端连接.
结语
家庭网络的设计规划到此也告一段落,博主也稳定的使用了近半年,才想将一些规划和思路分享出来,希望对大家有所启发和帮助.如果在后期需要任何功能,可以直接在 ESXi 中添加辅助的服务器虚拟机来完成.
感谢
特别感谢@jasuit
在我折腾的这近一年中提供的技术支持,也感谢以下几位油管博主的技术视频:洋葱
Vedio Talk
eSir PlayGround
关于 AC + AP 和 mesh 博主的观点.
早年装修时就选定了 AC + AP 的无线漫游方案.博主并没有任何使用过 mesh 的经验,所以本文也不会讨论 mesh 相关内容.
对于 mesh 博主一向的观点是市场根据大众用户家庭装修没有很好的规划预留网线的前提下推出的一种漫游方式.然而在国内有这种需求的用户占据绝大部分.所以本身 mesh 是基于此环境下的最好解决方案.
但是如果可以选择在装修时预留网线,那么 AC + AP 绝对是首选.
也有人会说到 mesh 也可以有线回传,我想说的是能够有线回传的 mesh 本身就属于 AC + AP 的模式,只是此时你的 AP 就是那台有线回传的 mesh 路由器.
传统 AC + AP 模式同样可以将 AP 端使用高端无线路由器来替代以达到更好的无线信号.然而成本过高,并且浪费了高端路由器的其他功能.
38 条评论
你好,最近也在考虑搭建类似的系统,请问不同服务你是如何分配cpu和内存的,谢谢。
openwrt 不跑docker,1c512m都够了.
谢谢,请问路由器的网口是怎么分配的,虚拟机之间如果共享一个网口,吞吐量会受影响吗
虚拟机之间不走网口,靠CPU的.吞吐比网卡不强多了.
当客户端访问请求为国内网站,将直接转发至1.1的ROS主路由器进行访问.当访问请求为国外网站,将先经过插件进行TCP DNS查询并返回真实 DNS 结果,然后在依靠插件进行代理访问.完全避免了DNS 污染.
您好,请问这个国内外分流,需要额外怎么设置吗?
不需要,开了ssr plus就会分流
上海电信iptv盒子,需要做AB面验证,如果光猫做桥接的话,那iptv必须接在软路由后面,软路由进行HDCP-option125设置。
我简单的拓扑,适用于上海电信想桥接软路由拨号,同时iptv的方案。
https://blog.alttt.com/downloads.php?site=1&file=2020031634392380.png
当初我装修时特地在光猫弱电箱留了跟线直接到客厅电视就是为了IPTV.
后来电信说第二条IPTV就不需要直连,直接接到内网就可以,估计也就是会占用带宽而已.
adguard home 开启浏览安全网页服务之后 刚开始几天是没问题的 时间久一点 一条地址的解析时间可以到3000+ms 简直是用不了 最后还是把那个浏览安全网页服务给关了
是的,开那个就会解析延迟很高.我也没开.
你这用电的设备功耗不得低吧?!