Domain-Name-System
dnsmasq 可以為合成域上的 AAAA 請求返回 NOERROR 嗎?
我有一個正在執行的 dnsmasq 實例,它使用了 synth-domain 選項。它對 A 查詢非常有用,但是,它為 AAAA 查詢返回一個 NXDOMIN。這是如何複製的範例。
執行 dnsmasq:
dnsmasq --keep-in-foreground --synth-domain=example.com,192.168.1.0/24,ip-
一個問題:
dig ip-192-168-1-100.example.com @127.0.0.1 a ; <<>> DiG 9.11.1-P3 <<>> ip-192-168-1-100.example.com @127.0.0.1 a ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45136 ;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ip-192-168-1-100.example.com. IN A ;; ANSWER SECTION: ip-192-168-1-100.example.com. 0 IN A 192.168.1.100 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Jul 19 14:24:52 PDT 2017 ;; MSG SIZE rcvd: 73
AAAA 查詢:
$ dig ip-192-168-1-100.example.com @127.0.0.1 aaaa ; <<>> DiG 9.11.1-P3 <<>> ip-192-168-1-100.example.com @127.0.0.1 aaaa ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 5180 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ip-192-168-1-100.example.com. IN AAAA ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Jul 19 14:33:45 PDT 2017 ;; MSG SIZE rcvd: 57
在這種情況下,我想讓 dnsmasq 返回一個空的 NOERROR 響應而不是 NXDOMAIN。這可能嗎?
不是不修改 dnsmasq 程式碼本身。您看到的是正確的行為:如果解析器不知道答案,並且對於給定域具有權威性,就像這種定義的
synth-domain
構造一樣,它有義務以NXDOMAIN
. 此外,這將是一個格式錯誤的響應(沒有錯誤並且沒有AN
,NS
, 或AR
記錄)。