找回密码
 加入我们
搜索
      
查看: 30775|回复: 80

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

[复制链接]
发表于 2022-6-16 20:09 | 显示全部楼层 |阅读模式
本帖最后由 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.2  log=no log-prefix=""
发表于 2022-6-16 20:13 | 显示全部楼层
啊? 你都OSPF了为什么要用mangle,你直接把你代理的远端IP写个静态路由直接出去不就行了
 楼主| 发表于 2022-6-16 20:16 | 显示全部楼层
gnattu 发表于 2022-6-16 20:13
啊? 你都OSPF了为什么要用mangle,你直接把你代理的远端IP写个静态路由直接出去不就行了 ...

不懂。。。。
这个要怎么写,给个范例可以么
 楼主| 发表于 2022-6-16 20:18 | 显示全部楼层
gnattu 发表于 2022-6-16 20:13
啊? 你都OSPF了为什么要用mangle,你直接把你代理的远端IP写个静态路由直接出去不就行了 ...

我的理解是,ospf不就是一个的路由表么,在main表内的走这些路由,然后指向op的ip,然后通过op处理返回ros的ip,但是现在有的数据有问题,op处理完还是进入上述的main表,然后又进入到上述的路由,然后死循环了
发表于 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
 楼主| 发表于 2022-6-16 20:36 | 显示全部楼层
gnattu 发表于 2022-6-16 20:32
那肯定是进路由表的啊,不然你这个路由器怎么能叫路由器呢

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

这个我知道
但是这样要切断的静态路由也太多了
所以我的想法是 经过op处理后的数据进行标记,这些标记了的数据不要第二次进入op的路由表
发表于 2022-6-16 20:44 | 显示全部楼层
但是这样要切断的静态路由也太多了


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

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

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

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

在这种配置下只需要添加你代理节点的静态路由表
 楼主| 发表于 2022-6-16 20:57 | 显示全部楼层
gnattu 发表于 2022-6-16 20:44
会很多吗,只有你的代理的IP地址需要被切断啊

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

我本身代理节点的ip就没在表内的,你说的这个应该是我appstore无法访问的原因了,回头研究下dns分流。appstore是问题1,问题2 我还是想整明白这个流量从op回到ros要怎么标记,这个会了,问题1其实也解决了
发表于 2022-6-17 00:50 | 显示全部楼层
疯狂回环那是必然。
发表于 2022-6-17 09:01 来自手机 | 显示全部楼层
楼主说最终根本目的吧,到底要实现什么效果?

只要不是为了考试出题,现实世界中的需求应该有简单的解决办法。
 楼主| 发表于 2022-6-17 09:28 | 显示全部楼层
tedaz 发表于 2022-6-17 09:01
楼主说最终根本目的吧,到底要实现什么效果?

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

目前op只能设置全局才能上网,然后appstore还有问题
已经找到原因了,就是进入死循环了(appstore的问题是因为dns原因,7#写了吧),解决这个死循环就ok了
最终目的,op想设置成大陆白名单形式或者gfwlist形式,不然全局下流量吃紧,也没必要
发表于 2022-6-17 09:45 | 显示全部楼层
guitengyue 发表于 2022-6-16 20:36
这个我知道
但是这样要切断的静态路由也太多了
所以我的想法是 经过op处理后的数据进行标记,这些标记了 ...

ip route rule添加一个源地址(就是op)的规则,然后only look up in 一个新的table,这个table里只有默认路由,没有ospf添加的那些,试试?
发表于 2022-6-17 10:13 | 显示全部楼层
guitengyue 发表于 2022-6-17 09:28
目前op只能设置全局才能上网,然后appstore还有问题
已经找到原因了,就是进入死循环了(appstore的问题 ...

一直用passwall和passwall2,可以设置lan的整体上网模式(gfwlist,geoip,全局),也可以配置单个客户端的上网模式,照说openclash也应该可以实现类似效果。
 楼主| 发表于 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地址都出不去了
1.png
3.png
发表于 2022-6-17 11:13 | 显示全部楼层
guitengyue 发表于 2022-6-17 11:01
图1是ospf自动加进来的路由
图2是rule添加了一个新的规则,加完以后,所有进入op地址都出不去了 ...

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

没理解这句话,这个lan是ros的lan地址?再加一条规则还是什么意思
 楼主| 发表于 2022-6-17 11:23 | 显示全部楼层
liwangli 发表于 2022-6-17 11:13
可能还需要把lan的地址也加到新table里吧,要不从op回来的数据也从def route走出去了 ...

我说错了,刚刚那样设置,是所有的网页都打不开,包括国内的地址,但是我远程连的倒是没断,我起初以为国内的线路没问题
发表于 2022-6-17 14:09 | 显示全部楼层
guitengyue 发表于 2022-6-17 11:17
没理解这句话,这个lan是ros的lan地址?再加一条规则还是什么意思

就是说要给192.168.1.x?这个路由项加到新table里,要不2.x的数据无法转发给1.x
发表于 2022-6-17 15:17 | 显示全部楼层
为啥不考虑用address-list呢?每月用脚本升级一下CNIP,非CNIP由ROS分流到OP不就行了吗?我用这个方案非常稳定好用啊
 楼主| 发表于 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,之间有一个路由
4.png
 楼主| 发表于 2022-6-17 15:21 | 显示全部楼层
sunrace 发表于 2022-6-17 15:17
为啥不考虑用address-list呢?每月用脚本升级一下CNIP,非CNIP由ROS分流到OP不就行了吗?我用这个方案非常 ...

因为有时候感觉有点卡卡的,用了2天了onsf,真的是这个快
发表于 2022-6-17 15:23 | 显示全部楼层
guitengyue 发表于 2022-6-17 15:20
那这条要怎么加?是再弄个rule的规则吗?
上次那个ip分流也是你帮我解决问题的,ros的ip有两个,192.168. ...

192.168.1.0的路由加到新的table里吧,试,另外注意另开fasttrack
发表于 2022-6-17 15:26 | 显示全部楼层
......你这不是ospf流量导入openwrt后还要分流一次嘛。。。那还搞那么复杂干嘛。。。
直接全导入过去不就好了。。
 楼主| 发表于 2022-6-17 15:40 | 显示全部楼层
liwangli 发表于 2022-6-17 15:23
192.168.1.0的路由加到新的table里吧,试,另外注意另开fasttrack

是这样吗?远程回去的,这条不敢加,晚上回家操作
那个fasttrack回头再开
 楼主| 发表于 2022-6-17 15:41 | 显示全部楼层
smallfount 发表于 2022-6-17 15:26
......你这不是ospf流量导入openwrt后还要分流一次嘛。。。那还搞那么复杂干嘛。。。
直接全导入过去不就好 ...

因为appstore上不去,因为全局怕流量用光光了,以前ip分流的时候,发现icloud上传走的全是这个线路
发表于 2022-6-17 15:42 | 显示全部楼层
guitengyue 发表于 2022-6-17 15:40
是这样吗?远程回去的,这条不敢加,晚上回家操作
那个fasttrack回头再开
...

打错了,是别开fasttrack

对,不要远程搞玩意,本地搞不行还可又用winbox救回来
 楼主| 发表于 2022-6-17 15:43 | 显示全部楼层
liwangli 发表于 2022-6-17 15:42
打错了,是别开fasttrack

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

ok,万分感谢,晚上回家测试
发表于 2022-6-17 15:44 | 显示全部楼层
guitengyue 发表于 2022-6-17 15:41
因为appstore上不去,因为全局怕流量用光光了,以前ip分流的时候,发现icloud上传走的全是这个线路 ...

但是你的最终目的不还是openWRT做gfw或者out of China 模式嘛。。。
所以你的分流的结果本质上在openwrt上处理不就很简单。。
iCloud的问题不就是几个域名的情况。。直接丢进不代理列表就是了。。
 楼主| 发表于 2022-6-17 15:44 | 显示全部楼层
gnattu 发表于 2022-6-16 20:44
会很多吗,只有你的代理的IP地址需要被切断啊

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

我感觉ios上面的appstore不是apps.apple.com,因为我网页打开这个链接很快,手机还是打不开
发表于 2022-6-17 15:45 | 显示全部楼层
你这App Store不能访问应该是DNS没有做分流的原因,而不是所谓的循环,MASQUERADE之后应该不存在循环,除非你的国外IP列表包含了你的节点IP,这样就的确出不去了。
OSPF一般不用于这个场景,作为分流的话,一般是ROS与国外节点之间的隧道用OSPF,这样才能中断或恢复自动移除或添加路由。本地局域网内的话还要自己写脚本检测节点是否中断,失去了OSPF的意义。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-26 13:56 , Processed in 0.014348 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

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