Mengapa data DNS kami tidak menyebar ke internet?


22

Kami menjalankan server nama untuk domain kami di jaringan kami. Kami menggunakan bind / name. Mari kita memanggil domain example.com . Satu hal yang saya perhatikan baru-baru ini, ketika saya membuka situs web seperti http://network-tools.com dan menjalankan kueri pada URL yang ditentukan pada server nama kami, saya melihat perubahan secara instan.

Misalnya, jika saya menambahkan entri ke server DNS kami untuk url funny.example.com dan kemudian mencari url itu di http://network-tools.com , saya melihat IP statis eksternal yang tepat segera terdaftar untuknya.

Itu memberi tahu saya bahwa setiap permintaan DNS yang terkait dengan example.com akan datang langsung ke server DNS kami setiap saat.

Kecurigaan saya dikonfirmasi pada awal minggu ketika server DNS kami turun untuk waktu yang sangat singkat. Dan selama periode waktu itu, jika saya menggunakan http://network-tools.com untuk meminta contoh.com atau salah satu subdomainnya, saya akan mendapatkan hasil nol. Jelas itu karena server DNS turun dan tidak dapat dihubungi.

Jadi ini membawa saya ke pertanyaan saya. Saya pikir perubahan pada server DNS kami harus menyebar ke internet ke server DNS lain. Dengan begitu, jika DNS kami turun sementara, server lain di internet masih tahu apa yang menunjuk ke alamat IP example.com .

Apakah saya salah memahami hal-hal DNS ini? Apakah server DNS yang dikontrol pihak ketiga seperti kami tidak diizinkan untuk menyebarkan informasi DNS ke server lain di internet?

Di mana saya harus mulai menyelidiki mengapa perubahan tidak terjadi di sana? Saya dapat melihat di firewall kami bahwa port 53 traffic membuat ke server DNS kami dengan benar.

MEMPERBARUI

  1. Saya tahu kalian mengatakan bahwa tidak mungkin untuk mempublikasikan pengaturan DNS Anda secara instan, tetapi yang saya tahu adalah ini: Jika saya membuat perubahan DNS pada server DNS kami dan kemudian segera memeriksanya di http: // network-tools. com , saya segera melihat perubahannya.

  2. Jika saya mematikan server DNS kami dan kemudian saya mencoba memeriksa salah satu URL menggunakan http://network-tools.com , situs tidak dapat menemukan URL. Tetapi jika saya membawa server DNS kembali online, semua http://network-tools.com tiba-tiba dapat menemukan URL lagi ... Ini memberitahu saya bahwa server TIDAK melakukan caching pengaturan DNS kami. Apakah aku salah? Juga, pengaturan TTL kami diatur ke 900 (15 menit) saat ini dan server DNS kami telah berjalan selama lebih dari setahun. Jadi tidak seperti server DNS yang ada di internet belum memiliki kesempatan untuk menyimpannya. Apakah alasan server tidak melakukan caching pengaturan karena TTL sangat rendah saat ini? Itu agak masuk akal jika itu alasannya.


7
Karena jokerville.com adalah nama domain asli terdaftar, kecuali itu sebenarnya domain Anda, silakan gunakan example.comsebagai gantinya - itu resmi dicadangkan untuk tujuan itu.
mattdm

9
Alasan bahwa network-tools.com melihat perubahan dengan segera adalah karena itu adalah alat jaringan, dan SANGAT bukan hasil caching. Ini alat untuk melihat server nama Anda, bukan klien DNS normal, sehingga mematuhi aturan yang berbeda.
Michael Kohne

Jawaban:


42

Ya, Anda salah memahami cara kerja DNS. Saya akan menggunakan beberapa penekanan di sini, tapi tolong jangan tersinggung karena tidak ada yang dimaksudkan.

RECORDS DNS TIDAK DILARANG. MEREKA DITEMBAK.

Yang sedang berkata, inilah penjelasan yang disederhanakan dari apa yang terjadi:

  1. Anda membuat catatan DNS baru (A, CNAME, dll)

  2. Pengguna jarak jauh (lebih khusus proses \ aplikasi yang diluncurkan oleh pengguna) mencoba mengakses layanan yang diakses melalui catatan DNS itu (peramban web yang mencoba mengakses situs web yang berjalan di funny.example.com misalnya)

  3. Klien pengguna DNS mengirimkan permintaan DNS ke server DNS-nya, server DNS kemudian menemukan server nama Anda (biasanya melalui serangkaian permintaan DNS rekursif) dan meminta mereka untuk informasi mengenai funny.example.com

  4. Server nama Anda merespons dengan jawabannya

  5. Pengguna DNS server kemudian mengirimkan informasi ini kepada pengguna (lebih khusus lagi untuk resolver klien DNS pengguna), yang pada gilirannya mengembalikan informasi ke proses \ aplikasi. Informasi ini dilengkapi dengan apa yang disebut TTL (Time To Live) yang memberi tahu klien DNS resolver berapa lama informasi ini disimpan dalam cache DNS (dalam memori) dan berapa lama informasi tersebut dapat dianggap terkini dan akurat.

  6. Penyelesai klien DNS pengguna kemudian mem-flush informasi ini ketika TTL berakhir. Setiap permintaan baru untuk catatan DNS yang dipermasalahkan memerlukan pencarian DNS baru dan proses di atas berulang.

Jadi, panjang dan pendeknya adalah ini:

Catatan DNS Anda tidak diperbanyak. Tidak ada server DNS lain yang memiliki salinan catatan atau zona DNS Anda. Klien atau server DNS dapat menyimpan informasi tentang catatan atau zona DNS Anda (berdasarkan permintaan DNS dari catatan dan zona DNS Anda) ke dalam cache DNS mereka. Informasi ini sementara di-cache dan akan dihapus dari cache DNS-nya ketika TTL berakhir.

Jika server nama Anda tidak aktif, hanya klien DNS yang memiliki catatan DNS Anda di cache mereka yang akan dapat menyelesaikan catatan DNS tersebut dan hanya sampai TTL kedaluwarsa. Juga, ketika TTL kedaluwarsa (neccessitating DNS lokkup baru) klien DNS tersebut tidak lagi dapat menyelesaikan catatan DNS Anda.


Penjelasan yang baik dan saya dapat menambahkan contoh protokol di mana ada propagasi (tidak seperti DNS): BGP.
bortzmeyer

11

itu akan sangat membantu jika Anda memberi tahu kami nama domain Anda yang sebenarnya, maka kami dapat menjawab pertanyaan Anda dengan merujuk pada pengaturan Anda yang sebenarnya, dan menunjukkan kesalahan apa pun.

Saya cenderung mempercayai http://dns.squish.net/ untuk mendiagnosis masalah DNS dengan cepat. Itu akan memberi tahu Anda secara pasti di mana masalah Anda terletak setelah Anda membuat perubahan - pada dasarnya jika delegasi Anda dari hulu benar, dan server nama 2-3 Anda semua memberikan jawaban yang sama, dan seseorang tidak melihat catatan baru, mereka hanya harus menunggu jaringan lokal mereka untuk melihat perubahannya. Jika pemeriksa itu memberi tahu Anda bahwa salah satu server Anda tidak memberikan respons yang sama dengan yang lain, Anda perlu memperbaiki masalah itu.

Tidak mungkin Anda dapat mempublikasikan perubahan DNS secara instan - baik, Anda dapat mempublikasikannya secara instan, tetapi seluruh dunia akan tertinggal sesuai dengan pengaturan TTL dari setiap catatan, jadi mis. Jika Anda telah menetapkan catatan TTL dari 86400 detik ( satu hari) dan Anda membuat perubahan, orang lain akan melihat catatan lama hingga satu hari penuh, karena cache lokal mereka tidak akan meminta Anda sampai salinan catatan mereka kedaluwarsa.

Saya akan menyarankan bahwa sebelum perubahan DNS besar Anda mengurangi TTL Anda menjadi 600 (10 menit) untuk mendorong cache di internet agar tidak terlalu lama menyimpan catatan lama. Tetapi beberapa cache akan mengabaikan ini, atau menganggap 1 hari, atau bahkan 1 minggu.

Jawaban yang bertele-tele untuk pertanyaan bertele-tele, berharap ada sesuatu yang berguna di dalamnya.


1
+1. Untuk lebih jelasnya, hanya klien DNS yang sudah memiliki informasi dalam cache mereka, yang TTLnya belum kedaluwarsa, akan terpengaruh oleh perubahan. Setiap permintaan baru, yang tidak ada datanya dalam cache, akan segera diselesaikan.
joeqwerty

fyi: dead link - squish.net/dnscheck
Aaron Esau

8

Ya pepatah lama, "Perubahan DNS mungkin membutuhkan waktu 24-48 jam untuk disebarkan melalui internet" akan lebih akurat "Perubahan DNS dapat di-cache pada server DNS yang telah menanyakan catatan ini dalam 86400 detik terakhir."

Jika Anda ingin memastikan redundansi DNS Anda jika server Anda offline, Anda harus melihat ke layanan DNS cadangan (seperti di dyndns.com) atau membuat NS sekunder Anda sendiri.


5

Semua server DNS di Internet adalah "pihak ke-3 yang dikendalikan" (saya kira Anda dapat menganggap server DNS root entah bagaimana "berpemilik" ke Internet, tetapi tidak ada alasan teknis mengapa bisa memasang root pribadi Anda sendiri, baik).

Server DNS Anda memberikan "time to live" (TTL) yang disarankan dalam setiap jawaban yang diberikannya. Penyelesai jarak jauh (server DNS lain yang melakukan resolusi rekursif untuk klien, pustaka penyelesai klien, dll.) Seharusnya menyimpan cache jawaban hingga TTL sebelum membuangnya dari cache mereka.

Jika Anda tidak melihat perubahan yang Anda buat pada catatan yang ada tercermin dalam permintaan dunia nyata, itu mungkin berarti bahwa nilai TTL Anda cukup tinggi sehingga Anda tidak menunggu cukup lama untuk melihat jawaban yang ada semakin tua dari resolver cache di sekitar 'net.

Beberapa latar belakang dari Kesalahan Server: Mengapa disebut DNS "Propagation"?


2

Ketika seseorang (atau beberapa komputer) di luar sana di Internet, sehingga untuk berbicara, ingin terhubung ke salah satu mesin Anda, mereka meminta server nama lokal mereka untuk alamat IP yang cocok dengan nama host yang mereka minati.

Jadi, jika Anda memberi tahu seseorang "hei, lihat situs web keren saya http://www.example.com ", komputer orang lain akan menanyakan server nama lokalnya "hei, apa alamat IP untuk www.example.com?"

Dengan anggapan server nama lokal belum pernah mencari jawaban atas pertanyaan itu sebelumnya, ia akan meminta server nama root untuk mencari tahu server mana yang menangani pencarian untuk ".com". Ketika mendapat jawaban itu, ia akan meminta server mana yang menangani pencarian untuk "example.com". Ketika mendapat jawaban itu, jika akan meminta server untuk alamat IP untuk "www.example.com".

Ketika server untuk example.com merespons dengan alamat IP untuk www.example.com, mereka juga akan memberikan server nama yang meminta petunjuk tentang berapa lama ia harus mengingat jawaban untuk pertanyaan ini. Petunjuk itu disebut "TTL", atau "waktu untuk hidup", dan diukur dalam hitungan detik. Tidak ada jaminan bahwa server mana pun akan memperhatikan TTL - beberapa server nama mungkin dikonfigurasikan untuk tidak pernah mengingat jawaban untuk pencarian, dan akan selalu mengulangi prosesnya meskipun diminta beberapa kali per detik. Server nama lain mungkin dikonfigurasikan untuk menjaga jawaban untuk waktu yang lama, bahkan jika Anda telah menyarankan bahwa data hanya disimpan untuk waktu yang singkat, mungkin karena mereka ingin meminimalkan lalu lintas jaringan. TTL hanyalah saran, bukan persyaratan atau jaminan.

Jawaban literal untuk pertanyaan Anda - mengapa data DNS Anda tidak menyebar ke internet - adalah bahwa mereka tidak melakukan itu karena tidak seharusnya.

Juga, jika Anda melihat informasi DNS Anda sendiri menggunakan situs yang dirancang untuk meneliti atau men-debug informasi DNS, kemungkinan besar situs itu tidak akan menyimpan data cache terlalu lama, atau sama sekali, terlepas dari apa saran TTL Anda, karena tujuan situs ini mungkin untuk memberikan informasi tentang apa yang dikatakan sistem DNS SEKARANG, bukan 5 atau 50 atau 500 detik yang lalu. Inilah sebabnya mengapa perubahan Anda segera tercermin, dan mengapa layanan berhenti berfungsi segera setelah Anda memutuskan server nama Anda.

Saya menduga pertanyaan mendasar Anda mungkin "bagaimana saya bisa mengatur semuanya sehingga jika server DNS saya reboot atau hard disknya mati, orang lain di internet masih dapat melihat halaman web saya?"

Jawaban atas pertanyaan itu adalah menyiapkan beberapa server nama untuk domain Anda, dan menjalankannya pada mesin yang berbeda - idealnya, bukan hanya komputer fisik yang berbeda, tetapi dengan koneksi jaringan yang berbeda, mungkin bahkan di berbagai kota atau negara bagian atau negara atau benua. Sebagian besar server nama ini akan ditetapkan sebagai "budak", yang berarti mereka mencari server nama "master" untuk informasi mereka, dan kemudian mengulangi informasi itu kepada siapa saja yang meminta data kepada mereka.

Jadi, dalam data WHOIS Anda dengan pendaftar nama domain Anda, Anda dapat mengonfigurasi empat server nama untuk domain Anda:

ns1.example.com ns2.example.com ns1.otherguy.com ns2.otherguy.com

di mana ns1.example.com adalah server DNS Anda saat ini. ns2.example.com mungkin merupakan mesin lain di perusahaan / organisasi Anda - idealnya bukan pada subnet yang sama dan di rak server yang sama (atau di bawah meja orang yang sama) seperti ns1.example.com.

ns1.example.com akan dianggap sebagai server "master", dan ketika Anda ingin mengubah DNS Anda, Anda akan membuat perubahan pada mesin itu.

ns2.example.com akan dikonfigurasikan sebagai server "budak", yang hanya menyalin data apa pun yang telah Anda atur di ns1.example.com - tetapi dunia luar tidak peduli tentang perbedaan master / slave, ns2.example .com akan dianggap sama "resmi" dengan ns1.example.com.

ns1.otherguy.com dan ns2.otherguy.com adalah mesin yang diatur di tempat lain - mungkin Anda membuat perjanjian dengan teman / kolega di organisasi lain untuk menjalankan nameserver satu sama lain, atau mungkin Anda mengatur dengan dyndns.com atau everydns.net atau penyedia DNS gratis atau komersial lainnya. Bagaimanapun Anda mengatasinya, Anda mendapatkan mesin-mesin itu dikonfigurasi sebagai budak, sehingga mereka menarik informasi DNS untuk example.com dari ns1.example.com ("master" Anda), dan mereka akan menayangkan informasi DNS itu ke mesin apa pun di internet yang memintanya.

Setelah pendaftar domain Anda menerbitkan catatan NS baru untuk domain Anda (yang seharusnya kira-kira seketika), maka ketika seseorang di internet menanyakan server nama domain mana yang menangani "example.com", mereka akan mendapatkan empat jawaban -

ns1.example.com, ns2.example.com, ns1.otherguy.com, ns2.otherguy.com

Bergantung pada bagaimana server nama orang lain diatur, itu mungkin memperlakukan keempatnya sebagai daftar dan bertanya satu per satu bagaimana mencapai "www.example.com" - atau mungkin meminta mereka berempat menanyakan pertanyaan yang sama di waktu yang sama, dan hanya mengambil jawaban dari mesin mana yang menjawab lebih dulu. Either way, jika ns1.example.com turun karena hard disk mati atau Anda memutuskan untuk reboot atau apa pun, maka 3 mesin lainnya akan tersedia untuk menjawab pertanyaan, dan situs web Anda akan terus terlihat.

Cara termudah untuk menyelesaikan masalah ini adalah mendaftar dengan penyedia layanan DNS yang akan menangani DNS untuk domain Anda - harga untuk ini berkisar dari gratis hingga ribuan (bahkan mungkin puluhan atau ratusan ribu) dolar per bulan, tergantung pada tingkat layanan yang Anda inginkan. Anda bisa mendapatkan layanan yang cukup andal untuk $ 30 / tahun atau lebih. Layanan gratis tidak buruk dan, karenanya, memiliki rasio yang cukup baik, tetapi jika Anda bergantung pada situs web Anda untuk menghasilkan uang, Anda harus dapat menghasilkan $ 30 untuk DNS selama setahun. .

Kemudian, ikuti instruksi dari penyedia layanan DNS untuk mengubah catatan NS di pendaftar nama domain Anda, dan Anda akan siap.


0

Caching yang dilakukan oleh orang lain server DNS bergantung pada TTL yang ditugaskan untuk merekam. Dalam kasus Anda mungkin TTL sangat rendah atau tinggi. Bisakah Anda memberi kami informasi lebih lanjut tentang konfigurasi DNS Anda?

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.