Mungkinkah satu nama domain memiliki beberapa alamat IP yang sesuai?

89

Misalnya, ketika kita terhubung ke www.example.com, pertama-tama kita mencoba menghubungkan ke 192.0.2.1. Dan jika percobaan pertama gagal, maka kami mencoba 192.0.2.222.

Apa itu mungkin? Bisakah kita mendaftarkan beberapa alamat IP cadangan untuk satu nama domain?

firia2000
sumber
Ini tidak akan persis bekerja dengan cara ini (dengan Round-Robin). Jika Anda menanyakan host beberapa kali, ini akan memberi Anda kembali IP yang berbeda setiap kali Anda melakukan kueri dan tidak hanya ketika host gagal.
karatedog
@ karatedog, saya berasumsi bahwa koneksi soket akan mencoba terhubung ke IP berikutnya jika tidak dapat terhubung ke yang pertama
Akash Kava
4
@AkashKava: Satu koneksi memiliki beberapa langkah internal. Sederhana: aplikasi menanyakan DNS dan mendapatkan alamat IP. Kemudian terhubung ke alamat IP itu. Jika koneksi itu gagal, aplikasi tidak akan kembali ke langkah pertama dan meminta DNS lagi, hanya jika dikodekan secara eksplisit untuk melakukan ini. Dan menanyakan server DNS beberapa kali tidak selalu memberi Anda alamat IP yang berbeda. Jadi singkatnya, DNS stok tidak dapat digunakan untuk tujuan penyeimbangan beban.
karatedog
dapatkah kita menggunakan teknik ini untuk menskalakan beberapa penyeimbang beban?
Vikas Verma

Jawaban:

65

Ini adalah DNS round robin. Ini adalah solusi yang cukup sederhana untuk load balancing. Biasanya server DNS memutar / mengocok data DNS untuk setiap permintaan DNS yang masuk. Sayangnya ini bukan solusi nyata untuk kegagalan. Jika salah satu server gagal, beberapa pengunjung masih akan diarahkan ke server yang gagal ini.

Jens Bradler
sumber
3
Tergantung ekspektasi Anda terkait waktu pemulihan. Jika layanan yang disediakan bisa mati selama beberapa detik atau menit, Anda dapat memperbarui DNS yang sesuai (mis. Mengambil IP dari sistem yang gagal). Jika ini tidak dapat diterima, DNS tidak dapat membantu Anda dan Anda harus menggunakan penyeimbang beban dan struktur jaringan ketersediaan tinggi.
Jens Bradler
Apakah Anda tahu bagaimana klien memilih ipnya dari daftar? Apakah ini pilihan acak atau haruskah klien memilih yang pertama dari daftar? Karena pada kasus pertama round / robin tidak terlalu berguna.
Tobia
Itu tugas server DNS untuk mengocok atau memutar catatan. Kebanyakan klien hanya akan menggunakan catatan pertama. Misalnya Bind9 dapat dikonfigurasi untuk menerapkan urutan yang berbeda ke jenis kumpulan record ini: bind.isc.org/doc/arm/9.13/Bv9ARM.ch05.html#rrset_ordering
Jens Bradler
dapatkah kita menggunakan teknik ini untuk menskalakan beberapa penyeimbang beban?
Vikas Verma
48

Kamu bisa melakukannya. Itulah yang juga dilakukan orang-orang besar.

Pertanyaan pertama:

» host google.com 
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229

Kueri berikutnya:

» host google.com
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238

Seperti yang Anda lihat, daftar IP diputar, tetapi urutan relatif antara dua IP tetap sama.

Pembaruan: Saya melihat beberapa komentar membual tentang bagaimana DNS round-robin tidak nyaman untuk fail-over, jadi inilah ringkasannya: DNS bukan untuk fail-over. Jadi jelas tidak baik untuk fail-over. Itu tidak pernah dirancang untuk menjadi solusi untuk kegagalan.

karatedog
sumber
1
Apakah kita harus mengaktifkan sesuatu agar Round Robin ini berfungsi atau dilakukan secara otomatis oleh setiap Server DNS? Saya memiliki satu linux dan satu MS DNS.
Akash Kava
3
Mengapa Google melakukan ini jika tidak mencakup failover?
Joseph Persie
12
@JosephPersie: karena DNS tidak digunakan untuk fail over. Dengan memberikan beberapa IP ke nama domain yang sama, permintaan masuk hanya dibagi di antara server yang mendengarkan alamat IP tersebut. Anggap saja sebagai load-balancing tingkat pertama, tanpa health check backend. Anda tidak memerlukan ini, jika Anda tidak memiliki ribuan server :-)
karatedog
apa yang terjadi jika penyeimbang beban tidak aktif dan permintaan diteruskan ke penyeimbang yang sama?
Jitendra Vispute
1
@ JitendraVispute: DNS tidak tahu tentang layanan di balik alamat IP yang dikembalikannya. Singkatnya, jika ada server rusak atau layanan rusak di belakang alamat IP yang baru saja dikembalikan oleh server DNS, maka permintaan ke IP tersebut akan gagal.
karatedog
2

Ya, ini mungkin, namun tidak nyaman seperti yang dikatakan Jens. Menggunakan penyeimbang beban generasi berikutnya seperti Alteon, yang menggunakan protokol berpemilik yang disebut DSSP (Protokol status situs terdistribusi) yang melakukan pemeriksaan situs secara teratur untuk memastikan bahwa layanan tersedia secara Lokal atau Global, yaitu area geografis yang berbeda. Namun, Anda perlu dalam DNS Master untuk mendelegasikan URL atau Layanan ke perangkat dengan mengonfigurasinya sebagai Server Nama Resmi untuk IP atau Layanan tersebut. Dengan melakukan ini, perangkat menjawab pertanyaan DNS di mana ia akan menyelesaikan IP yang memiliki layanan oleh Round-Robin atau tidak padat sesuai dengan cara Anda memilih dari beberapa metrik.

Ezra A. Mosomi
sumber
1
Ini kedengarannya lebih seperti iklan daripada apa pun, dan penyeimbang beban bukanlah yang terbaik di dunia DNS (dalam hal spesifikasinya). Dan tepatnya: "di Master DNS Anda untuk mendelegasikan URL atau Layanan" tidak ada konsep URL atau layanan di nameserver / DNS, ketika Anda mendelegasikan Anda mendelegasikan zona (domain) ke server nama lain. "sebagai Server Nama Resmi untuk IP atau Layanan itu." akibatnya nameserver adalah otoritatif untuk zona / domain bukan untuk alamat atau layanan IP.
Patrick Mevzek
Dari titik kerjanya, mereka bekerja, itu telah menjadi standar de facto untuk semua CDN untuk menggunakan penyeimbang beban untuk menangani ini secara efektif karena mereka dapat menggabungkan fitur-fitur canggih seperti GEO-LOCATION untuk memberikan alamat IP yang bahkan dekat dengan Anda atau untuk server yang sangat responsif antara lain metrik.
Ezra A.Mosomi
1
Dan mereka memang memperkenalkan banyak masalah pada saat yang bersamaan. Tidak ada peluru perak, semuanya memiliki fitur dan kekurangan. Semua nameserver bisa melakukan geo-location dan membalas dengan IP berbeda berdasarkan klien, tidak perlu load balancer untuk itu. Bahkan ada standar yang membantu: Subnet Klien EDNS.
Patrick Mevzek