Files
dns-server/.trae/documents/实现domainSpecificDNS强制使用和search域支持.md
2025-12-19 12:44:57 +08:00

1.7 KiB
Raw Blame History

实现计划

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查询逻辑避免不必要的网络请求
  • 保持代码的可读性和可维护性
  • 确保与现有功能的兼容性