1. CoreDNS

coredns

CoreDNS 是一个 DNS 服务器或 DNS 代理服务器,基于 Go 语言开发实现。CoreDNS 是基于链式插件来设计,每个插件执行一个(DNS)功能。

CoreDNS 是一款快速且灵活的 DNS 服务器。这里的关键是灵活: 使用 CoreDNS,你可以通过使用插件来实现你想对 DNS 数据的处理。如果有些功能没有现成提供,你可以通过编写插件来添加。

该项目在 CNCF 托管:

  • CNCF 分层:编排和管理
  • CNCF 分类:协调和服务发现
  • CNCF 成熟度:已毕业

1.1. 产品特性

CoreDNS 可以通过以下几种方式来处理 DNS 请求:

  • UDP/TCP (传统的 DNS 请求处理方式)
  • TLS (RFC 7858),也称为 DoT
  • HTTP/2 (RFC 8484),也称为 DoH
  • gRPC (目前还不是一个标准)

目前 CoreDNS 能够:

  • 从文件中提供区域数据;DNSSEC (仅 NSEC )和 DNS 都支持(file and auto)。
  • 从主服务器检索区域数据,即充当辅助服务器(仅限AXFR)(secondary)
  • 动态标记区域数据(dnssec)。
  • DNS 请求响应的负载平衡 (loadbalance).
  • 允许 zone 区域传输,即充当主服务器(file + transfer)。
  • 从磁盘动态加载 zone 文件 (auto).
  • 缓存 DNS 响应 (cache).
  • 使用 Etcd 作为后端 (replacing SkyDNS) (etcd).
  • 使用 k8s (kubernetes) 作为后端 (kubernetes).
  • 支持 DNS 充当代理,将查询转发到其他一些(递归) Nameserver 服务器 (forward).
  • 提供 Prometheus 采集的 Metrics 指标数据接口 (prometheus).
  • 提供查询 (log) 和错误 (errors) 日志.
  • 与云厂商平台集成 (route53).
  • 支持 CH class: version.bind and friends (chaos).
  • 支持 RFC 5001 DNS name server identifier (NSID) option (nsid).
  • Profiling 支持 (pprof).
  • 重写查询 (qtype, qclass and qname) (rewrite and template).
  • Block ANY queries (any).
  • 提供 DNS64 IPv6 转换 (dns64)
  • 其他更多功能可通过插件支持

1.2. 适用场景

  • 作为传统的 DNS Server 提供 DNS 查询服务,或者 DNS 代理服务
  • Kubernetes 就在集群中使用 CoreDNS 解决服务发现的问题。

1.3. 网站/代码

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2025-02-08 11:34:15

results matching ""

    No results matching ""