V2 上关于 dae(大鹅)(ebpf)的讨论还是比较少啊,完美的旁路科学方案了吧?

228 天前
 yyysuo
步骤:
1:装个 debian
2:装个大鹅
3:添加节点或者订阅,启用大鹅,debian 成为透明旁路网关
4:主路由下发大鹅的 ip 作为网关和 dns

大鹅电报群: https://t.me/daeuniverse https://t.me/MetaKernel

跑分: https://docs.google.com/spreadsheets/d/1UaWU6nNho7edBNjNqC8dfGXLlW0-cm84MM7sH6Gp7UE/edit?pli=1#gid=1965963111

安装命令: https://github.com/daeuniverse/daed/blob/main/docs/getting-started.md

github: https://github.com/daeuniverse/daed/releases
7965 次点击
所在节点    宽带症候群
70 条回复
SenLief
227 天前
你们的主路由能下发旁路由的 ip 和网关吗?我的 tp 不行,开 dhcp 就抢了。
SenLief
227 天前
@mohumohu 你这个其实没什么区别的,旁路由主要是主设备可以是任意的设备,你这个只不过是把功能拆开了。
SenLief
227 天前
@a90405 是的,我一直没有配置好,现在 ipv6 无法使用。
jdjingdian
227 天前
我也在做 eBPF 相关的东西,这个玩意感觉研究的人确实少。

dae 用 eBPF 一个很重要的点应该还是性能上的提升吧(针对直连的性能),非直连的,他的实现方案是通过 xdp 再把数据扔回来,再从用户态走代理出去。

目前在 Ubuntu 和 OpenWrt-23.05 ( MT7981 )上部署成功,但是 OpenWrt 启动加载 eBPF 到内核的速度比较慢
yyysuo
227 天前
@SenLief #21 被谁抢了?我的 xdr 5480 ,在 dhcp 中可以直接写网关和 dns 啊,你局域网里面还有其它设备启用了 dhcp ?
SenLief
227 天前
@yyysuo 正常应该是由旁路由下发 ip 和网关的,但是现在都是由 5480 下发的。
yyysuo
227 天前
@jdjingdian 我主路由 op ,搞一个大鹅 vm ,搞了一个 clash vm ,都是 debian ,clash 开不加密的 ss 的服务端给大鹅 vm 使用。主路由下发大鹅 ip 为网关。在 op 上开 mosdns ,mosdns 国内直接丢给 223.5.5.5 ,国外扔给 clash 的 7874 解析,返回 fakeip ,然后大鹅网关根据 fakeip 来分流,fakeip 丢给 clash ,其它直连。
yyysuo
227 天前
@SenLief #26 晕,为什么要让旁路由下发呢,主路由下发就行啊。
jdjingdian
227 天前
@yyysuo 你的操作太复杂了(我小白 哈哈哈
之前也想研究 mosdns ,但感觉头大

我目前是这样设计的
主路由:RouterOS 旁路由:OpenWrt + dae

openwrt 通过 ospf 把非中国的路由表同步到 routerOS ,非中国路由表走 openWrt ,中国路由表直接出去
RouterOS 和 OpenWrt 通过 VRRP 共享一个 ip ,openwrt 为主,DNS 指向这个共享 IP

不过这样弄 DNS 肯定不是很干净就是了,以后慢慢研究改进
yyysuo
227 天前
@jdjingdian #29 你这才是大佬好吧,你搞的这一套,哪一个我都玩不转。
SenLief
227 天前
@yyysuo 主路由下发的网关不是旁路由的,还需要自己手动改。
mohumohu
227 天前
@yyysuo 不需要改主路由网关,真正国内直连啊,你既然在意直连性能为啥不直接直连呢,节点挂了甚至旁路由电源拔了都不会影响正常上网。
mohumohu
227 天前
@SenLief 不需要改主路由网关,旁路由电源拔了不影响上网。
dude4
227 天前
在用 openclash+fake ip 旁路由,跑在树莓派上,开了 IPV6 ,目前已解决的问题:
1.IPV6 DNS ,需要在主路由(也是 openwrt )关掉 V6 DNS 通告,这样只通告 V4 DNS ,可以解决部分网站 V6 优先的问题,譬如 engadget ,这样做是因为目前好像 openwrt 用的 ODHCPD 无法单独设置 V6 DNS ,或者没找到好方法
2. 主路由用 dhcp opition+mac 方式给需要的设备通告网关和 V4 DNS ,客户端设备上设置使用设备 mac 码就可以固定分配局域网 IP 和网关,不需要梯子的设备就直连,这样就各取所需了。主路由梯子还是不适合复杂使用的情况,当然我不玩游戏,可能需求不同。

感觉和这个实现的差不多,这个是又另外造了个轮子?
dude4
227 天前
看了一下介绍,貌似这个轮子还是和 openclash 实现的不一样,是内核级别的,等子弹再飞一会儿, 如果好用可以试试。
JensenQian
227 天前
有点牛,不过旁路由好麻烦
mohumohu
227 天前
@dude4 我看了下文档描述是这样的:
```
域名通过劫持 DNS 请求,将 DNS 请求的域名与所查 IP 进行关联来得到。尽管这种方式有一些问题:

可能会出现误判。例如需要分流到国内和国外的两个网站拥有同一个 IP ,且在短时间内同时被访问,或浏览器有 DNS 缓存。
用户的 DNS 请求必须通过 dae 。例如将 dae 设为 DNS ,或在 dae 作为网关的情况下使用公共 DNS 。
但相比其他方案,这种方案已经是较优解了。例如 Fake IP 方案存在无法通过 IP 分流且存在严重的缓存污染问题,而域名嗅探方案存在只能嗅探 TLS/HTTP 等流量的问题。实际上,通过 SNI 嗅探来进行分流确实是更优选择,但由于 eBPF 对程序复杂度的限制,以及对循环的支持不友好,我们无法在内核空间实现域名嗅探。
```
我觉得这个文档说的不完全对,FAKEIP 方案就能域名和 IP 唯一对应没有误判,通过指定静态路由也是可以进行 IP 分流的,缓存污染问题也可以通过添加嗅探解决。
SenLief
227 天前
@mohumohu 那就需要为每一台设备单独设置网关了。
mohumohu
227 天前
@SenLief 不需要啊,主路由加一条 FAKEIP 的静态路由就可以了,只有分配到 FAKEIP 的域名才会走旁路。
SenLief
227 天前
@mohumohu 你用主路由做分流了,tp 没有这个功能我说嘛。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/982840

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX