前言
本系列前一篇文章中已经提到了在家中组件一个 Ceph 集群的需要,都 2020 年代了,少不了需要升级到 10G 万兆局域网才能愉快的玩一些局域网的应用。这一篇就来聊一聊这次集群升级 10G 组网对于硬件的选择,网络规划,以及拓扑设计。当然,如果已经有 40G/100G 局域网的大佬们这篇文章差不多可以忽略了。
对于网络设备的采购而言,笔者本人相对比较倾向于新购而不是收企业级的洋垃圾,毕竟网络设备上各种 OEM 厂商固件,授权问题产生端口限制的坑。当然,诸如 Netgear, Ubiquiti, Mikrotik 这些比较常见于低端企业级/高端民用市场的品牌产品,收二手也不会遇到太大问题。我自己这次使用的都是千元级设备,家用场合应该也能够负担的起。
01. 组网规划
原先的组网基本上除了一台 netgear PoE 交换机外,算得上是 Ubnt Unifi 系列全家桶方案。Unifi 系列的 AP 很好用,性能稳定,后期固件有周期性支持,Unifi Controller 的交互界面也是业界标杆,所以原先我的网关路由器为了省事也是直接用了一台 USG 可以做统一管理,先前版本的网络拓扑大致可以参考下图,无关设备已省略。
本次组网,并不打算调整 Wifi 无线网,所以讨论的重点是有线网组网。原先局域网中已经划分了 vlan 进行不同类型的设备管理,网段划分,以及安全性隔离,设备升级同样需要支持 vlan 管理。然而随着局域网治理的需求的增长,USG 虽然也支持 vlan,也能搞定运营商的 IPv6,但是很多个性化的需求上配置起来只能改 json 实现,动不动就会被 controller 给同步掉,所以这次准备把有线路由器也替换一下。原先还有一台网件的 JGS524PE 交换机,暂时仍然可以继续用来给局域网提 PoE 设备进行统一供电。
再来谈一谈 Vlan 的划分,其实在家中设备多了以后,特备是到了这个年代,IoT 设备兴起以后,什么油烟机冰箱之类的动不动就要连个网,全设备生命周期的固件基本都不会升级一次,从局域网安全性角度而言,vlan 的划分很有必要。更何况现在运营商 IPv6 接入已经铺开,我也不希望的各种设备管理入口通过公网 IPv6 地址都各自暴露在互联网上,很有必要进行隔离划分,控制内部互相之间的访问权限。
vlan 一般通过在数据包上打上特定的标签来实现,其作用是可以将不同的端口划分到不同的广播域上进行隔离,通俗一点的解释就是可以将一台交换机上的不同端口拆分来当多台不同的交换机来用,而不需要购买多台交换机单独管理。一般网络设备上对 vlan 的支持也有简易版和全功能版的区别,一般建议使用完整支持 IEEE 802.1Q 规范的设备来划分 vlan,可以通过 tag 的策略将不同 vlan 上的数据 trunk 到同一根链路上进行数据传输。
在部署 Ceph 网络之前,我已经按照不同用途划分了五组 vlan,引入 ceph 以后,要给其内部单独划分一路内部网络。所以这次调整后的网络规划如下。
- Vlan 1 - 默认设备网络,CIDR: 10.1.0.0/22,提供 1022 个可用地址,用于接入 PC,手机等常规设备,提供 IPv6 地址分配。
- Vlan 10 - 实验环境,CIDR: 10.1.4.0/22,提供 1022 个可用地址,用于接入虚拟机,k8s 服务等各项自己日常实验需要的内网环境,提供 IPv6 接入。
- Vlan 20 - IoT 网络,CIDR: 10.1.8.0/22,提供 1022 个可用地址,用于接入各种家电类物联网设备,可访问公网,不具备访问其他内网资源的权限,不提供 IPv6 地址。
- Vlan 50 - 来宾网络,CIDR: 10.1.12.0/22,提供 1022 个可用地址,用于家里来客人时候的来宾 wifi,以及如果有房间要作为客房场景下的有线网络隔离接入,不可访问内网服务,但是可以访问公网,并支持 IPv6。
- Vlan 90 - 存储网络,CIDR: 10.1.20.0/24,提供 254 个可用地址,用于 Ceph 存储节点内部数据同步,不需要 IPv6 支持。
- Vlan 100 - 运维网络,CIDR: 10.1.16.0/24,提供 254 个可用地址,用于设备运维,比如交换机管理地址,服务器 IPMI,AP,Unifi Controller,工作站上的远程主机卡等等,允许以 IPv4 方式从公网获取设备跟新。
此外,路由器上还准备提供一个独立网段,CIDR: 10.1.17.0/24,用于提供离家状态下,访问家中网络的 VPN 接入。
02. 网络设备
网络设备选择上,品牌其实相对比较次要的,同级别的产品,不同的厂商都可以提供对标的竞品选择。在选择过程中,我考虑的主要方面是功能性,安全性,价格的亲民程度,以及家中部署很关键的一点,噪音级别。当然,有独立机房的大佬可以不考虑这些,玩的开心就可以了😂,无奈我只有客厅一角的小隔间。
这些年下来,我已经在各种场合下实际用过了 Cisco, H3C, Huawei, Netgear, Linksys, Ubiquiti, Mikrotik 这些品牌的路由器和交换机设备。家用场合,倾向于选择面向家用或者中小企业应用场景下设计的设备。大型设备动不动就是大功率+冗余电源,家里环境完全不适合。所以这次更加倾向于考虑采购 Ubiquiti 的 EdgeMax 系列或者是 Mikrotik 的产品。
EgdeRouter 的系统在企业级场景下稳定性表现相当好,我在数据中心生产场景中实际部署过 EdgeOS 的路由器,连续运行以上也没有遇到过问题,如果家里特别追求安全稳定或者是小型企业应用场景的话,也推荐他们家的产品,4 口的路由器做 vlan trunk 配置也是能用起来的。而且 EdgeRouter UI 界面上的配置树可以对路由器的完整 json 配置进行整体管理,交互设计独到。
在权衡了一下以后,我这次想在家里把专门的 ROS 路由器搞起来,省的再搞软路由,加上拉脱维亚公司相对价格低不少,直接选择了一系列 Mikrotik 的路由器和交换机。Mikrotik 其实也是家农企作风满满的公司,除了 ROS 这个系统功能全做的响当当以外,时不时会爆出一些古怪的 bug,或者很容易因为配置不当导致安全性漏洞的出现。然而小问题并非无法克服,ROS 也可能算是业界功能最全的路由器系统之一,再加之价格实在是比别家便宜太多,最终使得我这次选择了 Mikrotik。
-
Mikrotik CRS309
全被动散热,提供 8 个 10G SFP+ 端口 + 1 个 G 口用于管理用途。如果需要更多万兆端口,同系列还有一只 CRS317 可以选择,只不过 CRS317 的问题在于配置了两个 4cm 电压调速风扇。为了尽量做到无噪音,我最终选择了 CRS309 的方案,毕竟机身后面单靠一个巨大的 heatsink 就搞定了散热问题,在家用场景下用起来其实相当棒。甚至如果后续要扩容的话,我都想直接整两台 CRS309 来搞了,反正 ceph 内部网络也不需要与外部网络通信。
值得一提的是,CRS 的交换机都预装 ROS,号称是三层路由/较换 + 二层交换两用,实际上这个系列的 CPU 配置并不足以承载三层较换的转发处理需求,我拿来也只是开当二层交换机,配合 vlan 来用。
-
Mikrotik CSS326
除了 10G 设备以外,局域网里在整体增加了三台服务器以后,我原先的那台 Netgear JGS524PE 交换机已经显得端口不够用了,所以再入了一台 CSS326 来做千兆网络的二层较换。选这台的理由是价格便宜,只要 800 软妹币以内,能提供两个 10G 的 SFP+,而且也是被动散热,0 噪音。
这个型号有个兄弟是 CRS326,我不选的理由一个是贵了几百块钱多了很鸡肋的三层较换功能,我并没有强需求。另一个理由是多了一个 4cm 的散热风扇,会引入噪音,且先前版本系统还有 bug。CSS326 几乎是同一套模具出来的产品,只不过后面的风扇安装位置留空,同样可以做到 0 噪音。
-
Mikrotik RB4011
这应该是目前市场上,所能找到的最便宜的带 10G SFP+ 端口的路由器,而且系统是有 L5 授权的 ROS,全金属机身,后方有巨大的 heatsink 来实现全被动散热,0 噪音。很多评测下的小包转发能力相当强悍,价格只要 1k 的水平。
虽说比上代 RB3011 系列少了一个酷炫的显示屏,但也足够了。要显示屏监控的大佬们可以考虑下 CCR 系列的产品,比如 CCR1009 可以提供两个 SFP+ 口,外加显示屏😂。唯一的缺憾是 CCR 系列冗余电源设计有噪音,家用并不是很推荐。我自己的需求是尽可能做到被动散热,不然有风扇的设备一多,噪音很难压制,特别是网络设备 4cm 风扇转速都不低。
从公开的资料上来看,万兆口直接通到了 CPU 上控制,10 个千兆口分在两个螃蟹牌 2.5Gbps 的较换芯片上。我的主要用途是 10G 口拿来接内网 vlan trunk,靠强大的转发能力来实现内网的三层转发处理,跨 vlan 的安全规则也可以通过这一台上的 ROS 统一控制,家中场景其实足够。千兆口我只用了两个,一个用来接光猫,另一个用来专门接管理网络的 vlan。
最后再来谈谈线缆的选择。机柜内部的短距离 10G 网络其实完全没有必要用光纤方案,一方面光线模块本身相对来说成本更高,且功耗更大,另一方面的问题是,SFP 接口终究还是电信号的,光电转换过程其实存在损耗。在短距离上,最好的方案应该是使用 DAC 直连线,没有光电转换损耗,接头模块本身没有太大技术含量,直接连线实现。所以我在 10G 缆线的选择上,采购了七根拆机的 3m 华为直连线,单价 35 块,再买了两根新的 0.5m 直连线,价格也很便宜,轻松搞定 SFP+ 端口的连接问题。
光纤布线的优势是适合长距离,单位长度光纤成本低(但是光纤模块价格感人),另外空间提及占用比较节省,家里组网布线的话,用光纤的主要原因一般也是带来一定程度的便利性,而不是成本控制。
对于万兆网络,普通 Cat6 网线在 50m 距离内也足够胜任,而且兼容新更好,RJ45 模块可以做到 10G/5G/2.5G/1G/100M/10M 的梯度自适应。光模块的速率是恒定的,无法两端相互协商。另外,网线还有个优势是可以提供 PoE 供电支持,可以通过交换机解决局域网内 AP,网络摄像头等小型设备的供电问题,光纤不是电的导体,显然理论上就无法提供这个功能。相对来说,网线在后期可维护性上会很方便,毕竟家里可以买把压线钳,但是如果买光纤熔纤机的话就有点过分了,出去借总是个麻烦事儿,所以先期我家中采用了网线组网方案。
03. 组网
设备敲定完成后,便可以着手把网络给搭建起来。除去次要设备以外的主要组网拓扑结构如下图所示。
初步搭建完成后,简单用 iperf 做下测速,虽然都是入门级 10G 设备,但是基本上也足够跑到线速,交换机的管理统计上也可以看到相关数据。
ROS 的各种功能在家用场景下用起来也是真的香。USG 没法做 VRRP 的单线多拨,ROS 就可以,不过实测下来我这边的运营商环境下即使开了多拨,速度也并没有叠加提升,最终又去掉了多拨的配置。系统自带简化版 OpenVPN Server 以及 L2TP Server 功能,对于出门在外的时候需要访问内网资源也已经足够堪用了。唯一的不足是,ROS 在 SLAAC 环境下不支持将 /60 前缀的 IPv6 地址分配给不同 vlan,不过用 /56 或者 /58 的前缀,当然前提是需要运营商能够支持。而 EdgeRouter 的系统提供了一个额外的 prefix 配置就避开了这个问题,所以 ROS 在有些方面还需要完善。
至此,本次家中针对网络部分的改造基本完成,进入 10G 时代以后,诸如 iSCSI 这样曾经没有考虑过的应用,也可以在家里愉快的搞起来了。后续要是再有闲工夫,可能会考虑换一个更小的被动散热 POE 交换机,毕竟我这台 Netgear 里面也有一个风扇。另外再申明下,本人不是专业网络工程师,可能在部分说明上存在疏漏,望各位多多包涵。本系列下一篇将对 PVE 与 Ceph 集群的搭建进行介绍。
最后的最后,欢迎各位大佬转发评论点赞。
最后修改于 2020-01-29