A CoreDNS plugin to handle split dns
Go to file
Adphi 5b45e22631
go module setup, rename example as split
Signed-off-by: Adphi <philippe.adrien.nousse@gmail.com>
2022-03-24 15:43:41 +01:00
.gitignore bootstrap from example 2022-03-24 15:26:15 +01:00
LICENSE bootstrap from example 2022-03-24 15:26:15 +01:00
README.md go module setup, rename example as split 2022-03-24 15:43:41 +01:00
go.mod go module setup, rename example as split 2022-03-24 15:43:41 +01:00
go.sum go module setup, rename example as split 2022-03-24 15:43:41 +01:00
metrics.go go module setup, rename example as split 2022-03-24 15:43:41 +01:00
ready.go go module setup, rename example as split 2022-03-24 15:43:41 +01:00
setup.go go module setup, rename example as split 2022-03-24 15:43:41 +01:00
setup_test.go go module setup, rename example as split 2022-03-24 15:43:41 +01:00
split.go go module setup, rename example as split 2022-03-24 15:43:41 +01:00
split_test.go go module setup, rename example as split 2022-03-24 15:43:41 +01:00

README.md

split

Name

split - Filter DNS Server response Records based on network definitions and request source IP.

Description

The split plugin allows filtering DNS Server response Records based on network definitions. That way you do not need to run multiple DNS servers to handle split DNS.

Compilation

This package will always be compiled as part of CoreDNS and not in a standalone way. It will require you to use go get or as a dependency on plugin.cfg.

The manual will have more information about how to configure and extend the server with external plugins.

A simple way to consume this plugin, is by adding the following on plugin.cfg, and recompile it as detailed on coredns.io.

split:go.linka.cloud/coredns-split

Put this lower in the plugin list, so that split is executed after any of the other plugins.

After this you can compile coredns by:

go generate
go build

Or you can instead use make:

make

Syntax

split
# TODO: docs

Metrics

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

  • coredns_example_request_count_total{server} - query count to the example plugin.

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

Ready

This plugin reports readiness to the ready plugin. It will be immediately ready.

Examples

In this configuration, we forward all queries to 9.9.9.9 and print "example" whenever we receive a query.

. {
  forward . 9.9.9.9
  example
}

Or without any external connectivity:

. {
  whoami
  example
}

Also See

See the manual.