Bagaimana saya bisa menyelesaikan masalah DNS di suatu tempat di tengah rekursi?

13

Saya memiliki masalah yang sangat aneh dengan DNS saya. Nama domain saya ( strugee.net) tidak dapat dipecahkan dari beberapa jaringan, dan dapat diselesaikan dari yang lain.

Misalnya, di jaringan rumah saya (jaringan yang sama dengan server aktif):

% dig strugee.net

; <<>> DiG 9.10.3-P4 <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10086
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net.           IN  A

;; ANSWER SECTION:
strugee.net.        1800    IN  A   216.160.72.225

;; Query time: 186 msec
;; SERVER: 205.171.3.65#53(205.171.3.65)
;; WHEN: Sat Apr 16 15:42:36 PDT 2016
;; MSG SIZE  rcvd: 56

Namun, jika saya masuk ke server yang saya miliki di Digital Ocean, domain gagal menyelesaikan:

% dig strugee.net      

; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 58551
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;strugee.net.           IN  A

;; Query time: 110 msec
;; SERVER: 2001:4860:4860::8844#53(2001:4860:4860::8844)
;; WHEN: Sat Apr 16 18:44:25 EDT 2016
;; MSG SIZE  rcvd: 40

Tapi , langsung menuju nameserver yang berwibawa berfungsi dengan baik:

% dig @dns1.registrar-servers.com strugee.net   

; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> @dns1.registrar-servers.com strugee.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30856
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net.           IN  A

;; ANSWER SECTION:
strugee.net.        1800    IN  A   216.160.72.225

;; AUTHORITY SECTION:
strugee.net.        1800    IN  NS  dns3.registrar-servers.com.
strugee.net.        1800    IN  NS  dns4.registrar-servers.com.
strugee.net.        1800    IN  NS  dns2.registrar-servers.com.
strugee.net.        1800    IN  NS  dns1.registrar-servers.com.
strugee.net.        1800    IN  NS  dns5.registrar-servers.com.

;; Query time: 3 msec
;; SERVER: 216.87.155.33#53(216.87.155.33)
;; WHEN: Sat Apr 16 18:46:36 EDT 2016
;; MSG SIZE  rcvd: 172

Sudah cukup jelas bahwa ada masalah dengan beberapa jaringan besar di suatu tempat yang gagal menyelesaikan domain saya, tetapi saya tidak bisa mencari tahu di mana. Saya membaca halaman digmanual untuk opsi-opsi yang mungkin membantu, tetapi tidak menemukan sesuatu yang sangat berguna.

Saya menggunakan Namecheap sebagai pendaftar domain serta hosting DNS. Saya mengaktifkan opsi DNSSEC. Saya belum membuat perubahan pada pengaturan DNS saya baru-baru ini.

Bagaimana saya bisa men-debug masalah ini dan menemukan server nama yang menyinggung?

strugee
sumber
7
Terima kasih telah memberikan nama domain. Masalah seperti ini sangat sulit dipecahkan oleh kami di Serverfault tanpa informasi itu.
Andrew B
@AndrewB oh, saya tahu.
Sama
2
@ Jawaban AndrewB masuk akal dan tampaknya benar bagi saya. Sebelum saya membacanya, saya perhatikan permintaan Anda yang gagal menggunakan nameserver IPV6, sedangkan yang berhasil menggunakan IPV4. Seringkali (jelas tidak dalam kasus ini) ini mengisyaratkan konfigurasi IPV6 yang buruk, dan dapat membantu untuk secara eksplisit menggunakan numerik IPV [4/6] alamat nameserver alih-alih alias.
Guntram Blohm mendukung Monica
@Guntram Selama kami ingat bahwa kami mendapat balasan dari server nama, yang berarti bahwa kami memiliki konektivitas ke server DNS setidaknya. Hanya ingin memastikan orang tidak meninggalkan itu dengan kesan yang salah ... SERVFAILmungkin mengindikasikan masalah di hulu, tetapi masih menunjukkan paket balasan.
Andrew B
@GuntramBlohm Anda tertarik pada sesuatu. strugee.netmemiliki lima catatan NS, tetapi tidak ada AAAAcatatan Alem, hanya catatan lem. Yang lebih buruk adalah bahwa kelima Acatatan lem tersebut hanya menunjuk ke dua alamat IP yang berbeda. Sepertinya setup yang cukup rapuh. Bahkan jika itu bukan akar penyebab masalah yang dihadapi, itu adalah sesuatu yang harus diwaspadai.
kasperd

Jawaban:

24

Bagaimana saya bisa men-debug masalah ini dan menemukan server nama yang menyinggung?

daxd5 menawarkan beberapa saran awal yang baik, tetapi satu-satunya jawaban nyata di sini adalah bahwa Anda perlu tahu bagaimana berpikir seperti server DNS rekursif. Karena ada banyak kesalahan konfigurasi pada lapisan otoritatif yang dapat mengakibatkan tidak konsisten SERVFAIL, Anda memerlukan alat profesional DNS atau validasi online.

Lagi pula, tujuannya bukan untuk membantu Anda, tetapi saya ingin memastikan bahwa Anda memahami bahwa tidak ada jawaban pasti untuk pertanyaan itu.


Dalam kasus khusus Anda, saya perhatikan bahwa itu strugee.nettampaknya zona yang ditandatangani dengan DNSSEC. Ini terbukti dari kehadiran DSdan RRSIGcatatan dalam rantai rujukan:

# dig +trace +additional strugee.net
<snip>
strugee.net.            172800  IN      NS      dns2.registrar-servers.com.
strugee.net.            172800  IN      NS      dns1.registrar-servers.com.
strugee.net.            172800  IN      NS      dns3.registrar-servers.com.
strugee.net.            172800  IN      NS      dns4.registrar-servers.com.
strugee.net.            172800  IN      NS      dns5.registrar-servers.com.
strugee.net.            86400   IN      DS      16517 8 1 B08CDBF73B89CCEB2FD3280087D880F062A454C2
strugee.net.            86400   IN      RRSIG   DS 8 2 86400 20160423051619 20160416040619 50762 net. w76PbsjxgmKAIzJmklqKN2rofq1e+TfzorN+LBQVO4+1Qs9Gadu1OrPf XXgt/AmelameSMkEOQTVqzriGSB21azTjY/lLXBa553C7fSgNNaEXVaZ xyQ1W/K5OALXzkDLmjcljyEt4GLfcA+M3VsQyuWI4tJOng184rGuVvJO RuI=
dns2.registrar-servers.com. 172800 IN   A       216.87.152.33
dns1.registrar-servers.com. 172800 IN   A       216.87.155.33
dns3.registrar-servers.com. 172800 IN   A       216.87.155.33
dns4.registrar-servers.com. 172800 IN   A       216.87.152.33
dns5.registrar-servers.com. 172800 IN   A       216.87.155.33
;; Received 435 bytes from 192.41.162.30#53(l.gtld-servers.net) in 30 ms

Sebelum kita melangkah lebih jauh, kita perlu memeriksa apakah penandatanganan itu valid atau tidak. DNSViz adalah alat yang sering digunakan untuk tujuan ini, dan itu menegaskan bahwa memang ada masalah . Warna merah marah di gambar menunjukkan bahwa Anda memiliki masalah, tetapi alih-alih meributkan semua yang kita bisa perluas Pemberitahuan di bilah sisi kiri:

RRSIG strugee.net/A alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/DNSKEY alg 8, id 16517: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/DNSKEY alg 8, id 16517: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/MX alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/NS alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/SOA alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/TXT alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
net to strugee.net: No valid RRSIGs made by a key corresponding to a DS RR were found covering the DNSKEY RRset, resulting in no secure entry point (SEP) into the zone. (216.87.152.33, 216.87.155.33, UDP_0_EDNS0_32768_4096)

Masalahnya jelas: tanda tangan di zona Anda telah kedaluwarsa dan kunci perlu di-refresh. Alasan mengapa Anda melihat hasil yang tidak konsisten adalah karena tidak semua server rekursif memiliki validasi DNSSEC. Yang memvalidasi menjatuhkan domain Anda, dan untuk yang tidak, itu adalah bisnis seperti biasa.


Sunting: Infrastruktur DNS Comcast dikenal untuk mengimplementasikan validasi DNSSEC, dan sebagai salah satu pelanggan mereka, saya dapat mengonfirmasi bahwa saya juga melihat sebuah SERVFAIL.

$ dig @75.75.75.75 strugee.net | grep status
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 2011
Andrew B
sumber
Ups, saya sudah stugee.netdalam output penggalian, yang jelas merupakan kesalahan ketik. Bagian DNSSEC dari analisis ini dilakukan terhadap nama yang benar.
Andrew B
5

Meskipun Anda memang melihat bahwa server nama resmi merespons dengan benar, Anda perlu menindaklanjuti seluruh rantai resolusi DNS. Ini, berjalan menyusuri seluruh hirarki DNS dari server root ke atas.

$ dig net NS
;; ANSWER SECTION:
net.            172800  IN  NS  c.gtld-servers.net.
net.            172800  IN  NS  f.gtld-servers.net.
net.            172800  IN  NS  k.gtld-servers.net.
;; snipped extra servers given
$ dig @c.gtld-servers.net strugee.net NS
;; AUTHORITY SECTION:
strugee.net.        172800  IN  NS  dns2.registrar-servers.com.
strugee.net.        172800  IN  NS  dns1.registrar-servers.com.
;; snipped extra servers again

Ini pada dasarnya memeriksa apakah server DNS publik berfungsi, dan Anda melakukan hal yang sama dengan yang harus dilakukan oleh resolver DNS Anda. Jadi Anda harus mendapatkan jawaban yang sama seperti di atas di server Digital Ocean Anda kecuali ada yang salah dengan resolver DNS mereka:

$ dig net NS
$ dig strugee.net NS
$ dig strugee.net

Jika dua kueri pertama gagal, berarti DNS di Digital Ocean gagal. Periksa /etc/resolv.confdan coba kueri server DNS sekunder. Jika yang kedua berfungsi, cukup ganti urutan untuk resolver dan coba lagi.

daxd5
sumber