Apa yang terjadi ketika TTL Anda kacau dalam catatan DNS Anda?

13

Apa yang terjadi ketika seseorang mendapatkan akses ke kontrol DNS Anda dan menetapkan TTL 100 tahun di domain Anda, sembari mengarahkan IP ke beberapa situs web yang tidak jelas?

(dan Anda menemukannya terlambat tentu saja)

Dirk Boer
sumber
10
Orang yang bertanggung jawab dipecat.
Xavier Lucas
5
Hanya catatan singkat: Nilai TTL maksimal adalah 2 ^ 31-1, yang hanya sedikit lebih dari 68 tahun :) Lihat RFC 2181 .
Sven

Jawaban:

21

Ryan telah memberikan jawaban yang sangat baik untuk satu interpretasi dari pertanyaan Anda. Namun mengingat target audiens kami, dan situasi orang-orang yang paling mungkin tersandung pada pertanyaan, saya akan menjawab yang berbeda.

Apa yang dilakukan perusahaan ketika TTL buruk berhasil keluar ke alam liar?

Anda memiliki beberapa opsi di sini. Pertama dan terutama, Anda perlu mengidentifikasi vektor masalah dan menghilangkannya. Mencoba mengatasi kerusakan tidak ada gunanya ketika Anda tidak memiliki kendali atas masalah yang berulang.

  1. Tunggu. Jika itu bukan catatan penting, Anda mungkin bisa menunggu. Seperti yang dicakup Ryan, "kerusakan maksimum" bukanlah 68 tahun, tetapi dalam praktiknya kemungkinan besar adalah 7 hari. Ini adalah standar paling umum untuk masa hidup maksimum dari entri cache positif (BIND, JunOS, dll.). Bahkan dalam kasus di mana ini tidak akurat, orang akan berharap server menerima pembaruan keamanan rutin yang memaksa proses restart. Berbicara sebagai operator dari beberapa kluster besar saya tidak menemukan kemungkinan bahwa MSO akan menetapkan ini dengan nilai yang lebih besar dengan sengaja: itu hanya berfungsi untuk menghasilkan lebih banyak pertanyaan eksternal (yang kita benci). Anda mungkin harus beralih ke langkah berikutnya untuk perusahaan yang menggunakan perangkat lunak yang kurang populer, atau operator yang membenci diri mereka sendiri.
  2. Mengganggu operator cache DNS. Jika Anda perlu mendapatkan catatan yang dihapus dari cache ASAP, satu-satunya pilihan nyata Anda adalah mulai menjangkau penyedia rekursif DNS terbesar yang dapat Anda pikirkan dan lakukan cara Anda turun. Beberapa perusahaan ini cenderung mengabaikan Anda: apakah menurut mereka perusahaan Anda terlalu kecil untuk dipedulikan pelanggan, atau mereka membuat kebijakan pembersihan tembolok sendiri untuk meminimalkan jumlah panggilan dukungan yang harus mereka tangani. Dalam kasus terakhir, mereka mungkin akan mengangkat bahu dan membiarkan masalah teratasi dengan sendirinya pada waktu yang dijadwalkan. Bagaimanapun, perusahaan Anda memang menciptakan masalah ini untuk dirinya sendiri.
  3. Buat pelanggan ISP mengganggu ISP mereka untuk Anda. Jika sudah beberapa hari dan ISP besar mengabaikan catatan cache, cobalah untuk membuat salah satu pelanggan mereka mengeluh dan menghasilkan tiket internal ke perusahaan itu. Ini lebih sulit bagi mereka untuk diabaikan, tetapi itu tidak akan memenangkan Anda dengan tim ops mereka karena dari sudut pandang Anda Anda melakukan ini untuk diri sendiri. Jika ini adalah kejadian yang berulang, mereka mungkin akan mulai membatalkan tiket ini hanya untuk menolak Anda.
  4. Anjurkan mitra Anda untuk memintas data DNS. Jika itu adalah catatan DNS kritis misi yang dikonsumsi oleh mitra Anda dan tidak ada opsi di atas yang dapat diterima (yaitu, Anda mengalami pendarahan per menit), perusahaan Anda tidak punya pilihan selain bekerja dengan mitranya untuk mem-bypass masalah. Jika mereka tidak mengontrol cache lokal mereka, ini biasanya ini dilakukan dengan memasukkan entri ke dalam tabel host dari sistem yang terkena dampak karena menghindari kebutuhan untuk memodifikasi program yang menggunakan catatan DNS. Ini hanya layak jika kehilangan pendapatan terkait dengan beberapa perusahaan tertentu yang mengkonsumsi data. Dalam semua kasus lain, Anda terjebak dengan tiga opsi pertama.
Andrew B
sumber
3
Sebagai contoh untuk opsi 2, Google Public DNS memiliki halaman ini untuk menghapus cache-nya.
Bardi Harborow
16

Yah, pertama-tama manual konfigurasi Bind yang saya cari menyatakan bahwa TTL adalah integer 32-bit yang ditandatangani, diekspresikan dalam hitungan detik, memberikannya maksimum teoritis 2 ^ 31. Ia mengatakan

TTL yang valid berada pada kisaran 0-2147483647 detik.

Atau sekitar 68 tahun. Jadi Anda mungkin tidak dapat mengaturnya menjadi 100 tahun sejak awal.

Jadi, katakanlah Anda menetapkannya menjadi 68 tahun. Cukup jelas apa yang akan terjadi. Penyelesai DNS yang menghormati TTL yang sangat panjang pada catatan DNS Anda akan menyimpannya selama mungkin. Beberapa resolver DNS sama sekali tidak menghormati TTL dan hanya menerapkan kebijakan caching mereka sendiri sesuai keinginan mereka.

Alasan kami tidak dapat menempatkan satu angka keras pada maksimum adalah karena ada banyak implementasi berbeda dari DNS yang dibuat oleh banyak vendor yang berbeda, dan mereka semua menggunakan variabel yang sedikit berbeda. Misalnya, server DNS yang berjalan pada Juniper JunOS hanya akan mencapai 604800 detik, atau 7 hari, pada TTL.

Ryan Ries
sumber
Jadi itu sebenarnya berarti ketika seseorang meretas kontrol DNS perusahaan X menempatkannya pada 68 tahun dan meneruskan IP ke pornhub, dia benar-benar telah menghancurkan nama domain 'selamanya' ?? : X
Dirk Boer
11
Dengan asumsi bahwa Anda telah memperbaiki masalah, server DNS hilir tidak akan berjalan selama 68 tahun tanpa cache mereka dihapus, dengan me-reboot, misalnya. Kemungkinan juga, penyelesai DNS hilir menerapkan gagasan mereka sendiri tentang "MAXTTL" yang memberikan batasan yang lebih masuk akal pada TTL yang diterima seperti 3 hari, bukannya 68 tahun. Baca RFC 2308 sebagai contoh dari apa yang saya bicarakan.
Ryan Ries
4
Mengenai BIND khusus itu memiliki batas default 7 hari. max-cache-ttl: "Tetapkan waktu maksimum untuk server yang akan menyimpan jawaban biasa (positif). Defaultnya adalah satu minggu (7 hari)."
Håkan Lindqvist