aboutsummaryrefslogtreecommitdiff
path: root/man/coredns-erratic.7
blob: 782a976fa182886c521468b1f8bf35aaa2d1d8c0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
.\" Generated by Mmark Markdown Processer - mmark.miek.nl
.TH "COREDNS-ERRATIC" 7 "August 2019" "CoreDNS" "CoreDNS Plugins"

.SH "NAME"
.PP
\fIerratic\fP - a plugin useful for testing client behavior.

.SH "DESCRIPTION"
.PP
\fIerratic\fP returns a static response to all queries, but the responses can be delayed, dropped or truncated.
The \fIerratic\fP plugin will respond to every A or AAAA query. For any other type it will return
a SERVFAIL response. The reply for A will return 192.0.2.53 (see RFC
5737
\[la]https://tools.ietf.org/html/rfc5737\[ra],
for AAAA it returns 2001:DB8::53 (see RFC 3849
\[la]https://tools.ietf.org/html/rfc3849\[ra]) and for an
AXFR request it will respond with a small zone transfer.

.PP
\fIerratic\fP can also be used in conjunction with the \fIautopath\fP plugin. This is mostly to aid in
testing.

.SH "SYNTAX"
.PP
.RS

.nf
erratic {
    drop [AMOUNT]
    truncate [AMOUNT]
    delay [AMOUNT [DURATION]]
}

.fi
.RE

.IP \(bu 4
\fB\fCdrop\fR: drop 1 per \fBAMOUNT\fP of queries, the default is 2.
.IP \(bu 4
\fB\fCtruncate\fR: truncate 1 per \fBAMOUNT\fP of queries, the default is 2.
.IP \(bu 4
\fB\fCdelay\fR: delay 1 per \fBAMOUNT\fP of queries for \fBDURATION\fP, the default for \fBAMOUNT\fP is 2 and
the default for \fBDURATION\fP is 100ms.


.PP
In case of a zone transfer and truncate the final SOA record \fIisn't\fP added to the response.

.SH "READY"
.PP
This plugin reports readiness to the ready plugin.

.SH "EXAMPLES"
.PP
.RS

.nf
\&. {
    erratic {
        drop 3
    }
}

.fi
.RE

.PP
Or even shorter if the defaults suits you. Note this only drops queries, it does not delay them.

.PP
.RS

.nf
\&. {
    erratic
}

.fi
.RE

.PP
Delay 1 in 3 queries for 50ms

.PP
.RS

.nf
\&. {
    erratic {
        delay 3 50ms
    }
}

.fi
.RE

.PP
Delay 1 in 3 and truncate 1 in 5.

.PP
.RS

.nf
\&. {
    erratic {
        delay 3 5ms
        truncate 5
    }
}

.fi
.RE

.PP
Drop every second query.

.PP
.RS

.nf
\&. {
    erratic {
        drop 2
        truncate 2
    }
}

.fi
.RE

.SH "ALSO SEE"
.PP
RFC 3849
\[la]https://tools.ietf.org/html/rfc3849\[ra] and
RFC 5737
\[la]https://tools.ietf.org/html/rfc5737\[ra].