Bisakah server nama menyelesaikan alamat IP secara dinamis berdasarkan pada beberapa strategi?

11

Kami telah mendaftarkan beberapa server nama untuk penyelesaian DNS untuk situs web kami yang digunakan di beberapa pusat data.

Strategi penyelesaian DNS kami saat ini adalah berdasarkan pada alamat IP klien yang berbeda, server nama akan mengembalikan alamat IP yang berbeda untuk domain yang sama. Misalnya, jika alamat IP klien berasal dari Amerika Utara, server nama akan mengembalikan alamat IP yang merupakan alamat IP pusat data Amerika Utara kami.

Tetapi alamat IP klien terkadang bukan alamat IP pengguna yang sebenarnya. Ini mungkin alamat IP DNS yang milik ISP atau server proxy. Di sisi lain, jika salah satu pusat data kami tidak aktif, kami ingin server nama kami mengecualikan alamat IP yang dimiliki oleh pusat data macet. Jadi kami berharap bahwa kami bisa mendapatkan strategi yang lebih dinamis untuk penyelesaian DNS kami. Apakah ada solusi untuk itu?

yifan
sumber
Ini kedengarannya seperti kasing untuk siaran apa pun.
Ron Maupin
1
@RonMaupin Harus ditunjukkan bahwa untuk melakukan siaran apa pun kita harus memiliki alokasi blok alamat Penyedia Independen dan yang lebih penting menjalankan BGP untuk mengiklankan awalan dari setiap pusat data. Itu adalah tingkat operasi yang sama sekali baru dan bukan sesuatu yang akan dialami banyak perusahaan "berorientasi konten". Solusi berbasis DNS terlihat jauh lebih mudah.
IPX
@ IPX, saya akan membayangkan bahwa perusahaan dengan pusat data di seluruh dunia, seperti yang terlihat dalam pertanyaan, akan memiliki pengalamatan penyedia-independen dan nomor AS sendiri. Dengan itu, anycast gratis dan mudah.
Ron Maupin
1
@RonMaupin jika perusahaan OP benar-benar mengoperasikan beberapa pusat data di seluruh dunia maka ya, tapi kemudian mereka mungkin tidak akan mengajukan pertanyaan yang relatif sederhana di sini. Saya yakin mereka hanya mencari bersama HW mereka atau menyewa di beberapa pusat data komersial dan tidak benar-benar / peduli tentang ops jaringan canggih. Itulah yang saya lihat banyak perusahaan menengah lakukan untuk redundansi. Jika itu masalahnya, DNS adalah jawabannya, bukan perutean .
IPX
@IPX, yang saya dapat dari pertanyaan adalah bahwa perusahaan memiliki pusat data di seluruh dunia, dan jika satu pusat data macet, lalu lintas yang diarahkan harus diarahkan ke pusat data yang berbeda (" jika salah satu pusat data kami turun .. . "). Saya hanya menjawab pertanyaan seperti yang ditanyakan, daripada mencoba menebak tentang hosting pihak ketiga, dan kami melakukan beberapa hal juga, tetapi masih memiliki penyedia pengalamatan independen kami sendiri dan nomor AS yang digunakan untuk mengintip ISP. Itu memungkinkan negosiasi kontrak dan penggantian ISP tanpa gangguan jaringan pembacaan.
Ron Maupin

Jawaban:

16

Sepertinya Anda ingin siaran. Itu adalah jenis hal yang digunakan situs-situs seperti Google. Anda memiliki satu alamat (diselesaikan dengan DNS) untuk semua situs web Anda, dan Anda membiarkan protokol perutean Internet (BGP) mengarahkan pengguna ke situs terdekat (dengan protokol perutean). Jika situs turun, situs terdekat berikutnya ditempatkan di tabel perutean Internet secara otomatis oleh BGP.

Contoh klasik adalah 8.8.8.8untuk DNS. Ini menyelesaikan ke lokasi yang berbeda di seluruh dunia, dan jika satu lokasi turun, maka pergi ke lokasi terdekat berikutnya.

Jawabannya bukan DNS, itu routing.

Ron Maupin
sumber
2
Anycast biasanya tidak berguna untuk protokol berbasis TCP, karena paket-paket milik koneksi yang sama dapat pergi ke server yang berbeda.
Paŭlo Ebermann
2
@ PaŭloEbermann yang tidak menjadi masalah ketika Anda melakukannya dengan perutean BGP, karena rute biasanya tidak berubah ketika diumumkan (hanya perubahan kecil)
Ferrybig
2
@ PaŭloEbermann Anda dapat melakukan siaran apa saja di seluruh penyeimbang beban berbasis DSR selama semua penyeimbang beban Anda menyetujui cara memilih backend.
kasperd
3
@ PaŭloEbermann, itu adalah kesalahpahaman. Semua lalu lintas dari satu host akan pergi ke satu server, kecuali server itu turun, maka lalu lintas akan diarahkan ke server yang berbeda. Ya, itu akan memutus koneksi TCP, tetapi itu akan menjadi kasus setiap kali server yang Anda terhubung turun. Anycast bukanlah jenis barang setengah lingkaran. Routing bersifat deterministik, sehingga semua siaran bersifat deterministik.
Ron Maupin
2
@RonMaupin Routing Anycast tidak stabil seperti yang Anda maksudkan. Dan Google tidak menggunakan siaran apa pun seperti yang Anda katakan. Jika Anda ingin tahu bagaimana sebenarnya Google melakukan ini, lihat halaman 227 dalam Buku Kerja Keandalan Situs yang diterbitkan oleh Google. Singkatnya, lapisan penyeimbangan beban di belakang perutean siaran mengkompensasi perubahan yang tak terhindarkan dalam perutean yang sebaliknya akan memutus koneksi TCP.
kasperd
9

Apa yang Anda butuhkan adalah persis apa yang ditawarkan layanan DNS Amazon Route53 :

Anda tidak harus meng-host situs web Anda di AWS untuk dapat menggunakan Route53, itu akan dengan senang hati bekerja dengan layanan yang digunakan di seluruh pusat data pribadi.

Kecuali jika Anda harga Facebook atau Google tidak akan menjadi masalah juga, mulai dari $ 0,40 per juta permintaan (lihat detail harga ).

Semoga itu bisa membantu :)

MLu
sumber
Apakah Anda pernah menggunakan produk non-Amazon untuk ini?
anak ayam
@ Chicks nggak pernah. Saya selalu cenderung menggunakan alat terbaik untuk pekerjaan itu dan Route53 cocok dengan tagihan dalam banyak kasus. Namun, jika Anda Google sesuatu seperti "layanan geo dns" Anda akan mendapatkan beberapa opsi. Saya cepat melihat beberapa tetapi mereka tampaknya cukup mahal (sekitar $ 50 / bulan - jauh lebih banyak daripada yang mungkin Anda habiskan dengan AWS Route53).
MLu
2
Saya akan memperluas perspektif saya sedikit lebih banyak sebelum memanggil alat pertama yang saya temukan alat terbaik untuk kebanyakan kasus. Route53 bisa menjadi yang terbaik untuk semua orang, tetapi bagaimana Anda tahu jika Anda belum mencoba yang lain?
anak ayam
-1

Saya punya ide ini dan sudah mulai kode itu tetapi tidak pernah selesai karena kebutuhan menguap dulu.

Server DNS memiliki nama host dan alamat MAC dari semua mesin pada LAN-nya dan cara untuk menjangkau mereka. Ketika menerima permintaan untuk mesin yang diketahuinya, ia mengirimkan ARP terbalik untuk alamat IP yang diberikan alamat MAC dan menggunakan respons untuk membangun jawaban DNS.

Ini tidak ada hubungannya dengan apa yang Anda coba lakukan, tetapi itu menggambarkan intinya. Secara teori, DNS server dapat dikodekan untuk melakukan skema novel apa pun yang Anda ingin atur nama menjadi alamat IP.

Pertanyaan yang sebenarnya muncul adalah bagaimana cara mendapatkan alamat IP pelanggan untuk memutuskan ke mana harus mengirimnya. Ini sedikit masalah XY. Apa yang sebenarnya Anda inginkan adalah ISP pelanggan untuk melakukan geolokasi, dan Anda bisa mendapatkannya dengan melakukannya langsung dari alamat IP yang mengajukan permintaan, dengan asumsi itu bukan 8.8.4.4 atau layanan pengalihan DNS lainnya. Menurut saya, solusi terbaik untuk redirectors DNS adalah dengan mengabaikan masalah dan melakukan geolokasi self-relative (yaitu, dari server DNS mencoba mencari alamat IP panggilan) dan mengarahkan ulang dengan tepat. Lihat di sini untuk mengetahui cara geolokasi: /programming/2574542/location-detecting-techniques-for-ip-addresses

Anda benar-benar tidak ingin ada siaran di sini tetapi sesuatu yang lebih waras. Anycast memiliki properti yang mengganggu yaitu dapat mengubah rute paket di tengah aliran TCP Anda yang menyebabkan kebingungan massal.

Ron Maupin mengklaim bahwa siaran apa pun dapat diandalkan rute untuk TCP. Inilah traceroute yang menunjukkan sebaliknya:

 3  cr1-rhe-a-be153.bb.as11404.net (174.127.183.14)  20.657 ms  20.763 ms  19.660 ms
 4  cr1-che-b-be-2.as11404.net (192.175.29.161)  22.550 ms  23.562 ms  23.538 ms
 5  * cr1-9greatoaks-hu-0-6-0-20-0.bb.as11404.net (192.175.28.108)  24.409 ms  38.083 ms
 6  72.14.222.146 (72.14.222.146)  40.038 ms  39.106 ms  39.125 ms
 7  108.170.242.225 (108.170.242.225)  37.930 ms 108.170.243.1 (108.170.243.1)  35.434 ms 108.170.242.225 (108.170.242.225)  33.694 ms
 8  209.85.240.249 (209.85.240.249)  33.476 ms 108.170.232.65 (108.170.232.65)  31.683 ms 108.170.234.155 (108.170.234.155)  30.754 ms
 9  google-public-dns-b.google.com (8.8.4.4)  30.491 ms  28.644 ms  25.718 ms

Jika Anda mencoba melakukan geolokasi alamat IP hulu dengan cara yang jelas Anda dapatkan, keduanya ada di Wichita. Ini tidak benar dengan mana demonstrasi sederhana fisika akan cukup.

Kisaran ke 8.8.4.4 diukur pada 30 ms dimana 18ms pertama adalah penalti lokal (hop 3 adalah router lokal ISP saya). Jarak saya ke Wichita adalah 1297 mil. Oleh karena itu waktu perjalanan pulang pergi minimum (1297 * 2 mil / 225.000 kilometer per detik (kecepatan cahaya dalam kaca)) adalah 18,55 ms. Oleh karena itu saya seharusnya tidak mendapatkan tanggapan balik lebih cepat dari 28 ms tetapi saya mendapat satu balasan dalam 25 ms.

Paket tiba di Google oleh dua rute BGP berbeda. BGP tidak memilih yang terdekat.

joshudson
sumber
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
Ward - Reinstate Monica
Saya sudah memindahkan semua komentar ke obrolan, tetapi karena ada begitu banyak dan beberapa dipindahkan secara otomatis, saya tidak yakin apakah obrolan nanti memiliki semuanya. Dalam kasus apa pun, diskusi lebih lanjut tentang validitas jawaban ini dan bagaimana router bekerja, dll., Tidak boleh dalam komentar, simpan di salah satu ruang obrolan. Setiap komentar lebih lanjut di sini akan dihapus.
Bangsal - Reinstate Monica
-2

Apa yang Anda butuhkan dapat dicapai dengan beberapa kombinasi DNS anycast dan RFC-7871.

Edheldil
sumber
1
Lebih detail akan meningkatkan jawaban Anda
Dave M