Sebuah alamat IP anycast tunggal tidak memberi Anda redundansi yang sama dengan dua alamat IP unicast dalam awalan IP yang berbeda.
Seringkali masalah yang paling sulit untuk redundansi bukanlah ketika sesuatu gagal sepenuhnya, tetapi ketika terjadi kesalahan hanya cukup untuk tetap melewati pemeriksaan kesehatan, tetapi sebenarnya tidak berfungsi.
Saya telah melihat pengaturan DNS siaran mana pun di mana server DNS turun, tetapi paket-paket masih akan dialihkan ke server DNS itu. Apa pun yang mengurus iklan awalan mungkin tidak menyadari, bahwa server DNS telah turun.
Itu menjadi lebih rumit jika server DNS yang dimaksud bukan server DNS yang otoritatif, tetapi lebih sebagai penyelesai rekursif.
Penyelesai rekursif seperti itu harus memiliki kedua alamat broadcast untuk menerima permintaan dari klien dan alamat unicast untuk menanyakan server DNS yang otoritatif. Tetapi jika alamat unicast turun, itu bisa dengan mudah terlihat cukup sehat sehingga masih akan dialihkan kueri.
Anycast adalah alat yang hebat untuk skalabilitas dan mengurangi latensi. Tetapi untuk redundansi seharusnya tidak berdiri sendiri.
Namun, beberapa kumpulan siaran yang redundan adalah solusi yang bagus untuk ketersediaan. Contoh yang terkenal adalah 8.8.8.8 dan 8.8.4.4. Keduanya adalah alamat broadcast, tetapi mereka tidak boleh dialihkan ke server DNS fisik yang sama (dengan asumsi Google melakukan pekerjaannya dengan baik).
Jika Anda memiliki 10 server DNS fisik, Anda dapat mengonfigurasinya sebagai 2 kelompok dengan 5 server di setiap kelompok atau 5 kelompok dengan 2 di setiap kelompok. Anda ingin menghindari satu server DNS fisik berada di beberapa kumpulan secara bersamaan.
Jadi, berapa banyak IP yang harus Anda alokasikan? Anda harus memiliki IP yang dapat dikonfigurasikan sebagai siaran mana pun secara terpisah. Itu biasanya berarti Anda harus mengalokasikan seluruh / 24 ruang alamat IPv4 atau / 48 ruang alamat IPv6 untuk setiap kelompok. Ini mungkin sangat membatasi jumlah kolam yang bisa Anda miliki.
Selain itu jika kita berbicara server otoritatif, balasan DNS dengan semua catatan NS Anda dan lem A dan AAAA harus sesuai dengan paket 512 byte tunggal. Untuk server root, ini berhasil ke 13 alamat. Tapi itu tidak termasuk lem dan IPv6, jadi jumlah yang Anda jangkau akan lebih rendah.
Setiap kumpulan harus didistribusikan secara geografis mungkin. Jika Anda memiliki 5 server di Eropa dan 5 di Noth America dan 2 IP broadcast, Anda tidak membuat satu kumpulan yang mencakup setiap benua. Anda menempatkan 2 dari Eropa di kolam dengan 3 dari Amerika Utara, dan 5 lainnya di kolam lain.
Jika Anda memiliki lebih dari 2 kumpulan siaran, Anda dapat membiarkan server fisik sementara berada di lebih dari satu kumpulan. Tetapi Anda tidak boleh membiarkan server fisik berada di semua kolam pada saat yang sama.
Kombinasi anycast dan unicast adalah mungkin, tetapi harus diperhatikan. Jika Anda memiliki IP untuk dua kelompok, saya tidak akan menggabungkan. Tetapi jika Anda hanya memiliki satu IP broadcast mana pun untuk bekerja, mungkin masuk akal untuk memasukkan IP unicast. Masalahnya adalah bahwa termasuk IP unicast tidak akan memberi Anda latensi dan load balancing yang baik.
Jika server fisik disediakan oleh unicast dan anycast, Anda dapat mengambil risiko pengguna mencapai server yang sama seperti primer dan sekunder dan kehilangan akses jika turun. Hal ini dapat dihindari dengan hanya menggunakan alamat server unicast yang tidak ada dalam kumpulan siaran atau dengan selalu memberikan dua alamat unicast kepada pengguna.
Semakin banyak alamat unicast yang Anda masukkan ke dalam campuran, semakin sedikit kueri yang akan dikirim ke alamat anycast, dan semakin sedikit manfaat yang Anda dapatkan dari anycast dalam hal latensi dan skalabilitas.
Praktik terbaik adalah menggunakan setidaknya dua alamat dari awalan yang berbeda dan memberi mereka nama di bawah dua TLD yang berbeda. Kedua alamat tersebut dapat disiarkan jika Anda mau. Hanya memiliki satu alamat IP akan memberi Anda satu titik kegagalan. Jika perutean ke alamat itu tidak berfungsi (kesalahan konfigurasi, instance anycast tidak berfungsi dengan benar, awalan dibajak dll) maka seluruh domain Anda menjadi tidak terjangkau.
Setiap alamat broadcast mana pun akan memerlukan setidaknya
/24
IPv4 atau/48
awalan IPv6 untuk dapat dirutekan di BGP. Awalan yang lebih kecil (lebih lama) biasanya tidak akan diterima di tabel perutean global di banyak tempat.Jangan pernah memasukkan alamat IP palsu sebagai server DNS. Ini akan menyebabkan keterlambatan parah untuk resolvers.
sumber
RFC 1034 hanya menyatakan bahwa Anda memerlukan dua server DNS. Ini bukan persyaratan wajib, tetapi rekomendasi, jadi lakukan sesuai keinginan Anda. Apa pun yang terjadi, jika Anda menginginkan HA, 2 server DNS Anda dapat diberi IP yang sama menggunakan siaran mana pun, dan satu-satunya hal yang akan diketahui pengguna akhir Anda ketika satu server DNS gagal, adalah konektivitas yang tidak ada saat koneksi jaringan kembali.
Jadi secara ringkas, ya menggunakan siaran apa pun sudah cukup untuk memenuhi persyaratan RFC 1034.
sumber
8.8.8.8
dan8.8.4.4
) untuk server DNS mereka? Mereka sudah memiliki siaran, jadi mengapa tidak menawarkan satu alamat saja8.8.8.8
?