方案描述

之前一直使用联通宽带,而且有公网IP,但是前两年移动做家宽推广时也免费安装了一条500M移动宽带,一直未使用,不想浪费,弄了台GMK M5小主机搞个软路由双拨。虚拟化平台采用PVE。主路由采用iKuai,双拨比较稳定。另外对各种功能插件的需求由OpenWrt旁路由处理,出现问题也不影响主路由上网。
pve

网络拓扑

目前物理连接拓扑方案,现有设备只有一个5口即用型小交换机,不支持VLAN,所以双拨需要PVE直通两个网口到主路由。小主机的无线网卡性能有限,我用原有的小米AX6000做有线中继当AP用,手机以及其他物联网设备都通过他的无线接入,并且扩展了两个电网口。
拓扑

小主机双2.5G网口,由于我没有支持VLAN的交换机,双拨需要第三个网口,所以用USB3.0转了个千兆口,做500M的移动Wlan。图片虚线是因为我的移动光纤当初师傅偷懒将光猫留在了弱电箱,而我其他设备都在客厅,线管堵住了,需要穿线过来,工具还在路上,所以目前该线路暂未接通T_T。我之前有一个Nas设备,不需要PVE安装黑群晖,2.5G网口共享虚拟口也基本不会遇到瓶颈。
软路由小主机逻辑拓扑

网卡直通

编辑 grub :

nano /etc/default/grub

注释原条目,并增加开启参数,我是AMD的cpu,如果是英特尔替换amd为intel:

 #GRUB_CMDLINE_LINUX_DEFAULT="quiet"
 GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

更新 grub :

 update-grub

重启 PVE 。

显卡直通

我有PC机用,虚机Windows基本做远程桌面堡垒机用,暂时不需要显卡直通,稍后补充。

PVE安装

安装部分操作和使用脚本参考了b站up莫老师的视频。

EP153 - 利用PVE虚拟机,来打造属于自己的All In One系统吧!

参考视频介绍中分享的相关网盘文件,其中,SSH客户端工具、PVE镜像等安装包建议各位自行官网下载,opwrt固件根据自己需要下载对应版本。
img2kvm 是安装openwrt需要用到的磁盘转换脚本工具。
pve_source 是给PVE做配置优化的脚本,类似的还有pvetools

给img2kvm权限

 chmod +x img2kvm

执行磁盘格式转换

 ./img2kvm openwrt-23.05.img 100 vm-100-disk-1

编辑OpenWRT的IP地址

vi /etc/config/network

iKuai安装

OpenWrt

windows

安装windows大家都比较熟悉,不多介绍,需要提醒一下的就是PVE中安装windows时识别不出来磁盘,需要给虚拟机挂载VirtIO光驱,然后通过VirtIO来识别磁盘和后续识别网卡等

设置UPS广播

我家这栋楼电路有点问题,动不动就跳闸,我烧了两块红盘了,找物业多次,一直解决不了,于是上了个UPS。
用的是APC-BK650新款,由于NAS的不间断电源功能就是用NUT实现的,所以UPS通信口接了Nas当做NUT的Server端。PVE安装NUT client,达到断电通知的效果。本来bk650上还插了小米电视,本来打算写个程序想通过小爱API下发关机指令,结果发现小米关闭了个人开发者的注册,改日再研究通过接入第三方平台来实现吧。
PVE安装NUT,首先SSH登入pve后台

apt install nut

nut配置
编辑/etc/nut/nut.conf,MODE设置如下:

MODE=netclient

编辑/etc/nut/upsmon.conf,MONITOR设置如下:

MONITOR ups@ratel 1 monuser secret slave

说明:

MONITOR <system> <powervalue> <username> <password> ("master"|"slave")
#<system>设置为ups@服务器地址或域名,这里我用ups@DannyN 无法识别到我的nas, 应该配置网关Hosts就可以了。
#<powervalue>设置为1
#<username>群晖UPS服务器的默认用户名是monuser
#<password>群晖UPS服务器的默认密码是secret
#("master"|"slave"),客户机设置为slave

测试连接情况

upsc ups@UPS_IP

启用nut-client

systemctl start nut-client #启动网络ups客户端服务
systemctl status nut-client #检查服务状态,如有错误再根据提示进行排查
systemctl enable nut-client #设置网络ups客户端服务自启动

这个本来是个笔记,只有两个topo示意图和几条命令,也没有具体操作的相关配图,记录在个人知识库中。正好网安民警找我说年审备案的问题,我才想着这个荒草地啥也没有太惭愧了,转到这里稍作填充,再有时间或者有人需要我再尽量完善。

最后修改:2024 年 03 月 22 日
如果觉得我的文章对你有用,请随意赞赏