[Bug] AAAA QTYPE 大量出现 context deadline exceeded
lonecale opened this issue · comments
在提交之前,请确认
- 我已经尝试搜索过 Issue ,但没有找到相关问题。
- 我正在使用最新的 mosdns 版本(或者最新的 commit),问题依旧存在。
- 我仔细看过 wiki 后仍然无法自行解决该问题。
- 我非常确定这是 mosdns 核心的问题。(如果是通过第三方衍生软件使用 mosdns 核心,不确定问题源头时,请先向衍生软件开发者提交问题。)
mosdns 版本
v5.3.1
操作系统
OpenWrt
Bug 描述和复现步骤
mosdns 满足条件的转发到 Openclash DNS端口 出现大量 context deadline exceeded
但是单独
使用的配置文件
- tag: forward_openclash
type: forward
args:
concurrent: 1
upstreams:
- addr: "127.0.0.1:7874"
- tag: forward_remote_upstream
type: sequence
args:
- exec: query_summary forward
- matches:
- qtype 28
exec: prefer_ipv4
- exec: $forward_openclash
mosdns 的 log 记录
2023-11-26 22:35:33 WARN forward_openclash upstream error {"uqid": 1686, "qname": "api.snapkit.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:33 WARN forward_openclash upstream error {"uqid": 1707, "qname": "p16-sg.tiktokcdn.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:34 WARN forward_openclash upstream error {"uqid": 1718, "qname": "mssdk22-normal-alisg.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:34 WARN forward_openclash upstream error {"uqid": 1722, "qname": "libra22-normal-alisg.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:35 WARN forward_openclash upstream error {"uqid": 1727, "qname": "api.service.sin2a.g.byteoversea.net.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:35 WARN forward_openclash upstream error {"uqid": 1737, "qname": "p16-useast2a.tiktokcdn.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:36 WARN forward_openclash upstream error {"uqid": 1742, "qname": "p16-sign-va.tiktokcdn.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:36 WARN forward_openclash upstream error {"uqid": 1745, "qname": "p16-amd-va.tiktokcdn.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:36 WARN forward_openclash upstream error {"uqid": 1748, "qname": "pitaya-sg.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:37 WARN forward_openclash upstream error {"uqid": 1752, "qname": "frontier.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:37 WARN forward_openclash upstream error {"uqid": 1761, "qname": "oec22-normal-alisg.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:37 WARN forward_openclash upstream error {"uqid": 1767, "qname": "v.group.jp.g.byteoversea.net.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:37 WARN forward_openclash upstream error {"uqid": 1769, "qname": "bsync-sg.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:38 WARN forward_openclash upstream error {"uqid": 1771, "qname": "sf16-sg.tiktokcdn.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:38 WARN forward_openclash upstream error {"uqid": 1773, "qname": "webcast22-ws-alisg.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:38 WARN forward_openclash upstream error {"uqid": 1778, "qname": "webcast16-ws-alisg.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:38 WARN forward_openclash upstream error {"uqid": 1782, "qname": "pitaya-task-sg.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:38 WARN forward_openclash upstream error {"uqid": 1786, "qname": "pull-cmaf-f16-gcp01.ttlivecdn.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:38 WARN forward_openclash upstream error {"uqid": 1787, "qname": "pull-w5-sg01.tiktokcdn.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:40 WARN forward_openclash upstream error {"uqid": 1805, "qname": "api19-core-c-alisg.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:40 WARN forward_openclash upstream error {"uqid": 1808, "qname": "api16-normal-c-useast1a.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:41 WARN forward_openclash upstream error {"uqid": 1811, "qname": "p16-sign.tiktokcdn-us.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:41 WARN forward_openclash upstream error {"uqid": 1814, "qname": "pull-fcdn-base6.s.bytefcdn-oversea.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:41 WARN forward_openclash upstream error {"uqid": 1817, "qname": "pull-cmaf-l10-sg01.tiktokcdn.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:42 WARN forward_openclash upstream error {"uqid": 1822, "qname": "api19-normal-c-alisg.tiktokv.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:42 WARN forward_openclash upstream error {"uqid": 1827, "qname": "v16.tiktokcdn.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:43 WARN forward_openclash upstream error {"uqid": 1833, "qname": "push-rtmp-f5-vr-sg01.tiktokcdn.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:46 WARN forward_openclash upstream error {"uqid": 1851, "qname": "api.steampowered.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:46 WARN forward_openclash upstream error {"uqid": 1862, "qname": "avatars.cloudflare.steamstatic.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:47 WARN forward_openclash upstream error {"uqid": 1866, "qname": "store.steampowered.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:35:47 WARN forward_openclash upstream error {"uqid": 1869, "qname": "steamcommunity.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
2023-11-26 22:38:24 WARN forward_openclash upstream error {"uqid": 1930, "qname": "github-cloud.s3.amazonaws.com.", "qclass": 1, "qtype": 28, "upstream": "127.0.0.1:7874", "error": "context deadline exceeded"}
这只能说明你的127.0.0.1:7874不会响应AAAA记录。
这只能说明你的127.0.0.1:7874不会响应AAAA记录。
这些地址我发现大多都是:
响应 AAAA 应答没有期望的ANSWER,只有CNAME记录
响应 A 应答是有期望的 ANSWER
因为forward_openclash 是最后一个工作流程。这样 我无法在forward_openclash后面匹配 has_wanted_ans 判断。
还有一个方式只能 如下
- tag: forward_remote_upstream
type: sequence
args:- matches:
- qtype 28
exec: prefer_ipv4
- qtype 28
- exec: $forward_test
- matches:
- has_wanted_ans
- exec: $forward_openclash
- matches:
但是这样转给forward_openclash就是应答的ip了 而不是域名了有什么好的处理办法呢 ?希望的效果是如果是双栈 只用ipv4转发forward_openclash 如果是单独IPV4或者IPV6的就直接forward_openclash
这个context deadline exceeded错误 应该就是这样 prefer_ipv4 把目标 同时进行ipv4/6请求到后面的一个forward 如何ipv4/6一方没有返回就出现