搭建属于自己的服务器(二) - 网络结构
前言
本文主要讨论网络结构
当然,说是HomeLab的网络结构,其实也算是整个家庭的网络结构
现状
由于新房还没交房,为了之后装修完能够快速部署好已经调试完成的网络,所以现在其实已经在按照最终的想法来搭建和使用了,除了一些更大的交换机还没买之外(现在实验阶段设备少),其他的都跟最终目标差不多了
所以先来个图

物理架构
互联网接入从弱电井来的光纤开始,连接到光猫做光电转换,然后连接到主路由进行拨号;另外主路由还有一个WAN口连接到了一台4G CPE作为备份网络接入,当光猫断网时,主路由会自动切换到4G网络
主路由的LAN口出来,连接到10G核心交换机,核心交换机上直连着家庭网络中对网速要求最高的设备,包括NAS、PVE主机、PC,以及两台下游交换机:2.5G16口交换机和2.5G8口POE交换机
POE交换机上连接家里的AP,监控摄像头这些支持POE供电的设备
16口交换机上连接家里所有其他有线设备,包括通往其他房间的网口,电视、机顶盒等
关键服务
其实软件服务相关应该放到下篇文章再详细介绍的,不过考虑下其中有一些是网络专用的,所以下篇就只介绍跟网络无关的业务服务了
DNS
DNS服务是我费了不少心思整理出来了,可以实现局域网内任意设备可以通过域名来访问核心服务,以及对于互联网域名的解析不受ISP的污染,而且还能自动屏蔽广告网站的DNS解析
我在PVE主机上部署了一个AdGuardHome的LXC容器,作为局域网内的主DNS服务器,该容器的IP会由主路由的DHCP服务来分发给所有设备
AdGuardHome会自动屏蔽广告网站的DNS解析,内网服务的域名解析也是在AdGuardHome中配置的

AdGuardHome的上游DNS服务器只有一个,是同样部署在PVE主机上的mosdns。
mosdns的核心优势是支持分流,国内的网站会走国内的DNS服务器解析,国外的网站会走国外的DNS服务器解析
两条分流路线的上游公共DNS服务器都通过DoH的方式来获取,国内的上游DNS服务器是阿里云的DoH服务器,国外的上游DNS服务器是Cloudflare的DoH服务器
流程图如下:

流量入口
指访问互联网时,网络流量的走向,比较复杂,建议直接看图

核心交换机后面的设备省略了,都是常规方式
路由器设置
网段规划
由于家庭网络的设备数量可能会较多(主要是IoT设备),而且Docker方面我是打算用macvlan的方式,让每个容器都拥有独立的IP地址的(这样可以省掉规划端口映射的麻烦),我将家庭网络的IP地址规划为
1 | CIDR:192.168.32.0/20 |
主机位足足有12位,足够分配给每个设备一个独立的IP地址了
- 32网段分配给Homelab范围内的物理设备,包括路由器,网管交换机,AP,摄像头等
- 33~34网段留给DHCP服务分配
- 35网段分配给PVE主机上的虚拟机和容器
- 36~37网段分配给Docker容器
- 38网段为给个人设备静态分配IP地址,比如PC,手机,平板等
- 39~40网段分配给IoT设备
- 41~47网段预留,留给未来扩展
DHCP
DHCP服务由爱快主路由提供,下发的配置中,默认的DNS服务器是上面提到的AdGuardHome容器的IP地址
目前主路由的DHCP服务只分配33~34网段的IP地址,其他网段的IP地址都是静态分配的
另外还正在考虑新增一个DHCP服务器,专门分配给IoT设备的IP地址,方便管理
关于IPTV
IPTV目前比较简单,直接通过光猫的IPTV口接入到机顶盒上
之后探索的方向:爱快路由器貌似支持IPTV了,接入主局域网后是否可以抓取IPTV的流量,用PC或者手机来收看直播节目呢