恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3226|回复: 34

RouterOS上的电信/移动双路由,按目标IP确定出口

[复制链接]
发表于 2018-10-10 22:11 | 显示全部楼层 |阅读模式
本帖最后由 stevemorrislian 于 2019-3-15 17:02 编辑

基本设想是国外用移动线路优先,电信用电信出口优先,其他就随缘了

首先是下载2个路由表,一个国内IP地址表,一个电信地址表=>这里的关键是逻辑关系,想清楚与和非的关系,因为出口列表很难用两个 《非》来界定出口方向

GitHub的ChnRoutes路由表,以APNIC的独立系统号为标准,随时更新的
https://github.com/fivesheep/chnroutes/blob/master/chnroutes.py
是用python编写的,也可以直接下载读取的txt文件。或者rsc执行文件,可以放到ROS下去执行

在路由器中建立地址表Domestic,用ip->firewall->address list以后也可以添加这个表
IP -> routes下,修改0.0.0.0/0的移动出口网关,添加Routing Mark=CM

dst-address=0.0.0.0/0 gateway=192.168.100.1 gateway-status=192.168.100.1 reachable via  pppoe-out1
        distance=1 scope=30 target-scope=10 routing-mark=CM
也就是说这个标签的会走192.168.100.1这个出口。

然后在IP->firewall->mangle下,建立prerouting的chain,在advance下设置条件dest. address list为"非"Domestic,方框的"!“表示非,domestic是下载的地址表
chain=prerouting action=mark-routing new-routing-mark=CM passthrough=yes  dst-address-list=!Domestic
其中prerouting的数据链表示在路由前作标记,这样不在Domestic的表中的目标IP,就打了标记CM,路由将选择移动出口

但是国内除了电信,还有联通。而去联通目标也是移动更好。
所以第二选择是电信,方法差不多,就是电信的标记TeleCom,目标地址不用非,也就是没“!”号。
如果有第三,第四出口,都不能用!的地址表

最后还是把不打标记的路由0.0.0.0/0加上,免得数据出不去,实际上考虑的是3出口状态,你懂的!

在nat的配置下,每个方向都要做masquerade,看上去差不多了。考虑到电信,移动的MTU,MSS不同change mss,取最小的值。虽然估计1480也够
chain=forward action=change-mss new-mss=1460 passthrough=yes tcp-flags=syn protocol=tcp log=no log-prefix=""



后面讲我自己遇到的问题
1,原来想只打telecom的标记,因为打标记的路由是优先的,如果打电信路由,国外的就没有标记,想出国的数据就会走到国内(是的。逻辑混乱,但请另外理解),最后没有标记的还是会经过移动出口的

2,想先打移动(移动不肯给公网IP,固定的私网)而不是电信,发现用非电信+非国内打标记,那么国内的标记就会出现2次都打标记的情况(国外也是非电信,与逻辑混乱一个意义),对路由器而言会占用CPU,关键是还会走错地方

3,手贱,选择了自己路由器PPPoE的电信出口,这样就有一个公网IP可以测试用途了(比如voip的电话通过l2tp用来从家里打电话)。这引起了LOG大爆发,赶紧开防火墙
规则:
0    chain=input action=drop src-address-list=BlockIPs log=no log-prefix=""
1    chain=forward action=drop src-address-list=BlockIPs log=no log-prefix=""
2    chain=output action=drop dst-address-list=BlockIPs log=no log-prefix=""

建立黑名单,进出遇到BlockIPs表里的IP地址全部封杀,用mangle,因为黑客也是不固定IP的,就停掉5天,免得地址表太大
   chain=input action=add-src-to-address-list protocol=tcp src-address=!172.16.0.0/16 src-address-list=192.168.0.0/16  address-list=BlockIPs address-list-timeout=5d port=21-25 log=no log-prefix=""

原来只想input的可能,发现log内还有很多port=23的试探,加了prerouting,
   chain=prerouting action=add-src-to-address-list protocol=tcp src-address=!192.168.0.0/16  src-address-list=!172.16.0.0/16 address-list=BlockIPs address-list-timeout=5d port=21-25 log=no log-prefix=""

对voip盗打电话我比较痛恨,关15天,地址表里也分得清情况
   chain=prerouting action=add-src-to-address-list protocol=udp src-address=!192.168.0.0/16  src-address-list=!172.16.0.0/16 address-list=BlockIPs address-list-timeout=2w1d port=5060-5061 log=no log-prefix=""

三天有680个IP被加入BlockIPs,其中1/10来自盗打电话的试探。以后看connections再加规则

4,一个动态路由的测试,为了保障移动出口到国外的带宽,大部分还是走电信出口,但遇到特殊需求时走移动口
开了一个192.168.88.0/24的DHCP,这个地址段中如果访问推文(或者开着这个窗口不关),以后所有数据就去移动,平常即使国外也走电信出口

先建立钩子,一旦访问目标在ToWatch这个List里,就把源IP放进去国外的临时表SourceTemp(过期时间1分钟),这个list内就是自己常看的电视,比如skynet,Bloomberg,twitter这些IP
chain=prerouting action=add-src-to-address-list protocol=tcp src-address=192.168.88.0/24  dst-address-list=ToWatch address-list=SourceTemp address-list-timeout=1m log=no log-prefix=""
然后给源SourceTemp也打上第一个CM的标记就可以了,只要关掉相应的窗口,就回到最后不打标记的出口

5,路由器上同时做dns forward,这样路由器本身就要访问外网,并没有内网192.168.0.0/16作为源地址的连接。为了解决这个问题,另外建立chain=output,条件一样
同时又发现又有大量的dns访问,同样用mangle的input链,从PPPoE进来的外网IP都放入黑名单。
发现不能把forward的上线dns设置为8.8.8.8,因为它太著名,许多污染记录都是针对它,不如找个冷门的dns,只要不在国内,也不通过国内的接口去访问

6,终于找到了解决DNS的方法,不仅要躲在防火墙后,lookup也不能从正常的出口走。好在我本来就通过CAPsMAN管理着多个LAP,用LAP同步8.8.8.8

7,有些用了CDN的网站,被分流后无法正常访问,因为它本身就用了不同的IP,当来源属于不同的IP时就无法正常运作了。我看股票的网站就有这情况,解决方法就是先建立一个表,CDNSites,一旦访问这些IP,就把源IP加入NoCDN,对NoCDN的源暂时(30秒)不走打标记的路由。一旦手机把APP关掉,就恢复按目标IP分流,方法基本同4,只是反着来。



我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-10-10 22:26 | 显示全部楼层
有空接着写,主要是遇到的问题
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-10-14 22:57 | 显示全部楼层
楼主实现了嘛?我和楼主一模一样,加一个QQ交流一下
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-10-15 21:54 | 显示全部楼层
168kingmu 发表于 2018-10-14 22:57
楼主实现了嘛?我和楼主一模一样,加一个QQ交流一下

总有些细节不尽如人意,但是给出的这些都是成功测试的
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-10-15 22:03 | 显示全部楼层
本帖最后由 stevemorrislian 于 2018-10-15 22:07 编辑
168kingmu 发表于 2018-10-14 22:57
楼主实现了嘛?我和楼主一模一样,加一个QQ交流一下

我的dns解析次序是自己本地服务器的dnsmasq,然后是114.114.114.114,所以结果大多不是电信的,目标移动的最多。这是对sina的结果
/tool> traceroute www.sina.com
# ADDRESS                          LOSS SENT    LAST     AVG    BEST   WORST STD-DEV STATUS                                 
1 172.16.6.1                         0%    2   4.3ms     4.5     4.3     4.7     0.2                                       
2 ##########                    0%    2  98.4ms    87.4    76.3    98.4    11.1                                       
3###########                   0%    2   5.7ms       6     5.7     6.2     0.3                                       
4 172.18.27.1                        0%    2  40.4ms    42.4    40.4    44.3       2                                       
5 223.119.0.165                      0%    2  41.9ms    41.6    41.3    41.9     0.3                                       
6 223.118.18.161                     0%    2 245.5ms     245   244.4   245.5     0.6                                       
7 149.14.81.185                      0%    2 256.1ms   263.3   256.1   270.5     7.2                                       
8 130.117.2.13                       0%    2 264.4ms   264.4   264.4   264.4       0                                       
9 154.54.56.238                      0%    1 266.8ms   266.8   266.8   266.8       0                                       
10                                  100%    1 timeout                                                                        
11                                  100%    1 timeout                                                                        
12                                  100%    1 timeout                                                                        
13                                  100%    1 timeout                                                                        
14                                  100%    1 timeout                                                                        

/tool> traceroute www.sina.com.cn
# ADDRESS                          LOSS SENT    LAST     AVG    BEST   WORST STD-DEV STATUS                                 
1 192.168.100.1                      0%    4   0.2ms     1.2     0.2     4.1     1.7                                       
2 100.75.0.1                         0%    4   7.3ms     7.8       7     8.9     0.7                                       
3 #########                   0%    4     7ms    13.4     5.8    33.2    11.4                                       
4*************                  25%    4    47ms      22     7.6      47    17.7                                       
5##########                    0%    4     7ms     7.2       7     7.3     0.1                                       
6                                  100%    4 timeout                                                                        
7 221.183.55.33                     50%    4 timeout    10.3     9.9    10.6     0.4                                       
8 223.120.22.6                       0%    4  58.9ms    59.4    58.9    60.3     0.7                                       
9 223.120.2.1                        0%    3  40.1ms      40    39.9    40.1     0.1                                       
10 223.120.2.54                       0%    3    40ms    41.2      40      42     0.9                                       
11 123.255.90.36                      0%    3  41.2ms    42.2    41.2    43.7     1.1                                       
12 218.189.124.194                    0%    3  51.6ms    49.8    48.6    51.6     1.3                                       
13                                  100%    3 timeout                                                                        
14 36.51.254.37                       0%    3  41.9ms    42.3    41.9    43.1     0.5                                       


> server 202.96.209.133
默认服务器:  ns-pd.online.sh.cn
Address:  202.96.209.133

> www.sina.com.cn
服务器:  ns-pd.online.sh.cn
Address:  202.96.209.133

非权威应答:
名称:    spool.grid.sinaedge.com
Address:  202.102.94.124
Aliases:  www.sina.com.cn

>




/tool> traceroute 202.102.94.124
# ADDRESS                          LOSS SENT    LAST     AVG    BEST   WORST STD-DEV STATUS                                 
1 ##########                       0%   12   3.9ms     4.9     1.9     7.2     1.8                                       
2 ##########                        0%   12   4.7ms     6.6     3.1    10.7     2.2                                       
3 ##########                     0%   12   3.4ms     4.3       3     9.4     2.2                                       
4 202.97.29.110                      0%   12   8.9ms     8.6     7.4    10.7     0.8                                       
5 61.160.140.46                      0%   12   8.2ms     7.7     6.8     8.2     0.4                                       
6 202.102.73.194                     0%   12  11.4ms    14.3    11.4    25.6     3.7                                       
7 180.97.12.62                       0%   12  13.5ms    27.4    11.5    60.2    15.5                                       
8                                  100%   12 timeout                                                                        
9 202.102.94.124                     0%   11   7.8ms     7.9     7.6     8.2     0.2   

点评

我的dns是一台lede,所有流量都会经过软件中心的$$,他解析出来后经过ros出去,Facebook可能没有,微信有么,或者tg?不行的话我回去申请一下fb,不过fb要审核本人头像?可能需要一点时间  详情 回复 发表于 2018-10-16 11:22
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-10-16 11:22 | 显示全部楼层
stevemorrislian 发表于 2018-10-15 22:03
我的dns解析次序是自己本地服务器的dnsmasq,然后是114.114.114.114,所以结果大多不是电信的,目标移动 ...

我的dns是一台lede,所有流量都会经过软件中心的$$,他解析出来后经过ros出去,Facebook可能没有,微信有么,或者tg?不行的话我回去申请一下fb,不过fb要审核本人头像?可能需要一点时间

点评

tg是啥?  发表于 2018-10-16 14:23
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-10-16 14:58 | 显示全部楼层
telegram....我申请fb了
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-10-16 21:17 | 显示全部楼层
我邮箱私聊你了
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-10-20 12:11 | 显示全部楼层
本帖最后由 168kingmu 于 2018-10-20 12:46 编辑



这是我现在的拓扑图
ROS(IP:192.168.14.1)负责DHCP和拨号
LEDE(IP:192.168.14.2)作为DNS和网关负责梯子和去广告



PPPOE-OUT2是移动宽带,我去网上下载的大陆IP列表名称是no未批恩,创建的桥接名称是bridge,需要所有lan口和局域网IP的国外网站进出都走移动,你看我这个设置对没有,特别是这个general-src.add和in.interface和add type选择了local并且取反,这些地方你教程好像都没有说,但是我按照了其他教程设置上去了

捕获.PNG 捕获2.PNG 捕获3.PNG 捕获4.PNG 捕获5.PNG


点评

IP routes的设置也要贴出来,我没看懂你的出口架构  发表于 2018-10-20 22:43
没看懂你的桥接是啥功能,请说清楚  详情 回复 发表于 2018-10-20 22:42
不要用负载平衡,是根据目标IP选择出口,就是说完全可能80%在出口A,20%在出口B  发表于 2018-10-20 22:39
应该是IP规划图而不是接线图  发表于 2018-10-20 22:38
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-10-20 12:14 | 显示全部楼层
本帖最后由 168kingmu 于 2018-10-20 12:57 编辑

最后怎么测试设置成功了,非大陆走移动 大陆走电信呢



我好像设置不对,刚刚看了一下流量,我在看优酷和斗鱼流量都走移动去了没有走电信PPPoE-out1都没有流量,全是out2的移动流量,。。。

点评

测试的方法就是traceroute,对不同的目标IP做traceroute,看经过的是哪一个出口  发表于 2018-10-20 22:47
根据目标IP做traceroute测试,我把结果贴出来就是这个意思  详情 回复 发表于 2018-10-20 22:45
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-10-20 13:08 | 显示全部楼层
是我设置错了还是我移动是内网IPV4+内网IPV6的地址,电信是IP是公网的IPV4地址,流量都从IPV6走了?但是我访问的地址已经都是IPV4的吧

点评

terminal下,命令: IP - Routes - print 路由怎么设置的?  详情 回复 发表于 2018-10-20 22:52
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-10-20 13:38 | 显示全部楼层
是不是要在下载一个电信的ipv4列表来设置???

点评

我其实用了3出口,1,虚拟,2,电信,3,移动 只是有些不能说出来的话  发表于 2018-10-20 22:50
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-10-20 22:42 | 显示全部楼层
168kingmu 发表于 2018-10-20 12:11
这是我现在的拓扑图
ROS(IP:192.168.14.1)负责DHCP和拨号
LEDE(IP:192.168.14.2)作为DNS和网关 ...

没看懂你的桥接是啥功能,请说清楚

点评

桥接那个就是lan口桥接 不用管了  详情 回复 发表于 2018-10-20 23:27
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-10-20 22:45 | 显示全部楼层
168kingmu 发表于 2018-10-20 12:14
最后怎么测试设置成功了,非大陆走移动 大陆走电信呢

根据目标IP做traceroute测试,我把结果贴出来就是这个意思
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-10-20 22:52 | 显示全部楼层
168kingmu 发表于 2018-10-20 13:08
是我设置错了还是我移动是内网IPV4+内网IPV6的地址,电信是IP是公网的IPV4地址,流量都从IPV6走了?但是我 ...

terminal下,命令:
IP - Routes - print

路由怎么设置的?
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2019-7-21 08:08

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表