v1.3.0
OxiDNS v1.3.0
🚀 发布概览
OxiDNS v1.3.0 是一次面向执行器语义、上游连接稳定性和工程结构的 Minor Release。核心变化包括 black_hole 升级为全 qtype 拦截器、upstream 连接池与 bootstrap 路径进一步加固,以及 Rust 包结构调整为 cli + infra + 精简 core。
如果你依赖 black_hole、复杂上游池、RouterOS address-list 联动,或将 OxiDNS 作为 Rust library 嵌入使用,建议仔细阅读升级说明。
✨ 主要亮点
black_hole支持nxdomain/nodata/null/custom/refused模式,并覆盖所有 qtype;旧的ips配置会自动保持custom兼容语义。- Upstream 连接池新增
min_conns,并强化 deadline、取消安全、slot 回收、不可用连接裁剪和 bootstrap CNAME 选择逻辑。 ros_address_list新增 RouterOS API 连接、发送、接收超时配置;启动阶段扫描后台化,避免慢 address-list 阻塞 DNS 服务启动。zoneparser扩展标准 RDATA 解析能力,覆盖更多常见记录类型,并继续保留 RFC3597 generic syntax 兜底。- 修复规则文件解析中逗号被错误切分的问题,包含逗号的 domain / matcher 表达式可以正确保留。
- Rust 代码结构重组为
src/cli/、src/infra/和精简src/core/,CLI、基础设施和 DNS 执行语义边界更清晰。 - Release workflow 修复已打包产物被二次 archive 的问题。
⚠️ 升级说明
v1.2.3配置通常可以直接升级到v1.3.0。- 请重点检查
black_hole:- 旧的
ips写法会继续按custom处理。 - 无参
black_hole现在默认返回NXDOMAIN。 null/custom对非 A/AAAA 请求返回 NODATA,不再继续透传。
- 旧的
- Upstream
bootstrap必须写成IP:port,不要使用域名。 - 新增
upstreams[].min_conns默认为0,不配置时仍保持懒加载连接行为。 ros_address_list的 timeout 字段都是可选项,默认兼容旧配置;大型共享 address-list 仍建议拆分为 OxiDNS 专用列表。- Rust library embedders 需要迁移公开 module path:旧顶层
network/build_info/upgrade/service和原core下的基础设施模块已迁入infra;core::context与core::rule_matcher保持不变。 - 根 crate 版本为
1.3.0;oxidns-zoneparser升级到0.1.1。
📦 下载与校验
- 根据你的平台和 bundle 选择对应 release archive。
standard适合大多数部署;需要最完整能力时选择full;极简自定义部署可选择minimal或自行按 feature 构建。- 替换生产环境二进制前,请使用 release assets 中的校验信息确认文件完整性。
What's Changed
- feat(executor): make black_hole a full interceptor by @svenshi in #191
- refactor: reduce complexity risk in DNS internals by @svenshi in #190
- fix(executor): avoid blocking startup on RouterOS scans by @svenshi in #192
- fix: 400 Bad Request, message: missing Accept header by @ohyooo in #196
- deps: bump the cargo-patch-and-minor group with 3 updates by @dependabot[bot] in #198
- deps: bump sysinfo from 0.38.4 to 0.39.3 in the cargo-major group by @dependabot[bot] in #199
- fix double-archiving zipped artifacts by @ohyooo in #200
- fix(upstream): make pooled queries deadline and cancel safe by @svenshi in #203
- fix(matcher): preserve commas in rule files by @svenshi in #206
- Refactor/package structure by @svenshi in #208
- Release/v1.3.0 by @svenshi in #207
- release v1.3.0 by @svenshi in #210
New Contributors
Full Changelog: v1.2.3...v1.3.0