coredns v1.13.2 版本更新介绍
发布日期: 2025-12-10
版本号: v1.13.2
本次发布新增了对 DoH3 的初步支持,并包含多项核心性能与稳定性修复,如减少内存分配、解决数据竞争问题及优化 QUIC 监听器初始化。多个插件更新提升了转发器可靠性、扩展了 GeoIP 模式支持,并修复了 secondary、nomad 和 kubernetes 插件中的问题。缓存与文件插件也进行了针对性的性能调优。
需注意,GeoIP 插件当前对缺失的经纬度数据返回 0,但下一版本将改为空字符串,以避免与真实坐标混淆,请依赖此默认值的用户提前调整逻辑。
更新内容 (中文)
本版本添加了对DoH3的初步支持,并包含多项核心性能与稳定性修复,包括减少内存分配、解决uniq中的数据竞争问题,以及更安全的QUIC监听器初始化。插件更新改进了转发器的可靠性,扩展了GeoIP模式支持,并修复了secondary、nomad和kubernetes插件中的问题。缓存与文件插件也进行了针对性的性能调优。
弃用提示:当前GeoIP插件在缺失经纬度数据时返回0,尽管0,0是实际存在的地理位置坐标。在下个版本中此行为将调整:缺失坐标将返回空字符串,以避免将“缺失数据”与真实坐标混淆。依赖0作为哨兵值的用户需在此次变更生效前更新逻辑。详见PR #7732。
致谢贡献者
Alicia Y
Andrey Smirnov
Brennan Kinney
Charlie Vieth
Endre Szabo
Eric Case
Filippo125
Nico Berlee
Olli Janatuinen
Rick Fletcher
Timur Solodovnikov
Tomas Boros
Ville Vesilehto
cangming
rpb-ant
wencyu
wenxuan70
Yong Tang
zhetaicheleba
重要变更
- 核心功能:新增DoH3基础支持(https://github.com/coredns/coredns/pull/7677)
- 核心功能:优化Yield函数中的代理内存分配(https://github.com/coredns/coredns/pull/7708)
- 核心功能:修复sync.Pool使用方式以减少内存分配(https://github.com/coredns/coredns/pull/7701)
- 核心功能:解决uniq模块中sync.RWMutex的数据竞争问题(https://github.com/coredns/coredns/pull/7707)
- 核心功能:通过延迟初始化监听器防止QUIC重载崩溃(https://github.com/coredns/coredns/pull/7680)
- 核心功能:重构并采用reflect.TypeFor(https://github.com/coredns/coredns/pull/7696)
- 插件/auto:限制正则表达式长度(https://github.com/coredns/coredns/pull/7737)
- 插件/cache:移除item.toMsg中冗余内存分配(https://github.com/coredns/coredns/pull/7700)
- 插件/cache:在预取协程中隔离元数据(https://github.com/coredns/coredns/pull/7631)
- 插件/cache:修正cache与dnsutil包中MaximumDefaultTTL的拼写错误(https://github.com/coredns/coredns/pull/7678)
- 插件/dnstap:改进Dnstap繁忙时的错误处理(重拨与日志记录)(https://github.com/coredns/coredns/pull/7619)
- 插件/file:性能优化(https://github.com/coredns/coredns/pull/7658)
- 插件/forward:禁用故障转移中的NOERROR响应(https://github.com/coredns/coredns/pull/7622)
- 插件/forward:新增针对各nameserver的TLS SNI支持(https://github.com/coredns/coredns/pull/7633)
- 插件/forward:防止连接错误导致的忙循环(https://github.com/coredns/coredns/pull/7704)
- 插件/forward:新增最大连接尝试次数配置项(https://github.com/coredns/coredns/pull/7722)
- 插件/geoip:新增ASN模式支持(https://github.com/coredns/coredns/pull/7730)
- 插件/geoip:新增行政区划支持(https://github.com/coredns/coredns/pull/7728)
- 插件/kubernetes:修复kubernetes插件日志记录(https://github.com/coredns/coredns/pull/7727)
- 插件/multisocket:限制套接字数量防止内存溢出(https://github.com/coredns/coredns/pull/7615)
- 插件/nomad:支持服务过滤(https://github.com/coredns/coredns/pull/7724)
- 插件/rewrite:预编译CNAME重写正则表达式(https://github.com/coredns/coredns/pull/7697)
- 插件/secondary:修复重载导致secondary插件协程泄漏的问题(https://github.com/coredns/coredns/pull/7694)
更新内容 (原始)
This release adds initial support for DoH3 and includes several core performance and stability fixes, including reduced allocations, a resolved data race in uniq, and safer QUIC listener initialization. Plugin updates improve forwarder reliability, extend GeoIP schema support, and fix issues in secondary, nomad, and kubernetes. Cache and file plugins also receive targeted performance tuning.
Deprecations: The GeoIP plugin currently returns 0 for missing latitude/longitude, even though 0,0 is a real location. In the next release, this behavior will change: missing coordinates will return an empty string instead. This avoids conflating “missing” with a real coordinate. Users relying on 0 as a sentinel value should update their logic before this change takes effect. See PR #7732 for reference.
Brought to You By
Alicia Y Andrey Smirnov Brennan Kinney Charlie Vieth Endre Szabo Eric Case Filippo125 Nico Berlee Olli Janatuinen Rick Fletcher Timur Solodovnikov Tomas Boros Ville Vesilehto cangming rpb-ant wencyu wenxuan70 Yong Tang zhetaicheleba
Noteworthy Changes
- core: Add basic support for DoH3 (https://github.com/coredns/coredns/pull/7677)
- core: Avoid proxy unnecessary alloc in Yield (https://github.com/coredns/coredns/pull/7708)
- core: Fix usage of sync.Pool to save an alloc (https://github.com/coredns/coredns/pull/7701)
- core: Fix data race with sync.RWMutex for uniq (https://github.com/coredns/coredns/pull/7707)
- core: Prevent QUIC reload panic by lazily initializing the listener (https://github.com/coredns/coredns/pull/7680)
- core: Refactor/use reflect.TypeFor (https://github.com/coredns/coredns/pull/7696)
- plugin/auto: Limit regex length (https://github.com/coredns/coredns/pull/7737)
- plugin/cache: Remove superfluous allocations in item.toMsg (https://github.com/coredns/coredns/pull/7700)
- plugin/cache: Isolate metadata in prefetch goroutine (https://github.com/coredns/coredns/pull/7631)
- plugin/cache: Correct spelling of MaximumDefaultTTL in cache and dnsutil packages (https://github.com/coredns/coredns/pull/7678)
- plugin/dnstap: Better error handling (redial & logging) when Dnstap is busy (https://github.com/coredns/coredns/pull/7619)
- plugin/file: Performance finetuning (https://github.com/coredns/coredns/pull/7658)
- plugin/forward: Disallow NOERROR in failover (https://github.com/coredns/coredns/pull/7622)
- plugin/forward: Added support for per-nameserver TLS SNI (https://github.com/coredns/coredns/pull/7633)
- plugin/forward: Prevent busy loop on connection err (https://github.com/coredns/coredns/pull/7704)
- plugin/forward: Add max connect attempts knob (https://github.com/coredns/coredns/pull/7722)
- plugin/geoip: Add ASN schema support (https://github.com/coredns/coredns/pull/7730)
- plugin/geoip: Add support for subdivisions (https://github.com/coredns/coredns/pull/7728)
- plugin/kubernetes: Fix kubernetes plugin logging (https://github.com/coredns/coredns/pull/7727)
- plugin/multisocket: Cap num sockets to prevent OOM (https://github.com/coredns/coredns/pull/7615)
- plugin/nomad: Support service filtering (https://github.com/coredns/coredns/pull/7724)
- plugin/rewrite: Pre-compile CNAME rewrite regexp (https://github.com/coredns/coredns/pull/7697)
- plugin/secondary: Fix reload causing secondary plugin goroutine to leak (https://github.com/coredns/coredns/pull/7694)
下载链接
- coredns_1.13.2_darwin_amd64.tgz
- coredns_1.13.2_darwin_amd64.tgz.sha256
- coredns_1.13.2_darwin_arm64.tgz
- coredns_1.13.2_darwin_arm64.tgz.sha256
- coredns_1.13.2_linux_amd64.tgz
- coredns_1.13.2_linux_amd64.tgz.sha256
- coredns_1.13.2_linux_arm.tgz
- coredns_1.13.2_linux_arm.tgz.sha256
- coredns_1.13.2_linux_arm64.tgz
- coredns_1.13.2_linux_arm64.tgz.sha256
- coredns_1.13.2_linux_mips.tgz
- coredns_1.13.2_linux_mips.tgz.sha256
- coredns_1.13.2_linux_mips64le.tgz
- coredns_1.13.2_linux_mips64le.tgz.sha256
- coredns_1.13.2_linux_ppc64le.tgz
- coredns_1.13.2_linux_ppc64le.tgz.sha256
- coredns_1.13.2_linux_riscv64.tgz
- coredns_1.13.2_linux_riscv64.tgz.sha256
- coredns_1.13.2_linux_s390x.tgz
- coredns_1.13.2_linux_s390x.tgz.sha256
- coredns_1.13.2_windows_amd64.tgz
- coredns_1.13.2_windows_amd64.tgz.sha256