Replies: 8 comments 11 replies
-
这样能自动切换 plugins:
- tag: forward_google
type: "fast_forward"
args:
upstream:
- addr: "udpme://8.8.8.8"
trusted: true
- tag: "ecs_us"
type: "ecs"
args:
auto: false
ipv4: "8.8.8.8"
ipv6: "2001:4860:4860::"
force_overwrite: true
mask4: 24
mask6: 48
- tag: response_has_fastly_ip
type: "response_matcher"
args:
ip:
- "provider:geoip:fastly"
- tag: main_sequence
type: sequence
args:
exec:
- forward_google
- if: "response_has_fastly_ip"
exec:
- ecs_us
- forward_google |
Beta Was this translation helpful? Give feedback.
-
这种方案就是我之前用的,缺点很明显要请求两次,延时很大,而且ecs有时候不灵 |
Beta Was this translation helpful? Give feedback.
-
搜了一下现在网上没有 “akamai 优选 ip” 的方案。看样子是 akamai 的规则很复杂,不能像 cloudflare 一样直接简单粗暴的改IP。 我本地试了试 问题是如果真是“仅凭最后2位能区分证书”,最多区分 65535 个证书。对于 akamai 这种大 CDN 应该是明显不够的。所以我猜这个假设不完整。 还有我发现大陆内请求 www.microsoft.com 等 microsoft 家的域名,是没有 AAAA 记录的。境外请求的话,只有部分域名有 AAAA。然后就是 IPv4 似乎没有规则可循。所以还牵涉到处理双栈的问题。很难处理。 所以 @IIIlllIIllIIIll 的方案,虽然不完美而且 ecs 确实不稳定,因为有些dns服务器不看ecs信息,但是是简单而且可行的方案。 |
Beta Was this translation helpful? Give feedback.
-
通过修改应答的方式实现优选ip基本上不可能。 akamai 不支持 ECS 。 #425 所以指定 ECS 也是没有用的。 不过也正是因为 akamai 不支持 ECS,所以你只需向当地的随便一个DNS服务器请求,(比如你想走香港线路,在判断域名是CDN域名后,再去请求一个香港DNS),就能拿到当地的IP解析结果。 即使 akamai 支持 ECS,或者说某个支持 ecs 的 cdn,只需向当地不支持ECS的DNS服务器(一般是主打隐私保护,所以有些服务器会故意不支持ECS)请求,效果一样。 思路就是 - tag: main_sequence
type: sequence
args:
exec:
- forward_google
- if: "response_is_akamai "
exec:
- forward_some_hk_server fastly 没试,理论上一样。 代价是要进行两次请求,但没有什么影响。原本100ms解析现在需要200ms,网页打开慢100ms。人不可能感觉出来。况且我们还可以配置缓存。 将 issue 转换成 discussion 了。 |
Beta Was this translation helpful? Give feedback.
-
我没折腾过 CDN 优选。 如果要实现“通过改写ipv6前缀实现优选线路”。我觉得还有些问题要解决。
解决后就可以考虑代码实现了。欢迎讨论。 |
Beta Was this translation helpful? Give feedback.
-
多谢分享思路,通过这个找到了stackoverflow.com 的ipv6 地址 |
Beta Was this translation helpful? Give feedback.
-
能akamai的ip段吗?谢谢 |
Beta Was this translation helpful? Give feedback.
-
联通走韩国LG线路能跑满速,但是不知道有没有稳定解析的方法。其实联通日本NTT也不错,比电信好太多。 |
Beta Was this translation helpful? Give feedback.
-
可根据上游应答ip动态修改产生ip给下游
之前已经通过匹配cname或ip段,反馈特定优选ip,极大提升了cloudflare和cloudfront连接效果.
但是fastly和akamai一个ip只绑定了有限个域名,随意指定ip会报证书错误
但是我发现他们的同一个域名同一时间不同区域的ipv6记录最后一段是相同的
例如
www.microsoft.com
东京kddi
2600:140b:7000:280::356e
大阪kddi
2600:140b:3000:381::356e
东京ntt
2600:140b:5000:396::356e
大阪ntt
2600:140b:1e00:49a::356e
圣何塞tata
2600:1406:3a00:48f::356e
香港tata
2600:1417:9800:381::356e
东京中国电信直连
2600:140b:2:19c::356e
再比如
jsdelivr.map.fastly.net 即 cdn.jsdelivr.net 的cname
东京ntt
2a04:4e42:1a::485
香港ntt
2a04:4e42:12::485
首尔kinx
2a04:4e42:7c::485
圣何塞ntt
2a04:4e42:a::485
洛杉矶ntt
2a04:4e42:6::485
问题就是akamai的域名国内dns极大概率会解析到北美,甚至有绕美的香港tata,目前无法找到一个dns可以稳定解析到最优的东京电信直连段,只有凌晨两三点这种空闲时段电信dns会偶尔解析到
fastly则是国内dns大概率解析到东京ntt,而这条线路基本常年处于爆炸丢包状态,反而是北美线路更好,但是托管fastly域名太多不可能全部指定为圣何塞ecs或dns,北美dns解析延时也大
但是知晓了上述规律,就可以随便用哪个dns解析,保留最后一段,替换前面几段为对自己ip更友好的段,比如联通移动也都与akamai在香港有直连段
不知mosdns能否新增这么一个应答修改器?或者直接增强blackhole修改器或arbitrary生成器,
配合cname匹配器相信可以极大的改善akamai和fastly的连接体验,四大cdn就齐全了.
目前利用blackhole修改器指定优选ip,也有一个小问题就是只能指定一个ip,这样对于idm,aria2这种可利用多ip同时下载的软件不太友好
Beta Was this translation helpful? Give feedback.
All reactions