不同运营商访问同一个目标网站的速度不同,如果该网站只有移动出口,通过电信网访问速度则相对较慢。不同运营商的国际骨干网线路也不相同,访问国际网站的速度也大不相同。因此,如果能接入多个运营商的宽带,则根据请求的目标IP使用策略进行分流很有必要。
目录
一、实验说明
二、MWAN3安装与配置
1. 安装
2. 配置
三、IP段获取并导入ipset
1. 各国IP段文件获取
2. 解析并导入ipset
3. 添加启动项和计划任务
四、MWAN3规则的进一步配置
五、运营商分流
OpenWrt接口情况:
① WAN -> 电信网(IP:171.218.97.213)
② WAN2 -> 联通网(IP:175.152.10.101)
注意:使用MWAN3必须先在 “网络->接口” 中为各接口设定不同的网关跃点。
多宽带联网(二) OpenWrt中利用MWAN3负载均衡实现带宽叠加https://blog.csdn.net/Cx2008Lxl/article/details/123116458
在 “网络->负载均衡(load balancing)” 或名为 “网络->MultiWAN管理器” 的菜单下,按照2.1的教程配置好接口和成员和策略。
1)成员配置
本实验中,WAN接口对应wan_m1_w3成员、WAN2接口对应wan2_m1_w3成员。
2)策略配置
本实验策略配置情况如图1,规划的策略为:
① 国际网站采用wan2_only策略,仅采用联通网络。
② 国内网站采用wan_only策略,仅采用电信网络。
3)规则配置
新建一名为 “internet” 的规则,将 “分配的策略” 改为 “wan2_only”,保存并应用,如图2。
【说明】
MWAN3规则是从上往下匹配的。由于国内的IP段的列表比国际IP段少,因此后续将制定国内IP段的列表,并为国内IP规则配置筛选条件(图2中前3个规则)。如果不满足国内IP规则的条件,则会执行下一条 “internet” 规则。因此 “internet” 规则不需要配置条件,只需指定策略为 “wan2_only” 即可。
APNIC负责亚太地区的IP分配,通过脚本获取并解析即可得到国内IP段。
打开OpenWrt终端,在 “/etc” 目录中新建名为 “ipset-rules” 的目录,相关文件将存放在该目录下。切换到该目录,并从APNIC获取IP段划分文件。
mkdir /etc/ipset-rules
cd /etc/ipset-rules
wget -c http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
在 “/etc/ipset-rules” 目录下新建名为 “genrules.sh” 的文件,写入以下内容并保存退出。
该脚本执行后将从 “delegated-apnic-latest” 文件中解析出国内IPv4地址段,并构建导入ipset的脚本文件,保存至 “ipv4_CN.sh” 脚本文件中,执行该文件即可将IP地址段规则导入ipset。(需要IPv6地址段可取消第6-8行注释)。
#!/bin/bash
cat delegated-apnic-latest | awk -F '|' '/CN/&&/ipv4/ {print "ipset add ipv4_CN " $4 "/" 32-log($5)/log(2)}' | cat > ipv4_CN.sh
sed -i '1s/^/#!\/bin\/bash\nipset create ipv4_CN hash:net hashsize 16384\n/' ipv4_CN.sh
chmod +x ipv4_CN.sh
#cat delegated-apnic-latest | awk -F '|' '/CN/&&/ipv6/ {print "ipset add ipv6_CN " $4 "/" $5}' | cat > ipv6_CN.sh
#sed -i '1s/^/#!\/bin\/bash\nipset create ipv6_CN hash:net family inet6 hashsize 4096\n/' ipv6_CN.sh
#chmod +x ipv6_CN.sh
在终端中执行以下命令,为 “genrules.sh” 脚本赋予执行权限,并执行一次该脚本。
chmod +x genrules.sh
sh genrules.sh
由于ipset保存在内存中,因此每次启动均需要重新将规则导入ipset。添加启动项可自动执行导入过程。
APNIC的地址段每日更新,添加计划任务自动从APNIC获取地址段文件,可保持规则最新。
1)启动项添加
OpenWrt中,切换到 “系统->启动项->本地启动脚本” 页面。将下列代码粘贴至 “exit 0” 之前并保存。
# 载入中国大陆IP范围 至 ipset
sh /etc/ipset-rules/ipv4_CN.sh
/etc/init.d/mwan3 restart
2)计划任务添加
OpenWrt中,切换到 “系统->计划任务” 页面,将下列代码粘贴至文本框中并保存。
下列代码表示每日0点自动从APNIC获取最新的IP地址段并生成ipset导入脚本。
0 0 */1 * * cd /etc/ipset-rules;rm -rf delegated-apnic-latest;wget -c http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest;sh genrules.sh
计划任务定时时间说明见下列文章的 五、解决OpenWrt的Frpc掉线问题。
Frp内网穿透实现 以服务器CentOS+客户端OpenWrt为例https://blog.csdn.net/Cx2008Lxl/article/details/1232628303)重启OpenWrt生效规则
前往 MWAN3规则配置页面。编辑国内IP规则(本实验为图2中前3个规则),在 “IP配置” 中选择第三章中导入ipset的规则 “ipv4_CN”并保存,如图3。然后保存和应用。
打开网站:http://www.ip111.cn,可测试国内国外网站访问的源IP。也可在CMD内通过tracert跟踪判断路由选择情况。
运营商分流原理与国内外分流原理一样,仅需将4.1的IP段更换为运营商IP段,再修改MWAN3规则即可,本实验将不再进一步演示。