上面两幅图分别是普通家庭宽带和采用虚拟化技术的家庭宽带。采用虚拟化技术的家庭宽带看似增加了很多设备,事实上全部由一台x86平台的mini主机实现,这台小主机采用J4125 Celeron CPU,核心频率2.7GHz,4核4线程,功耗仅有10W,裸机价700+人民币,可以说性价比相当高了。我采购的是裸机,内存条和SSD都是自己配,仿佛又找到了当年攒机的乐趣。
如果你是一个互联网的重度用户,家里的电脑、平板、手机、电视,游戏机都需要自由冲浪,或者对外提供服务,那么普通家庭宽带是难以满足的。首先,这些商业的路由器系统封闭,网络定制度不高,不能折腾;其次,与路由器芯片相比,pc芯片性能强悍,除了实现路由功能外,剩余的算力还可以做别的用途,我的家庭宽带虽然升级到300Mbps了,但仅能跑出100Mbps的带宽,要跑满带宽只有选择软路由;此外,硬路由最大的硬伤就是没有自由冲浪功能。因此决定对家庭宽带进行优化和升级,本次升级除了增加了一台x86的低功耗mini主机,还增加了一台千兆交换机。我的升级方案如下:
- 把当前主用的无线路由器降级为无线AP,调整到一个开阔的位置,实现最好的信号覆盖,提供手机、笔记本等无线设备的接入;
- 有线连接全部采用千兆交换机;
- 在mini主机上安装裸金属架构的虚拟化软件VMware esxi,再在esxi上安装软路由和linux、windows等操作系统,实现all in one;
- 采用主路由+旁路网关的双软路由方式打造最强的家庭路由系统;
软路由:啥是软路由呢?简单说,就是在采用pc芯片的主机上安装带有路由功能的软件,由于软路由的种类繁多,而且是开源的,所以拥有非常高的定制度和可玩性。尤其是在数据加密的场景中,对数据加密进行传输,收到数据后还要进行解密,这种加密解密的计算对硬路由来说捉襟见肘。
在部署前,我先介绍一下为啥要采用主路由+旁路网关模式,主路由实现拨号联网功能,并承担家里所有设备的上网,采用串行部署(如果家里交换机支持802.1q协议,也可以采用单臂路由部署,但效率没有串行部署高),分别定义两个接口,一个WAN口连接光猫,一个Lan口连接家里的交换机。主路由提供高速稳定上网,旁路由对数据加密传输,与主路由相互补充。把终端的网关指向不同的路由,就可以实现了流量的定制了。下面就跟着我来一步一步打造家庭最强软路由系统:
软路由的固件包
链接:https://pan.baidu.com/s/1KvQ-2ibhbvceYs_416cjJw
提取码:i8ot
第一步,安装esxi,本次使用的版本是6.7,最新的是7.0版,但是7.0有很多硬件驱动被删除了,需要手动添加,所以仍然采用6.7版本,esxi的安装方法自己百度。由于esxi在物理硬件上增加了虚拟化层,对底层的硬件资源进行了池化,形成了计算资源池,存储资源池和网络资源池,因此虚拟机的流量不是直接到物理交换机的,而是虚拟机——>虚拟网卡——>虚拟交换机——>物理交换机。在家庭网络的场景中,esxi主机至少需要两个网络接口,一个接口定义为WAN口,连接光猫,一个接口定义为LAN口,连接物理交换机,所以我在esxi中创建了两台虚拟机交换机,一台连接内部的交换机,一台连接外部的光猫(PS:可以把网卡开直通,让虚拟机独享物理网卡,但我觉得这样做灵活性不够),esxi的网络规划如图所示:
第二步,部署主路由,主路由要具备高速上网和稳定性,所以我们采用MikroTik RouterOS(总部位于拉托维亚的首都加里,主要开发路由器和无线ISP系统,其软硬件遍布全世界)简称ROS,或者国产的商用软件爱快(IKuai)路由。IKuai全中文界面,配置简单,ROS上手稍微困难,所以这里主要介绍ROS。我提供的是ROS的OVF模板文件,所以可以在esxi中直接部署。
用ROS的客户端管理工具WinBox打开Ros管理界面:
1、配置Lan口
进入ROS后台页面,点击左侧导航栏的interfaces,右侧窗口显示接口列表,分别用Lan和Wan进行命名,此时有流量的命名为Lan口,无流量的命名为Wan口
接下来修改Lan口的IP,点击右侧的IP->Addresses进入地址列表
我们点击加号进行添加设置,配置Lan口的IP地址,子网掩码
2、配置Wan口
接着配置wan口,wan口连接光猫,采用PPPoE拨号,因此我们再次进入接口列表点击加号图标进行添加配置,填入运营商分配的宽带账号,接口选择wan口(PS:在硬路由器中,Wan口和Lan口是固定位置,而在软路由中Wan口和Lan口需要自定义),配置完成后查看status和traffic页面,如果获取到IP地址和有流量说明配置成功。
3.配置DHCP服务器
在配置DHCP服务之前,首先创建一个IP地址池,就是自动获取IP地址的范围
进入DHCP Server 进行配置,添加DHCP Server ,填入名称,选择Lan口和IP地址池
继续在这个页面上选择network选项卡进行配置,Address配置为Lan口的网络地址,网关和DNS Server均设置为ROS的地址(PS:如果配置了旁路由,在这里就把网关和DNS Server设置为旁路由的地址)
4、配置DNS服务器
我这里配置的是114.114.114.114和阿里云的223.5.5.5
5、开启防火墙的NAT功能
家庭组网使用的IP地址通常是私网地址,这些私网地址不被互联网接收,意味着互联网路由表中不会存在这些私网地址,要访问互联网必须经过NAT转换成公网地址后才能访问。在硬路由中,只要配置好wan口,路由器会自动产生两个动作,一是开启源地址NAT转换,二是生成一条全0的默认路由指向拨号接口。因此大家从来没有配置过路由和NAT,而在ROS中,这两步都要手动配置,首先进入防火墙的NAT配置,然后在chain中选择srcnat(源地址转换),接着点击action选项卡,在Action中选择masquerade选项,主路由到此配置完毕,现在可以自由冲浪了。
第三步,安装部署旁路由
网上有很多大佬自己编译的OpenWrt固件,我选择的是OpenWrt R21.8.6 GDQ v9.1[2021] Compiled by eSir,用esxi创建OpenWrt的虚拟机,配置OpenWrt的IP地址,把网关指向主路由,关闭openwrt的dhcp服务,开启dns服务器,然后把ROS的dhcp服务中的网关和DNS都指向OpenWrt的IP,开启广告屏蔽插件,然后你家里的所有设备都可以自由冲浪。
总结
升级后的家庭网络可以跑满300Mbps的网络带宽,下载速度可以达到40MB/s,升级前10MB/s已经是极限了