This commit is contained in:
Alex Yang
2026-01-16 11:09:11 +08:00
parent 8159577be0
commit cdac4fcf43
284 changed files with 2813570 additions and 14 deletions

View File

@@ -0,0 +1,58 @@
## 实现计划
### 1. 配置文件修改
* **修改`/root/dns/config/config.go`**
*`DNSConfig`结构体中添加`PrefixDomain []string`字段用于支持search domain功能
*`LoadConfig`函数中添加`prefixDomain`的默认值处理
### 2. DNS请求处理逻辑修改
* **修改`/root/dns/dns/server.go`中的`forwardDNSRequestWithCache`函数**
* 强化domainSpecificDNS逻辑确保当域名匹配时只使用指定的DNS服务器
* 移除向DNSSEC专用服务器发送请求的逻辑当域名匹配domainSpecificDNS时
* 确保匹配域名的DNS查询结果不会被其他DNS服务器的响应覆盖
* **修改`/root/dns/dns/server.go`中的`handleDNSRequest`函数**
* 实现search domain功能当直接查询失败时尝试添加prefixDomain中指定的域名前缀
* 按照/etc/resolv.conf中的search domain逻辑处理查询请求
### 3. 配置文件示例更新
* **更新配置文件示例**
* 添加`prefixDomain`配置项示例
* 说明search domain功能的使用方法
### 4. 测试验证
* 测试domainSpecificDNS强制使用功能确保匹配的域名只使用指定的DNS服务器
* 测试search domain功能确保能够正确处理带前缀的域名查询
* 测试不同配置组合下的功能正确性
## 预期效果
1. 当域名匹配domainSpecificDNS配置时无论DNSSEC是否启用只使用指定的DNS服务器
2. 支持search domain功能能够自动尝试添加配置的域名前缀
3. 配置简单直观,与/etc/resolv.conf的search domain行兼容
## 实现要点
* 确保domainSpecificDNS配置的优先级最高
* 实现高效的search domain查询逻辑避免不必要的网络请求
* 保持代码的可读性和可维护性
* 确保与现有功能的兼容性