增加更多匹配的域名信息

This commit is contained in:
Alex Yang
2026-01-14 23:08:46 +08:00
parent f247eaeaa8
commit 8159577be0
60 changed files with 11716 additions and 1022 deletions

View File

@@ -0,0 +1,79 @@
## DNS服务器性能优化方案
### 问题分析
1. **并行查询模式**:当前配置使用`parallel`模式,会等待所有上游服务器响应后才返回,受最慢服务器影响
2. **DNSSEC验证开销**启用了DNSSEC验证增加了额外的计算和网络请求
3. **过多上游服务器**DNSSEC上游服务器多达5个响应时间差异大
4. **调试级别日志**`debug`级别日志记录大量信息占用CPU和I/O资源
5. **缓存TTL过短**10秒的缓存TTL导致频繁向上游请求
6. **黑名单规则过多**14个启用的黑名单每次请求都需要检查
### 优化方案
#### 1. 修改查询模式为快速返回
*`queryMode``parallel`改为`fastest-ip`或优化默认模式
* 快速返回模式会返回第一个有效响应,而不是等待所有响应
#### 2. 优化DNSSEC配置
* 减少DNSSEC上游服务器数量只保留2-3个可靠的
* 对国内域名禁用DNSSEC验证已配置部分可扩展
#### 3. 调整缓存策略
* 增加`cacheTTL`到60秒或更高减少上游请求频率
* 优化缓存实现,减少锁竞争
#### 4. 降低日志级别
* 将日志级别从`debug`改为`info``warn`,减少日志写入开销
#### 5. 优化黑名单处理
* 合并重复的黑名单规则
* 考虑使用更高效的域名匹配算法
#### 6. 代码优化
* 减少DNSSEC验证的重复调用
* 优化响应合并逻辑,避免不必要的计算
* 调整超时设置,避免过长等待
### 具体修改点
1. **config.json**
* 修改`queryMode``fastest-ip`
* 减少`dnssecUpstreamDNS`数量
* 增加`cacheTTL`到60
* 将日志级别改为`info`
2. **dns/server.go**
* 优化`forwardDNSRequestWithCache`函数减少DNSSEC重复验证
* 优化响应合并逻辑,避免不必要的计算
* 调整并行模式的超时处理
### 预期效果
* 减少响应时间,从当前的秒级降低到毫秒级
* 减少CPU和I/O资源占用
* 提高并发处理能力
* 保持DNS解析的准确性和可靠性