上一篇文章见 这里 。
不知道为什么又折腾上校园网了。
What is VLAN
其实多拨还挺耗 CPU 资源的,原本羸弱的路由器肯定是不堪重负的。
正好我们有一个 x86 的小服务器可以用,但是我的服务器只有一个物理网口怎么能当路由呢?其实是可以的,我们可以把它搞成单臂路由——让 WAN 和 LAN 都从一个物理网口来连接。
在 Proxmox VE 上按照教程,启动一个 OpenWRT 虚拟机。注意选择 24.10 版本的,新版由于包管理器换成了 apk 导致一些包不能正常安装。
现在我的网络拓扑如下:
Internet <–> Router A(无线 AP、交换机 / 192.168.1.1) <–> OpenWRT VM B(拨号、xx 上网等 / 192.168.1.31)
<--> 代表之间使用实体网线连接。
首先我们来配置一下两个路由,让 B 作为旁路由工作。
在 A 的网络-接口面板中,编辑 LAN 接口,
- 在常规设置中,设置网关地址为 B 的 IP 地址;
- 在DHCP 服务器中,添加两个 DHCP 选项:
3,<B 的 IP>以及6,<B 的 IP>,<外部 DNS>。
然后进入 A 的网络-交换机面板,配置 VLAN:

这里我的 WAN、LAN1 口通过有线连接到了墙上的网络面板(双线多拨),LAN 3 连接路由 B。
- 在 VLAN ID 1 中对不作为 WAN 口的两个端口做未标记,eth0 保持已标记,其余为关;
- 对于作为 WAN 口的端口(我这里是 WAN、LAN1),分别将 LAN3(连接到旁路由的口)做已标记,对应的口做未标记,eth0 保持已标记,其余为关。记下对应的 VLAN ID(2 和 3)。
路由 A 配置大概完成了,然后我们来配置 B:
在 Proxmox VE 中,点击 Add – Network Device,VLAN Tag 填写上面 WAN 口 的 VLAN ID,有多个则创建分别创建多个:


然后进入 B 的管理界面。
我们先配置一下 B 的 LAN。其实只要配置一下网关为 A 的地址,使 A、B 成为互指网关即可。
这时候就能在 B 中拨号了。上面创建了两个带 VLAN ID 的接口,在 OpenWRT 中也能看到对应的虚拟设备(eth1、eth2,eth0 为 LAN):

先试试普通的 PPPoE 能否成功拨号,如果可以则代表已经配置成功一半了。
不过这时候应该还不能上网,我们要手动配置一下防火墙。


将 WAN 的防火墙按照如图配置,连接至 A 的 AP,然后看看能不能上网,如果能,继续配置多拨。
后面多拨就和网上的差不多了,不过我们来手动配置一下:
在 B 的网络-接口-设备中添加设备配置,按照如图配置:

然后 PPPoE 拨号时设备选创建的 MAC VLAN 设备即可,这样就可以在一个端口上拨多个号了。这里我总共用两个口拨了 5 个号(两个宽带账号,一个是薅朋友的,经测试最大同时在线数为 3,给别人保留一条)。
再配置一下 mwan3 的负载均衡即可。

注意:所有拨号的接口必须都添加到 wan 防火墙中。
效果图

效果显著,多线程下载任务大约能跑 400~500Mbps。
在 CPU 为 i5-12400 的宿主机上给 2 Cores 的资源,CPU 峰值占用在 30~40% 左右。