Domain-Name-System

如果順序和首選項相同,則綁定回答資源記錄 (RR) 的順序

  • February 25, 2017

我有一個關於如何在區域文件中配置記錄的方式對以下記錄進行排序的查詢

我做了2個不同的測試

我在區域文件 e164enum.net 中配置了以下記錄,TTL 值為 0

2.7.5.2.7.9.2.5.3.1.8.e164enum.net. IN NAPTR 100 10 "u" "E2U+sip" "!^.*$!sip:7895673454@ATLANTA.COM;user=phone!" .
2.7.5.2.7.9.2.5.3.1.8.e164enum.net. IN NAPTR 100 10 "u" "E2U+sip" "!^.*$!sip:7895673453@ATLANTA.COM;user=phone!" .

現在,每當我在綁定伺服器上執行“dig”查詢“dig 2.7.5.2.7.9.2.5.3.1.8.e164enum.net.NAPTR”時

我收到回复,如在“答案”部分切換

第一次探勘查詢

;; <<>> DiG 9.9.5-rpz2+rl.14038.05-P1 <<>> 2.7.5.2.7.9.2.5.3.1.8.e164enum.net. NAPTR
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37270
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;2.7.5.2.7.9.2.5.3.1.8.e164enum.net. IN NAPTR

;; ANSWER SECTION:
2.7.5.2.7.9.2.5.3.1.8.e164enum.net. 0 IN NAPTR  100 10 "u" "E2U+sip" "!^.*$!sip:7895673453@ATLANTA.COM\;user=phone!" .
2.7.5.2.7.9.2.5.3.1.8.e164enum.net. 0 IN NAPTR  100 10 "u" "E2U+sip" "!^.*$!sip:7895673454@ATLANTA.COM\;user=phone!" .

;; AUTHORITY SECTION:
e164enum.net.           0       IN      NS      HP3bl10VM5DNS.e164enum.net.

;; ADDITIONAL SECTION:
HP3bl10VM5DNS.e164enum.net. 0   IN      A       10.54.212.235

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jul 19 00:31:16 IST 2016
;; MSG SIZE  rcvd: 261

二次探勘查詢

; <<>> DiG 9.9.5-rpz2+rl.14038.05-P1 <<>> 2.7.5.2.7.9.2.5.3.1.8.e164enum.net. NAPTR
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40073
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;2.7.5.2.7.9.2.5.3.1.8.e164enum.net. IN NAPTR

;; ANSWER SECTION:
2.7.5.2.7.9.2.5.3.1.8.e164enum.net. 0 IN NAPTR  100 10 "u" "E2U+sip" "!^.*$!sip:7895673454@ATLANTA.COM\;user=phone!" .
2.7.5.2.7.9.2.5.3.1.8.e164enum.net. 0 IN NAPTR  100 10 "u" "E2U+sip" "!^.*$!sip:7895673453@ATLANTA.COM\;user=phone!" .

;; AUTHORITY SECTION:
e164enum.net.           0       IN      NS      HP3bl10VM5DNS.e164enum.net.

;; ADDITIONAL SECTION:
HP3bl10VM5DNS.e164enum.net. 0   IN      A       10.54.212.235

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jul 19 00:31:19 IST 2016
;; MSG SIZE  rcvd: 261

如我所見,來自綁定伺服器的響應(RR Answers)為每次探勘切換

由於我不希望在每個後續探勘中切換答案,並且我希望答案與它們在區域文件中配置的順序相同(因為這兩個記錄的順序和首選項相同),我啟用了這個在 named.conf 的選項欄位中的行

rrset-order {order fixed;};

並重新啟動命名

我再次執行 dig 查詢 這次,Answers 沒有切換,但我發現,第二個配置的 RR 總是第一個被回答這個記錄總是第一個被回答,儘管在我配置的首選項中是第二個(假設配置 rrset -order 將始終以與區域文件中配置的順序相同的順序返回 RR 答案)

查詢#1

; <<>> DiG 9.9.5-rpz2+rl.14038.05-P1 <<>> 2.7.5.2.7.9.2.5.3.1.8.e164enum.net. NAPTR
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18221
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;2.7.5.2.7.9.2.5.3.1.8.e164enum.net. IN NAPTR

;; ANSWER SECTION:
2.7.5.2.7.9.2.5.3.1.8.e164enum.net. 0 IN NAPTR  100 10 "u" "E2U+sip" "!^.*$!sip:7895673453@ATLANTA.COM\;user=phone!" .
2.7.5.2.7.9.2.5.3.1.8.e164enum.net. 0 IN NAPTR  100 10 "u" "E2U+sip" "!^.*$!sip:7895673454@ATLANTA.COM\;user=phone!" .

;; AUTHORITY SECTION:
e164enum.net.           0       IN      NS      HP3bl10VM5DNS.e164enum.net.

;; ADDITIONAL SECTION:
HP3bl10VM5DNS.e164enum.net. 0   IN      A       10.54.212.235

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jul 19 00:36:30 IST 2016
;; MSG SIZE  rcvd: 261

查詢#2

; <<>> DiG 9.9.5-rpz2+rl.14038.05-P1 <<>> 2.7.5.2.7.9.2.5.3.1.8.e164enum.net. NAPTR
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17082
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;2.7.5.2.7.9.2.5.3.1.8.e164enum.net. IN NAPTR

;; ANSWER SECTION:
2.7.5.2.7.9.2.5.3.1.8.e164enum.net. 0 IN NAPTR  100 10 "u" "E2U+sip" "!^.*$!sip:7895673453@ATLANTA.COM\;user=phone!" .
2.7.5.2.7.9.2.5.3.1.8.e164enum.net. 0 IN NAPTR  100 10 "u" "E2U+sip" "!^.*$!sip:7895673454@ATLANTA.COM\;user=phone!" .

;; AUTHORITY SECTION:
e164enum.net.           0       IN      NS      HP3bl10VM5DNS.e164enum.net.

;; ADDITIONAL SECTION:
HP3bl10VM5DNS.e164enum.net. 0   IN      A       10.54.212.235

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jul 19 00:36:33 IST 2016
;; MSG SIZE  rcvd: 261

為什麼 Bind 將第二個 RR 作為第一個答案而不是我原來的第一個 RR 作為第一個答案?

綁定文件說(對於我的綁定版本 9.9.5):

在此 BIND 9 版本中,預設情況下 rrset-order 語句不支持“固定”排序。

通過在“configure”命令行 上指定“–enable-fixed-rrset”,可以在編譯時啟用固定排序。

所以也許問題出在您的綁定版本中。您沒有指定您使用的是哪個版本,也許您應該嘗試使用另一個版本?

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