Pertanyaan Apa itu "anycast" dan bagaimana itu membantu?


Saya tidak pernah mendengar ada siaran sampai beberapa detik yang lalu ketika saya membaca "Apa saja trik server / jaringan yang keren atau berguna?".

The wikipedia "Anycast"Artikel tentang itu cukup formal dan tidak benar-benar membangkitkan gambaran mental tentang bagaimana itu akan digunakan.

Dapatkah seseorang menjelaskan dalam beberapa kalimat tidak resmi apa "anycast", bagaimana Anda mengkonfigurasinya (hanya dalam arti umum), dan apa manfaatnya (apa yang membuatnya lebih mudah)?


78
2018-05-29 18:54






Jawaban:


Anycast adalah teknik jaringan di mana awalan IP yang sama diiklankan dari beberapa lokasi. Jaringan kemudian memutuskan lokasi mana untuk mengarahkan permintaan pengguna ke, berdasarkan pada biaya protokol routing dan mungkin 'kesehatan' dari server periklanan.

Ada beberapa manfaat untuk anycast. Pertama, dalam keadaan stabil, pengguna layanan anycast (DNS adalah contoh yang sangat baik) akan selalu terhubung ke 'terdekat' (dari perspektif protokol perutean) server DNS. Ini mengurangi latensi, serta menyediakan tingkat load balancing (dengan asumsi bahwa konsumen Anda terdistribusi secara merata di sekitar jaringan Anda).

Keuntungan lainnya adalah kemudahan manajemen konfigurasi. Daripada harus mengkonfigurasi server DNS yang berbeda tergantung di mana server / workstation digunakan (Asia, Amerika, Eropa), Anda memiliki satu alamat IP yang dikonfigurasi di setiap lokasi.

Tergantung pada bagaimana anycast diimplementasikan, itu juga dapat memberikan tingkat ketersediaan yang tinggi. Jika iklan dari rute anycast bergantung pada semacam pemeriksaan kesehatan (mis. Permintaan DNS untuk domain terkenal, dalam contoh ini), maka segera setelah server gagal, rutenya dapat dihapus. Setelah jaringan reconverges, permintaan pengguna akan diteruskan dengan mulus ke contoh DNS terdekat berikutnya, tanpa perlu intervensi manual atau konfigurasi ulang.

Keuntungan terakhir adalah skala horizontal; jika Anda menemukan bahwa satu server terlalu penuh, cukup gunakan server lain di lokasi yang memungkinkannya mengambil sebagian dari permintaan server yang kelebihan beban. Sekali lagi, karena tidak ada konfigurasi klien yang diperlukan, ini dapat dilakukan dengan sangat cepat.


83
2018-05-29 19:22



Apakah anycast menggunakan lebih banyak bandwidth dibandingkan dengan unicast? Bayangkan kami memiliki seribu server yang semuanya berbagi alamat IP yang sama, ketika kami mengirim paket ke bahwa alamat, bukankah akan mengambil lebih banyak bandwidth daripada dibandingkan dengan unicasting? - Pacerier
Tidak - lalu lintas yang dikirim ke alamat anycast hanya akan tiba di satu lokasi yang mengiklankan alamat. Anda mungkin berpikir multicast, di mana paket yang dikirim ke alamat grup multicast dikirim ke semua host yang tertarik dengan grup itu. - Murali Suriar
Bukankah masalah "Daripada harus mengkonfigurasi server DNS yang berbeda tergantung di mana server / workstation dikerahkan"Dipecahkan oleh nama domain? Jadi apa gunanya anycast ketika hanya menduplikasi nama domain yang sudah dilakukan? - Pacerier
@Pacerier - Anda tidak dapat menggunakan nama domain untuk menemukan server DNS Anda - itu adalah ketergantungan melingkar. Contoh: konfigurasikan dns.foo.com. sebagai server DNS Anda. Apa alamat IP yang saya kirimi permintaan ke dns.foo.com? Saya tahu, saya akan mencarinya di DNS. dll. - Murali Suriar


Salah satu hal yang sering membingungkan saya dalam memahami "anycast" adalah bahwa, meskipun itu adalah istilah tingkat tinggi, dalam penerapan praktisnya biasanya bermuara pada dua contoh:

  1. Router menggunakan BGP untuk mengiklankan blok IP yang sama melalui beberapa SEBAGAI jalur sebagai cara kasar mengarahkan pengguna ke situs "lebih dekat". Pada saat yang sama menyediakan failover hampir transparan ke situs lain dengan hanya mencabut rute dari situs yang bermasalah. Ini dapat berguna untuk hampir semua protokol, meskipun jelas itu menimbulkan banyak masalah sinkronisasi data backend.

  2. Mengiklankan IP layanan yang sama dari beberapa titik dalam jaringan Anda sendiri (via routing statis, OSPF, EIGRP, atau terserah). Jika rute tertimbang berbedabertindak sebagai mekanisme failover. Jika rute tertimbang rata itu dapat mengambil keuntungan dari kemampuan load balancing per-paket atau per-aliran dari sebagian besar router nama-merek-vendor. Anda harus berhati-hati bahwa lapisan aplikasi protokol merasa nyaman dengan ini, itulah mengapa Anda hampir selalu mendengarnya digunakan DNS di mana permintaan selalu satu paket dan semuanya tidak bernegara. Secara pribadi, saya melihat ini sebagai intrusi hacking kekhawatiran lapisan aplikasi ke dalam lapisan jaringan ketika kombinasi DNS dan load-balancer yang tepat hampir selalu menjadi solusi yang lebih baik.


31
2018-05-30 04:24



1 untuk menyebutkan satu paket dan tanpa negara - nponeccop
masalah dengan DNS adalah bahwa seseorang dapat menggunakan google atau beberapa resolver remote lainnya dan server terdekat untuk resolver mungkin berbeda daripada pengguna. Tentu saja ini adalah hanya anycast berlaku untuk penggunaan non DNS (misalnya tcp anycast atau penggunaan lainnya). - akostadinov
@cagenut, Apakah istirahat HTTP dalam kasus per-load load balancing (karena bobot atau sebaliknya)? - Pacerier


Terutama digunakan untuk layanan berbasis UDP seperti DNS. Pada dasarnya, Anda mengumumkan rute yang sama dari beberapa pusat data di seluruh dunia. Dengan cara ini, klien Anda akan dikirim ke pusat data "terbaik" dan "terdekat" berdasarkan rute BGP. Saya memberi tanda "terbaik" dan "terdekat" karena penyedia jaringan dapat memainkan game dan merutekan lalu lintas dari jaringan tertentu secara berbeda. Secara umum, hal-hal yang berhasil untuk yang terbaik dengan anycast, tapi itu bukan jaminan.

Contoh ini akan menjadi daftar server DNS Anda sebagai 1.2.3.4 dan 1.2.3.5. Router Anda akan mengumumkan rute untuk 1.2.3 / 24 dari banyak pusat data. Jika Anda berada di Jepang dan memiliki pusat data di sana, kemungkinan Anda akan berakhir di sana. Jika Anda berada di AS, Anda akan dikirim ke pusat data AS Anda. Sekali lagi, ini didasarkan pada perutean BGP dan bukan perutean geografis yang sebenarnya, tetapi itu biasanya bagaimana hal-hal menjadi rusak.


16
2018-05-29 19:01



Bagaimana konflik dihindari? - Pacerier
Saya tidak yakin apa yang Anda maksud dengan konflik. BGP tidak benar-benar memungkinkan konflik. Itu hanya mengambil rute. Satu (sering diabaikan) masalah dengan anycast adalah legal. Secara teknis, anycasting ditutupi oleh hak paten yang berbeda. Tidak ada yang memaksakan ini, tetapi jenis trafik yang berbeda (CDN, DNS, TCP vs UDP) dilindungi oleh hak paten yang berbeda. Paragraf ini harus ditutup dengan IANAL. - diq
Jadi maksud Anda bahwa layanan ip2location itu tidak akurat? Karena tidak ada lokasi resmi untuk IP dan bisa juga di mana saja tergantung pada komputer BGP mana Anda berbicara? - Pacerier


Berdasarkan tanggapan asli saya, saya baru saja memposting dua artikel lagi di blog saya yang berjudul: Anycast DNS - Bagian 3, Menggunakan RIP dan Anycast DNS - Bagian 3, Menggunakan RIP (lanjutan). Yang terakhir masuk ke rincian lebih lanjut, tetapi di www.netlinxinc.com/netlinx-blog.html Anda akan menemukan resep yang sebenarnya tentang cara mengkonfigurasi router Cisco dan perangkat lunak perute berbasis Open Source Quagga untuk Anycast DNS menggunakan RIP.

Saat ini saya sedang mengerjakan penulisan artikel keempat dalam seri ini. Ini akan memberikan tanggapan tentang cara menyebarkan DNS Anycast menggunakan OSPF. Terakhir dalam seri, saya akan menunjukkan resep untuk menerapkan DNS Anycast menggunakan BGP.

Anycast DNS - Bagian 1, Ikhtisar

Anycast DNS - Bagian 2, Menggunakan Rute Statis

Anycast DNS - Bagian 3, Menggunakan RIP 

Anycast DNS - Bagian 3, Menggunakan RIP (lanjutan) 


8
2018-05-31 16:32



Jadi, apakah benar bahwa karena anycast, mungkin orang lain di internet di seluruh dunia mungkin memiliki IP publik yang sama dengan yang diberikan oleh ISP Anda? - Pacerier
Bukankah benar bahwa hanya ISP yang mampu menggunakan server anycast? - Pacerier
Bahkan, Anda harus memiliki banyak ISP untuk melakukan anycast. - Pacerier


Mengingat ini terutama DNS saat ini ...

Secara tidak resmi itu membuat layanan Anda lebih tangguh dan dengan akses / latensi / kecepatan jaringan yang lebih baik dengan memungkinkan Anda untuk mengatur layanan yang sama di beberapa lokasi di seluruh dunia yang semuanya menggunakan alamat yang sama. Ketika seseorang menanyakan alamat tersebut, mereka diberi rute terdekat / terbaik.

Dari perspektif server:

Jika unicast adalah Anda pergi ke satu orang, dan multicast adalah Anda akan beberapa, dan disiarkan adalah Anda akan pergi ke semua orang, maka anycast sedang schitzophrenic dan memiliki kepribadian ganda di mana kepribadian yang paling cocok untuk setiap orang terhubung dengan mereka. Hmm Bukan analogi terbaik.


4
2018-05-29 19:19





Penggunaan yang sangat menarik dari anycast adalah DNS. Anda dapat menempatkan 5 server DNS yang berbeda di berbagai lokasi fisik dan jaringan, tetapi berbagi satu alamat (atau terkadang keduanya DNS primer dan sekunder). Tergantung dari mana sumbernya, mereka diarahkan ke simpul terdekat mereka. Ini melakukan beberapa traffic balancing plus itu menyediakan redundansi jika server DNS mati.


3
2018-05-29 19:03



Tapi bukan redundansi yang sudah disediakan oleh sistem DNS? - Pacerier


Menurut salah satu rekan saya, itu juga berguna sebagai teknik mitigasi serangan DoS, karena orang hanya dapat menyerang alamat IP anycast "terdekat", jadi jika ada banyak zombi di, katakanlah, AS, situs Euro Anda akan menjadi kebanyakan tidak terpengaruh, karena mereka tidak bisa mengirim paket ke sana.

Juga dimungkinkan untuk menggunakannya sebagai cara untuk (agak naif) menyaring paket palsu jika mereka jelas berasal dari tempat yang tidak mungkin diiklankan di BGP sebagai rute yang benar (misalnya paket yang datang ke Eropa ketika ASN menunjukkan N Amerika blok).


2
2018-05-31 17:16



Yah, bahkan dalam kasus sederhana yang hanya akan menghentikan orang-orang yang AS jalan pergi ke server itu --- misalnya. Anda dapat menghentikan orang yang menghubungi Anda dari Comcast, tetapi bukan AT & T. Jika Anda telah mengaturnya dengan "benar" untuk failover (lacak layanan L7, berhenti mengumumkan ketika turun), maka sebenarnya jauh lebih sulit untuk menangani serangan DoS karena akan nuke satu server kemudian pindah ke berikutnya ketika itu pengumuman dihapus ... - James Cape
@JamesCape, Menarik, Tapi ketika mereka pindah ke yang berikutnya, dos telah gagal karena orang tidak dapat terhubung kan? - Pacerier
@Pacerier Dalam kasus yang paling sederhana, di mana Anda hanya mengiklankan IP yang sama di mana pun tanpa kecerdasan di dalamnya, ya. Namun, jika Anda mencoba untuk menjadi pandai dan menarik iklan di AS karena layanan tidak merespons, maka satu-satunya iklan yang tersisa adalah yang ada di Eropa. Jadi semua zombie AS akan memukul server yang tersedia berikutnya, dan membunuh yang satu itu juga. - James Cape