ทำไมโฮสต์และ nslookup สามารถแก้ไขชื่อ แต่ไม่สามารถขุดได้


27

มีใครบอกฉันได้ไหมว่าทำไมสิ่งนี้ถึงเกิดขึ้น ฉันสามารถแก้ไขชื่อโฮสต์โดยใช้โฮสต์และ / หรือ nslookup แต่การค้นหาแบบส่งต่อไม่สามารถทำงานกับ dig; การค้นหาแบบย้อนกลับทำ:

musashixxx@box:~$ host someserver
someserver.somenet.internal has address 192.168.0.252
musashixxx@box:~$ host 192.168.0.252
252.0.168.192.in-addr.arpa domain name pointer someserver.somenet.internal.
musashixxx@box:~$ nslookup someserver
Server:     192.168.0.253
Address:    192.168.0.253#53

Name:   someserver.somenet.internal
Address: 192.168.0.252
musashixxx@box:~$ nslookup 192.168.0.252
Server:     192.168.0.253
Address:    192.168.0.253#53

252.0.168.192.in-addr.arpa  name = someserver.somenet.internal.

musashixxx@box:~$ dig someserver

; <<>> DiG 9.8.1-P1 <<>> someserver
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 55306
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;someserver.            IN  A

;; Query time: 0 msec
;; SERVER: 192.168.0.253#53(192.168.0.253)
;; WHEN: Wed Oct  3 15:47:38 2012
;; MSG SIZE  rcvd: 27

musashixxx@box:~$ dig -x 192.168.0.252

; <<>> DiG 9.8.1-P1 <<>> -x 192.168.0.252
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28126
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;252.0.168.192.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
252.0.168.192.in-addr.arpa. 3600 IN PTR someserver.somenet.internal.

;; Query time: 0 msec
;; SERVER: 192.168.0.253#53(192.168.0.253)
;; WHEN: Wed Oct  3 15:49:11 2012
;; MSG SIZE  rcvd: 86

นี่คือลักษณะของฉัน resolv.conf:

nameserver 192.168.0.253
search somenet.internal

พฤติกรรมนี้เป็นปกติหรือไม่ ความคิดใด ๆ

คำตอบ:


36

มันเป็นพฤติกรรมเริ่มต้นของการขุดที่จะไม่ใช้ตัวเลือกการค้นหา

จากหน้าคู่มือ:

   +[no]search
       Use [do not use] the search list defined by the searchlist or
       domain directive in resolv.conf (if any). The search list is not
       used by default.

แก้ไข: เพียงแค่เพิ่มจะทำให้การทำงานเช่น+searchdig +search myhost


ฉันเป็นคนเดียวที่เห็นว่าการตอบโต้นั้นง่ายนิดเดียวหรือไม่? :-) อย่างไรก็ตามขอบคุณมาก!
musashiXXX

5
@musashiXXX มันขึ้นอยู่กับ :-) คนส่วนใหญ่ใช้digสำหรับการดีบัก DNS และในกรณีนี้มันเป็นความคิดที่ดีที่จะปิดการใช้งานทุกอย่างที่อาจทำให้คำตอบของ DNS ยุ่งเหยิง ฉันคิดว่ามันเป็นความคิดที่ดีทีเดียว คนส่วนใหญ่ใช้hostและnslookupหลังจากทั้งหมด :-)
Alexander Janssen

7

ฉันมีปัญหาเดียวกัน หลังจากตรวจสอบแพ็คเก็ตที่ส่งมาจากทั้ง nslookup และขุดด้วย wireshark ฉันพบปัญหา

ขุดถูกตั้งค่าบิตข้อมูลจริงในแบบสอบถาม ตามหน้า man, "สิ่งนี้ร้องขอให้เซิร์ฟเวอร์ส่งคืนว่าส่วนของคำตอบและสิทธิ์ทั้งหมดได้รับการตรวจสอบว่าปลอดภัยตามนโยบายความปลอดภัยของเซิร์ฟเวอร์หรือไม่" โดยการเรียกใช้ dig ด้วย + noadflag จะให้ผลลัพธ์เหมือนกับ nslookup


3
มีปัญหาเดียวกัน แต่ผลลัพธ์ที่แตกต่างเกิดจากednsส่วนขยาย เมื่อฉันทำแบบสอบถามด้วย+noendsขุดส่งกลับผลลัพธ์เช่นเดียวกับโฮสต์
Slava Bacherikov

7

ในกรณีของฉันมันเป็นข้อผิดพลาดใน Microsoft DNS Server ซึ่งจะส่งกลับFORMERRการตอบสนอง (ข้อผิดพลาดการจัดรูปแบบคำขอ) สำหรับการร้องขอด้วยEDNS Cookieชุดตัวเลือก รุ่นที่ใหม่กว่าdig(9.11 ขึ้นไป) ใช้ dns-cookies ตามค่าเริ่มต้น สิ่งนี้สามารถป้องกันได้โดยการตั้งค่าสถานะ+nocookieหรือ+noednsขุด:

$ dig +nocookie DOMAIN @SERVER

ที่มา: https://kevinlocke.name/bits/2017/01/20/formerr-from-microsoft-dns-server-for-dig/


1

คุณสามารถใช้ไฟล์. digrc ในโฮมไดเร็กตอรี่ของคุณด้วยบรรทัด

+ ค้นหา

เพื่อโอกาสพฤติกรรมเริ่มต้น


0

ฉันประสบปัญหานี้กับเครือข่าย Wi-Fi ที่บ้านของฉันพยายามแก้ไข ol ที่ดี ' google.comจากภายใน Ubuntu VM ที่ทำงานบนโฮสต์ Windows 7 ด้วยdigซึ่งหมดเวลา แต่nslookupกลับส่งผลทันที

ทางออกสำหรับฉันคือการเพิ่ม+noedns: $ dig +noedns google.com.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.