|
|
本帖最后由 yumeimm 于 2019-3-1 10:34 编辑
0. 前言
随着移动互联网的普及,家庭宽带越来越便宜,带宽也越来越大。 而运营商也适时推出了手机和宽带绑定的策略。
这样我们的家庭往往就具有了多条上网宽带,可以接入不同的运营商,例如电信、联通、移动等。
既然有了多条宽带,就要想办法充分利用。在OpenWrt原生系统中,就具有这样的负载均衡功能,这个软件包就是mwan3.
安装此软件包方法如下:
- opkg update
- opkg list *mwan*
- opkg install mwan3
- opkg install luci-app-mwan3
复制代码 其实现的原理,是在路由器上配置多个不同wan接口,然后运用一定的策略实现流量的负载均衡。比如权重,比如ipset等。
1. IPSET介绍
ipset是iptables的扩展。 ipset是一种对IP地址集合进行分类的方法,通过对地址集合进行分类,可以在不同的集合上进行不同的操作。
对于多ISP负载均衡,我们可以将电信的IP地址集合用IPSET标记为telecom, 对移动的IP地址集合标记为cmcc, 对联通的IP地址集合标记为unicom, 等等(教育网/长宽/等类似).
然后在mwan3中建立规则, 让IPSET集合telecom走电信的wan口, 让IPSET集合cmcc走移动的wan口, 然IPSET集合unicom走联通的wan口即可。
例如如下命令创建了名为cmcc的IPSET集合,并添加了2条IP网络地址:
- ipset create cmcc hash:net
- ipset add cmcc 39.128.0.0/10
- ipset add cmcc 117.128.0.0/10
复制代码
我们可以用一个脚本来实现它: https://github.com/siwind/CHINA- ... enwrt/load_ipset.sh
命令: “load_ipset.sh cmcc.txt cmcc" 通过读取一个文本文件cmcc.txt 和 IPSET名字"cmcc" 建立了一个叫cmcc的IPSET集合。
在OpenWrt中, 将如下命令添加到开机启动文件即可开机加载相应的IPSET:
- /etc/load_ipset.sh /etc/cmcc.txt cmcc
- /etc/load_ipset.sh /etc/unicom.txt unicom
- ...
复制代码
2. mwan3配置
mwan3的具体配置略。
我们在mwan3的规则中添加一条: CMCC。 将ipset指定为“cmcc”, 出口策略为“cmcc_only”(这条策略走cmcc的wan口,具体配置略)
其它的电信、联通也可以同样添加。 最后是默认按权重的负载均衡规则即可。
3. 总结
1) 编译OpenWrt固件时需要添加IPSET支持
2) mwan3的规则有优先级,注意规则的顺序,否则和预期的结果不同。 默认规则放最后!!!
3)较好的实现多ISP负载均衡,必须依赖于运营商的IP地址段收集。 (如果有开源的更好)4) 访问网络时,获得的是哪个运营商的IP地址,还和DNS解析服务器的顺序和解析速度有关。不过这个不影响负载均衡的结果。
5)当然在mwan3中还可以添加其它策略,实现定制的按需流量策略~~
只要经常访问的地址段都能收集到,负载均衡的效果是很不错的。
最后,附上网络收集的一些地址段:
https://github.com/siwind/CHINA-ISP-IPSET
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|