Files
dns-server/dns/.trae/documents/实现domainSpecificDNS强制使用和search域支持.md
Alex Yang cdac4fcf43 update
2026-01-16 11:09:11 +08:00

1.8 KiB
Raw Permalink 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查询逻辑避免不必要的网络请求

  • 保持代码的可读性和可维护性

  • 确保与现有功能的兼容性