feat(cache): 实现并发安全的 DNS 响应缓存机制 新增基于 sync.Map 的缓存结构,支持 TTL 管理与定时清理。 完善缓存键生成逻辑,包含 DO/CD 标志避免上下文污染。 增强缓存读写处理: - 自动跳过伪 RR(OPT/TSIG)防止干扰 TTL 计算 - 写入前剥离传输层细节提升通用性 - 支持负面缓存(NXDOMAIN/NODATA)并遵循 RFC 2308 - 回填剩余 TTL 并确保对外不可变 优化上游查询模块: - 并发向多个上游竞速,支持 UDP 截断后 TCP 回退 - 过滤不良 RCODE(SERVFAIL/REFUSED/FORMERR)提升稳定性 - 使用信号量控制最大并发数,改善资源利用率 - 快速失败机制减少无效等待 其他改进: - 完善日志记录,区分缓存命中/未命中及响应内容 - 显式构建客户端兼容的 EDNS0 选项 - 增加注释说明关键设计决策和行为边界 ```
18 KiB
18 KiB