目前校园网可以认证3个设备,既然都搞了一个NAT,就想到了伪多播来实现多线程下载速度叠加。
Linux VM使用Debian 11,路由器使用OpenWrt 22.03。
上文:传送门
注意:本篇非常不严谨,属于能动就行的水平
Linux VM(负责网页认证)部分:
由于校园网使用网页认证,因此需要新开一个VM来登录网页进行认证,由于bridge后两个VM有不同的mac地址,因此连接校园网的端口不需要进行特殊处理。
对于连接到路由器的端口,由于2个VM要复用一个端口,客户端(路由器)wan口仅有一个mac地址,这里使用VLAN(802.1q)来进行复用。
安装vlan包
apt update
apt install vlan
加载VLAN内核模块
modprobe 8021q
在/etc/modules
添加一行使vlan模块开机自动加载
8021q
修改网络配置文件(/etc/network/interfaces
),这里使用VLAN 2,静态IP(192.168.252.1/24
, fd90:90a4:5a46::1/64
):
iface eth1.2 inet static
address 192.168.252.1
netmask 255.255.255.0
iface eth1.2 inet6 static
address fd90:90a4:5a46::1
netmask 64
启用该端口
ifup eth1.2
修改后的完整nat.sh
# POSTROUTING can be handled by MASQUERADE
# PREROUTING need specify network card (wan ip -> (forward) -> lan ip)
# tcp 4001 -> 192.168.252.2:4001
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 4001 -j DNAT --to-destination 192.168.252.2:4001
# iptables -t nat -A POSTROUTING -p tcp -d 192.168.252.2 --dport 4001 -j SNAT --to-source 192.168.252.1
# udp 4001 -> 192.168.252.2:4001
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 4001 -j DNAT --to-destination 192.168.252.2:4001
# iptables -t nat -A POSTROUTING -p udp -d 192.168.252.2 --dport 4001 -j SNAT --to-source 192.168.252.1
# enable eth1.2
ifup eth1.2
# route to eth0
ip -6 route add default dev eth0
# eth1.2 -> (forward) -> eth0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1.2 -o eth0 -j ACCEPT
ip6tables -t nat -A POSTROUTING -s fd90:90a4:5a46::/64 -j MASQUERADE
ip6tables -A FORWARD -i eth1.2 -o eth0 -j ACCEPT
路由器方面:
首先需要在Network -> Interfaces -> Devices中,添加VLAN (802.1q)
项,VLAN ID为2,名称我这里用的是wan.2
接着在Interfaces中添加相应的接口(防火墙在wan域中),我这里使用的wanb(192.168.252.2/24
)、wanb6(fd90:90a4:5a46::2/64
),静态地址;原接口为wan、wan6,对应未启用VLAN的拨号VM
其中,由于mwan3要求个接口跃点数不同,因此需要将wan、wan6、wanb、wanb6的跃点数分别更改为不同值,我这里分别为10、11、20、21。
使用mwan3
来处理伪多播,因此需要安装mwan3
相关包
mwan3
luci-app-mwan3
安装完成后,在mwan3设置界面的Interface中,分别添加四个接口对应4个wan接口
由于这里我们要进行网速叠加,因此Member选项卡中,添加的对应每个接口的跃点数和权重应设置为相同值(这里全为1
Policy选项卡中,将所有member添加至balanced策略中,并将balanced策略设置为默认策略
最后在规则中,将ipv4和ipv6的默认策略更改为balanced
最后,由于mwan3目前不会自动进行nat66,因此需要我们在防火墙中加入MASQUERADE规则,否则客户端将不能使用ipv6网络
ip6tables -t nat -A POSTROUTING -o wan -j MASQUERADE
ip6tables -t nat -A POSTROUTING -o wan.2 -j MASQUERADE
至此,添加第二个拨号VM结束,速度应该为两个拨号速度的和,添加更多拨号大同小异
参考:
[OpenWrt Wiki] mwan3 (Multi WAN load balancing/failover)
How To Configure VLAN Interface on Debian 10/11 – TechViewLeo
makefile – Load linux kernel module at boot – Stack Overflow
Views: 41