0x00 前言
我的路由器带有双 LAN 聚合功能,我实测后发现是 Linux bonding 中的 balance-rr
模式
但是我的路由器只有千兆网口,我的交换机跟 R86S 之前是万兆速率,这不正好,我在交换机上划个 vlan,PVE 上直接 bonding
然后 PVE 在创建 bond 接口时,报错了 bond 'bond0' - wrong interface type on slave 'enp4s0.3003' ('vlan' != 'eth or bond') (500)
0x01 手动修改配置测试
理论上来说,我干过这事,我在 RouterOS 中,创建两个 vlan,然后再 bonding,速率确实可以翻倍
我考虑到,可能是 PVE 管理网页的问题,我在 /etc/network/interfaces
中手动添加了 bond0
接口
1 | iface bond0 inet manual |
然后在网桥的 bridge-ports
里把 bond0
加进去,重载 ifreload -a
嗯看着一切正常,测速,也正常,CPU 占用率也正常
0x02 修改 PVE 支持
注意!vlan 上 bonding
没有经过 PVE 官方检验,USE AT YOUR OWN RISK,后果自负
那目前的问题就明确是,应该是 PVE 网页管理在配置的时候有检查
那就在 prel 目录直接搜一下报错
1 | root@pve-home:~# cd /usr/share/perl5 |
很显然就是这个文件了,干他
在这个文件里发现了一段这样的代码
1 | # check bond |
可以看到校验的关键if是 if ($n->{type} ne 'eth' && $n->{type} ne 'bond');
然后把 vlan 类型加在后面,在 ne 'bond'
后面添加 && $n->{type} ne 'vlan'
改成这样
1 | if ($n->{type} ne 'eth' && $n->{type} ne 'bond' && $n->{type} ne 'vlan'); |
保存,然后重启 pvedaemon
1 | service pvedaemon restart |
(๑•̀ㅂ•́)و✧,可以用了
0x03 结语
这篇文章的主要思路跟在 EMMC 上安装 PVE 很像,都是修改 PVE 的脚本代码,整体思路还是比较清晰的。
最后希望这篇博文能够为你在配置自己的 HomeLab/R86S/PVE/bonding/vlan 时,提供一些帮助。