背景
家里路由器突然响应变慢,开始认为是性能不足,同时心水软路由与虚拟化平台已久,草率的入了软路由虚拟化硬件。现在近期评估下来,可能是天气原因,夏天了路由器cpu90度,导致的。但既然入了坑,就好好填坑。路由器加了风扇,下降到了 58度。响应还是慢。
设备
- J4105双千兆口(螃蟹RTL8115)被动散热,软路由一台 618rmb 不带电源
- 杂牌msata ssd 128G 100rmb
- 拆机8G DDR4内存
- 拆机bcm4322 无线网卡
- 拆机 12V 3A电源
- usb2.0 网卡 10元
- usb3.0 RTL8153 27元
- dell 9020m g3220t 330元
- 额外电源和ssd 74 元
总投入:1161元
一些思考
- 软路由及虚拟化,就要多网口。之前看网上评论认为软路由双网口就够了,其他交给交换机完成。但没考虑到虚拟化,因为虚拟化需要单独管理网口,导致不能直通网卡。(失误)
- 需求配置,软路由+linux服务器(docker)/ 桌面化平台, 网口设计:双千兆口直通软路由,1管理网口,1虚拟化口(可以直接连软路由)。因此一般情况玩虚拟化软路由至少4口,纯软路由2口够了。软路由做交换机非常不合算。
- cpu功耗10w,四核,支持vt-x, vt-d可以虚拟化及直通。一般情况下10w下,基础频率越高越好,因为睿频不能长时间维持,被动散热降频就悲剧了,严重影响网速。
- 如果要对虚拟化性能有要求,建议与软路由分开,不然影响软路由性能,同时被动散热就不够了,主动散热必须的。
- esxi可以使用usb网卡作为管理网口,但需要特殊打包iso spk大神的可以,PVE可以。esxi usb3.0 rtl8153芯片。
- 虚拟化 在默认情况下个人测试结论如下:
6.1 PVE直通网卡,软路由传输性能70MB/s
6.2 PVEvirtio网卡,软路由传输性能60MB/s
6.3 PVEE1000网卡,软路由传输性能40MB/s
6.4 拷贝大文件(40G)遇到降频问题,从70MB/s降到40MB/s
6.5 esxi虚拟化网卡,软路由传输性能70MB/s - PVE默认分区情况下,120G硬盘只留了60多G用作虚拟机。28G用作管理磁盘
计划配置如下:
- 虚拟化环境(esxi//网络设置好方便啊)
- 虚拟机1 openwrt 旁路由
- 虚拟机2 ubuntu 负责docker
- 虚拟机3 ikuai 负责接入
- 网络架构
4.1 全eth0
20200803记录
- l2tp成功哦,Windows10配置有坑,看文末排坑
下一步 - nuc改esxi
- audio station
20200802记录
- dhcpd设置学习及验证,已完成。
- 9020m设置及安装,已完成。g3220t很弱
20200729记录
- j1800安装win10失败,卖了
- 配置旁路由及接入成功,双虚机
- 证书问题为解析条目问题,不修改lets encrypt
下一步, - 迁移hass,已完成
- 迁移frps,已完成
- 迁移aliddns,已完成
- 处理服务器, 已完成
20200726记录
虚拟机始终无法顺利软路由运作。入了j1800,等待硬盘和电源。
先用lede作为交换机。
下一步,
- 处理证书问题,修改为lets encrypt,调整解析条目。docker aliddns
- 处理homeassistant迁移至Ubuntu hassio
- 处理frps 迁移至Ubuntu
- 处理旁路由,vps。
20200716记录
- 7.16安装PVE5.4 测试virtio , 结论:顺利千兆达成。
- 7.17测试RTL8153是否可以作为esxi虚拟化管理口,用Pve不测了。
- RTL8153若能管理,计划测试全直通(双网口,硬盘直通)
- 若测试稳定性没有问题,但是性能有问题,计划再入J1900(300)或3855u做纯软路由。
20200719记录
- 7.20 使用usb网卡可以管理esxi,但是usb网卡不能作为pci直通,估计可以usb直通。
以下是排坑记录
windows 10 hyper-v
//下载链接:hyper-v server 2019
之前在win10 hyper-v下成功跑满千兆dsm,对软路由信心满满。
测试结果最差,使用win10 hyper-v 安装lede和ubuntu
- 网络设置为:外部网络接入分享给宿主机和lede wan口,另外一个网口lede独享作为lan口,新增专用网络接入lede和ubuntu,通过lede给ubuntu做路由。
- 测试结果:smb拷贝26MB/s
windows 10 vmware workstation
- 测试结果:smb拷贝15MB/s
ESXi6.7
集成螃蟹网卡iso :参考链接https://www.chiphell.com/forum.php?mod=viewthread&tid=1991900&page=1&extra=#pid42071297
一步步安装就可以,ESXi很好用,基本不用记录什么,用过vmware workstation基本都会。
wan口直通连接esxi内虚拟机,测速60MB。可能就是虚拟机问题了。
PVE6.2
本人使用etcher 刷u盘
安装时候插上usb网卡可以直接作为管理口
PVE安装完成后做以下工作:
1. 删除订阅提示:
修改文件/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js ,找到
vi /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
/data.status
将 Ext.Msg.show({ 修改为 Ext.Msg.noshow({ ,然后保存,之后重启网页服务
systemctl restart pveproxy
完成之后刷新之前登录的页面,订阅许可的提示没有再出现了。
2. Iommu分组并设置硬件直通
至于为什么要做硬件直通,主要是为了完全发挥硬件性能,拿网卡来说,直通后数据传输过程中可以降低cpu负载,Sata控制器直通后,可以达到硬盘休眠和smart正常显示的目的。
先来看一张图,这只是个例子,还没涉及到安装虚拟机的操作。当我们要添加PCI设备的时候,系统会提示Iommu未激活,我们需要开启Iommu.
- 修改grub
vi /etc/default/grub
修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pcie_acs_override=downstream,multifunction"
- 修改modules
vi /etc/modules
添加
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
- 执行
update-grub
LEDE软路由系统
koolshare固件
安装方式:
- 直接刷固件
测试情况:千兆达成
工具:physdiskwrite
硬件:pe U盘
- 在pe环境下删除所有目标磁盘分区
physdiskwrite -u lede.img
- 选择目标磁盘
参考文章:https://baijiahao.baidu.com/s?id=1630134168108879358&wfr=spider&for=pc
- PVE安装
参考文章:https://blog.csdn.net/wdhqwe520/article/details/92787925
- esxi安装
其中下载VMDK文件可以直接上传后导入,在新建虚拟机时删除原磁盘,新建IDE磁盘后关联该VMDK文件
参考文章:https://koolshare.cn/thread-138568-1-2.html
配置LEDE
刚安装完,如果不是硬件直通情况下只有一个虚拟网口链接时候建议配置wan口设置路由器。
注意:koolshare固件中默认模式下第一个网口为lan,第二个网口为wan
在虚拟机情况下,若做硬件直通,建议先通wan口,然后在pve页面进入lede控制台,启动后回车进入root命令行。
本人情况:配置时只由一个口接入家里网络,因此给lede虚拟了一个口,先在lede的lan环境下配置
- 修改lan口内网ip
vi /etc/config/network
将lan口的ip由192.168.1.1改为192.168.x.x(与网络环境同一个网段,不同于网关的ip)
reboot
网页登陆lede, 默认密码koolshare,部分情况下chrome可能无法认证,两个方法:1. 换非chrome浏览器,2. 使用隐身模式
网页修改防火墙设置,wan口入站改为接受,这样就可以wan口设置了。
返回控制台将lan口ip设置为不同网段
关闭路由器
shutdown
设置硬件直通或者增加网口,将原来网络接入网口改为第二个,及新增网口为lan,原来网口为wan,并重启路由器
在上级路由器上找到分配的ip地址,通过这个ip访问lede并完成其他设置。
LEDE关键字检查
提示1: 如果提示检测到离线安装包名有非法关键词,开启路由器的SSH功能,登录并输入以下命令后,再进行离线安装。(arm380/X7.x版本固件需要请将软件中心更新到1.4.8及以上)
sed -i 's/\tdetect_package/\t# detect_package/g' /koolshare/scripts/ks_tar_install.sh
ubuntu服务器
安装ubuntu系统
上传ISO文件,一步一步安装。没啥好说的。
- ubuntu安装bcm4322网卡:
参考网页:https://blog.csdn.net/qq_34067821/article/details/90707443
HASSIO一键安装脚本
wget https://code.aliyun.com/neroxps/hassio_install/raw/master/install.sh
chmod a+x install.sh
./install.sh
参考网页:https://bbs.hassbian.com/thread-4520-1-1.html
手工安装portainer
参考网页:https://www.jianshu.com/p/575de760bfd4
ubuntu开启ssh
最小化安装开启SSH是否会使屏幕共享失效,不会。最小安装导致没有屏幕共享
sudo apt-get install openssh-server
ubuntu开启屏幕共享
sudo apt-get update
sudo apt-get install dconf-editor
org->gnome->desktop->remote access->require encrytion 关闭
docker下的dhcpd服务器
目标,对大部分设备网关为主路由,本人设备网关为旁路由
sudo -s
docker pull networkboot/dhcpd
mkdir /data
docker run -it --init --net host -v /data:/data networkboot/dhcpd eth0
其中eth0为网络端口,通过ifconfig查看,我的是ens160
运行前在/data目录下建dhcpd.conf
参考配置文件https://fossies.org/linux/dhcp/server/dhcpd.conf.example
本人只用了subnet和host,分别指定
option domain-name-servers
和option routers
l2tp
ikuai直接配置可用
客户端使用l2tp/ipsec psk
android可直接配置使用。
windows10 配置l2tp的坑,遇到远程服务器未响应错误。居然是注册表配置问题。。。
参考:l2tp修复文章