透明代理+OSPF动态路由=近乎完美的全自动旁路由方案 #3284
Replies: 10 comments 6 replies
-
xray电报群的验证问题好鬼畜啊,今天又被踢了( |
Beta Was this translation helpful? Give feedback.
-
实验性添加了persistent route设置, // config example
"dnsCircuit": {
"outboundTags": ["proxy-hk", "proxy-jp"],
"persistentRoute": [
"geoip:telegram"
],
"ospfSetting": {
"ifName": "ens160",
"address": "192.168.87.2/24"
}
} 已知问题:
Apr 20 16:22:27 debianpov v2test[176916]: V2Ray 5.15.1 (V2Fly, a community-driven edition of V2Ray.) Custom (go1.22.2 linux/amd64)
Apr 20 16:22:27 debianpov v2test[176916]: A unified platform for anti-censorship.
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [OSPF] adding persistent route: 91.105.192.0/23
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [OSPF] adding persistent route: 91.108.4.0/22
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [OSPF] adding persistent route: 91.108.8.0/21
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [OSPF] adding persistent route: 91.108.16.0/21
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [OSPF] adding persistent route: 91.108.56.0/22
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [OSPF] adding persistent route: 95.161.64.0/20
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [OSPF] adding persistent route: 149.154.160.0/20
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [OSPF] adding persistent route: 185.76.151.0/24
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [Warning] app/dnscircuit: persistent route: geoip:TELEGRAM ignored non-IPv4 cidr [2001:67c:4e8::]/48
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [Warning] app/dnscircuit: persistent route: geoip:TELEGRAM ignored non-IPv4 cidr [2001:b28:f23c::]/47
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [Warning] app/dnscircuit: persistent route: geoip:TELEGRAM ignored non-IPv4 cidr [2001:b28:f23f::]/48
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [Warning] app/dnscircuit: persistent route: geoip:TELEGRAM ignored non-IPv4 cidr [2a0a:f280::]/32
Apr 20 16:22:36 debianpov v2test[176916]: 2024/04/20 16:22:36 [Warning] V2Ray 5.15.1 started
Apr 20 16:22:38 debianpov v2test[176916]: 2024/04/20 16:22:38 192.168.87.1:60474 accepted udp:192.168.87.2:53 [dns-out] |
Beta Was this translation helpful? Give feedback.
-
V站来的,我目前使用ospf的时候,确实被透明代理direct流量产生环路的问题困扰。请问这个方案是否可以与dae配合 |
Beta Was this translation helpful? Give feedback.
-
另外关于DNS,可以用VRRP让主路由与旁路由共享一个虚拟IP,dhcp服务器将dns指向这个虚拟ip,然后旁路由的VRRP优先级设置为更高。主ROS的dns采用运营商默认DNS,这样如果旁路由挂了,主路由会自动接管VRRP的IP,不影响客户端的DNS查询 |
Beta Was this translation helpful? Give feedback.
-
唔 旁路由 |
Beta Was this translation helpful? Give feedback.
-
功能更新:
|
Beta Was this translation helpful? Give feedback.
-
mark |
Beta Was this translation helpful? Give feedback.
-
经过几天测试,我配合ikuai的docker运行bird进行了部署,大致工作良好,但对于那些像图片通过二级域名cdn加速的图片有时体验会不好。 |
Beta Was this translation helpful? Give feedback.
-
我现在用 dreamacro/clash-premium:2023.08.17 搭的透明代理,有同样的困扰,请问还有更简单的方案嘛? |
Beta Was this translation helpful? Give feedback.
-
感觉和我的透明代理思路挺像的,不过我是做的利用FakeIP做的策略路由。 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
前言
家里各种杂七杂八设备很多,有些设备可以方便科学,有些不行。
而且,我个人不太喜欢在需要科学的时候再开软件,尤其是手机同步电脑阅读记录时,打不开链接的感觉仿佛是坐马桶上蹿了一样难受。
所以,用网关做科学是我的基本要求。
设想
网关目前比较成熟的方案就是透明代理,但现在的透明旁路方案,都需要手动修改内网设备的网关,或者把默认网关指向旁路。
前者繁琐,后者不适合高吞吐场景。
有没有一种按需自动走旁路由的方案呢?
把不需要科学的流量直接从主路由发出,需要科学的流量再按需转发到旁路处理。
根据我有限的网络知识来说,这种情况只能从路由表下手。
为此我提出一个设想:
由旁路由接管DNS,以域名+DNS解析结果,去匹配旁路由的路由决策
具体细节可以看我在v2ray那边的讨论
v2fly/v2ray-core#2686
目前状况
目前我已经按上文设想,手搓了一套OSPF实现,然后在自己内网搭好了一整套解决方案。
代码目前在我fork的v2ray分支上,感兴趣的大佬可以自己尝试一下。
https://github.com/povsister/v2ray-core/tree/app/dns-circuit
这几天体验下来基本符合预期,唯一缺点是v2ray对于UDP的支持有点鬼畜,teams还有部分游戏表现不佳。
最近关注到了xray,看到xray对于UDP转发这块做了很大的改进。所以想迁移到xray上试试。
不知道xray社区对于这个带路由通告的透明代理有没有兴趣。
文末详细叙述一下整套解决方案
解决方案细节
前置要求
配置要求
目前缺点
我个人体验下来这俩缺点基本没啥影响。被自己回旋镖打了,电报压根没用DNS个例可以通过直接在配置里写静态CIDR,或者指定一个active loading的domain list file,由xray定期主动解析并刷新路由(不管有没有DNS请求)即可。
一些截图
v2ray配置,指定命中特定outbound的路由通告,指定OSPF运行接口及相关配置
v2ray与主路由形成OSPF邻接关系+自动根据DNS请求通告路由CIDR
ROS(主路由)上的路由表
旁路由设置好IP转发masquerade,用于直接转发透明代理不处理的流量(TCP/UDP以外的流量),以及部分不小心被默认/24 CIDR误伤的流量,
ROS 设置策略路由,避免形成转发环路
Beta Was this translation helpful? Give feedback.
All reactions