Open zhaibin18 opened 1 year ago
在mosdns能否把这种Refused没有结果的响应过滤掉。
RFC7871 https://www.rfc-editor.org/rfc/rfc7871#section-7.1.1 的意思应该是“附加的 ECS 的请求如果收到 REFUSE ,用无 ECS 的请求重试”
这个问题的本质是我设置了4个上游dns server,包含google的,只是google的响应最快但是因为带了ecs返回了refused的结果,其他的dns server还是能返回正确地址的,从最终使用者的角度,只要能有一个正确的返回结果就行,所以建议如果上游返回了refused的结果就过滤掉,改用其他上游返回的结果就可以,希望作者可以考虑,多谢!
用v4版本写response matcher,rcode不是0的就forward到另一个上游,直到rcode为0为止就可以了。示例:
plugins:
- tag: upstream_success
type: response_matcher
args:
rcode: [0]
- tag: main_sequence
type: sequence
args:
exec:
# 优先返回ipv4结果
- _prefer_ipv4
- ecs_auto
- to_google
- if: (! upstream_success)
exec:
- ecs_auto
- to_quad9
- if: (! upstream_success)
exec:
- _no_ecs
- to_cloudflare
- _return
在提交之前,请确认
mosdns 版本
v4.5.3-0-g760a660
操作系统
openwrt
Bug 描述和复现步骤
google DNS服务器会拒绝特定的ECS请求
使用的配置文件
mosdns 的 log 记录