使用RouterOS进行分流,网上早已有大神进行了实现,比较普通的是基于IP的分流,基于域名的分流也要,不过是V6的,这里总结了V7基于域名的分流方式,要比V6方便许多
本人也是看了多篇文章有所启发,比较关键的脚本
https://gitee.com/dbgeek/chnroute
git上的内容比较简单,具体使用方式可见这篇文件
https://blog.51cto.com/Gzy90/6426211
大致方法就是
将国内IP都加入到一个列表中
默认走国内路由
不再列表中的走国外路由
dns的作用是指定域名使用8.8.8.8解析(8.8.8.8已指定走国外路由)
其它域名走国内的114.114.114.114/223.5.5.5
(注意:DNS要做劫持)
在加定向解析时文章作者做了修改
/ip dns static add forward-to=8.8.8.8 type=FWD address-list=overip regexp=".*baidu\\.com\$"
把address-list给删了,原因V6不支持
这里可以看下V6基于域名分流的做法
https://www.cnblogs.com/Hope-/p/17953953
通过定时脚本,将指定域名的解析结果添加到iplist中,实现IP分流
在V7中可以直接使用上面的命令实现
当触发解析时会自动加入到list中,前面有D标识,比V6用脚本方便了不少
V7和V6在语法上存在略微的差距
要先创建route-table,添加路由时用的也是routing-table(不是routing-mark)
/routing table add fib name=oversea
/ip route add distance=1 gateway=海外出口 routing-table=oversea
#关联address-list列表和routing-table(src-address根据实际情况填)
/ip firewall mangle add action=mark-routing chain=prerouting dst-address-list=overip new-routing-mark=oversea passthrough=yes src-address=192.168.0.0/16
总结:
本质上还是基于IP分流,V7支持自动将指定域名的解析结果添加到指定列表中,到达指定分流的目的