个人家庭网络布局分享

81 天前
 dhuzbb

个人家庭网络布局分享

整体网络架构图

整个家庭网络的架构如下:

整体的网络架构非常的扁平化和简单:

物理设备图如下:

网络架构说明

入户光猫改桥接

坐标上海嘉定。我是直接微信询问的宽带运维小哥,很爽快的就帮我在后台查询了超级密码,自己进入光猫后台修改桥接即可。

如果运维小哥不肯帮忙查询,也可以闲鱼搜索"地名+运营商+光猫"等关键字,花一点小钱即可解决。

光猫修改桥接的目的是为了搭配后面的主路由进行拨号上网和获取公网 IP 来使用的。

获取公网 IP

直接打运营商客服电话说需要开通公网 IP 即可,上海联通宽同时分配有公网 IPv4 和 IPv6 的地址。

当然各个地方运营商可能存在差别,据了解联通和电信都会给公网 IPV4 ,移动不会给公网 IPV4 地址,但是 IPV6 的地址应该会给的。

主路由负责拨号上网

主路由上正常的设置好拨号上网,这样主路由上获取的 IP 就是公网 IP ,这个 IP 是互联网上其它设备可以直接进行访问的。

很多人都存在一个误解,认为这个公网 IP 是固定的。实际上每次重启主路由,或者一段时间后,分配的这个公网 IP 都会变更的。IP 每次都发生变化很难记忆,所以后面需要搭配 DDNS 服务进行动态域名解析。

其次,运营商为了阻止个人用户在家里架设网站等服务,家庭宽带一般都会封禁了 80 、443 等重要的低位端口。

主路由设置好后,基本无需各种折腾,能正常的上网即可。虽然 iStoreOS 支持非常丰富的插件,能够实现各种功能,但是为了整个家庭网络的稳定性,建议尽可能少在主路由上面安装各种插件。

旁路由负责科学上网

使用旁路由模式一般都是为了科学上网服务的。

iStoreOS 的网络设置向导中就带有拨号上网、旁路由设置等入口。界面清爽简洁,对小白用户来说非常友好。

在旁路由上搭建好了科学上网的服务之后,需要科学上网的设备,只需要将网关和 DNS 修改为旁路由的 IP 地址,即可享受科学上网的服务。例如个人使用的手机、黑苹果、AppleTV 等设备都可以非常方便的修改网关和 DNS 指向旁路由的地址。

推荐一个 iStoreOS 的插件包: https://github.com/AUK9527/Are-u-ok

无线 AP

无线 AP 采用的是一台红米 AX6000+小米 AX6000 组的有线 mash 。

红米 AX6000 在无线信号覆盖、散热以及稳定性等方面都极其出色,理论上一台红米 AX6000 即可覆盖,无需 2 台路由器。缺点就是红米 AX6000 不带 2.5G 网口,小米 AX6000 带有一个 2.5G 网口。

如果不在意 2.5G 网口的话,个人还是非常推荐红米 AX6000 的。体积比小米 AX6000 小巧,300 元左右,性价比极高。设置好 Wi-Fi 之后,基本上就会忽略它的存在。

由于主路由是软路由,负责 DHCP 和路由相关的功能。所以不需要硬路由器的路由等功能,只需硬路由器的无线信号发射功能,所以将硬路由设置为有线中继模式即可。

核心交换机

由于有线设备较多,交换机我选择的是磊科 GS10 ( 8 个 2.5G + 2 个万兆 SFP+),618 入手不到 300 块,性价比极高。

该交换机外壳为金属外壳,体积非常小巧。8 个 2.5G 网口可以满足绝大多数家庭用户的需求,额外的 2 个万兆光口适合连接 NAS 和台式机等设备。

旁路由架构带来的好处

该架构带来的好处非常多:

后续

后面会基于上述的物理网络架构,继续分享《家庭内网服务》、《在外访问家庭内网服务的最佳姿势》等更多内容。

4572 次点击
所在节点    宽带症候群
46 条回复
dhuzbb
81 天前
@fenghuang 你说的没错。
dhuzbb
81 天前
@x86 你就是课代表,挺会总结的。
povsister
81 天前
@maybeonly
害,你没细看我给的问题。op 这种部署,主路由 DNAT 做端口映射,对于默认网关是旁路由的设备无论怎么改都只有不通一个结果。。因为设备会把回复的包通过默认网关发给旁路由,旁路由只会满脑子问号这是什么东西然后直接丢了。

#20 说的 UPnP 还有 ipv6 逃逸问题也确实存在。anyway ,我是真不建议这种同一个网段里有俩网关设备的操作,不但和网络部署最佳实践背道而驰,而且出问题很多人甚至不知道如何排查。
frankilla
81 天前
刷到了
dhuzbb
81 天前
@WhatTheBridgeSay 我的技术水平没有达到你这样的深度,可能会出现你说的问题。但是我个人使用方面没有什么影响。需要科学上网的设备毕竟是少数,我确实是手动设置的,目的主要是尽可能少的改动主路由的设置。
bluaze
81 天前
@dhuzbb #21 绕过大陆 ip 就好了,这样国内的流量是直接转发,不会 NAT ,海外流量反正会被代理,不影响
bluaze
81 天前
@povsister #23 端口映射只在主路由上做,旁路由上只根据新建连接( tcp syn, udp ctstate NEW )来决定整个连接是否转发至代理端口,同时防火墙关掉 SYN-flood 防御(其实旁路由用普通 linux 发行版手搓而不是 openwrt 那么防火墙默认就没这规则)
bluaze
81 天前
@povsister #23 ipv6 逃逸好解决,dns 关掉海外的 AAAA 解析就好,至于同一个网段里有多个网关再正常不过,简单举个例子,一个大点的公司或组织,用了一个 B 类地址比如 192.168.0.0/16 建设内网,每个 C 类地址如 192.168.x.0/24 为子网为一个部门服务,那么所有子网网关和总网关所在的那个子网里个个都是网关
bluaze
81 天前
@WhatTheBridgeSay #20 关于 upnp ,我本来也以为是要失效的,但我家的情况却是自动找上了主路由并配置成功,当然这个成功可能并不能复制,可能跟我使用的主路由以及配置 upnp 使用的 miniupnp 相关
maybeonly
81 天前
@maybeonly #18 勘误,最后应该是打 mark

@povsister #23 这个真的能做出来,在 mangle/PREROUTING 直接打 mark 走某个路由过掉,并且自己配置好防火墙,不要因为 status 不对之类的原因丢掉就好了。或者更骚的,可以在防火墙丢弃原来的数据包之前在 mangle/PREROUTING 直接 TEE 过去(谨慎使用,小心爆炸)。而且虽然我是自己搓的主路由,但是里边也是存在一些不对称路由的,比如梯子选出口,dns 分流。

@bluaze #29 upnp 发现用的组播( ssdp ),如果是二层直通的话基本上是可以到达的。如果旁路网关做 nat 的话,还要看旁路网关实现的是 nat 几。

所以从几个地方看,他的旁路至少在没过墙的时候没有 nat ,如果是直接走路由表或者 dae 那种基于包的转发的话,普通回包是可以到达的(不过墙)。
不过我自己是有海外站从家里的 git 上拉代码,所以嘛。

最后就是说,设计良好、运维得当的主路由是没那么容易挂的。旁路由要么是条件所限没办法用主路由,要么就是个过度的学习阶段。旁路由结构反而复杂,如果旁路由都真的搞明白了,也就有能力上主路由了才对。

除了 ipv6 ,还有一些事情是旁路由无论如何做不出来的,比如我家有两条宽带。
另一个想到的场景,就是隔壁帖子的家里一大堆 docker ,既然在自己家起了那么多 docker ,难道还用端口映射嘛?就算 docker 的 v6 稀烂,至少把 v4 宣告出来/主路由静态指下去吧,然后到边界处统一做 nat 就好了。毕竟好多 docker 也是需要墙外资源/镜像的。
yjsdaniel
81 天前
NAS 上不能跑个软路由吗?节约一个旁路由的硬件
dhuzbb
81 天前
@yjsdaniel 你说的对,旁路由有 Docker 版本的形式。或者连旁路由都可以去掉,回到只用客户端软件的形式。 甚至只需 1 台机器,虚拟化出来主路由、旁路由、window 、nas 等等所有的设备。其实都看个人喜好的,有的人觉得 All in one 好,有的人觉得设备分开会比较好一些。
bluaze
81 天前
@yjsdaniel 当然可以,只要 NAS 性能不是太差,还能不用折腾/替换现有主路由
WhatTheBridgeSay
81 天前
@bluaze #29 查了一下,UPnP 似乎是通过广播来通信的,看起来可以成功映射,具体行为我还没有尝试过,上述第一条可能不正确
smg
81 天前
和你唯一的区别是你的主路由器 旁路由和 2 个无线 AP 我是用一个小米万兆 刷了 openwrt 代替。
weicools
79 天前
旁路由需要改网关和 dns 好麻烦
TYTheKing
79 天前
OP 这是什么软件画的,还有图形这么丰富的嘛
dhuzbb
79 天前
@TYTheKing 用的是开源的 drawio ,付费应用 processon 的替代品,自己 docker 部署的,后面的文章有提到过。默认的图标不是那么好看,图标网站上找的。
c9792536451
60 天前
请问图标在哪找的呀
dhuzbb
58 天前
@c9792536451 后续的文章中 https://www.v2ex.com/t/1074688 有写到。主要是 2 个网站:
https://icons8.com
https://www.iconfont.cn

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1074592

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX