从2024年1月我拥有服务器,家宽拥有公网开始,我在网络等设备上走上了无限垫的道路,它成为了我的金钱黑洞,但是,这些网络设备也是我最引以为傲的东西,我觉得是时候好好介绍一下他们了。

首先介绍一下服务器的配置:SA5212M4机架式服务器,E5-2696v3两颗,16GB DDR4 RECC内存条8条,Tesla P40计算卡一张,X520万兆光口网卡一张,2308直通卡一张,2TB SAS机械四块(RAID10,供NAS使用)。

常用虚拟机系统为:Ubuntu*2,Truenas*1,OpenWrt*1,Winserver*1

在最开始的时候,我只拥有一个小米4a路由器千兆版,将其刷了openwrt,作为主路由使用,服务器安装windows10,开mc服务器和ddns。但是很快,我发现了问题,首先windows对于我服务器双路E5强悍的36c72t的调度是很不足的,开了mc服务器性能下降严重;其次是小米路由器4a千兆版是WiFi5标准,即802.11ac,我自己使用网络会有很大的速率不足;再次就是mc服务器无法用尽这么多资源,实在是一种浪费。

于是乎,在各路大佬的建议下,我计划将mc服务器系统换装为linux系统,我因为使用习惯的缘故,偏向于使用Ubuntu;而正好在此时,我了解到了pve和esxi这两个虚拟化集群系统,我曾经在这两个系统间反复横跳,反复切换,最后选用了pve。与此同时,我眼馋万兆设备,于是入手了两张万兆光口网卡(坏了一张,卖家给我退了),以及中兴的zxr10 5228F-AC 24千兆电口加4万兆sfp+光口交换机(带有弱三层功能),还有几个光模块(一堆intel原厂,两对国产),还有om3多模光纤,开始组建万兆光网络。

与此同时,我认识到路由器的无线性能非常不足,mt7621芯片的性能也有点过时,于是我在pve上装了一个软路由,购买了cr8808 WiFi6标准的路由器,使用802.11ax协议,使用ap(有线中继模式)。此时的网络拓扑是使用千兆网口连接光猫(已改好桥接),直通给openwrt虚拟机,然后openwrt使用PPPoE拨号上网,LAN端使用万兆光口直通给openwrt,连接到交换机,交换机万兆光口连接电脑,千兆连接到IPMI管理口,PVE管理口,还有cr8808路由器。

此时服务器上还剩下一个万兆光口,同时还有几个虚拟机没有分配到网口。此时我们有三种办法:

  1. 建立虚拟网桥,桥接到该网口,让linux/ovs网桥做交换。
  2. 建立虚拟网桥,连接到openwrt,让openwrt做nat和交换。
  3. 使用sriov技术,将一个物理网口(PF,Physical Function,物理功能)分出多个虚拟网口(VF,Virtual Function),连接到交换机进行交换。

作为一个容不得半点性能损失的人,我采用了第三种方法,尽管这样更困难,但是这也满足了我折腾的乐趣。那为什么openwrt不能这样呢(其实windows更不行)?因为他们不支持ixgbevf驱动,非常无语...

就这样,服务器和相关网络设备继续以这样结构稳定的运行下去,直到现在,我发觉软路由的小包转发率是硬伤,所以我把主路由换成了360t7,它搭载了mt7981芯片,性能显然要更好,而且支持WiFi6 802.11ax协议,顺便给它刷了个带有闭源驱动的openwrt,WAN口连接光猫,一个LAN口连接交换机,同时原有的openwrt软路由作为旁路由,网关指向主路由,需要使用的设备可以直接连接旁路由,这样可以让旁路由强悍的加解密性能得到应有的用途(什么用途不用多说了吧)。

在其中遇到了一些问题,比如5228f默认无法使连接的设备自动获取ipv6地址,这种情况需要用consle连接到交换机,在config模式下输入以下命令:

ZXR10(config)#ipv6 nd-snooping link-local enable
ZXR10(config)#ipv6 nd-snooping global enable

输入完以后需要输入exit,并输入write,保存配置,此时配置才会写入交换机的rom,否则都是在内存上操作!

最后,美图二张:

业余无线电爱好者 dn42成员 计算机网络爱好者 编程半吊子
最后更新于 2025-04-18