mirror of
https://github.com/coredns/coredns.git
synced 2025-11-02 02:03:13 -05:00
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>
This commit is contained in:
40
plugin/loop/README.md
Normal file
40
plugin/loop/README.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# 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
|
||||
~~~
|
||||
Reference in New Issue
Block a user