惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
aimingoo的专栏
aimingoo的专栏
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
I
InfoQ
F
Fortinet All Blogs
J
Java Code Geeks
Last Week in AI
Last Week in AI
美团技术团队
大猫的无限游戏
大猫的无限游戏
有赞技术团队
有赞技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园_首页
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件

Plugin on CoreDNS: DNS and Service Discovery

kubernetes log proxyproto rewrite forward clouddns errors grpc_server https https3 docker auto geoip multisocket nomad dnstap import ready etcd header loadbalance bind grpc file prometheus quic kubeforward JSON gslb autopath
unbound
2018-01-25 · via Plugin on CoreDNS: DNS and Service Discovery

Description

Via unbound you can perform recursive queries. Unbound uses DNSSEC by default when resolving and it returns those records (DNSKEY, RRSIG, NSEC and NSEC3) back to the clients. The unbound plugin will remove those records when a client didn’t ask for it. The internal (RR) answer cache of Unbound is disabled, so you may want to use the cache plugin.

Libunbound can be configured via (a subset of) options, currently the following are set, by default:

  • msg-cache-size, set to 0
  • rrset-cache-size, set to 0

This plugin can only be used once per Server Block.

Syntax

unbound [FROM]
  • FROM is the base domain to match for the request to be resolved. If not specified the zones from the server block are used.

More features utilized with an expanded syntax:

unbound [FROM] {
    except IGNORED_NAMES...
    option NAME VALUE
}
  • FROM as above.
  • IGNORED_NAMES in except is a space-separated list of domains to exclude from resolving.
  • option allows setting some unbound options (see unbound.conf(5)), this can be specified multiple times.

Metrics

If monitoring is enabled (via the prometheus directive) then the following metric is exported:

  • coredns_unbound_request_duration_seconds{server} - duration per query.
  • coredns_unbound_response_rcode_count_total{server, rcode} - count of RCODEs.

The server label indicates which server handled the request, see the metrics plugin for details.

Examples

Resolve queries for all domains:

. {
    unbound
}

Resolve all queries within example.org.

. {
    unbound example.org
}

or

example.org {
    unbound
}

Resolve everything except queries for example.org (or below):

. {
    unbound {
        except example.org
    }
}

Enable DNS Query Name Minimisation by setting the option:

. {
    unbound {
        option qname-minimisation yes
    }
}

Bugs

The unbound plugin depends on libunbound(3) which is C library, to compile this you have a dependency on C and cgo. You can’t compile CoreDNS completely static. For compilation you also need the libunbound source code installed (libunbound-dev on Debian).

DNSSEC validation is not supported (yet). There is also no (documented) way of configurating a trust anchor.

See Also

See https://unbound.net for information on Unbound and unbound.conf(5). See https://github.com/miekg/unbound for the (cgo) Go wrapper for libunbound.