1.8 KiB
1.8 KiB
实现计划
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功能,确保能够正确处理带前缀的域名查询
-
测试不同配置组合下的功能正确性
预期效果
- 当域名匹配domainSpecificDNS配置时,无论DNSSEC是否启用,只使用指定的DNS服务器
- 支持search domain功能,能够自动尝试添加配置的域名前缀
- 配置简单直观,与/etc/resolv.conf的search domain行兼容
实现要点
-
确保domainSpecificDNS配置的优先级最高
-
实现高效的search domain查询逻辑,避免不必要的网络请求
-
保持代码的可读性和可维护性
-
确保与现有功能的兼容性