起因
刚刚买这套AIO的时候装的是unRaid,在里面运行了OpenWrt、黑群晖和好多Docker容器,将近稳定运行了八个月,都没啥问题
最近看了Stille大佬的一篇文章,就想把这台AIO重新装配一次,让底层虚拟机系统就干该它干的事,其他的需求就让运行的虚拟机来做,这样也分工明确,便于管理
选型
系统
看了ESXi、PVE、unRaid对比这篇文章,最后选择了EXSi,毕竟是大公司做的商业产品,追求的也就是稳定,本人也不需要很多高级的特性,能实现硬件直通就差不多满足了我的需求
硬件
硬件没有变化,跟之前一样
硬件 | 型号 |
---|---|
主板 | 微星 B560M MORTAR 迫击炮 |
CPU | i5-10400 |
SSD | WD SN550 1T |
网卡 | HP 331T (BCM5719 PCIEx4) |
阵列卡 | IBM LSi SAS 2308 |
电源 | 益衡 ENH-1940 (400W 1U) |
机箱 | 拓普龙 NAS 8盘位 |
硬盘 | 矿盘 3T *4 + WD HC550 18T *1 + WD HC320 8T *1 |
虚拟机
一共4台
- DNS-Alpine
- 1C 512M
- Docker-CentOS7
- 2C 2G
- Router-RouterOS
- 1C 512M
- 直通网卡#0#1口
- Proxy-OpenWrt
- 1C 512M
- 直通网卡#3口
- DSM
- 2C 2G
- 直通阵列卡
- 直通网卡#2口
网络规划
拓扑图
网络配置
Router-RouterOS 主路由器
Router-RouterOS作为主路由器,主要作为连接光猫提供PPPoE 拨号
上网功能,同时提供DHCP服务
和负责管理端口转发
服务
IP
- IPv4
- addr :
10.0.0.1/24
- addr :
- IPv6
- addr :
fd00::1/64
- addr :
DHCP
-
pool :
10.0.0.100
-10.0.0.240
-
gateway :
10.0.0.2
所有访问流量将先由 Proxy-OpenWrt 处理分流,再走向 Router-RouterOS 主路由
-
DNS :
10.0.0.3
DNS设置为
10.0.0.3
的 DNS-Alpine,装有 Adguard Home,提供最前置
的广告过滤和DNS 缓存
DHCPv6
-
pool :
fd00::/64
-
gateway :
fd00::1
目前v6的代理不成熟,不代理v6,直接让所有v6流量从 Router-RouterOS 出
-
DNS :
fd00::3
v6的DNS解析只会经过 DNS-Alpine 进行基本的广告过滤,不会被 Proxy-OpenWrt 内的代理服务解析
Proxy-OpenWrt 科学上网网关
Proxy-OpenWrt 作为主要的科学上网网关,提供科学上网分流服务,主要依靠插件来处理分流工作
IP
- IPv4
- addr :
10.0.0.2/24
- gateway :
10.0.0.1
- DNS :
10.0.0.1
- addr :
- IPv6
- addr :
fd00::2/64
- gateway :
fd00::1
- DNS :
fd00::1
- addr :
当客户端访问请求为国内网站,将直接转发至
10.0.0.1
的主路由器进行访问。当访问请求为国外网站,将先经过插件进行TCP DNS查询
并返回真实 DNS 结果
,然后在依靠插件进行代理访问
。完全避免了DNS 污染
DNS-Alpine DNS 服务器
IP
- IPv4
- addr :
10.0.0.3/24
- gateway :
10.0.0.2
- DNS :
10.0.0.1
- addr :
- IPv6
- addr :
fd00::3/64
- gateway :
fd00::2
- DNS :
fd00::1
- addr :
- 上游DNS
- IPv4 :
10.0.0.2
- IPv6 :
fd00::1
- IPv4 :
EXSi 管理端
IP
- IPv4
- addr :
10.0.0.10/24
- gateway :
10.0.0.1
- DNS :
10.0.0.1
- addr :
- IPv6
- addr :
fd00::10/64
- gateway :
fd00::1
- DNS :
fd00::1
- addr :
Docker-CentOS7 容器服务器
IP
- IPv4
- addr :
10.0.0.11/24
- gateway :
10.0.0.2
- DNS :
10.0.0.3
- addr :
- IPv6
- addr :
fd00::11/64
- gateway :
fd00::2
- DNS :
fd00::3
- addr :
DSM 黑群晖
IP
- IPv4
- addr :
10.0.0.20/24
- gateway :
10.0.0.1
- DNS :
10.0.0.1
- addr :
- IPv6
- addr :
fd00::20/64
- gateway :
fd00::1
- DNS :
fd00::1
- addr :
搭建
EXSi
B560M迫击炮板载网卡是螃蟹的8125B,EXSi默认是没有这个网卡驱动的,需要自己将驱动打包进去
EXSi7版本似乎不能直接打包驱动进镜像,所以EXSi选择了6.7U3版本
准备工作
-
VMware vSphere Hypervisor (ESXi) Offline Bundle
注意,下载的镜像不是类似于
VMware-VMvisor-Installer-7.0U3-18644231.x86_64.iso
这种的ISO文件,ISO文件不能直接打包三方驱动由于现在在VMWare官网下载镜像需要登录,且需要购买EXSi后才能下载,所以我们需要一个第三方站点
进入这个网站,下载 ESXi670-201912001.zip(下载速度会很慢,可能需要科学环境)
-
下载最新的release即可
-
Windows 10环境
打包
-
以管理员身份运行
Windows PowerShell
,执行Set-ExecutionPolicy RemoteSigned
命令配置远程执行策略为允许,然后执行命令Install-Module -Name VMware.PowerCLI
,这个命令可能需要比较长时间,请耐心等待。中间出现确认提示的时候,输入A
即可(或者Y)若安装失败则需要在官网下载最新的
PowerCLI
,并将解压后文件拷贝至Windows PowerShell
的Modules
目录(C:\Program Files\WindowsPowerShell\Modules
) -
解压
ESXi-Customizer-PS-v2..0.ps1
到桌面,在ESXi-Customizer-PS-2.9.0
文件夹内新建pkg
文件夹,将Realtek_bootbank_net-r8125_9.007.01-1.vib
放进pkg文件夹内 -
将下载好的
ESXi670-201912001.zip
文件放到ESXi-Customizer-PS-2.9.0
文件夹下 -
回到
ESXi-Customizer-PS-2.9.0
文件夹,直接在地址栏输入powershell
,在打开的PowerShell
窗口内出入以下代码,并回车执行.\ESXi-Customizer-PS-v2.9.0.ps1 -izip .\ESXi670-201912001.zip -pkgDir .\pkg
-
控制台结尾是
All done
表示成功,成功后会在working
目录中生成一个文件ESXi-6.7.0-20191204001-standard-customized-with-bcm8125
,这就是封装驱动后的镜像
安装
- 下载Rufus
- 插入一个空U盘,选择刚刚生成的iso文件,选择插入的U盘,点击
开始
即可 - 将U盘插到AIO主机,开机即可进入安装界面,按照界面提示进行安装,安装盘选择 SN550,网口选择板载网口,网络配置按照前文中规划好EXSi IP,若没有IPv6环境直接禁用IPv6即可
- 安装完成后拔出U盘重启即可
Router-RouterOS
待补充…
实现效果
所有由DHCP发放IP的终端设备的所有流量会被分流,能直接访问所有网站,以此实现电视、手机、平板在不启动 QuantumultX 的情况下能直接访问国外各大流媒体网站(节点支持的情况下),并且能屏蔽部分广告