Files
coredns/plugin/loop/README.md
Miek Gieben 84ec780ffc New plugin: loop (#1989)
* New plugin: loop

Add a plugin that detects loops. It does this by sending an unique query
to our selves. If we see the query more than twice we stop the process.
If there isn't a loop, the plugin disables it self and becomes a noop
plugin.

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-07-20 19:45:17 +01:00

41 lines
963 B
Markdown

# loop
## Name
*loop* - detect forwarding loops and halt the server.
## Description
The *loop* plugin will send a random query to ourselves and will then keep track of how many times
we see it. If we see it more than twice, we assume CoreDNS is looping and we halt the process.
The plugin will try to send the query for up to 30 seconds. This is done to give CoreDNS enough time
to start up. Once a query has been successfully sent *loop* disables itself to prevent a query of
death.
The query send is `<random number>.<random number>.zone` with type set to HINFO.
## Syntax
~~~ txt
loop
~~~
## Examples
Start a server on the default port and load the *loop* and *forward* plugins. The *forward* plugin
forwards to it self.
~~~ txt
. {
loop
forward . 127.0.0.1
}
~~~
After CoreDNS has started it stops the process while logging:
~~~ txt
plugin/loop: Seen "HINFO IN 5577006791947779410.8674665223082153551." more than twice, loop detected
~~~