Saya proses pengaturan pemantauan server DNS dari beberapa host web besar. Tujuan saya adalah membandingkan waktu respons server dns dengan melacak respons mereka terhadap ping.
Dalam prosesnya, saya menemukan bahwa server nama Bluehost tidak menanggapi ping. Saya mencoba untuk mendapatkan informasi lebih lanjut dengan menjalankan Pingdom DNS Check di bluehost.com dan menghasilkan kesalahan berikut:
Server nama ns1.bluehost.com (74.220.195.31) tidak menjawab pertanyaan melalui TCP.
Server nama gagal menjawab pertanyaan yang dikirim melalui TCP. Ini mungkin karena server nama tidak diatur dengan benar atau karena pemfilteran yang salah konfigurasi di firewall. Ini adalah kesalahpahaman yang agak umum bahwa DNS tidak perlu TCP kecuali mereka memberikan transfer zona - mungkin administrator nama server tidak menyadari bahwa TCP biasanya merupakan persyaratan.
Saya ingin tahu yang berikut:
- Sejauh mana pernyataan di atas benar?
- Apa implikasi server nama yang tidak menjawab pertanyaan melalui TCP?
sumber
harus mendukung TCP dan UDP - TCP untuk ukuran tanggapan> 512 byte (yang akan mencakup transfer zona) (menurut hal-hal yang saya baca, bagaimanapun. Saya biasanya mengaktifkan TCP dan UDP untuk NS yang saya jalankan ...)
sumber
Adalah baik untuk mengetahui apa yang dikatakan RFC tentang masalah ini, dan kami sudah memiliki jawaban otoritatif yang bagus tentang hal itu, tetapi untuk tujuan praktis, saya menemukan saran dari Prof. Daniel J. Bernstein, PhD, penulis DJBDNS, cukup menghibur.
http://cr.yp.to/djbdns/tcp.html#why (2003-01-16)
Perhatikan bahwa ia tidak menyebutkan DNSSEC secara eksplisit; alasannya adalah bahwa, menurut DJB, DNSSEC termasuk dalam kategori "selalu kesalahan". Lihat https://cr.yp.to/djbdns/forgery.html untuk lebih jelasnya. DJB memiliki standar alternatif, yang disebut DNSCurve - http://dnscurve.org/ - yang telah diadopsi secara independen oleh beberapa penyedia (seperti OpenDNS). Yang menarik: /security/45770/if-dnssec-is-so-questionable-why-is-it-ahead-of-dnscurve-in-adoption .
Perhatikan bahwa jika dokumentasi di atas pada pengaturan DJBDNS adalah indikasi dari fitur-fiturnya, tampaknya hanya mendukung AXFR untuk TCP. Karena banyak penyedia masih menggunakan DJBDNS, mereka tidak akan mungkin mendukung DNS melalui TCP tanpa upaya ekstra.
PS Perhatikan bahwa DJB sebenarnya mempraktekkan apa yang dia khotbahkan. Servernya sendiri, (1), jalankan DNSCurve, (2), tidak menjawab TCP dengan benar. Hanya yang
+notcp
akan berhasil (yang default):, sedangkan a
+tcp
akan gagal (tampaknya dengan pesan kesalahan yang berbeda, tergantung pada server mana yang dipilih):sumber
TCP hanya diperlukan, dan biasanya hanya digunakan ketika dibutuhkan respons yang panjang. Bisa ada dampak negatif. Transfer zona dilakukan melalui TCP karena besar, dan harus dapat diandalkan. Tidak mengizinkan TCP dari server yang tidak dipercaya adalah salah satu cara untuk memastikan bahwa hanya jawaban kecil yang diberikan.
Dengan diperkenalkannya jawaban DNS yang ditandatangani, telah ada persyaratan untuk melonggarkan batas 512 byte ke jawaban UPD. EDNS0 menyediakan mekanisme untuk tanggapan UDP yang lebih lama. Kegagalan untuk mengizinkan DNS melalui TCP kemungkinan besar akan merusak implementasi DNS yang aman.
Sangat mungkin untuk menjalankan server DNS yang hanya memiliki port UDP 53 terbuka ke Internet. Diperlukan akses TCP ke rekan-rekan DNS, tetapi ini adalah sejumlah kecil host.
Ada RFC596 baru yang sekarang membutuhkan TCP untuk implementasi DNS lengkap. Ini ditujukan untuk pelaksana. Dokumen-dokumen secara khusus tidak membahas operator, tetapi memperingatkan bahwa tidak memungkinkan TCP dapat menghasilkan sejumlah skenario kegagalan. Ini merinci berbagai kegagalan yang dapat terjadi jika DNS over TCP tidak didukung.
Telah ada diskusi tentang penggunaan TCP untuk mencegah serangan amplifikasi DNS. TCP memiliki risiko penolakan layanan, tetapi distribusi lebih sulit.
sumber