Data DNS yang sering berubah? [Tutup]


17

Bagaimana cara saya membuat catatan domain yang dapat sering berubah?

Katakanlah example.orgpoin untuk 203.0.113.0. Dua menit kemudian itu harus mengarah ke 198.51.100.0.

Ini akan menjadi situs web normal di belakang domain ("normal" hanya dalam arti diakses menggunakan browser web umum) tetapi dengan umur yang sangat singkat. Domain akan menunjuk ke alamat paling lama 3-4 jam sebelum dinyalakan atau dimatikan. Tidak perlu melindungi server DNS dari permintaan yang sering.

Pendekatan saya adalah mengatur TTL ke 60 detik dan cukup mengubah catatan ketika switch harus dibuat. Dalam skenario terburuk itu akan menyebabkan pengguna menunggu maksimal 60 detik sebelum server baru dapat diakses.

Entah bagaimana saya tidak percaya pada ini ... Beberapa ISP atau browser bisa mengabaikan atau menimpa TTL, bukan? Jika ini merupakan kekhawatiran yang valid, apa yang diharapkan dari TTL yang masuk akal?

Terima kasih!


9
Mengapa Anda membutuhkan kemampuan ini? "Situs web normal" apa yang berjalan pada infrastruktur yang hilang setelah 3-4 jam? Ada solusi yang muncul di pikiran, tetapi tidak jelas apa yang Anda lakukan dengan perubahan DNS cepat atau perilaku apa yang Anda harapkan selama transisi.
Michael - sqlbot

@ Michael-sqlbot, "normal" dalam arti itu adalah aplikasi web yang diakses melalui browser tetapi jauh dari situs web klasik. Sebuah instance aplikasi tunggal memang akan memiliki masa hidup beberapa jam. Saya hanya ingin menggunakan kumpulan nama domain bersama untuk mereka. Saya sudah mendapat saran untuk melihat teknik load balancing. Tetapi karena instance aplikasi tidak dapat dipertukarkan, saya tidak yakin itu berlaku sama sekali.
Andrew8

4
Dalam pengalaman saya, samar-samar Internet menjadikan DNS kandidat yang buruk untuk 'mengikuti layanan'. Sementara itu mungkin bekerja pada mesin Anda, atau bahkan jaringan perusahaan Anda, atau pada broadband teman Anda yang serpihan, tampaknya di seluruh dunia ada beberapa klien yang benar-benar mengerikan yang mengambil banyak kelipatan dari TTL Anda untuk melihat adanya perubahan dalam DNS Anda.
Ralph Bolton

Kenapa bukan ip failover saja?
giammin

Jawaban:


38

Ini disebut Fast Flux DNS Records . Dan biasanya bagaimana pembuat malware menyembunyikan server infrastruktur mereka.

Meskipun ini akan berhasil untuk rencana Anda, itu bukan rencana terbaik. Anda mungkin perlu memiliki server cadangan atau lebih, online, dan tidak melakukan apa-apa hampir sepanjang waktu. Hanya ketika Anda memiliki masalah dengan server utama Anda akan beralih ke yang berikutnya.

Bahkan jika Anda memiliki TTL 1 menit, satu catatan kemungkinan besar akan valid untuk lebih dari itu:

  1. Tembolok peramban

    Browser biasanya menyimpan catatan DNS untuk waktu yang bervariasi. Firefox menggunakan 60 detik , Chrome juga menggunakan 60 detik , IE 3.x dan cache sebelumnya selama 24 jam , IE 4.x dan di atas di-cache selama 30 menit.

  2. Cache OS

    Windows biasanya tidak akan menghormati TTL . TTL untuk DND tidak seperti TTL untuk paket IPv4. Ini lebih merupakan indikasi kesegaran daripada penyegaran wajib. Linux dapat mengkonfigurasi nscd untuk mengatur jumlah waktu yang diinginkan pengguna, dengan mengabaikan DNS TTL. Itu bisa menyimpan entri selama seminggu, misalnya.

  3. Cache ISP

    ISP dapat (dan sebagian akan) menggunakan caching agresif untuk mengurangi lalu lintas. Mereka tidak hanya dapat mengubah TTL, tetapi menyimpan catatan dan mengembalikannya ke klien tanpa meminta server DNS upstream. Ini lebih umum pada ISP seluler, karena mereka mengubah TTL sehingga klien seluler tidak mengeluh tentang latensi lalu lintas.

Penyeimbang beban dibuat untuk melakukan apa yang Anda inginkan. Dengan penyeimbang beban di tempat, Anda dapat memiliki 2 atau 4 atau 10 server semua online pada saat yang sama, membagi beban. Jika salah satu dari mereka offline, layanan tidak akan terpengaruh. Mengubah catatan DNS akan memiliki waktu henti antara saat server dimatikan dan DNS diubah. Ini akan memakan waktu lebih dari satu menit, karena Anda harus mendeteksi waktu henti, mengubah catatan, dan menunggu mereka menyebar.

Jadi gunakan penyeimbang beban. Itu dibuat untuk melakukan apa yang Anda inginkan, dan Anda tahu persis apa yang diharapkan. Pengaturan DNS fluks cepat akan memiliki hasil yang beragam dan tidak konsisten.


11
Meski begitu, gunakan load balancer. Anda akan memiliki ketersediaan tinggi, kumpulan fleksibel, log, banyak metrik dan statistik, dapat memprioritaskan satu server atau yang lain, dan mengurangi sakit kepala.
ThoriumBR

4
Ya, Anda mungkin menemukan bahwa beberapa ISP mengerikan di suatu tempat membutuhkan waktu berjam-jam atau satu hari penuh untuk mengambil perubahan DNS Anda.
Robyn

2
@Mehrdad Tergantung pada bagaimana Anda mendefinisikannya, itu benar. Di Jerman, jika Anda memiliki saluran ADSL, Anda harus mengautentikasi melalui PPPoE dan kemudian Anda akan diberikan alamat IP dari rentang dial-up. Hingga baru-baru ini (dan pada beberapa baris, masih), koneksi Anda terputus setelah 24 jam, jadi Anda harus login ulang (atau CPE Anda melakukannya untuk Anda).
glglgl

3
Untuk menambahkan komentar @ glglgl: Poin pentingnya adalah bahwa Anda diberi alamat IP lain setiap kali Anda masuk kembali. Perilaku ini dengan niat: Penyedia ingin mencegah pengguna menjalankan server di SOHO mereka dengan cara itu.
Binarus

1
@Binarus tidak hanya ini, tetapi biasanya ISP dengan 2.000 pelanggan tidak memiliki 2000 IP di kolam mereka. Karena tidak setiap satu pelanggan akan aktif pada saat yang sama, segera setelah beberapa pengguna terputus, yang lain dapat terhubung dan mengambil IP yang sama.
ThoriumBR

6

DNS dan cara kerjanya mungkin disertai dengan lebih banyak kesalahpahaman, legenda, takhayul, dan mitologi sebagai aspek TI.

Bahkan kita yang tahu bahwa kita pada dasarnya berbohong (atau paling tidak menyederhanakan secara drastis) ketika kita berbicara tentang "penyebaran" perubahan masih cenderung menggunakan istilah untuk menggambarkan sesuatu yang - secara bersamaan - sangat sederhana dan langsung ... namun sulit untuk dijelaskan ... dan tidak ada hubungannya dengan propagasi semata , tetapi semuanya berkaitan dengan caching dan caching negatif, yang keduanya merupakan komponen penting dari cara kerja sistem (dan, bisa dibilang, bagaimana ia menghindari kehancuran langsung di bawah beratnya sendiri) - pada dasarnya bagian dalam-luar, kebalikan dari "propagasi" yang sebenarnya, tarikan - bukan dorongan.

Untuk semua kekhawatiran dan kekesalan tentang TTL pendek, mereka cenderung bekerja lebih sering daripada tidak, sampai-sampai ada kepentingan Anda untuk mencobanya saja. Pada $ {day_job}, ketika situs kami bermigrasi dari platform "lama" ke platform "baru", sering kali berarti mereka bermigrasi sedemikian rupa sehingga tidak ada apa pun dalam infrastruktur yang dibagikan. Langkah pertama saya dalam migrasi semacam ini adalah menjatuhkan TTL ke 60s cukup jauh sebelum pemotongan sehingga TTL lama memiliki beberapa kelipatan sendiri untuk habis, memberi saya jaminan yang masuk akal bahwa RR transisi ini dengan TTL pendek akan "menyebar . " Ketika saya siap untuk memotong, saya mengkonfigurasi ulang penyeimbang lama¹ untuk memangkas lalu lintas ke sistem baru - di Internet - sehingga penyeimbang tidak lagi menyeimbangkan banyak sistem internal, tetapi sebaliknya, adalah "

Lalu saya memotong DNS, dan menonton balancer baru dan lama.

Saya selalu terkejut melihat betapa cepat transisi ini terjadi. Penahan tampaknya hampir selalu menjadi spider pencarian dan situs "pemeriksaan kesehatan" pihak ketiga yang secara tidak dapat dipercaya menempel pada catatan lama.

Tapi ada satu skenario yang dapat diprediksi: ketika jendela browser pengguna tetap terbuka, mereka cenderung menempel ke alamat yang sudah ditemukan, dan sering kali berlanjut sampai semua jendela browser mereka ditutup.

Tetapi dalam narasi di atas, Anda menemukan solusi untuk masalah ini: "load balancer" - secara khusus dan lebih tepatnya, proxy terbalik - dapat menjadi sistem yang ditunjuk oleh catatan DNS Anda.

Proxy terbalik kemudian meneruskan permintaan ke alamat IP target yang benar, yang diselesaikan menggunakan nama host "dummy" kedua dengan TTL pendek, yang menunjuk ke server back-end nyata. Karena proxy selalu menghormati DNS TTL pada itu entri DNS dummy, Anda yakin dengan peralihan yang cepat dan lengkap.

Sisi buruknya adalah Anda mungkin merutekan lalu lintas melalui infrastruktur tambahan yang tidak perlu, atau membayar lebih untuk transportasi melintasi beberapa batas jaringan, secara berlebihan.

Ada layanan yang menyediakan kemampuan semacam ini pada skala global, dan yang paling saya kenal adalah CloudFront. (Kemungkinan besar, Cloudflare akan melayani tujuan yang persis sama, karena sedikit pengujian yang saya lakukan menunjukkan bahwa ia juga berperilaku benar, dan saya yakin ada yang lain.)

Meskipun dipasarkan terutama sebagai CDN, CloudFront pada intinya adalah jaringan global proksi terbalik dengan kemampuan untuk secara opsional menyimpan respons. Jika www.example.compoin ke CloudFront dan CloudFront dikonfigurasikan untuk meneruskan permintaan ini backend.example.com, dan catatan DNS untuk backend.example.commenggunakan TTL pendek, maka CloudFront akan melakukan hal yang benar, karena itu menghormati TTL pendek itu. Ketika catatan back-end berubah, semua lalu lintas akan bermigrasi pada saat TTL berjalan.

TTL pada catatan sisi depan yang menunjuk ke CloudFront, dan apakah browser dan penyelesai caching yang menghormatinya tidak penting, karena perubahan pada tujuan back-end tidak memerlukan perubahan pada www.example.comcatatan ... jadi anggapan bahwa "Internet" telah, berkaitan dengan target yang benar untuk www.example.comkonsisten, terlepas dari di mana sistem back-end terjadi.

Ini, bagi saya, menyelesaikan masalah sepenuhnya dengan menghilangkan browser dari setiap kebutuhan untuk "mengikuti" perubahan ke IP server asal.

tl; dr: merutekan permintaan ke sistem yang berfungsi sebagai proxy untuk server web asli, sehingga hanya konfigurasi proxy yang perlu mengakomodasi perubahan IP server asal - bukan DNS yang menghadap browser.

Perhatikan bahwa CloudFront juga meminimalkan latensi oleh beberapa sihir DNS yang diterapkannya di sisi depan, yang menghasilkan www.example.compenyelesaian ke lokasi tepi CloudFront paling optimal berdasarkan lokasi browser yang meminta www.example.com, sehingga ada peluang lalu lintas minimal mengambil rute yang tidak perlu. dari peramban ke tepi ke asal ... tetapi bagian ini transparan dan otomatis dan di luar cakupan pertanyaan.

Dan, tentu saja, caching konten mungkin juga bernilai dengan mengurangi beban pada server asal atau transportasi - Saya telah mengkonfigurasi situs web di CloudFront di mana server asal berada di sirkuit ADSL, dan ADSL secara inheren dibatasi untuk bandwidth upstream. Server asal tempat CloudFront terhubung untuk mengambil konten tidak harus menjadi server di dalam ekosistem AWS.


¹ Saya berbicara tentang penyeimbang sebagai entitas tunggal padahal sebenarnya memiliki banyak node. Ketika penyeimbang adalah ELB, mesin di belakang penyeimbang bertindak sebagai server aplikasi dummy dan melakukan hairpinning aktual ke penyeimbang platform baru, karena ELB tidak dapat melakukan ini sendiri.

² Satu-satunya pengetahuan penyeimbang baru tentang yang lama adalah bahwa ia perlu mempercayai X-Forwarded-For penyeimbang yang lama dan bahwa ia tidak boleh melakukan tingkat berbasis IP yang membatasi alamat sumber penyeimbang yang lama.

³ Ketika proksi adalah satu atau lebih server yang Anda kontrol, Anda memiliki opsi untuk melompati menggunakan DNS di sisi belakang, dan hanya menggunakan alamat IP dalam konfigurasi proxy, tetapi skenario yang dihosting / didistribusikan yang dibahas selanjutnya memerlukan lapisan DNS kedua. .


2
Terima kasih, seperti biasa, untuk jawaban hebat lainnya. "Pada $ {day_job}, ketika situs kami bermigrasi dari platform" lama "ke platform" baru ", [...]": Pernah ke sana, lakukan itu. +1!
gf_

4

Ketika saya mengubah catatan DNS, sering kali alamat IP lama akan digunakan selama berbulan-bulan. Karena itu, TTL hanya beberapa detik adalah apa yang digunakan Amazon untuk membuat layanan mundur, misalnya.

Alih-alih mengubah DNS, Anda dapat meletakkan server proxy / penyeimbang beban di depannya.


1
Dalam pengujian saya TTL60 detik sepertinya bekerja sebagian besar waktu, tetapi saya memiliki beberapa klien yang mengalami penundaan sekitar 10-20 menit.
Andrew8

1

Anda bisa melihat ke dalam menggunakan DNS Dinamis. Ini dirancang untuk persis skenario yang disebutkan @glglgl dalam komentar di atas. Saya percaya mereka menggunakan TTL rendah yang, seperti telah disebutkan sebelumnya, mungkin tidak 100% efektif karena klien bebas untuk mengabaikannya. Tapi itu berfungsi "cukup baik".

Bahkan jika Anda tidak sering mengubah IP Anda, penting untuk menjaga TTL Anda masuk akal. Beberapa tahun yang lalu, perusahaan tempat saya dulu bekerja untuk ISP yang berubah yang menyebabkan IP kami berubah. Sayangnya, kami telah menetapkan TTL kami ke sesuatu yang konyol seperti sebulan sehingga catatan DNS lama ditahan untuk waktu yang lama.


Ada banyak server DNS level ISP di luar sana yang tidak menghormati TTL. Saya bekerja pada produk yang mengalihkan informasi DNS sekitar dua kali setahun. Kami memiliki banyak orang yang server DNS menyimpan informasi lama kami hingga beberapa minggu setelah kami mengubahnya. Kecuali Anda mengontrol sisi klien, jangan berharap ini berfungsi dengan baik.
Michael Gantz
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.