IP策略分流(国内外分流、运营商分流等)和源进源出在openwrt上的实现

IP策略分流(国内外分流、运营商分流等)和源进源出在openwrt上的实现

查看: 24020|回复: 85

IP策略分流(国内外分流、运营商分流等)和源进源出在openwrt上的实现

火

[复制链接]

ylg

ylg

当前离线

积分394

IP卡

狗仔卡

电梯直达

1#

发表于 2023-6-16 14:10

|

只看该作者

|倒序浏览

|阅读模式

本帖最后由 ylg 于 2023-6-29 08:55 编辑

网络环境:多wan口openwrt X86软路由,电信+联通pppoe接入,动态公网IP,内网部署NAS备份数据+下载思考资料+流媒体服务;

诉求:1、策略分流(电信走电信,联通走联通,国内负载均衡,海外走联通(联通国际出口负载低));2、外网访问内网流媒体服务+备份数据回传,外网电信IP走电信wan口,其它走联通wan口。

IP策略分流(国内外分流、运营商分流等):1、使用WMAN3实现IP策略分流,基本配置网上教程一大堆不必重复,需要注意如下:网络-接口设置里,wan接口高级设置里的网关跃点每条线路需要设置不同数字,数字越小该线路的优先级越高;MWAN全局菜单-本地源接口选项选择lan;MWAN成员的跃迁点数和比重根据带宽实际情况按比列设置数字;规则从上到下匹配,匹配成功后下面的规则被忽略,不符合任何规则的流量使用主路由表进行路由,所以根据实际情况调整规则上下位置及其重要。

2、精准的IP策略分流依赖于准确的IP数据库,经过研究比对,择优选用了gaoyifan的开源项目:https://github.com/gaoyifan/china-operator-ip,感谢作者的贡献。实现办法如下:添加计划任务,于每天凌晨2点更新IP数据库,并执行各个脚本,如下:

0 2 */1 * * cd /etc/ipset-rules2 && wget -m -c -t 10 -T 60 -N https://gaoyifan.github.io/china-operator-ip/ && sh genrules.sh && ipset flush && sh /etc/ipset-rules2/china.sh && sh /etc/ipset-rules2/china6.sh && sh /etc/ipset-rules2/chinanet.sh && sh /etc/ipset-rules2/chinanet6.sh && sh /etc/ipset-rules2/unicom.sh && sh /etc/ipset-rules2/unicom6.sh && /etc/init.d/mwan3 restart#wget镜像更新IP数据库,得到最新国内各ISP广播使用的IP段:wget -m -c -t 10 -T 60 -N https://gaoyifan.github.io/china-operator-ip/

#genrules.sh是将更新后的IP数据(txt文件)转换为ipset注入的shell脚本,genrules.sh内容如下:#!/bin/bashcat /etc/ipset-rules2/gaoyifan.github.io/china-operator-ip/china.txt | awk '{print "ipset add china " $0}' | cat > /etc/ipset-rules2/china.shsed -i '1s/^/#!\/bin\/bash\nipset create china hash:net hashsize 16384 maxelem 262144\n/' /etc/ipset-rules2/china.shchmod +x /etc/ipset-rules2/china.shcat /etc/ipset-rules2/gaoyifan.github.io/china-operator-ip/china6.txt | awk '{print "ipset add china6 " $0}' | cat > /etc/ipset-rules2/china6.shsed -i '1s/^/#!\/bin\/bash\nipset create china6 hash:net family inet6 hashsize 4096\n/' /etc/ipset-rules2/china6.shchmod +x /etc/ipset-rules2/china6.shcat /etc/ipset-rules2/gaoyifan.github.io/china-operator-ip/chinanet.txt | awk '{print "ipset add chinanet " $0}' | cat > /etc/ipset-rules2/chinanet.shsed -i '1s/^/#!\/bin\/bash\nipset create chinanet hash:net hashsize 16384 maxelem 262144\n/' /etc/ipset-rules2/chinanet.shchmod +x /etc/ipset-rules2/chinanet.shcat /etc/ipset-rules2/gaoyifan.github.io/china-operator-ip/chinanet6.txt | awk '{print "ipset add chinanet6 " $0}' | cat > /etc/ipset-rules2/chinanet6.shsed -i '1s/^/#!\/bin\/bash\nipset create chinanet6 hash:net family inet6 hashsize 4096\n/' /etc/ipset-rules2/chinanet6.shchmod +x /etc/ipset-rules2/chinanet6.shcat /etc/ipset-rules2/gaoyifan.github.io/china-operator-ip/unicom.txt | awk '{print "ipset add unicom " $0}' | cat > /etc/ipset-rules2/unicom.shsed -i '1s/^/#!\/bin\/bash\nipset create unicom hash:net hashsize 16384 maxelem 262144\n/' /etc/ipset-rules2/unicom.shchmod +x /etc/ipset-rules2/unicom.shcat /etc/ipset-rules2/gaoyifan.github.io/china-operator-ip/unicom6.txt | awk '{print "ipset add unicom6 " $0}' | cat > /etc/ipset-rules2/unicom6.shsed -i '1s/^/#!\/bin\/bash\nipset create unicom6 hash:net family inet6 hashsize 4096\n/' /etc/ipset-rules2/unicom6.shchmod +x /etc/ipset-rules2/unicom6.sh

#注入ip条目前,清空ipset中所有集合的ip条目:ipset flush然后就是逐个运行ipset注入脚本,之后重启mwan3。

#由于ipset运行于内存中,路由器重启后失效,所以需要添加开机脚本,在系统-启动项-本地启动脚本 'exit 0' 之前写入:sh /etc/ipset-rules2/china.shsh /etc/ipset-rules2/china6.shsh /etc/ipset-rules2/chinanet.shsh /etc/ipset-rules2/chinanet6.shsh /etc/ipset-rules2/unicom.shsh /etc/ipset-rules2/unicom6.sh/etc/init.d/mwan3 restart

之后,在mwan规则菜单里,ipset项填上对应的集合名称,选好分配策略即可,下图示例为电信线路ipv4规则,所有访问电信ipv4的流量都走电信wan口:

至此,完成了内网访问互联网的IP策略分流。

源进源出:

实现源进源出的方法是给不同线路进来的访问流量打标签(参考:https://blog.csdn.net/yk_wing4/article/details/90474164),然后匹配对应的路由表,原路返回数据:在防火墙-自定义规则里加入如下规则,对新建流打上标签:

#从电信线路进来的流量打上标签0x1100/0xff00iptables -t mangle -A PREROUTING -i pppoe-wan_CT -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1100/0xff00

#从联通线路进来的流量打上标签0x2200/0xff00iptables -t mangle -A PREROUTING -i pppoe-wan_CU -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x2200/0xff00#对任意方向的报文,从 ct->mark(连接跟踪标签)拷贝到 skb->mark(报文标签)iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark --ctmask 0xff00 --nfmask 0xff00#策略路由:源地址 是 192.168.11.0/24 并且 打上 00x1100/0xff00 标签 的报文 使用路由表1(MWAN3已将电信出口的路由写入table 1)ip rule add from 192.168.11.0/24 fwmark 0x1100/0xff00 table 1#策略路由:源地址 是 192.168.11.0/24 并且 打上 00x2200/0xff00 标签 的报文 使用路由表2(MWAN3已将联通出口的路由写入table 2)ip rule add from 192.168.11.0/24 fwmark 0x2200/0xff00 table 2

配置好后查看路由规则如下:

至此,外网访问内网即可原路返回,避免A wan口请求的数据从B wan口回去。

路由器openwrt

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

分享到:

QQ好友和群

QQ空间

收藏28

分享

支持0

反对0

相关帖子

• BE10000(RC01)的QWRT NFC功能实现

• (已成功)求助求助,路由器是AX3000E,想要开启SSH来通过命令绑定arp

• opwnrt路由一样可以socls5单机单ip

• Quantum Fiber W1700K路由器已经适配OpenWrt官方固件

• h3c zeroWrt uboot

• ROCK 3A OPENWRT

• 求推荐一个有2.5口的wifi7能刷openwrt的路由器

• K2P现在用哪个OpenWrt

• 华硕 Lyra MAP-AC2200刷openwrt教程2026年1月27日

• 在openwrt.ai上定制的openwrt直刷玩客云后不能正常使用,有大侠知道怎么弄吗?

• 求K2P openwrt chaos_calmer V1.7 正式版发布

• openwrt搭配5G通信壳有公网ipv6吗?

• 蒲公英x1pro 能刷cudy tr3000的openwrt固件嗎

• 红米AX6S刷了Openwrt之后没mesh有大佬知道怎么开吗

• 今天入手了一个CMCC的RAX3000M,通过努力,刷入了openwrt,使用中继,感觉速度没提升

• tplink5620能刷openwrt吗

• 求助大佬,N1盒子刷了openwrt系统,设置无线中继失败!

• 【新人求助】N1盒子Openwrt旁路由无法上网问题

• 请教下各位N1 OPENWRT用久了出现这几个问题怎么解决

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

置顶卡

沉默卡

喧嚣卡

顶贴卡

显身卡

wind333

wind333

当前离线

积分578

IP卡

狗仔卡

2#

发表于 2023-6-16 15:09

|

只看该作者

我的openwrt官方版本iptables命令好像用不了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

ylg

试试升级下版本呢

详情

回复

发表于 2023-6-16 15:11

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

ylg

ylg

当前离线

积分394

IP卡

狗仔卡

3#

楼主|

发表于 2023-6-16 15:11

|

只看该作者

wind333 发表于 2023-6-16 15:09

我的openwrt官方版本iptables命令好像用不了

试试升级下版本呢

点评

wind333

已经是官方最新版了,看了下好像命令改了尝试了下没有报错。 iptables -t mangle -A PREROUTING -i pppoe-wan -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1100/0xff00

iptables -t mangle -A PREROUTING

详情

回复

发表于 2023-6-16 15:27

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

wind333

wind333

当前离线

积分578

IP卡

狗仔卡

4#

发表于 2023-6-16 15:18

|

只看该作者

大佬方便加个微信吗

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

wind333

wind333

当前离线

积分578

IP卡

狗仔卡

5#

发表于 2023-6-16 15:27

|

只看该作者

ylg 发表于 2023-6-16 15:11

试试升级下版本呢

已经是官方最新版了,看了下好像命令改了尝试了下没有报错。 iptables -t mangle -A PREROUTING -i pppoe-wan -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x1100/0xff00

iptables -t mangle -A PREROUTING -i pppoe-vwan0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 0x2200/0xff00

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

wind333

wind333

当前离线

积分578

IP卡

狗仔卡

6#

发表于 2023-6-16 15:32

|

只看该作者

大佬能远程帮我看下吗源进源出的问的吗?付费也可以

点评

ylg

我也是参考:https://blog.csdn.net/yk_wing4/article/details/90474164这个来设置的,目前工作正常无异常,建议多看下这个链接。

详情

回复

发表于 2023-6-16 15:42

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

lengyi

lengyi

当前离线

积分244

IP卡

狗仔卡

7#

发表于 2023-6-16 15:36

|

只看该作者

感谢分享!!

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

wind333

wind333

当前离线

积分578

IP卡

狗仔卡

8#

发表于 2023-6-16 15:41

|

只看该作者

这是按照你的命令执行完后结果,然后测试了下外网访问流量还是没有源进源出。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

ylg

貌似table 1和 table 2混一起了,检查下mwan3设置,按理这2张表各自对应一个wan口

详情

回复

发表于 2023-6-16 15:56

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

ylg

ylg

当前离线

积分394

IP卡

狗仔卡

9#

楼主|

发表于 2023-6-16 15:42

|

只看该作者

wind333 发表于 2023-6-16 15:32

大佬能远程帮我看下吗源进源出的问的吗?付费也可以

我也是参考:https://blog.csdn.net/yk_wing4/article/details/90474164这个来设置的,目前工作正常无异常,建议多看下这个链接。

点评

wind333

能否帮我看下,这块看不懂,知识付费。

详情

回复

发表于 2023-6-16 16:00

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

ylg

ylg

当前离线

积分394

IP卡

狗仔卡

10#

楼主|

发表于 2023-6-16 15:56

|

只看该作者

wind333 发表于 2023-6-16 15:41

这是按照你的命令执行完后结果,然后测试了下外网访问流量还是没有源进源出。

...

貌似table 1和 table 2混一起了,检查下mwan3设置,按理这2张表各自对应一个wan口

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

wind333

wind333

当前离线

积分578

IP卡

狗仔卡

11#

发表于 2023-6-16 16:00

|

只看该作者

ylg 发表于 2023-6-16 15:42

我也是参考:https://blog.csdn.net/yk_wing4/article/details/90474164这个来设置的,目前工作正常无异 ...

能否帮我看下,这块看不懂,知识付费。

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

suifeng260940

suifeng260940

当前离线

积分237

IP卡

狗仔卡

12#

发表于 2023-6-16 16:34

|

只看该作者

111111111111111111

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

小熊仔

小熊仔

当前离线

积分730

IP卡

狗仔卡

13#

发表于 2023-6-16 22:32

|

只看该作者

谢谢分享!!!!!!!!!!!!!

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

wulishui

wulishui

当前离线

积分8519

IP卡

狗仔卡

14#

发表于 2023-6-16 22:53

|

只看该作者

本帖最后由 wulishui 于 2023-6-17 01:12 编辑

看了下,准备做个东西代替掉万年古坟 mwan3helper

粗略调了下没发现什么错误,过几天再看看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

Zephiris

大佬,等待啊!

发表于 2023-11-29 15:23

caolei3721

你这个Openwrt用的什么版本啊,mwan3helper为什么有IPset选项卡啊

详情

回复

发表于 2023-8-2 20:24

小熊仔

等大神发布

详情

回复

发表于 2023-6-17 18:53

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

小熊仔

小熊仔

当前离线

积分730

IP卡

狗仔卡

15#

发表于 2023-6-17 18:53

|

只看该作者

wulishui 发表于 2023-6-16 22:53

看了下,准备做个东西代替掉万年古坟 mwan3helper

粗略调了下没发现什么错误,过几天再看看

等大神发布

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

相关推荐

365bet手机官网网址 入睡难、容易醒、睡眠短,原来可以这么解决~

入睡难、容易醒、睡眠短,原来可以这么解决~

📅 08-31 👁️ 1147
365账号被关闭 春节吃团圆饭的简笔画怎么画简单(共19张)

春节吃团圆饭的简笔画怎么画简单(共19张)

📅 02-13 👁️ 9945