guitengyue 发表于 2022-6-16 20:09

来问下ROS的OSPF分流如何标记旁路由的流量

本帖最后由 guitengyue 于 2022-6-16 20:15 编辑

最近折腾了下ROS下通过OSPF分流至openwrt的方案,感觉对于部分国外ip陷入死循环了,ros——op——ros——op,应该是需要在mangle中标记路由表,不要进入ospf的main表中,但是标记了半天感觉都不行,其实主要就是appstore无法访问,特来询问,搞明白后,整个方案还是想走gfwlist,不然这个整个系统的流量有点受不了
目前我是这样标记的,来自op的流量标记为bypass
op ip:192.168.2.2,op中防火墙加入mas伪装那句话(这个在通过ip分流的方案中测试过,也是这样放行这块流量的)
chain=prerouting action=mark-routing new-routing-mark=bypass passthrough=yes src-address=192.168.2.2log=no log-prefix=""

gnattu 发表于 2022-6-16 20:13

啊? 你都OSPF了为什么要用mangle,你直接把你代理的远端IP写个静态路由直接出去不就行了

guitengyue 发表于 2022-6-16 20:16

gnattu 发表于 2022-6-16 20:13
啊? 你都OSPF了为什么要用mangle,你直接把你代理的远端IP写个静态路由直接出去不就行了 ...

不懂。。。。
这个要怎么写,给个范例可以么

guitengyue 发表于 2022-6-16 20:18

gnattu 发表于 2022-6-16 20:13
啊? 你都OSPF了为什么要用mangle,你直接把你代理的远端IP写个静态路由直接出去不就行了 ...

我的理解是,ospf不就是一个的路由表么,在main表内的走这些路由,然后指向op的ip,然后通过op处理返回ros的ip,但是现在有的数据有问题,op处理完还是进入上述的main表,然后又进入到上述的路由,然后死循环了

gnattu 发表于 2022-6-16 20:32

guitengyue 发表于 2022-6-16 20:18
我的理解是,ospf不就是一个的路由表么,在main表内的走这些路由,然后指向op的ip,然后通过op处理返回ro ...

那肯定是进路由表的啊,不然你这个路由器怎么能叫路由器呢

会回到op是因为你的这个包的dst ip命中了某一个非国内ip段 于是触发了路由到op的那个路由

那么最简单的方法是为这个dst ip新增一个静态路由规则,让他直接走默认网关就可以切断循环

怎么添加静态路由:

/ip route add dst-address=x.x.x.x/32 gateway=y.y.y.y

guitengyue 发表于 2022-6-16 20:36

gnattu 发表于 2022-6-16 20:32
那肯定是进路由表的啊,不然你这个路由器怎么能叫路由器呢

会回到op是因为你的这个包的dst ip命中了某一 ...

这个我知道
但是这样要切断的静态路由也太多了
所以我的想法是 经过op处理后的数据进行标记,这些标记了的数据不要第二次进入op的路由表

gnattu 发表于 2022-6-16 20:44

但是这样要切断的静态路由也太多了

会很多吗,只有你的代理的IP地址需要被切断啊

如果你是想要正常访问App Store,那你应该在DNS上做分流而不是在路由表上分流

因为App Store你使用国内IP解析会返回一个国内CDN地址,然后这个国内CDN地址是无法访问非国区的

你如果使用国外IP解析,那就回返回一个国外的CDN地址,该地址是可以正常访问外区的,并且我亲测只分流apps.apple.com下载的时候CDN是正常走国内CDN并且同时能打开外区商店页面的

在这种配置下只需要添加你代理节点的静态路由表

guitengyue 发表于 2022-6-16 20:57

gnattu 发表于 2022-6-16 20:44
会很多吗,只有你的代理的IP地址需要被切断啊

如果你是想要正常访问App Store,那你应该在DNS上做分流而 ...

我本身代理节点的ip就没在表内的,你说的这个应该是我appstore无法访问的原因了,回头研究下dns分流。appstore是问题1,问题2 我还是想整明白这个流量从op回到ros要怎么标记,这个会了,问题1其实也解决了

blanksign 发表于 2022-6-17 00:50

疯狂回环那是必然。

tedaz 发表于 2022-6-17 09:01

楼主说最终根本目的吧,到底要实现什么效果?

只要不是为了考试出题,现实世界中的需求应该有简单的解决办法。

guitengyue 发表于 2022-6-17 09:28

tedaz 发表于 2022-6-17 09:01
楼主说最终根本目的吧,到底要实现什么效果?

只要不是为了考试出题,现实世界中的需求应该有简单的解决办 ...

目前op只能设置全局才能上网,然后appstore还有问题
已经找到原因了,就是进入死循环了(appstore的问题是因为dns原因,7#写了吧),解决这个死循环就ok了
最终目的,op想设置成大陆白名单形式或者gfwlist形式,不然全局下流量吃紧,也没必要

liwangli 发表于 2022-6-17 09:45

guitengyue 发表于 2022-6-16 20:36
这个我知道
但是这样要切断的静态路由也太多了
所以我的想法是 经过op处理后的数据进行标记,这些标记了 ...

ip route rule添加一个源地址(就是op)的规则,然后only look up in 一个新的table,这个table里只有默认路由,没有ospf添加的那些,试试?

tedaz 发表于 2022-6-17 10:13

guitengyue 发表于 2022-6-17 09:28
目前op只能设置全局才能上网,然后appstore还有问题
已经找到原因了,就是进入死循环了(appstore的问题 ...

一直用passwall和passwall2,可以设置lan的整体上网模式(gfwlist,geoip,全局),也可以配置单个客户端的上网模式,照说openclash也应该可以实现类似效果。

guitengyue 发表于 2022-6-17 11:01

liwangli 发表于 2022-6-17 09:45
ip route rule添加一个源地址(就是op)的规则,然后only look up in 一个新的table,这个table里只有默 ...

图1是ospf自动加进来的路由
图2是rule添加了一个新的规则,加完以后,所有进入op地址都出不去了

liwangli 发表于 2022-6-17 11:13

guitengyue 发表于 2022-6-17 11:01
图1是ospf自动加进来的路由
图2是rule添加了一个新的规则,加完以后,所有进入op地址都出不去了 ...

可能还需要把lan的地址也加到新table里吧,要不从op回来的数据也从def route走出去了

guitengyue 发表于 2022-6-17 11:17

liwangli 发表于 2022-6-17 11:13
可能还需要把lan的地址也加到新table里吧,要不从op回来的数据也从def route走出去了 ...

没理解这句话,这个lan是ros的lan地址?再加一条规则还是什么意思

guitengyue 发表于 2022-6-17 11:23

liwangli 发表于 2022-6-17 11:13
可能还需要把lan的地址也加到新table里吧,要不从op回来的数据也从def route走出去了 ...

我说错了,刚刚那样设置,是所有的网页都打不开,包括国内的地址,但是我远程连的倒是没断,我起初以为国内的线路没问题

liwangli 发表于 2022-6-17 14:09

guitengyue 发表于 2022-6-17 11:17
没理解这句话,这个lan是ros的lan地址?再加一条规则还是什么意思

就是说要给192.168.1.x?这个路由项加到新table里,要不2.x的数据无法转发给1.x

sunrace 发表于 2022-6-17 15:17

为啥不考虑用address-list呢?每月用脚本升级一下CNIP,非CNIP由ROS分流到OP不就行了吗?我用这个方案非常稳定好用啊

guitengyue 发表于 2022-6-17 15:20

liwangli 发表于 2022-6-17 14:09
就是说要给192.168.1.x?这个路由项加到新table里,要不2.x的数据无法转发给1.x ...

那这条要怎么加?是再弄个rule的规则吗?
上次那个ip分流也是你帮我解决问题的,ros的ip有两个,192.168.1.1和192.168.2.1,之间有一个路由

guitengyue 发表于 2022-6-17 15:21

sunrace 发表于 2022-6-17 15:17
为啥不考虑用address-list呢?每月用脚本升级一下CNIP,非CNIP由ROS分流到OP不就行了吗?我用这个方案非常 ...

因为有时候感觉有点卡卡的,用了2天了onsf,真的是这个快

liwangli 发表于 2022-6-17 15:23

guitengyue 发表于 2022-6-17 15:20
那这条要怎么加?是再弄个rule的规则吗?
上次那个ip分流也是你帮我解决问题的,ros的ip有两个,192.168. ...

192.168.1.0的路由加到新的table里吧,试,另外注意另开fasttrack

smallfount 发表于 2022-6-17 15:26

......你这不是ospf流量导入openwrt后还要分流一次嘛。。。那还搞那么复杂干嘛。。。
直接全导入过去不就好了。。

guitengyue 发表于 2022-6-17 15:40

liwangli 发表于 2022-6-17 15:23
192.168.1.0的路由加到新的table里吧,试,另外注意另开fasttrack

是这样吗?远程回去的,这条不敢加,晚上回家操作
那个fasttrack回头再开

guitengyue 发表于 2022-6-17 15:41

smallfount 发表于 2022-6-17 15:26
......你这不是ospf流量导入openwrt后还要分流一次嘛。。。那还搞那么复杂干嘛。。。
直接全导入过去不就好 ...

因为appstore上不去,因为全局怕流量用光光了,以前ip分流的时候,发现icloud上传走的全是这个线路

liwangli 发表于 2022-6-17 15:42

guitengyue 发表于 2022-6-17 15:40
是这样吗?远程回去的,这条不敢加,晚上回家操作
那个fasttrack回头再开
...

打错了,是别开fasttrack

对,不要远程搞玩意,本地搞不行还可又用winbox救回来

guitengyue 发表于 2022-6-17 15:43

liwangli 发表于 2022-6-17 15:42
打错了,是别开fasttrack

对,不要远程搞玩意,本地搞不行还可又用winbox救回来 ...

ok,万分感谢,晚上回家测试

smallfount 发表于 2022-6-17 15:44

guitengyue 发表于 2022-6-17 15:41
因为appstore上不去,因为全局怕流量用光光了,以前ip分流的时候,发现icloud上传走的全是这个线路 ...

但是你的最终目的不还是openWRT做gfw或者out of China 模式嘛。。。
所以你的分流的结果本质上在openwrt上处理不就很简单。。
iCloud的问题不就是几个域名的情况。。直接丢进不代理列表就是了。。

guitengyue 发表于 2022-6-17 15:44

gnattu 发表于 2022-6-16 20:44
会很多吗,只有你的代理的IP地址需要被切断啊

如果你是想要正常访问App Store,那你应该在DNS上做分流而 ...

我感觉ios上面的appstore不是apps.apple.com,因为我网页打开这个链接很快,手机还是打不开

colorjuice 发表于 2022-6-17 15:45

你这App Store不能访问应该是DNS没有做分流的原因,而不是所谓的循环,MASQUERADE之后应该不存在循环,除非你的国外IP列表包含了你的节点IP,这样就的确出不去了。
OSPF一般不用于这个场景,作为分流的话,一般是ROS与国外节点之间的隧道用OSPF,这样才能中断或恢复自动移除或添加路由。本地局域网内的话还要自己写脚本检测节点是否中断,失去了OSPF的意义。
页: [1] 2 3
查看完整版本: 来问下ROS的OSPF分流如何标记旁路由的流量