找回密码
 加入我们
搜索
      
楼主: guitengyue

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

[复制链接]
 楼主| 发表于 2022-6-17 15:49 | 显示全部楼层
smallfount 发表于 2022-6-17 15:44
但是你的最终目的不还是openWRT做gfw或者out of China 模式嘛。。。
所以你的分流的结果本质上在openwrt ...

不代理列表在哪里处理,如果在op中处理,就绕不出去了啊,现在就在解决这个问题
为什么不先全部在op处理,是因为op有时候不稳定,会挂,所以之前一直用的ros ip分流,现在用了ros onsf分流,本质还是op处理分流后的数据
 楼主| 发表于 2022-6-17 15:50 | 显示全部楼层
colorjuice 发表于 2022-6-17 15:45
你这App Store不能访问应该是DNS没有做分流的原因,而不是所谓的循环,MASQUERADE之后应该不存在循环,除非 ...

节点IP已经排除
OP开启全局没有问题,除了appstore,dns分流暂时不知道怎么处理
OP中如果排除一个国外IP不走代理,那这个ip就进入死循环了,目前就是这么个情况
 楼主| 发表于 2022-6-17 15:55 | 显示全部楼层
https://blog.xn--7ovq92diups1e.com/post/homelab-ros-ospf/
这篇文章说,也说到了这些问题
其中icmp的问题,在mangle中标记后已经解决
6.png
7.png 7.1.png
发表于 2022-6-17 15:58 | 显示全部楼层
guitengyue 发表于 2022-6-17 15:49
不代理列表在哪里处理,如果在op中处理,就绕不出去了啊,现在就在解决这个问题
为什么不先全部在op处理 ...

.....我不是很懂哈。。
我先问个事情。。。如果openwrt能处理全部分流动作,是不是就不需要ospf了?
那是不是就没有loop问题了,对吧。

那么问题的本质就回到了openwrt不稳定上。

然后,你觉得这么搞不爽。
所以要弄ospf,虽然我不理解为啥ospf要这样弄。
但是我先理解下。。你ospf路由表的来源是哪里。peer节点是什么?
或者说,你ospf分流的逻辑是怎么处理呢?
 楼主| 发表于 2022-6-17 16:05 | 显示全部楼层
本帖最后由 guitengyue 于 2022-6-17 16:07 编辑
smallfount 发表于 2022-6-17 15:58
.....我不是很懂哈。。
我先问个事情。。。如果openwrt能处理全部分流动作,是不是就不需要ospf了?
那是 ...


对,假设所有设备都先过op,那就没loop问题了;然后要这么搞的原因是,ros用了好几年以后,爱上他了,稳的1b,期间也搞过dhcp那直接设置,直接锁定op网关和dns给要fq的设备,最后发现了IP分流,也折腾了一段时间,最后弄到ospf了
ospf的来源,参考了这个链接https://www.truenasscale.com/2021/12/13/195.html
其实是这个项目https://github.com/dndx/nchnroutes
发表于 2022-6-17 16:15 | 显示全部楼层
guitengyue 发表于 2022-6-17 15:50
节点IP已经排除
OP开启全局没有问题,除了appstore,dns分流暂时不知道怎么处理
OP中如果排除一个国外IP ...

那肯定啊,你用OSPF通告给ROS说这个IP要走OpenWrt,然后你在OpenWrt里面的工具/插件再排除掉,那肯定要被OpenWrt drop掉destination unreachable,或者是DIRECT规则肯定循环了。OpenWrt里面的工具应该把所有接收到的流量都做MASQUERADE发往节点。
ROS(国外IP段)-->OpenWrt(接收到全部MASQUERADE)-->节点,这样是不存在任何问题的。DIRECT的IP不应该被包含在OSPF通告的IP里。
其实还不如用Clash的fake-ip,docker跑个clash tun,指定domain-list交给clash解析,非list的用运营商DNS,ros只需要一条静态路由fakeip给clash 198.18.0.0/16 via clash,同时clash使用fallback可以达到同样效果,路由表还简洁。
发表于 2022-6-17 16:21 | 显示全部楼层
guitengyue 发表于 2022-6-17 16:05
对,假设所有设备都先过op,那就没loop问题了;然后要这么搞的原因是,ros用了好几年以后,爱上他了,稳 ...

.....
这ospf的本质不就是从openwrt传了一套nchn的IP list过来是吧。
然后你的ROS根据动态协议过来的结果自动把非中国的给拉到openwrt上去呗。

但是现在的问题就是你op的流量出来也是先进到ROS然后也遇到了一样的规则loop了呗。
所以逻辑上,只要从OP上出来的流量打标区分出来或者直接强制NAT出去就行了吧。
发表于 2022-6-17 16:23 | 显示全部楼层
guitengyue 发表于 2022-6-17 16:05
对,假设所有设备都先过op,那就没loop问题了;然后要这么搞的原因是,ros用了好几年以后,爱上他了,稳 ...

另外还有个问题、、
你就写了针对OP IP的打标。。
那么打标以后你针对这个标记的动作是什么呢?
 楼主| 发表于 2022-6-17 17:05 来自手机 | 显示全部楼层
smallfount 发表于 2022-6-17 16:23
另外还有个问题、、
你就写了针对OP IP的打标。。
那么打标以后你针对这个标记的动作是什么呢? ...

这条是因为ros中ospf添加进来的路由是main的才会转发,icmp那边也是那么操作 就能ping通外网节点了 不然ping都ping不通
发表于 2022-6-17 17:07 | 显示全部楼层
guitengyue 发表于 2022-6-17 17:05
这条是因为ros中ospf添加进来的路由是main的才会转发,icmp那边也是那么操作 就能ping通外网节点了 不然p ...

???
main是vrf表吧...
你打标完不操作的话他不还是按照原来的策略运行。打标不就毫无意义
 楼主| 发表于 2022-6-17 17:07 来自手机 | 显示全部楼层
smallfount 发表于 2022-6-17 16:21
.....
这ospf的本质不就是从openwrt传了一套nchn的IP list过来是吧。
然后你的ROS根据动态协议过来的结果 ...

对 ,就是想这样搞 所以我要标记来自op处理过的数据,不要再次进入ospf的路由,op防火墙加入了那个masq指令,按理说这样设置应该ok了 可是就是不行
 楼主| 发表于 2022-6-17 17:08 来自手机 | 显示全部楼层
colorjuice 发表于 2022-6-17 16:15
那肯定啊,你用OSPF通告给ROS说这个IP要走OpenWrt,然后你在OpenWrt里面的工具/插件再排除掉,那肯定要被 ...

尝试过clash,教程太少就没继续弄下去,op里面passwall感觉挺好使的
 楼主| 发表于 2022-6-17 17:09 来自手机 | 显示全部楼层
smallfount 发表于 2022-6-17 17:07
???
main是vrf表吧...
你打标完不操作的话他不还是按照原来的策略运行。打标不就毫无意义 ...

你看下14#第一张图,以及33#楼
发表于 2022-6-17 17:23 | 显示全部楼层
guitengyue 发表于 2022-6-17 17:09
你看下14#第一张图,以及33#楼

说实话没看懂。。
本质上还是只有打标而已吧。

简单的说吧。。
你从OP的wan口出来以后的流量你现在除了打标外做了什么特殊的处理吗?

本质上你现在问题不就是从wan口出来的流量再次被路由了呗。
所以你不应该做个策略路由,把WAN口这个src过来的直接action accept?
打标也只是为了后面的PBR处理提供条件啊。。并不会对包做什么动作的。
所以如果你打完标记的包没有对应的路由动作那不是白打了。
发表于 2022-6-17 17:41 | 显示全部楼层
本帖最后由 gnattu 于 2022-6-17 17:47 编辑
guitengyue 发表于 2022-6-17 15:44
我感觉ios上面的appstore不是apps.apple.com,因为我网页打开这个链接很快,手机还是打不开 ...


还有*.itunes.apple.com(包含次级域名的)
 楼主| 发表于 2022-6-17 17:45 来自手机 | 显示全部楼层
smallfount 发表于 2022-6-17 17:23
说实话没看懂。。
本质上还是只有打标而已吧。


accept 没用 试过了
原理都通了 就是不知道要怎么搞
发表于 2022-6-17 18:00 | 显示全部楼层
guitengyue 发表于 2022-6-17 17:07
对 ,就是想这样搞 所以我要标记来自op处理过的数据,不要再次进入ospf的路由,op防火墙加入了那个masq指 ...

任何没有在OpenWrt走节点的包,你再怎么打标显然也没法匹配上,因为这个包原样回到ROS再次进入路由表。要么你在ROS做ip分流,要么在OpenWrt分流,再要么ROS分流的IP是OpenWrt的子集,三选一,但凡OSPF通告的IP比OpenWrt分流的IP多,那多出来的部分,路由就没法走了。
建议还是调整好你的PassWall规则,问题不在ROS上。
发表于 2022-6-17 18:01 | 显示全部楼层
colorjuice 发表于 2022-6-17 18:00
任何没有在OpenWrt走节点的包,你再怎么打标显然也没法匹配上,因为这个包原样回到ROS再次进入路由表。要 ...

我觉得楼主的场景OpenWRT直接就是全局的没有二次分流
发表于 2022-6-17 18:11 | 显示全部楼层
我个人使用的方案是开启了FastTrack的,所以Mangle要求比不开的要高很多,但是目前是不会有漏包或者奇怪的现象,但是我不敢保证楼主这里的场景也能适用

我的方案是打两次标,首先给connection打标,然后再根据connection给routing打标,最后在静态路由里添加一条routing-mark=bypass的路由,甚至没有用复数路由表

我主要是用来给ICMP打标,但是我试过别的连接给connection打标一样是可以正常路由的

可以尝试改一改我这个方案试试看能不能成,按理说fasttrack都能用的话楼主这种也不会有太大问题

  1. /ip firewall mangle
  2. add action=accept chain=prerouting comment="if a mid-connection packet has no co\
  3.     nnection mark, it needs the default handling" connection-mark=no-mark \
  4.     connection-state=established,related
  5. add action=accept chain=prerouting comment=\
  6.     "download packets MUST NOT be routing-marked" connection-state=\
  7.     established,related in-interface-list=WAN
  8. add action=mark-routing chain=prerouting comment=\
  9.     "Route bypass connection to bypass gateway IF it already has a connection mark" \
  10.     connection-mark=bypass new-routing-mark=bypass passthrough=no
  11. add action=mark-connection chain=prerouting comment="Treat ICMP as bypass" \
  12.     dst-address=!192.168.0.0/16 new-connection-mark=bypass passthrough=yes \
  13.     protocol=icmp src-address=192.168.8.0/24
  14. add action=mark-routing chain=prerouting comment=\
  15.     "Route bypass connection to bypass gateway" connection-mark=bypass new-routing-mark=bypass \
  16.     passthrough=yes
复制代码


发表于 2022-6-17 18:14 | 显示全部楼层
gnattu 发表于 2022-6-17 18:01
我觉得楼主的场景OpenWRT直接就是全局的没有二次分流

全局的才应该是没有问题,所有到OpenWrt的流量都进入代理发往节点,ROS就会default route发往WAN,DST是海外节点,SRC是OpneWrt能有什么问题呢。现在他的情况就是二次分流造成的。
 楼主| 发表于 2022-6-17 18:58 来自手机 | 显示全部楼层
colorjuice 发表于 2022-6-17 18:14
全局的才应该是没有问题,所有到OpenWrt的流量都进入代理发往节点,ROS就会default route发往WAN,DST是 ...

对 我op二次分流了 全局就是appstore不行
 楼主| 发表于 2022-6-17 18:59 来自手机 | 显示全部楼层
gnattu 发表于 2022-6-17 18:11
我个人使用的方案是开启了FastTrack的,所以Mangle要求比不开的要高很多,但是目前是不会有漏包或者奇怪的 ...

我消化下,感谢哈
 楼主| 发表于 2022-6-17 19:02 来自手机 | 显示全部楼层
colorjuice 发表于 2022-6-17 18:00
任何没有在OpenWrt走节点的包,你再怎么打标显然也没法匹配上,因为这个包原样回到ROS再次进入路由表。要 ...

不会啊,进入op,因passwall规则或者不代理列表 会因为op防火墙masq规则变成op的lan ip返回到ros
发表于 2022-6-17 19:07 | 显示全部楼层
guitengyue 发表于 2022-6-17 19:02
不会啊,进入op,因passwall规则或者不代理列表 会因为op防火墙masq规则变成op的lan ip返回到ros  ...

OP是单臂的?
 楼主| 发表于 2022-6-17 19:18 来自手机 | 显示全部楼层
smallfount 发表于 2022-6-17 19:07
OP是单臂的?

对 都是虚拟机里的 wan口本身也没用
发表于 2022-6-17 21:22 | 显示全部楼层
走bgp、ospf等通用路由协议目的就是要秒杀mangle的低效以及更加方便的定制分流,现在你要绕回去,这样是不合适的。

如果你坚持用OpenWRT,推荐开全局模式,分流完全通过RouterOS,网上的非cnip表并不适用所有人,你可以自行修改,这也是我不用各种开源gfwlist的原因,误杀严重,且不支持ipv6。
发表于 2022-6-17 21:25 | 显示全部楼层
另外,如果条件允许,建议上bgp,收公网全表,通过ASN进行分流。
 楼主| 发表于 2022-6-17 21:30 | 显示全部楼层
Darcychiu 发表于 2022-6-17 21:22
走bgp、ospf等通用路由协议目的就是要秒杀mangle的低效以及更加方便的定制分流,现在你要绕回去,这样是不 ...

先这么用吧,对了,能否推荐个dns,我先把appstore上不去这个问题解决掉
 楼主| 发表于 2022-6-17 21:31 | 显示全部楼层
Darcychiu 发表于 2022-6-17 21:25
另外,如果条件允许,建议上bgp,收公网全表,通过ASN进行分流。

bgp要建立隧道,这货回头研究下,隧道意思就是类似xray之类的?
 楼主| 发表于 2022-6-17 23:19 | 显示全部楼层
liwangli 发表于 2022-6-17 15:42
打错了,是别开fasttrack

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

这个也不行,放弃了。。。。
全局算了,弄个smartdns之类的
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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

GMT+8, 2025-4-27 01:58 , Processed in 0.013456 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

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