coredns/plugin/loop
Miek Gieben 9546b606cb
K8s remove string ops (#2119)
* plugin/kubernetes: remove bunch a string ops

This removes a bunch of appends to where not needed, makes dnsutil.Join
take variadic args which removes the need to wrap in a new string slice.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Fix calls to dnsutil.Join

Signed-off-by: Miek Gieben <miek@miek.nl>

* Revert these

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-09-22 15:12:02 +01:00
..
log_test.go New plugin: loop (#1989) 2018-07-20 19:45:17 +01:00
loop.go New plugin: loop (#1989) 2018-07-20 19:45:17 +01:00
loop_test.go New plugin: loop (#1989) 2018-07-20 19:45:17 +01:00
OWNERS New plugin: loop (#1989) 2018-07-20 19:45:17 +01:00
README.md Document current limitations of loop (#1996) 2018-07-23 20:37:41 +01:00
setup.go K8s remove string ops (#2119) 2018-09-22 15:12:02 +01:00
setup_test.go New plugin: loop (#1989) 2018-07-20 19:45:17 +01:00

loop

Name

loop - detect simple 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 sent is <random number>.<random number>.zone with type set to HINFO.

Syntax

loop

Examples

Start a server on the default port and load the loop and forward plugins. The forward plugin forwards to it self.

. {
    loop
    forward . 127.0.0.1
}

After CoreDNS has started it stops the process while logging:

plugin/loop: Seen "HINFO IN 5577006791947779410.8674665223082153551." more than twice, loop detected

Limitations

This plugin only attempts to find simple static forwarding loops at start up time. To detect a loop, all of the following must be true

  • the loop must be present at start up time.
  • the loop must occur for at least the HINFO query type.