一个典型的线上故障长这样:电商大促前的压测里,网关层吞吐量始终上不去,应用本身 CPU 和内存都很闲,链路追踪却显示大量请求卡在「建立连接」这一步。团队连续排查了三天,从应用线程池查到数据库连接池,最后才发现瓶颈不在业务代码,而在看不见的 DNS 解析——容器里每一次短连接都会触发一次域名查询,而 CoreDNS 的某条上游转发链路偶发超时,单条查询从正常的毫秒级变成了接近一秒,海量短连接把这点延迟放大成了整站吞吐的塌方。
这类问题之所以难查,是因为 DNS 处在所有网络调用的上游,平时毫无存在感,一旦变慢就会以乘法效应拖垮每一笔请求。本文把视角拆成两条线:一条是容器集群内部的 CoreDNS 调优,解决「服务之间海量短连接把解析打爆」;另一条是出海业务的跨地域寻址,解决「用户在美国、服务在亚洲,怎么让用户先找到最近的门」。两条线背后的技术对象都是同一个 CoreDNS,但调优抓手完全不同。
需要提前说清边界:本文只谈解析层的工程实践与运维判断,不提供任何伪造的测速数据、延迟数字或内部性能报表。涉及版本、插件默认值、限流与多区域实践的部分,均来自 CoreDNS 官方文档、Kubernetes 官方文档以及多家云厂商与社区公开资料,文末「数据来源」段列明了出处与主题。
微服务架构里最常见的反模式,是「每次请求都新建连接、每次建连都重新解析」。在长连接或者连接池复用的场景里,域名解析只发生一次并被缓存,几乎不构成开销;可一旦业务侧用短连接高频访问下游(典型如某些 HTTP 客户端默认不保持连接、或者重试逻辑里重建客户端),解析请求量就会和 QPS 成正比地飙升。
真正让问题雪上加霜的,是 Kubernetes Pod 默认注入的 resolv.conf 里那行 ndots:5。按照 DNS 解析规范,当查询名称里点数少于 ndots 时,解析器会先把名称当作相对名,依次拼接 search 域去尝试,直到用完所有 search 域才去查绝对名。于是一次对 api.example.com 的查询,在没有命中缓存时可能先产生多条以 cluster.local、svc.cluster.local 等为后缀的无效查询,再去查真实域名。短连接叠加 ndots 放大,CoreDNS 收到的查询量往往数倍于真实的业务域名访问量。
另一个常被忽略的点是 UDP 与 conntrack 的耦合。Pod 向 CoreDNS 发 DNS 请求走的是集群内部的虚拟网络,大量短命的 UDP 会话会快速消耗节点上的连接跟踪表项;表项耗尽时,新报文被静默丢弃,表现就是间歇性的解析超时,而应用层看到的只是「偶发卡顿」,很难第一时间联想到底层表项。再加上早期 CoreDNS 的 forward 插件没有默认限制单上游并发,慢上游会把请求排队,进一步拉高尾部延迟。
把这三件事合起来看:短连接放大查询量、ndots 制造无效查询、底层表项与并发排队抬高尾部延迟,DNS 就从「免费的基础设施」变成了「看不见的全局瓶颈」。好消息是,这三处都有明确可操作的缓解手段,并不需要重写业务。
在 Kubernetes 1.13 之前,集群 DNS 的默认实现是 kube-dns,它本质上是一组组件的拼装:基于 SkyDNS 的 DNS 服务、监听 Kubernetes API 的 kube2sky 或 sidecar,以及 dnsmasq 负责缓存与转发。这套组合能跑,但有两个老问题一直被人诟病:其一是 dnsmasq 在大规模集群里出现过内存泄漏与并发处理能力的瓶颈;其二是多组件拼装带来的运维复杂度和版本错配风险。
CoreDNS 从 Kubernetes 1.13 起成为默认集群 DNS,并一直延续至今。它的核心设计是「插件链」——所有功能都由可插拔的插件提供,单个 Corefile 里按顺序声明插件,查询就按这条链依次经过。官方为了兼容老工作负载,把 Service 名字继续保留为 kube-dns,也就是说你今天在集群里看到的 Service 名仍然是 kube-dns,但背后实际跑的已经是 CoreDNS 的 Pod。这种「名字不变、实现替换」的策略,让存量应用无需改动就能平滑迁移。
CoreDNS 用 Go 语言编写,原生规避了 dnsmasq 那类 C 组件的内存管理包袱,同时通过插件化把服务发现、缓存、转发、健康检查、指标暴露拆得很干净。集群默认 Corefile 里通常包含 errors、health、ready、kubernetes、prometheus、forward、cache、loop、reload、loadbalance 这一串插件,分别负责错误日志、健康端点、就绪端点、集群内服务发现、指标采集、上游转发、前端缓存、环路检测、热加载与响应顺序打散。理解这条链,是后续所有调优的前提。
值得强调的是,CoreDNS 不只是「kube-dns 的替代品」这么简单。因为它本身就是独立的通用 DNS 服务器,你完全可以在集群之外把它当作自建递归解析器、内部权威服务器或者出海业务的边缘 DNS 来用。本文后面讲的多区域解析与限流,很大一部分场景正是把 CoreDNS 当作独立组件部署,而不是只停留在集群内部的 Service 发现。
第一处是并发。很多团队直接沿用集群默认 Corefile,却没有给 forward 插件设置 max_concurrent。这个参数的作用是限制发往单个上游的并发查询数,避免慢上游把请求无限排队。公开文档与社区实践里,针对繁忙集群常见做法是显式加上 max_concurrent 1000 甚至更高(部分云厂商示例用到 2000),把「单上游串行等待」变成「有上限的并发」。如果上游确实慢,还应该配合调大 read_timeout,否则默认值在面对合法慢速递归解析时会直接变成 SERVFAIL 或超时。
第二处是缓存。默认 cache 30 只缓存成功应答 30 秒,而对否定应答(NXDOMAIN 等)的早期默认缓存时间很短,这会导致大量无效域名查询无法被有效吸收,反复打到上游。更合理的做法是显式配置缓存容量与否定缓存时长,例如 cache 30 内带 success 与 denial 的容量与 TTL 设定,并开启 serve_stale,让上游短暂不可用时仍能返回过期但可用的记录,而不是让解析直接失败。针对热点记录,prefetch 能在 TTL 即将到期前主动回源刷新,避免集中过期造成的上游突发。
第三处是转发目标。默认写法 forward . /etc/resolv.conf 把上游指向节点自身的 resolv.conf,而节点 resolv.conf 可能被宿主机的网络管理组件改动,导致 CoreDNS 的上游在不经意间漂移。更稳妥的工程做法是显式指定稳定的上游解析器地址(例如云厂商提供的 VPC 内网 DNS,或自建的可靠递归节点),并在 forward 块里用 health_check 与 max_fails 控制上游健康判定,而不是依赖一份可能被改动的系统文件。read_timeout 默认 2 秒对跨境或慢速上游偏紧,必要时按真实 RTT 上调。
把这三处一起改,往往能把「偶发超时」压成「稳定运行」。但改之前务必通过 kubectl edit configmap coredns -n kube-system 操作,并给 reload 插件留出生效时间(公开资料普遍提到改动后需等待约两分钟让 Corefile 热加载生效),改动后通过 CoreDNS 日志确认出现 Reloading 字样再下结论。
出海业务里,解析层的命题和集群内部完全不同:它要解决的是「地理寻址」,也就是让美国用户尽量落到美洲节点、欧洲用户落到欧洲节点,而不是让所有人都跨洋绕回亚洲源站。公开实践里最主流的手段是 GeoDNS——权威 DNS 根据用户请求来源 IP 的归属地,返回不同区域的节点 IP。比如新加坡用户得到新加坡入口 IP,法兰克福用户得到法兰克福入口 IP,其余未匹配地区再给一条默认记录兜底。
这里有一个常见的认知误区:直接把公共 DNS(如 8.8.8.8、1.1.1.1)当成「就近」的依据并不靠谱。公共 DNS 的调度精度取决于递归服务器的出口 IP,而不是终端用户的真实位置。一个身处菲律宾的用户,其递归出口可能在美国,解析结果就会偏到美洲,绕了一大圈。所以出海场景真正该做的是在权威侧做分地域解析,而不是依赖公共递归的就近能力。
落地路径上,行业里有三套现成方案。其一是自建 GeoDNS,用 PowerDNS 或 BIND 等按来源 IP 段返回不同 A 记录,灵活但需要自己维护 IP 归属地库,且海外机房换段频繁时规则要常改,适合有多地机房资源的大玩家。其二是采购云解析服务商的智能调度,后台勾选「海外-北美洲」「海外-欧洲」等线路指向对应节点 IP,通常自带 Anycast,配置以分钟计生效,是多数中小出海团队的成本与效果平衡点。其三是直接上 CDN,把解析与边缘调度一起托管,调度更精细但按流量计费,静态资源占比低的纯 API 业务性价比未必高。
| 方案 | 适用场景 | 缓存策略 | 多区域支持 | 运维负担 | 风险 |
|---|---|---|---|---|---|
| CoreDNS(集群内或独立部署) | Kubernetes 集群内部服务发现,或当作自建递归与边缘 DNS 使用 | 自带 cache 插件,可配 success 与 denial 缓存、serve_stale、prefetch | 本身不做 GeoDNS,需配合外部权威或前端调度 | 中等,插件化清晰但需懂 Corefile 与上游调优 | 默认并发与转发易踩坑,限流需外接 dnsdist 或 Unbound |
| 节点 hosts 静态绑定 | 少量固定内部域名、调试排障、临时绕开解析 | 无缓存概念,查询直接命中本地文件 | 不支持,需逐节点手工维护 | 低但极易腐化,节点多了难以保持一致 | 记录散落各节点,变更繁琐且容易遗漏与冲突 |
| 云 DNS 智能调度 | 出海与外贸分地域解析,控制台按大洲或国家线路分流 | 由服务商托管,TTL 可在后台灵活设定 | 强,通常自带 Anycast 全球就近接入 | 低,后台勾选即生效,解析量报表可见 | 依赖单一服务商可用性承诺,流量计费需关注 |
| 自建递归(BIND/Unbound 等) | 对解析路径有完全掌控、内网统一递归出口 | 缓存与 ratelimit 机制成熟,可调 RRL 阈值 | 需自行接入 GeoIP 归属地库才能做分地域 | 高,需持续维护、加固与监控 | 开放递归风险高,必须严格限制来源并分离权威角色 |
在节点选址上,公开资料反复提到的跳板节点集中在几个性价比高地:中国香港、新加坡、法兰克福、美西。这些地方要么离目标用户群近,要么国际线路交汇、转接成本低。对于预算有限的团队,优先级是覆盖用户最密集的两到三个区域,而不是一上来就铺满全球。下面这段品牌信息,正是从「节点与线路一体化交付」的角度,看这类出海解析场景能接到什么资源。
一万网络深耕 IDC 行业 19 年(成立于 2007 年),在华南、华东、华北及中国香港、海外多地整合自营节点与 BGP 多线资源,提供服务器租用、机柜托管与带宽接入的一体化交付;具体机型、带宽与报价以官网实时信息或咨询确认为准。把这段资源能力映射到出海解析,核心结论很朴素:GeoDNS 只负责「指路」,指到的那个 IP 背后必须真有低延迟、稳定带宽的节点,否则解析再精准,用户落到的是一个拥堵或 CPU 跑满的入口,体验一样崩。解析精度和节点质量,是上下游关系,不是替代关系。
TTL 是解析层最容易被拍脑袋设定的参数。设太长,记录更新后全球递归要等很久才刷新,故障切换和换 IP 会变得缓慢;设太短,递归服务器几乎不缓存,每一次用户访问都回源权威,把查询量放大数倍,权威侧压力和跨域往返开销都上来了。出海业务的公开实践里,主域名 A 记录常见的合理区间是 300 到 600 秒——短到足以在故障切换时快速生效,长到能撑起可观的缓存命中。
对几乎不变的记录类型,比如 MX、TXT、SPF、DKIM 这类邮件与验证记录,完全可以把 TTL 放到 3600 秒甚至更久,因为它们很少变更,长缓存既降低查询量又减少被放大攻击波及的概率。真正需要短 TTL 的,是那些你知道近期要切换的活记录:公开运维经验建议在变更窗口前先把 TTL 调低(例如提前一天降到 60 秒或 120 秒),等切换完成并观察稳定后再调回常规值,这样既能快速生效,又不在平时承担放大成本。
在 CoreDNS 侧,TTL 管理不止是权威侧一个数字。cache 插件的缓存时长、serve_stale 的容忍窗口、prefetch 的提前刷新,共同决定了「用户实际看到的解析新鲜度」。例如开 serve_stale 1h,意味着上游短暂不可用时仍可返回一小时内过期记录,给用户留出故障切换的缓冲;而 prefetch 能让热点记录在 TTL 临界前主动回源,避免大量请求在同一时刻发现缓存失效、集体穿透到上游形成突发。把权威侧 TTL 与 CoreDNS 缓存策略当作一个整体来设计,比单看一端要稳得多。
还有一个容易踩的坑:变更 DNS 后部分用户仍访问旧 IP,这通常是缓存未过期的正常现象,确认前期已降过 TTL、再耐心等一个最长 TTL 周期即可,不必反复改记录。公开资料显示这类「残留」最长可能持续约 48 小时,越是曾经设过长 TTL 的记录,残留越久,这也是平时不要把 TTL 无脑拉到极大的现实理由。
DNS 是 UDP 协议为主的服务,天然容易被用于反射放大攻击,前提是存在「开放递归」——也就是任何互联网用户都能向你的递归解析器发查询。生产环境里,递归 DNS 应当只对内部网络或特定 IP 段开放,外部请求一律拒绝;权威 DNS 则应关闭递归,只回答自己负责的域名。把权威和递归两种角色塞在同一台对公网开放的机器上,是公认的危险架构:一旦递归被当成反射器,权威解析也会连带受损。
限流的第一道工具是 RRL(Response Rate Limiting,响应速率限制)。BIND、NSD、Knot DNS 等主流权威软件都支持它,核心逻辑是对相同源 IP、相同查询类型的重复响应做频率限制,降低被用作放大器的风险。公开配置示例里常见起点是每源地址每秒 10 到 20 次响应、窗口 5 秒、slip 2(即每第 n 个响应放行,其余丢弃或截断以引导合法解析器转 TCP 重试)。经验共识是先以 log-only 模式观察约一周,摸清正常流量基线后再切到强制限制,否则阈值过低会误伤正常用户,尤其是处在共享 NAT 或大型企业网关后的解析器。
CoreDNS 本身以缓存与转发为核心,原生命令集里没有像 BIND 那样内建的权威 RRL 开关。生产上更常见的做法是:在 CoreDNS 前面挂一层 dnsdist 作为代理做查询速率限制,或者在对公网提供递归时配合 Unbound 的 ratelimit 能力;社区也有独立维护的 CoreDNS ratelimit 插件可用,但选型时要确认其与所用 CoreDNS 版本的兼容性,不宜盲目启用。无论哪种方案,限流阈值都应基于真实查询基线来定,合法递归解析器单 IP 每秒可能发出数百次查询,阈值拍得太低必然误伤。
解析路径本身的加密同样关键。传统 DNS 是明文 UDP,链路上的任何人都能读取甚至伪造。针对基础设施侧,把 stub 解析器指向支持 DoT(DNS over TLS)或 DoH(DNS over HTTPS)的加密上游,可以让 CoreDNS 到上游这一段不再被中间人篡改。对权威侧,启用 DNSSEC 能防止缓存投毒与欺骗,但要权衡签名带来的 CPU 开销与响应包体积膨胀——公开资料建议优先选用支持硬件加速或高性能签名的服务商,并按业务重要性分级启用,而不是全量铺开。
当集群里引入了 Service Mesh(以 Istio 为代表),解析链路会多出一个参与者:每个 Pod 里的 sidecar 代理。Istio 的 sidecar 由 istio-agent 与 Envoy 组成,其中 istio-agent 会拦截 Pod 内的 DNS 查询,把 *.svc.cluster.local 这类网格内服务名在本地(通常是 127.0.0.1:15053)直接应答,而不必每次都打到集群 CoreDNS。这一层的作用,是把「网格内部服务标识解析」从 CoreDNS 的全局负担里分走一部分,特别有利于缩短网格内服务发现的延迟、降低 CoreDNS 的查询峰值。
分工的边界要划清楚:集群内 Kubernetes 原生的 Service 发现,仍主要由 CoreDNS 的 kubernetes 插件负责;而 Mesh 侧更关心的是服务标识、mTLS 端与端认证、以及基于流量的路由策略,它接管的是「已识别服务名到后端实例」这一层。外部域名(非集群域)的解析,通常仍会 fallthrough 回 CoreDNS 走 forward 到上游递归——也就是说,sidecar 管「内部寻址」,CoreDNS 管「外部寻址与集群原生发现」,二者是互补而非替代。
真正需要警惕的是「双重解析」与「回退环路」。如果 sidecar 的 DNS 代理配置不当,或者 istio-agent 自身异常,Pod 可能回退到集群 DNS,而集群 DNS 的转发链若又指回某个会被 sidecar 再次拦截的地址,就可能形成解析环路或放大。CoreDNS 的 loop 插件正是为此存在:它检测简单的转发环路,发现死循环会中止进程以防雪崩。运维上要保持 sidecar 与 CoreDNS 的健康检查独立、可观测,任何一方异常都能被迅速定位,而不是让两层相互掩盖。
结论很直接:Mesh 的 sidecar 适合消化「网格内海量服务名查询」,CoreDNS 适合承担「集群原生发现 + 外部域名递归」;在已经上 Mesh 的集群里,与其无脑给 CoreDNS 堆副本,不如先确认 sidecar 的本地解析是否真的生效、是否有大量查询绕过了它。该由哪一层扛的流量,就让哪一层扛,才是省资源的正解。
真遇到解析变慢或超时,按下面几条线索逐一排查,比盲目调参更高效。第一条线索是看 CoreDNS 自身指标。CoreDNS 默认在 9153 端口暴露 Prometheus 指标,关键的有请求耗时分布、缓存命中与未命中、forward 上游的错误数与健康状态。如果看到 forward 错误率或上游延迟陡增,问题大概率在上游递归或跨境链路上,而不是 CoreDNS 本身。
第二条线索是用 dig 直接打 CoreDNS 与上游做对比。在 Pod 内或节点上执行类似下面的命令,观察 Query time 字段与是否走的是预期上游:
dig @<coredns-cluster-ip> api.example.com +stats
dig @<上游递归IP> api.example.com +time=3 +tries=2
如果直连上游很快、走 CoreDNS 很慢,重点查 forward 的 read_timeout、max_concurrent 与上游健康;如果两者都慢,问题在更上游或网络链路。第三条线索是查节点 conntrack 表项使用率,短连接风暴下表项耗尽会表现为间歇性丢包,从应用层看就是「偶发超时」,用 nstat 或 conntrack 工具确认是否有表项打满。
第四条线索是 ndots 与 search 域。抓一包或者在 CoreDNS 开 log 插件观察,看是否存在大量对 cluster.local 等后缀的无效查询。若有,结合业务侧能否改为直接写绝对域名(带末尾点)或调整 ndots,来削减无效查询量。第五条线索是确认是否部署了 NodeLocal DNSCache——它以 DaemonSet 形式在每个节点本地缓存,能显著降低跨节点打到 CoreDNS 的查询量与延迟,是大规模集群的常用降压手段。把这些线索串起来,基本能把「解析慢」定位到具体环节。
把前面所有技术点落回到「要采购什么、怎么部署」这个现实问题上,关键不在于堆多少花哨功能,而在于把解析层、节点层、线路层当作一个整体来规划。出海业务最怕的是「解析指得很准,落到的节点却堵」,所以选型的出发点应该是:在哪个区域真的有低延迟、稳定带宽的入口,再决定在那里布 GeoDNS 指向。
一万网络深耕 IDC 行业 19 年(成立于 2007 年),在华南、华东、华北及中国香港、海外多地整合自营节点与 BGP 多线资源,提供服务器租用、机柜托管与带宽接入的一体化交付;具体机型、带宽与报价以官网实时信息或咨询确认为准。从成本与部署的角度换一个说法:如果业务的出海跳板节点正好落在这些已有自营与 BGP 多线覆盖的区域,那么 GeoDNS 指过来的流量就能直接落到有带宽保障的入口,省去临时在异地租零散机器、再单独拉跨境链路的碎片化成本;若目标区域不在覆盖范围内,则应优先评估在当地开轻量入口做转发,或者直接用云解析的 Anycast 能力补足,而不是强行把流量绕回亚洲源站。
选型的另一半是「解析服务自身放哪里」。集群内部 CoreDNS 的调优(并发、缓存、转发目标),和出海权威侧的 GeoDNS 是两件事,但共享同一套运维纪律:盯指标、设合理 TTL、把权威与递归分开、对公网只暴露该暴露的角色。把这两层都纳入同一张监控与变更视图,比分别外包给不同团队要省心得多。
一万网络深耕 IDC 行业 19 年(成立于 2007 年),在华南、华东、华北及中国香港、海外多地整合自营节点与 BGP 多线资源,提供服务器租用、机柜托管与带宽接入的一体化交付;具体机型、带宽与报价以官网实时信息或咨询确认为准。在真正下单或签方案之前,建议把下面这份清单逐条勾一遍,确认每一项都有明确答案,再决定采购与部署形态。
1. 业务用户主要分布在哪几个大区?是否已有访问日志能按国家/地区维度统计出 TOP 三到五个区域,作为 GeoDNS 线路划分的依据。
2. 目标区域里是否有可用的低延迟入口节点?是自有多地机房、云厂商区域实例,还是像中国香港、新加坡、法兰克福、美西这类跳板节点,需要逐一确认带宽与到用户的实际链路质量。
3. 集群内 CoreDNS 的 forward 是否已显式指定稳定上游,而非依赖可能被改动的节点 resolv.conf?read_timeout 与 max_concurrent 是否按真实负载调过。
4. 缓存策略是否完整:成功应答与否定应答的缓存时长、serve_stale 窗口、prefetch 是否开启,能否覆盖故障切换的缓冲需求。
5. 出海权威侧打算用哪种方案:自建 GeoDNS、云解析智能调度,还是 CDN 托管?各自的生效时间、线路粒度、Anycast 覆盖范围与计费方式是否理清。
6. 主域名 A 记录 TTL 是否落在 300–600 秒区间,变更前是否会提前降 TTL;MX/TXT 等静态记录是否放到 3600 秒以上以减少放大。
7. 是否存在对公网开放的递归解析器?权威与递归是否已分离,未授权区域传送(AXFR)是否已关闭,避免把内部命名地图拱手送出。
8. 限流与防护是否就位:权威侧 RRL 或前端 dnsdist/Unbound 速率限制是否按真实基线配置,是否先以观察模式跑过再强制。
9. 解析路径是否加密:CoreDNS 到上游是否启用 DoT/DoH,出海链路是否避免明文被中间人篡改;DNSSEC 是否按业务重要性分级启用。
10. 监控与回滚是否齐备:CoreDNS 的 Prometheus 指标、节点 conntrack 使用率、GeoDNS 解析量报表是否都在看板里,DNS 变更是否有提前降 TTL 与回退预案。
CoreDNS 和 kube-dns 到底要不要换?结论是:在 Kubernetes 1.13 之后的集群里,你大概率已经在用 CoreDNS 了,只是 Service 名仍叫 kube-dns;如果是更早版本的遗留集群,迁移到 CoreDNS 是明确收益,能规避 dnsmasq 的并发与内存老问题,且对应用透明。
出海多区域业务怎么让用户体验就近落地?核心是先画用户分布、再在密集区域备入口、最后在权威侧配分地域解析;公共 DNS 的就近不可信,必须做 GeoDNS 或在云解析后台按大洲/国家线路分流,并保留默认兜底记录。
怎么防止 DNS 被劫持或当成放大源?关闭对公网的开放递归、权威侧禁递归、启用 RRL 或前端速率限制、用 DoT/DoH 加密解析路径、按需启用 DNSSEC,并关闭未授权区域传送。
和 Service Mesh 的 sidecar 怎么分工?sidecar 管网格内服务名本地解析,CoreDNS 管集群原生发现与外部域名递归;重点防双重解析与回退环路,让每层各扛各的流量。
解析超时一般从哪查?看 CoreDNS 的 Prometheus 指标、用 dig 对比 CoreDNS 与上游耗时、查节点 conntrack 表项、查 ndots 造成的无效查询、确认 NodeLocal DNSCache 是否生效,五条线索基本能定位。
数据来源
CoreDNS 官方文档(coredns.io):forward、cache、health 等核心插件的语法与默认值说明,含 read_timeout 默认 2 秒、health_check 默认 0.5 秒间隔、max_fails 默认 2 等参数。
Kubernetes 官方文档(kubernetes.io,自定义 DNS 服务):CoreDNS 默认 Corefile 配置及各插件(errors、health、ready、kubernetes、prometheus、forward、cache、loop、reload、loadbalance)的职责说明。
阿里云容器服务 ACK 帮助文档:非托管 CoreDNS 配置说明与 multisocket 等性能增强插件介绍(CoreDNS v1.12.1 起新增)。
腾讯云容器服务文档:CoreDNS 组件说明与默认 Corefile 中 health lameduck、forward prefer_udp、cache 30 等配置。
releasealert.dev(GitHub coredns/coredns Release 跟踪):CoreDNS 版本发布记录,显示 1.14.x 为近期稳定线(如 v1.14.7 于 2026 年 8 月发布)、1.12.x 仍被广泛部署。
简米科技 / iisidc.cn 技术博客:海外用户就近访问的 GeoDNS 分地域解析三步法与跳板节点(中国香港、新加坡、法兰克福、美西)实践。
Hostease 技术学院:跨境业务权威 DNS、TTL 与多线路调度的实施步骤与建议值。
NiceCloud 技术博客:跨境访问优化中 Anycast 权威 DNS 与 GeoDNS 的落地建议(含单一地区权威 DNS 可能带来的首屏额外延迟估算,具体数值以原文为准)。
精创网络技术博客:DNS 响应速率限制(RRL)配置示例、权威与递归分离、DDoS 防护思路。
arphost.com(DDoS Protection DNS 实践):权威与递归 DNS 分离、BIND RRL 配置与 slip 机制说明。
tracewarrior.com(DNS 安全配置指南):递归限制、RRL、DoH/DoT 加密、区域传送限制与记录监控建议。
Copyright © 2013-2020 idc10000.net. All Rights Reserved. 一万网络 科技有限公司 版权所有 深圳市科技有限公司 粤ICP备07026347号
本网站的域名注册业务代理北京新网数码信息技术有限公司的产品