Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tmeckel/coredns-finalizer
CoreDNS plugin to resolve (finalize) CNAMEs to their ultimate A or AAAA records
https://github.com/tmeckel/coredns-finalizer
coredns coredns-plugin
Last synced: 26 days ago
JSON representation
CoreDNS plugin to resolve (finalize) CNAMEs to their ultimate A or AAAA records
- Host: GitHub
- URL: https://github.com/tmeckel/coredns-finalizer
- Owner: tmeckel
- License: apache-2.0
- Created: 2021-12-22T19:13:24.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-10-25T21:56:56.000Z (about 1 year ago)
- Last Synced: 2024-04-15T22:55:27.722Z (8 months ago)
- Topics: coredns, coredns-plugin
- Language: Go
- Homepage:
- Size: 222 KB
- Stars: 4
- Watchers: 2
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-coredns - finalize - resolves CNAMEs to their IP address. (External Plguins)
README
# finalize
## Name
*finalize* - resolves CNAMEs to their IP address.
## Description
The plugin will try to resolve CNAMEs and only return the resulting A or AAAA
address. If no A or AAAA record can be resolved the original (first) answer will
be returned to the client.Circular dependencies are detected and an error will be logged accordingly. In
that case the original (first) answer will be returned to the client as well.## Compilation
A simple way to consume this plugin, is by adding the following on [plugin.cfg](https://github.com/coredns/coredns/blob/master/plugin.cfg) __right after the `cache` plugin__,
and recompile it as [detailed on coredns.io](https://coredns.io/2017/07/25/compile-time-enabling-or-disabling-plugins/#build-with-compile-time-configuration-file).```txt
# right after cache:cache
finalize:github.com/tmeckel/coredns-finalizer
```After this you can compile coredns by:
```sh
go generate
go build
```Or you can instead use make:
```sh
make
```## Syntax
```txt
finalize [max_depth MAX]
```* `max_depth` **MAX** to limit the maximum calls to resolve a CNAME chain to the
final A or AAAA record, a value `> 0` can be specified.If the maximum depth
is reached and no A or AAAA record could be found, the the original (first)
answer, containing the CNAME, will be returned to the client.## Metrics
If monitoring is enabled (via the *prometheus* directive) the following metrics are exported:
* `coredns_finalize_request_count_total{server}` - query count to the *finalize* plugin.
* `coredns_finalize_circular_reference_count_total{server}` - count of detected circular references.
* `coredns_finalize_dangling_cname_count_total{server}` - count of CNAMEs that couldn't be resolved.
* `coredns_finalize_maxdepth_reached_count_total{server}` - count of incidents when max depth is reached while trying to resolve a CNAME.
* `coredns_finalize_maxdepth_upstream_error_count_total{server}` - count of upstream errors received.
* `coredns_finalize_request_duration_seconds{server}` - duration per CNAME resolve.
The `server` label indicated which server handled the request.
## Ready
This plugin will be immediately ready and thus does not report it's status.
## Examples
In this configuration, we forward all queries to 9.9.9.9 and resolve CNAMEs.
```corefile
. {
forward . 9.9.9.9
finalize
}
```In this configuration, we forward all queries to 9.9.9.9 and resolve CNAMEs with a maximum search depth of `1`:
```corefile
. {
forward . 9.9.9.9
finalize max_depth 1
}
```## Also See
See the [manual](https://coredns.io/manual).