Files
dns-server/dns/.trae/documents/测试domainSpecificDNS功能.md
Alex Yang cdac4fcf43 update
2026-01-16 11:09:11 +08:00

41 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 修复domainSpecificDNS的DNSSEC优先级问题
## 1. 问题分析
* 当域名匹配到 `domainSpecificDNS` 配置时程序会使用指定的DNS服务器
* 但随后程序会向DNSSEC专用服务器发送请求
* 如果DNSSEC专用服务器返回了带DNSSEC的响应程序会优先使用该响应
* 这导致 `domainSpecificDNS` 指定的DNS服务器的响应被忽略
## 2. 修复计划
### 2.1 修改 `forwardDNSRequestWithCache` 函数
* 在函数中添加一个标志 `domainMatched`,记录域名是否匹配了 `domainSpecificDNS` 配置
* 当域名匹配到 `domainSpecificDNS` 配置时,设置该标志为 `true`
### 2.2 修改DNSSEC响应处理逻辑
* 在处理DNSSEC专用服务器响应时检查 `domainMatched` 标志
* 如果标志为 `true`,则**不优先使用DNSSEC专用服务器的响应**而是保留原来指定DNS服务器的响应
* 只有当指定的DNS服务器没有返回有效响应时才考虑使用DNSSEC专用服务器的响应
### 2.3 确保指定的DNS服务器优先
* 确保对于匹配了 `domainSpecificDNS` 的域名始终优先使用指定的DNS服务器的响应
* 只有当指定的DNS服务器没有返回有效响应时才考虑使用DNSSEC专用服务器的响应
## 3. 预期效果
* 对于匹配了 `domainSpecificDNS` 配置的域名始终优先使用指定的DNS服务器
* 只有当指定的DNS服务器没有返回有效响应时才考虑使用DNSSEC专用服务器
* DNSSEC功能仍然正常工作但不会覆盖 `domainSpecificDNS` 的配置
## 4. 测试计划
* 重启DNS服务器
* 使用 `dig @127.0.0.1 dc.amazehome.xyz +short` 测试
* 检查日志确保使用的是指定DNS服务器的响应
* 验证解析结果是否符合预期