Djbdns
不完整的 axfrdns 響應
我正在嘗試在專用網路中設置 djbdns
tinydns
(dnscache
和)。axfrdns
有一個執行 BIND 的輔助伺服器應該能夠傳輸由tinydns
(通過axfrdns
)管理的區域。
axfrdns
當我請求區域轉移時,我在日誌中收到此錯誤消息:axfrdns: fatal: unable to read data.cdb: format error
但實際上,該
data.cdb
文件是由 使用的tinydns
,它是由tinydns-data
: 生成的,沒有明顯的問題。如果我使用 手動執行傳輸請求
dig -t AXFR my_zone.com @172.16.2.200
,我會收到響應,但僅使用文件中的前 20 個條目data
(以相同的順序:SOA
、NS
、MX
、A
、 …),並以以下消息結尾:;; communications error to 172.16.2.200#53: end of file
顯然,這不是文件的結尾。
完整回复(出於隱私目的,名稱略有更改):
$ dig -t AXFR my_zone.com @172.16.2.200 ; <<>> DiG 9.11.5-P4-5.1+deb10u2-Debian <<>> -t AXFR my_zone.com @172.16.2.200 ;; global options: +cmd my_zone.com. 2560 IN SOA srv-10.my_zone.com. hostmaster.my_zone.com. 1603886087 16384 2048 1048576 2560 my_zone.com. 259200 IN NS srv-10.my_zone.com. srv-10.my_zone.com. 259200 IN A 172.16.2.199 my_zone.com. 259200 IN NS vm01.my_zone.com. vm01.my_zone.com. 259200 IN A 172.16.2.201 my_zone.com. 259200 IN NS vm02.my_zone.com. vm02.my_zone.com. 259200 IN A 172.16.2.202 my_zone.com. 86400 IN MX 0 my_zone.mail.protection.outlook.com. aaa.my_zone.com. 86400 IN A 78.40.125.202 bbb.my_zone.com. 86400 IN A 193.186.8.180 ccc.my_zone.com. 86400 IN A 78.40.125.106 ddd.my_zone.com. 86400 IN A 78.40.125.202 eee.my_zone.com. 86400 IN A 193.186.8.34 fff.my_zone.com. 86400 IN A 35.204.32.245 ggg.my_zone.com. 86400 IN A 192.168.10.81 hhh.my_zone.com. 86400 IN A 13.69.156.71 iii.my_zone.com. 86400 IN A 13.69.156.71 jjj.my_zone.com. 86400 IN A 13.69.156.71 my_zone.com. 86400 IN A 172.16.2.172 lll.my_zone.com. 86400 IN A 172.16.2.186 mmm.my_zone.com. 86400 IN A 172.16.2.187 nnn.my_zone.com. 86400 IN A 172.16.2.170 ooo.my_zone.com. 86400 IN A 172.16.2.171 ;; communications error to 172.16.2.200#53: end of file
我
tcpdump
編輯了 axfrdns 客戶端 (172.16.2.170
) 和伺服器 (172.16.2.200
) 之間的通信:我看不出其中有明顯的問題,除非在某些時候,伺服器關閉了連接(數據包 #22)。我認為它可能是
data
文件中的某些內容,但是切換它停止響應的條目(在上面的範例中ooo.my_zone.com
)和之後的條目(例如ppp.my_zone.com
)並沒有幫助。它現在停在ppp.my_zone.com
(即在同一個位置,不是同一個條目)。tcpdump 中的每個查詢響應包都包含多個 DNS 響應。
如何使用 轉移我的整個區域(約 340 個條目)
axfrdns
?或者如何進一步調試?
在作業系統升級和重新編譯之後,我也遇到了這個神秘的問題。原來我只需要增加 /etc/axfrdns/run 中的軟限制(從 300000 到 3000000)。