Domain-Name-System

dnsmasq 可以為合成域上的 AAAA 請求返回 NOERROR 嗎?

  • August 19, 2017

我有一個正在執行的 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記錄)。

引用自:https://serverfault.com/questions/863131