Dig

avahi-resolve 解析 dig -p 5353 @224.0.0.251 不解析的主機名?

  • July 20, 2020

我想avahi-resolve並且dig -p 5353 @224.0.0.251做了很多同樣的事情。

但是,我有一個設備,我可以使用avahi-resolve但不使用來解析其名稱dig

$ avahi-resolve --name ding-5cd80b3.local
ding-5cd80b3.local  192.168.0.248

$ dig +short -p 5353 @224.0.0.251 ding-5cd80b3.local
;; Warning: ID mismatch: expected ID 60466, got 0

我也不能進行反向查找:

$ avahi-resolve --address 192.168.0.248
Failed to resolve address '192.168.0.248': Timeout reached

$ dig +short -p 5353 @224.0.0.251 -x 192.168.0.248
;; connection timed out; no servers could be reached

宣傳其名稱的設備是一個簡單的物聯網設備,因此我對它具有非常基本的 mDNS 支持(如果使用ESP-IDF 提供的mDNS 支持)並不感到驚訝。

我已經嘗試對兩者都使用詳細標誌,avahi-resolve看看dig是否可以讓我對正在發生的事情有所了解,但在這兩種情況下,我都沒有得到任何額外的見解。

我猜這ID mismatch意味著它dig實際上正在得到響應,但拒絕顯示它,因為它將這解釋為DNS 欺騙的情況,同時avahi-resolve更加寬容。

除了使用 Wireshark 之外,有什麼方法可以讓dig我變得更加寬容(我試過了)或者我可以看到這裡發生了什麼?+besteffort

我正在使用 Ubuntu,並且如前所述,有問題的設備正在使用ESP-IDF

問題似乎確實與底層 ESP-IDF 庫及其 mDNS 支持有關。

它的響應中不包含原始查詢中包含的 ID,它始終只使用 0。因此dig錯誤說ID mismatch: expected ID 60466, got 0.

我已經針對 ESP-IDF記錄了 issue #5574來解決這個問題。

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