RFC yang membutuhkan server DNS untuk menanggapi permintaan domain yang tidak dikenal

11

Pendaftar domain dan DNS saya saat ini mengabaikan permintaan DNS ke domain yang tidak dikenal. Dengan mengabaikan maksud saya lubang hitam dan tidak pernah merespons yang menyebabkan klien DNS dan pemecah masalah saya mencoba lagi, mundur, dan akhirnya kehabisan waktu.

dig @NS3.DNSOWL.COM somedomainthatdoesntexist.org
...
;; connection timed out; no servers could be reached

Dalam mensurvei layanan nama domain populer lainnya, saya melihat bahwa perilaku ini cukup unik karena penyedia lain mengembalikan RCODE 5 (REFUSED):

dig @DNS1.NAME-SERVICES.COM somedomainthatdoesntexist.org
dig @NS-284.AWSDNS-35.COM somedomainthatdoesntexist.org
dig @NS21.DOMAINCONTROL.COM somedomainthatdoesntexist.org

Semua mengembalikan sesuatu seperti yang berikut:

;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 64732

atau

;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 31219

Kembali REFUSEDatau NXDOMAINsegera adalah IMHO yang tepat dan bukan hanya menjatuhkan permintaan di lantai ruang server.

Ketika saya mengeluh kepada penyedia saya tentang server mereka yang tidak merespons, mereka meminta saya untuk mengutip RFC yang dilanggar oleh server mereka. Saya tahu itu aneh bahwa mereka meminta saya untuk membuktikan bahwa server mereka harus menanggapi semua permintaan, tetapi jadilah itu.

Pertanyaan :

  • Ini adalah ketentuan saya bahwa kecuali ada id permintaan duplikat atau semacam respons DOS, server harus selalu menanggapi permintaan tersebut. Apakah ini benar?
  • Apa RFC dan bagian spesifik yang harus saya kutip untuk mendukung ketentuan saya?

Bagi saya, itu buruk untuk tidak menanggapi permintaan DNS. Sebagian besar klien akan mundur dan kemudian mengirimkan kembali permintaan yang sama ke server DNS yang sama atau server lain. Mereka tidak hanya memperlambat klien tetapi mereka menyebabkan permintaan yang sama dilakukan lagi oleh server mereka sendiri atau lainnya tergantung pada server nama otoritatif dan entri NS.

Di RFC 1536 dan 2308 saya melihat banyak informasi tentang caching negatif karena alasan kinerja dan untuk menghentikan pengiriman ulang permintaan yang sama. Pada 4074 saya melihat informasi tentang mengembalikan jawaban kosong dengan RCODE 0 sehingga klien tahu tidak ada info ipv6 yang harus menyebabkan klien bertanya tentang RR yang merupakan contoh lain dari respons kosong.

Tetapi saya tidak dapat menemukan RFC yang mengatakan bahwa server DNS harus menanggapi permintaan, mungkin karena itu tersirat.

Masalah khusus terjadi ketika saya memigrasikan domain saya (dan catatan DNS terkait) ke server mereka atau X menit pertama setelah saya mendaftarkan domain baru dengan layanan mereka. Ada jeda antara waktu server nama resmi berubah (yang sangat cepat hari ini) dan server mereka mulai melayani catatan DNS saya. Selama jeda waktu ini, klien DNS berpikir bahwa server mereka otoritatif tetapi mereka tidak pernah menanggapi permintaan - bahkan dengan a REFUSED. Saya mengerti lag yang baik-baik saja tetapi saya tidak setuju dengan keputusan untuk tidak menanggapi permintaan DNS. Sebagai catatan, saya mengerti bagaimana mengatasi keterbatasan ini dalam sistem mereka, tetapi saya masih bekerja dengan mereka untuk meningkatkan layanan mereka agar lebih sesuai dengan protokol DNS.

Terima kasih untuk bantuannya.


Edit:

Dalam beberapa bulan setelah memposting ini dan menindaklanjuti dengan penyedia saya, mereka mengubah server mereka untuk kembali NXDOMAINke domain yang tidak dikenal.

Gray - BEGITU berhenti menjadi jahat
sumber
Terkait dengan: serverfault.com/questions/892622/...
Gray - SO berhenti menjadi jahat

Jawaban:

16

Nasihat Shane benar. Kegagalan untuk memigrasikan data dari satu server otoritatif ke server lain sebelum memulai cutover adalah undangan untuk pemadaman. Terlepas dari apa yang terjadi sejak saat itu, ini adalah pemadaman yang diprakarsai oleh orang yang mengayunkan catatan NS. Ini menjelaskan mengapa lebih banyak orang tidak mengajukan keluhan ini kepada penyedia Anda.

Yang mengatakan, ini masih merupakan pertanyaan yang menarik untuk dijawab, jadi saya akan mengambil celah saya itu.


Fungsionalitas dasar dari server DNS dicakup oleh dokumen RFC 1034 dan RFC 1035 , yang secara kolektif membentuk STD 13 . Jawabannya harus datang dari kedua RFC ini, atau diklarifikasi oleh RFC yang kemudian memperbaruinya.

Sebelum kita melanjutkan, ada jebakan besar-besaran di sini di luar lingkup DNS yang perlu disuarakan: kedua RFC ini ada sebelum BCP 14 (1997), dokumen yang menjelaskan bahasa MEI, HARUS, HARUS, HARUS, dll.

  • Standar yang ditulis sebelum bahasa ini diformalkan MUNGKIN telah menggunakan bahasa yang jelas, tetapi dalam beberapa kasus tidak. Hal ini menyebabkan implementasi perangkat lunak yang berbeda, kebingungan massal, dll.
  • STD 13 sayangnya bersalah karena interpretatif di beberapa bidang. Jika bahasa tidak tegas pada area operasi, seringkali perlu untuk menemukan RFC yang mengklarifikasi.

Dengan itu, mari kita mulai dengan apa yang dikatakan RFC 1034 §4.3.1 :

  • Mode paling sederhana untuk server adalah non-rekursif, karena dapat menjawab pertanyaan hanya dengan menggunakan informasi lokal: respons berisi kesalahan, jawaban, atau rujukan ke server lain yang "lebih dekat" dengan jawabannya. Semua server nama harus menerapkan kueri non-rekursif.

...

Jika layanan rekursif tidak diminta atau tidak tersedia, respons non-rekursif akan menjadi salah satu dari yang berikut:

  • Kesalahan nama otoritatif yang menunjukkan bahwa nama itu tidak ada.

  • Indikasi kesalahan sementara.

  • Beberapa kombinasi dari:

    RR yang menjawab pertanyaan, bersama dengan indikasi apakah data berasal dari zona atau di-cache.

    Rujukan ke server nama yang memiliki zona yang merupakan leluhur yang lebih dekat dengan nama daripada server yang mengirim balasan.

  • RR yang menurut server nama terbukti bermanfaat bagi pemohon.

Bahasa di sini cukup tegas. Tidak ada "seharusnya", tetapi "akan". Ini berarti bahwa hasil akhirnya harus 1) didefinisikan dalam daftar di atas, atau 2) diizinkan oleh dokumen kemudian pada Trek Standar yang mengubah fungsi. Saya tidak mengetahui adanya kata-kata seperti itu yang ada untuk mengabaikan permintaan dan saya akan mengatakan bahwa tanggung jawab adalah pada pengembang untuk menemukan bahasa yang menyangkal penelitian.

Mengingat seringnya peran DNS dalam skenario penyalahgunaan jaringan, jangan dikatakan bahwa perangkat lunak server DNS tidak menyediakan tombol untuk secara selektif menjatuhkan lalu lintas di lantai, yang secara teknis akan menjadi pelanggaran terhadap hal ini. Yang mengatakan, ini bukan perilaku standar atau dengan standar sangat konservatif; contoh keduanya adalah pengguna yang memerlukan perangkat lunak untuk menjatuhkan nama tertentu ( rpz-drop.), atau ambang numerik tertentu sedang dilampaui (BIND max-clients-per-query). Hampir tidak pernah terjadi dalam pengalaman saya untuk perangkat lunak untuk sepenuhnya mengubah perilaku default untuk semua paket dengan cara yang melanggar standar, kecuali pilihannya adalah salah satu yang meningkatkan toleransi untuk produk lama yang melanggar standar. Bukan itu masalahnya di sini.

Singkatnya, RFC ini dapat dan memang dilanggar atas kebijakan operator, tetapi biasanya ini dilakukan dengan beberapa cara yang presisi. Hal ini sangat jarang untuk benar-benar mengabaikan bagian dari standar sebagai nyaman, terutama ketika konsensus profesional (contoh: BCP 16 §3.3 ) keliru dalam mendukung itu menjadi tidak diinginkan untuk menghasilkan beban yang tidak perlu pada sistem DNS secara keseluruhan. Coba lagi yang tidak perlu dari menjatuhkan semua permintaan yang tidak ada data otoritatif yang kurang diinginkan dengan mempertimbangkan hal ini.


Memperbarui:

Mengenai hal itu tidak diinginkan untuk menjatuhkan pertanyaan di lantai sebagai hal yang biasa, @Alnak berbagi dengan kami bahwa saat ini ada BCP Draft yang membahas topik ini secara rinci. Agak terlalu dini untuk menggunakan ini sebagai kutipan, tetapi memang membantu untuk memperkuat bahwa konsensus komunitas selaras dengan apa yang diungkapkan di sini. Khususnya:

Kecuali server nama sedang diserang, itu harus menanggapi semua pertanyaan yang ditujukan kepadanya sebagai hasil dari delegasi berikut. Selain itu kode tidak boleh berasumsi bahwa tidak ada delegasi ke server bahkan jika tidak dikonfigurasi untuk melayani zona. Delegasi yang rusak adalah kejadian umum dalam DNS dan menerima permintaan untuk zona yang tidak dikonfigurasikan server tidak selalu merupakan indikasi bahwa server sedang diserang. Operator zona induk seharusnya secara teratur memeriksa bahwa catatan NS yang mendelegasikan konsisten dengan yang ada di zona yang didelegasikan dan untuk memperbaikinya ketika tidak [RFC1034]. Jika ini dilakukan secara teratur, contoh delegasi yang rusak akan jauh lebih rendah.

Jawaban ini akan diperbarui ketika status dokumen ini berubah.

Andrew B
sumber
Itu tangkapan yang bagus. Saya biasanya salah satu yang memanggil shouldvs must. Saya membaca skim will bedalam arti itu.
Aaron
Terima kasih Andrew barang bagus. "Akan" tampaknya sedekat yang saya bisa.
Gray - SO berhenti menjadi jahat
@Alnitak Sangat bagus ditemukan, saya akan menambahkannya.
Andrew B
@AndrewB hampir tidak "menemukan", karena ini ditulis oleh seorang rekan saya: p
Alnitak
3

Saat Anda memindahkan DNS resmi untuk domain ke penyedia baru, Anda harus selalu (selalu!) Menguji secara eksplisit terhadap penyedia baru (dan memastikan mereka mengirim catatan yang akurat dan terkonfigurasi) sebelum Anda mengubah informasi pendaftaran domain (whois) Anda untuk menunjuk ke server DNS otoritatif baru.

Secara kasar, langkah-langkah yang akan Anda ambil:

  1. Atur semuanya pada penyedia DNS baru. Anda harus membuat dan mengisi semua zona.
  2. Pastikan server otoritatif baru berfungsi dengan benar. Minta mereka secara eksplisit:

    dig @new-ns.example.com mydomain.com
    

    Seperti apa, dari pertanyaan Anda, apakah mereka tidak menanggapi pertanyaan ini? Tapi, Anda mengatakan "domain tidak dikenal" yang seharusnya tidak berada di titik ini, harus sepenuhnya dikonfigurasikan dalam sistem mereka (dan merespons dengan catatan yang Anda konfigurasi).

    Tetapi, jika Anda telah mengkonfigurasi domain di sistem mereka, itu harus merespons dengan catatan yang benar pada saat ini. Jika tidak maka mereka tidak hosting zona dengan benar, dan Anda harus berteriak pada mereka; apakah itu merespons atau tidak ke domain yang tidak dikonfigurasikan harus tidak penting. (Jika saya masih tidak mengerti apa yang Anda katakan, beri tahu saya).

  3. Ganti server nama otoritatif dengan pendaftar domain Anda (whois), biarkan penyedia DNS lama berjalan dan berjalan sampai lalu lintas tidak lagi memukulnya (berikan setidaknya 24 jam).

Jika penyedia baru benar-benar tidak dapat memiliki catatan yang diisi sebelum Anda beralih, maka bagaimana mereka merespons benar-benar tidak masalah - mengarahkan pengguna ke otoritatif yang menolak kueri sepenuhnya akan menimbulkan waktu henti untuk domain Anda sama seperti jika Anda tidak mendapat tanggapan sama sekali.

Shane Madden
sumber
Maaf, ini semua saran yang bagus tapi bagaimana cara menjawab pertanyaan saya?
Gray - SO berhenti jadi jahat
2
@ Gray Dengan memberi tahu Anda bahwa jalur migrasi Anda rusak jika Anda tidak berencana memiliki host DNS baru yang memiliki catatan sebelumnya. Mengubah pendaftaran Anda untuk menunjuk ke server otoritatif baru yang tidak berfungsi adalah kesalahan , terlepas dari apakah mereka mengirim REFUSEDatau tidak sama sekali tanggapan; keduanya sama-sama rusak. Tetapi jika Anda tidak dapat repot-repot membaca jawaban saya, maka saya sudah selesai mencoba membantu Anda.
Shane Madden
1
Hanya untuk memberikan beberapa konteks di sini, kritik ini muncul dari informasi yang dibagikan dalam komentar yang terkait dengan jawaban yang dihapus. "Masalah khusus terjadi ketika saya memindahkan layanan nama DNS saya ke server mereka. Ada jeda antara waktu catatan WHOIS root berubah dan server mereka mendapatkan catatan DNS saya. Jadi ada saat ketika klien DNS berpikir bahwa server mereka otoritatif tetapi mereka tidak pernah menanggapi permintaan. "
Andrew B
1
By Switch whois records Saya menganggap Anda lebih suka NScatatan yang berarti (baik dari sisi otoritatif dan delegasi)?
Håkan Lindqvist
2
WHOIS yang memiliki keterlibatan dalam DNS otoritatif adalah racun otak ke internet, terlepas dari apakah sisa jawaban menunjukkan pengetahuan subjek. : P
Andrew B