※ 実際の設定では頭の行番号("01: "など)を消す
============================================================================================
01: -- BACKEND
02: check01 = "ns1.example.com."
03: check02 = "ns2.example.com."
04: newServer({address="10.0.10.1:53", pool="example", checkName=check01, mustResolve=true})
05: newServer({address="10.0.10.2:53", pool="example", checkName=check02, mustResolve=true})
06:
07: -- LISTEN
08: addLocal("10.0.0.1:53", {doTCP=true})
09:
10: -- ACL
11: setACL("0.0.0.0/0")
12:
13: -- RULE
14: internet = newSuffixMatchNode()
15: internet:add(newDNSName("example.com."))
16:
17: -- LOG
18: addAction(AllRule(), LogAction("/var/log/dnsdist/dnsdist.log", false, true, false))
19:
20: -- POLICY
21: addAction(SuffixMatchNodeRule(internet), PoolAction("example"))
22: addAction(QTypeRule(dnsdist.TXT), PoolAction("example"))
23: addAction(AllRule(), RCodeAction(dnsdist.REFUSED))
LINE | PARAMETER | DESCRIPTION |
02行目 | check01 | newServerで設定する監視先DNSサーバのFQDN設定。IPアドレス記述も可能 |
03行目 | check02 | newServerで設定する監視先DNSサーバのFQDN設定。IPアドレス記述も可能 |
04行目 | newServer | プール名(example)にバックエンド(10.0.10.1:53)を、監視先FQDN(check01)で追加 監視先から"NOERROR RCODE"以外が返ってきたらエラー(監視失敗)とする |
05行目 | newServer | プール名(example)にバックエンド(10.0.10.2:53)を、監視先FQDN(check02)で追加 監視先から"NOERROR RCODE"以外が返ってきたらエラー(監視失敗)とする |
08行目 | addLocal | dnsdistが待受けるUDP用IPアドレス doTCPを設定すると、同IPアドレスでTCP待受けも有効化出来る |
11行目 | setACL | 接続を許可するセグメント setACLで複数記述、addACLで既存のACLに追加設定も出来る |
14行目 | newSuffixMatchNode | サフィックス名とインスタンスの定義 |
15行目 | newDNSName | サフィックス名(internet)に、DNSドメイン名(example.com)を追加定義する |
18行目 | addAction/LogAction | dnsdistが処理したDNSクエリログ保存先。addActionの中で必ず最初に設定する パラメータを "false/true/false" にすると見やすい形で保存される |
21行目 | addAction/SuffixMatchNodeRule | DNSクエリに "example.com(internetサフィックスで定義)" を含む時、 バックエンドの "example" プール(2~5行目で定義)に転送 |
22行目 | addAction/QTypeRule | DNSクエリタイプが "TXT(dnsdist.TXTで定義)" の時、 バックエンドの "example" プール(2~5行目で定義)に転送 |
23行目 | addAction/AllRule | 上段の設定(addAction)で処理されなかったDNSクエリに対して、 REFUSED(リクエスト拒否)を返答する。設定の最後に記述する事を強く推奨 |
|