Anycast vs Unicast: mana yang lebih baik untuk dipilih di setiap kasus

Banyak yang mungkin pernah mendengar tentang Anycast. Dengan metode pengalamatan dan perutean jaringan ini, satu alamat IP ditetapkan ke beberapa server di jaringan. Server-server ini bahkan dapat ditempatkan di pusat data yang jauh satu sama lain. Ide di balik Anycast adalah, bergantung pada lokasi sumber permintaan, data dikirim ke server terdekat (menurut topologi jaringan, lebih tepatnya - protokol perutean BGP). Dengan demikian, dimungkinkan untuk mengurangi jumlah hop dan latensi.



Pada dasarnya, rute yang sama sedang diiklankan dari berbagai pusat data di seluruh dunia. Dengan demikian, klien akan dikirim ke "terbaik" dan "terdekat" berdasarkan rute BGP, pusat data. Mengapa Anycast? Mengapa menggunakan Anycast daripada Unicast?





Unicast sangat bagus untuk situs dengan satu server web dan lalu lintas sedang. Namun, jika suatu layanan memiliki jutaan pelanggan, biasanya layanan tersebut menggunakan banyak server web, masing-masing dengan alamat IP yang sama. Server-server ini didistribusikan secara geografis untuk melayani permintaan secara optimal.



Dalam skenario ini, Anycast akan meningkatkan kinerja (lalu lintas diarahkan ke pengguna dengan latensi minimal), memastikan keandalan layanan (berkat server yang berlebihan) dan load balancing - perutean ke beberapa server akan secara efektif mendistribusikan beban di antara mereka, meningkatkan kecepatan situs.



Operator menawarkan pelanggan berbagai jenis load balancing berdasarkan Anycast dan DNS. Klien dapat menentukan alamat IP yang akan dikirimi permintaan tergantung pada lokasi geografis situs. Ini memungkinkan pendistribusian permintaan pengguna secara lebih fleksibel.



Misalkan ada beberapa situs di antaranya Anda perlu mendistribusikan beban (pengguna), misalnya, toko online dengan 100.000 permintaan per hari atau blog populer. Untuk membatasi wilayah tempat pengguna memasuki situs tertentu, Anda dapat menggunakan opsi Komunitas Geo. Ini memungkinkan Anda membatasi wilayah di mana operator akan mengiklankan rute tersebut.









Anycast vs. Unicast: Perbedaan



Anycast sering digunakan dalam aplikasi seperti DNS (Domain Name System) dan CDN (Content Delivery Networks) untuk mengaktifkan keputusan perutean guna meningkatkan kinerja jaringan. Jaringan pengiriman konten menggunakan Anycast, karena menangani volume lalu lintas yang besar, dan Anycast memberikan sejumlah keuntungan dalam hal ini (selengkapnya di bawah). Dalam DNS, Anycast dapat secara signifikan meningkatkan tingkat keandalan dan toleransi kesalahan layanan.





Di Anycast IP, menggunakan BGP, ada beberapa rute ke host tertentu. Ini sebenarnya adalah salinan host di beberapa pusat data yang digunakan untuk membuat koneksi latensi yang lebih rendah.



Jadi, di jaringan Anycast, alamat IP yang sama diiklankan dari lokasi yang berbeda, dan jaringan memutuskan ke mana mengarahkan permintaan pengguna berdasarkan "biaya" dari rute tersebut. Misalnya, BGP sering digunakan untuk menentukan rute terpendek untuk transmisi data. Saat pengguna mengirim permintaan Anycast, BGP menentukan rute terbaik untuk server Anycast yang tersedia di jaringan.



Manfaat Anycast

Mengurangi latensi Anycast , . «» ( ) DNS-. Anycast . , .


, , , , .



IP, . Anycast //. 



, , , Anycast, , DNS. DNS - . Anycast , . 



Anycast . , , . , , . .

DoS- 

Anycast – DDoS. DDoS- Anycast, . 



DDoS- , , . Anycast , «» , . « », , .



Anycast . , Anycast, , . . 



, . , . , . , , , . . 



, 10 25 /. 100 IP- .



, Anycast — DNS. DNS-, DNS-. , , . DNS-. , , DNS- , , DNS- .



Anycast , , , . .



Tidak ada server khusus, jaringan atau komponen khusus yang diperlukan untuk menggunakan teknologi Anycast dari sisi klien. Tetapi Anycast memiliki kekurangannya. Diyakini bahwa implementasinya adalah tugas kompleks yang membutuhkan peralatan tambahan, penyedia yang andal, dan perutean lalu lintas yang tepat.



Dari sumber yang murni sampai yang jauh indah



Meskipun Anycast merutekan pengguna berdasarkan lompatan paling sedikit, itu tidak berarti latensi paling sedikit. Latensi adalah metrik yang lebih kompleks, karena satu transisi dapat memiliki lebih dari sepuluh.





Contoh: Komunikasi antarbenua mungkin melibatkan satu lompatan latensi yang sangat tinggi.



Anycast terutama digunakan untuk layanan berbasis UDP seperti DNS. Permintaan pengguna diarahkan ke pusat data "terbaik" dan "terdekat" berdasarkan rute BGP.





Contoh: Stasiun kerja klien DNS dengan alamat IP DNS Anycast 123.10.10.10, melakukan resolusi DNS untuk yang terdekat dari tiga server nama DNS yang digunakan menggunakan alamat IP Anycast yang sama. Jika router R1 atau server A gagal, paket klien DNS akan secara otomatis diteruskan ke server DNS terdekat berikutnya melalui R2 dan R3. Selain itu, rute ke server A kami akan dihapus dari tabel perutean, mencegah penggunaan server nama ini lebih lanjut.



Skenario penerapan



Ada dua skema umum yang digunakan untuk menentukan ke server mana pengguna terhubung:



  • Lapisan jaringan Anycast . Menghubungkan pengguna ke server terdekat. Jalur jaringan dari pengguna ke server penting di sini.
  • Anycast . , , , . . , .


CDN Anycast



Mari kita kembali sekarang ke penggunaan Anycast di jaringan pengiriman konten. Anycast tentunya merupakan konsep jaringan yang menarik dan semakin diterima oleh penyedia CDN generasi berikutnya.



CDN adalah jaringan server terdistribusi yang mengirimkan konten ke pengguna akhir dengan ketersediaan tinggi dan latensi rendah. Jaringan pengiriman konten memainkan peran penting saat ini sebagai tulang punggung berbagai layanan multimedia online, dan konsumen semakin kurang toleran terhadap kecepatan unduh yang lambat. Aplikasi video dan suara sangat sensitif terhadap jitter dan latensi jaringan.



CDN menyatukan semua server ke dalam satu jaringan dan menyediakan pemuatan konten yang lebih cepat. Terkadang dimungkinkan untuk mengurangi waktu tunggu pengguna hingga 5-6 detik. Tujuan CDN adalah untuk mengoptimalkan pengiriman dengan menyajikan konten dari server yang paling dekat dengan pengguna akhir. Ini sangat mirip dengan Anycast, di mana server terdekat dipilih berdasarkan lokasi pengguna akhir. Tampaknya setiap penyedia CDN akan menggunakan Anycast secara default, tetapi kenyataannya tidak.



Aplikasi yang menggunakan protokol seperti HTTP / TCP bergantung pada koneksi yang dibuat. Jika node Anycast baru dipilih (misalnya, jika server gagal), maka layanan dapat terganggu. Inilah sebabnya mengapa Anycast sebelumnya direkomendasikan untuk layanan tanpa koneksi seperti UDP dan DNS. Namun, Anycast juga berfungsi dengan baik untuk protokol berorientasi koneksi, misalnya TCP berfungsi dengan baik dalam mode Anycast.



Beberapa penyedia CDN menggunakan perutean berbasis Anycast, yang lain lebih memilih perutean berbasis DNS: server terdekat dipilih tergantung di mana server DNS pengguna berada.



Infrastruktur hybrid dan multi-data center adalah kasus penggunaan lain untuk Anycast. Alamat IP Load Balancing yang diterima dari penyedia memungkinkan Anda mendistribusikan beban antara alamat IP dari berbagai layanan klien di pusat data penyedia. Dengan teknologi pengalamatan perangkat apa pun, ini memberikan kinerja yang lebih baik untuk lalu lintas tinggi, ketahanan, dan membantu mengoptimalkan waktu respons untuk sejumlah besar pengguna.



Dalam infrastruktur multi-datacenter hybrid, Anda dapat mendistribusikan lalu lintas di seluruh server atau bahkan mesin virtual pada server khusus.



Jadi, ada banyak sekali pilihan solusi teknis untuk membangun infrastruktur. Anda juga dapat mengonfigurasi penyeimbangan beban IP di beberapa pusat data, menggunakan perangkat apa pun dalam grup untuk mengoptimalkan kinerja situs.



Anda dapat mendistribusikan lalu lintas sesuai dengan aturan Anda sendiri, menentukan "bobot" dari setiap server terdistribusi di setiap pusat data. Konfigurasi ini sangat berguna ketika Anda memiliki taman server terdistribusi dan kinerja layanan tidak seragam. Ini akan memungkinkan Anda untuk mendistribusikan lalu lintas lebih sering untuk meningkatkan kinerja server.



Untuk membuat sistem pemantauan menggunakan perintah ping, dimungkinkan untuk mengkonfigurasi probe. Ini memungkinkan administrator untuk menentukan prosedur pemantauan mereka sendiri dan mendapatkan pandangan yang lebih jelas tentang kesehatan setiap komponen dalam infrastruktur. Dengan cara ini, kriteria aksesibilitas dapat ditentukan.



Ada kemungkinan untuk membangun infrastruktur hybrid: terkadang lebih mudah meninggalkan kantor belakang di jaringan perusahaan, dan mentransfer bagian front-end ke outsourcing ke penyedia.



Anda dapat menambahkan sertifikat SSL untuk load balancing, enkripsi data yang dikirim, dan keamanan komunikasi antara pengunjung situs dan infrastruktur perusahaan. Dalam kasus load balancing antar pusat data, SSL juga dapat digunakan.



Layanan load balancing alamat Anycast tersedia dari ISP Anda. Fitur ini akan membantu meningkatkan cara pengguna berinteraksi dengan aplikasi berdasarkan lokasi. Cukup menyatakan layanan apa yang tersedia di pusat data, dan lalu lintas akan dialihkan ke infrastruktur terdekat. Jika ada dedicated server, misalnya di Prancis atau Amerika Utara, maka klien akan diarahkan ke server terdekat di jaringan.



Salah satu kasus penggunaan untuk Anycast adalah pilihan optimal titik kehadiran (PoP) operator. Mari beri contoh... LinkedIn (diblokir di Rusia) tidak hanya berupaya meningkatkan kinerja dan kecepatan produknya - aplikasi seluler dan web, tetapi juga meningkatkan infrastruktur jaringan untuk pengiriman konten yang dipercepat. Untuk pengiriman konten dinamis ini, LinkedIn secara aktif menggunakan PoP - poin kehadiran. Anycast diterapkan untuk mengarahkan pengguna ke PoP terdekat.



Alasannya adalah dalam kasus Unycast, setiap PoP di LinkedIn memiliki alamat IP yang unik. Pengguna kemudian diberi PoP berdasarkan lokasi geografis mereka menggunakan DNS. Masalahnya adalah saat menggunakan DNS, sekitar 30% pengguna di Amerika Serikat dialihkan ke PoP yang kurang optimal. Dengan implementasi bertahap Anycast, penetapan PoP sub-optimal turun dari 31% menjadi 10%.





, Y — PoP. «» Anycast PoP.



Anycast



Secara teori, jaringan Anycast sederhana: beberapa server fisik diberi alamat IP yang sama yang digunakan BGP untuk menentukan rute. Tetapi implementasi dan desain platform Anycast rumit, dan jaringan toleran kesalahan Anycast sangat terkenal untuk ini. Yang lebih menantang adalah pemantauan efektif jaringan Anycast untuk mengidentifikasi dan mengisolasi kesalahan dengan cepat.



Jika layanan menggunakan penyedia CDN pihak ketiga untuk menyajikan konten mereka, sangat penting bagi mereka untuk memantau dan memverifikasi kinerja jaringan. Pemantauan CDN berbasis Anycast berfokus pada pengukuran latensi ujung ke ujung dan kinerja hop dari belakang untuk memahami pusat data mana yang menyajikan konten. Menganalisis header server HTTP adalah cara lain untuk menentukan dari mana data itu berasal.





Contoh: Header respons HTTP yang menunjukkan lokasi server CDN.



Misalnya, CloudFlare menggunakan header CF-Ray sendiri dalam pesan Respon HTTP, yang mencakup indikasi pusat data yang membuat permintaan. Dalam kasus Zendesk, header CF-Ray untuk wilayah Seattle adalah CF-RAY: 2a21675e65fd2a3d-SEA, dan untuk Amsterdam adalah CF-RAY: 2a216896b93a0c71-AMS. Anda juga dapat menggunakan header HTTP X dari respons HTTP untuk menentukan lokasi konten.



Metode pengalamatan lainnya



Ada metode pengalamatan lain untuk merutekan permintaan pengguna ke titik akhir jaringan tertentu:
Unicast

Sebagian besar internet saat ini menggunakan metode ini. Unicast - transmisi unicast, alamat IP hanya dikaitkan dengan satu node tertentu di jaringan. Ini disebut korespondensi satu-ke-satu. 

Multicast

Multicast « » « ». . ( ). Multicast Anycast, , Anycast , .

Broadcast

, . , ( ).

Geocast

Geocast Multicast: . , . .



(Geo Router) . , , . .









Unicast, Multicast dan Broadcast.



Penggunaan teknologi Anycast meningkatkan tingkat keandalan, ketahanan, dan keamanan DNS. Menggunakan teknologi ini, operator menawarkan layanan pelanggan mereka untuk berbagai jenis load balancing berbasis DNS. Di panel kontrol, Anda dapat menentukan alamat IP tujuan pengiriman permintaan bergantung pada lokasi geografis. Ini akan memberi klien kemampuan untuk mendistribusikan permintaan pengguna secara lebih fleksibel.



Beberapa operator menggunakan pemantauan rute POP: sistem secara otomatis menganalisis rute lokal dan global terpendek untuk titik kehadiran dan mengarahkan mereka ke lokasi geografis dengan latensi terendah dengan waktu henti nol.



Saat ini, Anycast adalah solusi paling stabil dan andal untuk membangun layanan DNS dengan muatan tinggi, yang tunduk pada persyaratan tinggi untuk stabilitas dan keandalan.



Domain .ru mendukung 35 server DNS Anycast, dikelompokkan menjadi 20 node, didistribusikan di lima cloud Anycast. Dalam hal ini, prinsip pembangunan berbasis geografis digunakan, mis. Geocast. Saat menempatkan node DNS, direncanakan untuk memindahkannya ke lokasi yang tersebar secara geografis yang dekat dengan pengguna paling aktif, konsentrasi maksimum penyedia Rusia di situs node, serta ketersediaan kapasitas gratis dan kemudahan interaksi dengan situs.



Bagaimana cara membuat CDN?



CDN adalah jaringan server yang mempercepat pengiriman konten ke pengguna. Jaringan pengiriman konten menghubungkan semua server ke dalam satu jaringan dan menyediakan pemuatan konten yang lebih cepat. Jarak dari server ke pengguna berperan penting dalam kecepatan unduh.



CDN memungkinkan Anda menggunakan server yang paling dekat dengan audiens target Anda. Ini mengurangi waktu tunggu, membantu mempercepat pemuatan konten situs untuk semua pengunjung, yang sangat penting untuk situs dengan file besar atau layanan multimedia. Aplikasi CDN yang umum adalah e-commerce dan hiburan.



Jaringan server tambahan yang dibuat dalam infrastruktur CDN, yang terletak sedekat mungkin dengan pengguna, berkontribusi pada pengiriman data yang lebih stabil dan lebih cepat. Menurut statistik, menggunakan CDN mengurangi latensi saat mengakses situs lebih dari 70% dibandingkan dengan situs tanpa CDN.



Cara membuat CDN menggunakan DNS? Menyiapkan CDN menggunakan solusi Anycast Anda sendiri bisa menjadi proyek yang cukup mahal, tetapi ada opsi yang lebih murah. Misalnya, Anda dapat menggunakan GeoDNS dan server biasa dengan alamat IP unik. Layanan GeoDNS dapat membuat CDN geolokasi tempat keputusan dibuat berdasarkan lokasi sebenarnya pengunjung, bukan lokasi penyelesai DNS. Anda dapat mengonfigurasi zona DNS Anda untuk menampilkan alamat IP server Amerika kepada pengunjung dari Amerika Serikat, dan pengunjung Eropa akan melihat alamat IP dari Eropa.



Dengan GeoDNS, dimungkinkan untuk mengembalikan tanggapan DNS yang berbeda tergantung pada alamat IP pengguna. Untuk melakukan ini, server DNS dikonfigurasi untuk mengembalikan alamat IP yang berbeda berdasarkan alamat IP asli dalam permintaan. Biasanya, database GeoIP digunakan untuk menentukan wilayah tempat permintaan dibuat. Geolokasi menggunakan DNS memungkinkan Anda mengirim konten ke pengguna dari situs terdekat.



GeoDNS menentukan alamat IP klien yang membuat permintaan DNS, atau IP dari server DNS rekursif ISP, yang digunakan untuk memproses permintaan klien. Negara / kawasan ditentukan oleh IP klien dan basis GeoIP. Klien kemudian mendapatkan alamat IP dari server CDN terdekat. Anda dapat membaca lebih lanjut tentang menyiapkan GeoDNS di sini .



Anycast atau GeoDNS?



Meskipun Anycast adalah cara yang bagus untuk mengirimkan konten secara global, itu kurang spesifik. Di sinilah GeoDNS masuk. Layanan ini memungkinkan Anda membuat aturan yang mengarahkan pengguna ke titik akhir unik berdasarkan lokasi mereka.





Contoh: Pengguna dari Eropa diarahkan ke titik akhir yang berbeda.



Anda juga dapat menolak akses ke domain dengan membatalkan semua permintaan. Ini, khususnya, cara cepat untuk menghentikan penyusup.



GeoDNS memberikan jawaban yang lebih akurat daripada Anycast. Sedangkan dalam kasus Anycast, rute terpendek ditentukan oleh jumlah hop, di GeoDNS, perutean untuk pengguna akhir didasarkan pada lokasi fisik mereka. Ini mengurangi latensi dan meningkatkan akurasi saat membuat aturan perutean terperinci.



Saat beralih ke domain, browser menghubungi server DNS terdekat, yang, bergantung pada domainnya, mengeluarkan alamat IP untuk memuat situs. Misalkan sebuah toko online populer di Amerika Serikat dan di Eropa, dan server DNS untuknya hanya di Eropa. Kemudian pengguna dari Amerika Serikat yang ingin menggunakan layanan toko harus mengirim permintaan ke server terdekat, dan karena lokasinya sangat jauh, akan membutuhkan waktu lama untuk menunggu jawaban - situs tidak akan memuat dengan cepat.



Ketika server GeoDNS berlokasi di AS, pengguna sudah merujuknya. Jawabannya akan cepat, yang akan memengaruhi kecepatan memuat situs.



Dalam situasi dengan server DNS yang ada di Amerika Serikat, ketika pengguna dari Amerika Serikat menavigasi ke domain ini, dia akan menghubungi server terdekat yang akan memberikan IP yang diinginkan. Pengguna akan diarahkan ke server yang berisi konten situs, tetapi karena server dengan konten jauh, dia tidak akan menerimanya dengan cepat.



Jika kami meng-host server CDN dengan data cache di AS, maka setelah memuat browser klien akan mengirim permintaan ke server DNS terdekat, yang akan mengirim kembali alamat IP yang benar. Browser dengan alamat IP yang diperoleh, server CDN terdekat dan server utama, dan server CDN mengirimkan konten yang di-cache ke browser. Saat konten yang di-cache sedang dimuat, file yang hilang untuk memuat situs lengkap diterima dari server utama. Hasilnya, waktu buka situs berkurang, karena file yang dikirim dari server utama jauh lebih sedikit.



Menentukan lokasi yang tepat dari alamat IP tertentu tidak selalu merupakan tugas yang mudah: ada banyak faktor yang berperan, dan pemilik rentang alamat IP dapat memutuskan untuk mengumumkannya di belahan dunia lain (lalu Anda harus menunggu database diperbarui untuk mendapatkan lokasi yang benar). Terkadang penyedia VPS menetapkan alamat yang diyakini berada di AS untuk VPS di Singapura.



Tidak seperti menggunakan alamat Anycast, distribusi dilakukan selama resolusi nama, bukan selama koneksi ke server caching. Jika server rekursif tidak mendukung subnet klien EDNS, maka lokasi server rekursif yang digunakan, bukan pengguna yang akan terhubung ke server cache.



Subnet Klien di DNS adalah ekstensi DNS (RFC7871) yang menentukan bagaimana server DNS rekursif dapat mengirim informasi klien ke server DNS, khususnya informasi jaringan yang dapat digunakan server GeoDNS untuk menemukan klien secara lebih akurat.



Sebagian besar menggunakan server DNS ISP atau server DNS yang secara geografis dekat dengan mereka, tetapi jika seseorang di AS, karena alasan tertentu, memutuskan untuk menggunakan resolver DNS yang berlokasi di Australia, kemungkinan besar mereka akan mendapatkan IP. alamat server terdekat ke Australia.



Jika Anda ingin menggunakan GeoDNS, penting untuk mengetahui fitur-fitur ini, karena dalam beberapa kasus hal ini dapat meningkatkan jarak antara server caching dan klien.



Ringkasan: jika Anda ingin menggabungkan beberapa VPS dalam CDN, maka opsi penerapan terbaik adalah menggunakan bundel server DNS dengan fungsi GeoDNS + Anycast di luar kotak.






All Articles