59 lines
1.8 KiB
Markdown
59 lines
1.8 KiB
Markdown
## 实现计划
|
||
|
||
### 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查询逻辑,避免不必要的网络请求
|
||
|
||
* 保持代码的可读性和可维护性
|
||
|
||
* 确保与现有功能的兼容性
|
||
|