1DNSDIST(1) dnsdist DNSDIST(1)
2
3
4
6 dnsdist - A DNS and DoS aware, scriptable loadbalancer
7
9 dnsdist [<option>...] [address]...
10
12 dnsdist receives DNS queries and relays them to one or more downstream
13 servers. It subsequently sends back responses to the original re‐
14 questor.
15
16 dnsdist operates over TCP and UDP, and strives to deliver very high
17 performance over both.
18
19 Currently, queries are sent to the downstream server with the least
20 outstanding queries. This effectively implies load balancing, making
21 sure that slower servers get less queries.
22
23 If a reply has not come in after a few seconds, it is removed from the
24 queue, but in the short term, timeouts do cause a server to get less
25 traffic.
26
27 IPv4 and IPv6 operation can be mixed and matched, in other words,
28 queries coming in over IPv6 could be forwarded to IPv4 and vice versa.
29
30 dnsdist is scriptable in Lua, see the dnsdist documentation for more
31 information on this.
32
34 dnsdist does not 'think' about DNS queries, it restricts itself to mea‐
35 suring response times and error codes and routing questions accord‐
36 ingly. It comes with a very high performance packet-cache.
37
38 The goal for dnsdist is to remain simple. If more powerful loadbalanc‐
39 ing is required, dedicated hardware or software is recommended. Linux
40 Virtual Server for example is often mentioned.
41
43 -a <netmask>, --acl <netmask>
44 Add netmask to the ACL.
45
46 -C <file>, --config <file>
47 Load configuration from file.
48
49 --check-config
50 Test the configuration file (which may be set with --config or
51 -C) for errors. dnsdist will show the errors and exit with a
52 non-zero exit-code when errors are found.
53
54 -c <address>, --client <address>
55 Operate as a client, connect to dnsdist. This will read the dns‐
56 dist configuration for the controlSocket statement and connect
57 to it. When address (with an optional port number) is set, dns‐
58 dist will connect to that instead.
59
60 -k <key>, --setkey <key>
61 When operating as a client(-c, --client), use key as shared se‐
62 cret to connect to dnsdist. This should be the same key that is
63 used on the server (set with setKey()). Note that this will leak
64 the key into your shell's history and into the systems running
65 process list. Only available when dnsdist is compiled with lib‐
66 sodium support.
67
68 -e,--execute <command>
69 Connect to dnsdist and execute command.
70
71 -h, --help
72 Display a helpful message and exit.
73
74 -l,--local <address>
75 Bind to address, Supply as many addresses (using multiple --lo‐
76 cal statements) to listen on as required. Specify IPv4 as
77 0.0.0.0:53 and IPv6 as [::]:53.
78
79 --supervised
80 Run in foreground, but do not spawn a console. Use this switch
81 to run dnsdist inside a supervisor (use with e.g. systemd and
82 daemontools).
83
84 --disable-syslog
85 Disable logging to syslog. Use this when running inside a super‐
86 visor that handles logging (like systemd).
87
88 --log-timestamps
89 Prepend timestamps to messages logged to standard out.
90
91 -u,--uid <uid>
92 Change the process user to uid after binding sockets. uid can be
93 a name or number.
94
95 -g,--gid <gid>
96 Change the process group to gid after binding sockets. gid Can
97 be a name or number.
98
99 -V, --version
100 Show the dnsdist version and exit.
101
102 -v, --verbose
103 Be verbose.
104
105 address are any number of downstream DNS servers, in the same syntax as
106 used with --local. If the port is not specified, 53 is used.
107
109 Right now, the TCP support has some rather arbitrary limits.
110
112 Website: https://dnsdist.org
113
115 PowerDNS.COM BV and its contributors
116
118 2015-2023, PowerDNS.COM BV and its contributors
119
120
121
122
123 Sep 07, 2023 DNSDIST(1)