2016-11-29 100 views
0

我正在构建一个自定义DNS服务器,其中包含SRV记录和关联的AAAAA记录。我可以验证查询服务器直接返回预期的答案:SRV记录是否被DNS解析器剥离?

$ dig lseed.bitcoinstats.com SRV @139.59.143.87 +short 
10 10 9735 2c932136c294204bc65c73266300b30fe8ccb99c24fb2261d2e9980a7e8ffe9.80.lseed.bitcoinstats.com. 
10 10 6331 31ce6a2b947fdbc97f10405c4062848393cf8140f33cc492aa044fe47d18f59.c6.lseed.bitcoinstats.com. 
10 10 8334 283a918ae4609473c01f2e19491e9202788150dbe8d4361a3a04f3a879e9f0a.45.lseed.bitcoinstats.com. 
10 10 53258 2673073e3751681b0c55aa88e5af17522c6d6b32d7d210bf4d65439d063c1ba.91.lseed.bitcoinstats.com. 

但是通过我的互联网服务供应商解析器查询时(或任何公共解析器,像谷歌的8.8.8.8),我得到一个空的答案回:

$ dig lseed.bitcoinstats.com SRV @8.8.8.8  

; <<>> DiG 9.9.5-3ubuntu0.10-Ubuntu <<>> lseed.bitcoinstats.com SRV @8.8.8.8 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 10994 
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 

;; OPT PSEUDOSECTION: 
; EDNS: version: 0, flags:; udp: 512 
;; QUESTION SECTION: 
;lseed.bitcoinstats.com.    IN  SRV 

;; Query time: 86 msec 
;; SERVER: 8.8.8.8#53(8.8.8.8) 
;; WHEN: Tue Nov 29 12:32:15 CET 2016 
;; MSG SIZE rcvd: 51 

该查询立即返回,我可以看到我的服务器接收到一个传入查询,但它是空的。解析器是否已知道行为SRV和其他答案?如果是这种情况,为什么查询完全转发到我的服务器?或者是我身边的错误,服务器只是回答错误的答案?

回答

0

原来,由于答案中的不匹配的名字,答案被删除。该查询请求lseed.bitcoinstats.com,而答案是与另一个域(_lightning._tcp.lseed.bitcoinstats.com)答复,因此解析器正在剥离不匹配的答案,只留下一个没有答案的空答复。将答案中的域设置为与问题中的域相同将导致解析器传递答案。