“Anycast” nedir ve nasıl yardımcı olur?


85

Birkaç saniye öncesine kadar " Bazı serin ya da kullanışlı sunucu / ağ püf noktaları nedir? " Yazısını okuduğumda hiç yayın yapmamıştım .

Üzerindeki wikipedia " Anycast " makalesi oldukça resmi ve gerçekten nasıl kullanılacağına dair zihinsel bir resmi ortaya çıkarmıyor.

Birisi “gayri resmi” nin ne olduğunu, nasıl yapılandırıldığını (genel anlamda) ve faydalarının ne olduğunu (ne kolaylaştırır) açıklayabilir mi?

Yanıtlar:


88

Anycast, aynı IP öneki birden fazla yerden bildirildiği ağ oluşturma tekniğidir. Ağ, daha sonra, yönlendirme protokolü maliyetlerine ve muhtemelen reklamcılık sunucularının 'sağlığına' dayalı olarak, bir kullanıcının isteğini yönlendirecek konuma karar verir.

Herhangi bir yayın için birçok fayda var. Birincisi, kararlı durumda, herhangi bir yayın hizmetinin kullanıcıları (DNS mükemmel bir örnektir) her zaman 'en yakın' (bir yönlendirme protokolü perspektifinden) DNS sunucusuna bağlanır. Bu, gecikmeyi azaltır ve bir yük dengeleme düzeyi sağlar (tüketicilerinizin ağınıza eşit şekilde dağıldığını varsayarsak).

Diğer bir avantaj, konfigürasyon yönetimi kolaylığıdır. Bir sunucunun / iş istasyonunun konuşlandırıldığı yere (Asya, Amerika, Avrupa) bağlı olarak farklı DNS sunucuları yapılandırmak yerine, her yerde yapılandırılmış bir IP adresiniz vardır.

Herhangi bir yayının nasıl uygulandığına bağlı olarak, yüksek düzeyde kullanılabilirlik de sağlayabilir. Herhangi bir kanal yolunun reklamı bir tür sağlık kontrolüne (örneğin, bu örnekte iyi bilinen bir alan adı için bir DNS sorgusu) şartlı ise, bir sunucu yolunu geçemez kaldırılmaz kaldırılabilir. Ağ yeniden birleştiğinde, kullanıcı istekleri herhangi bir manuel müdahale veya yeniden yapılandırma gerekmeksizin bir sonraki en yakın DNS örneğine iletilir.

Nihai bir avantaj yatay ölçeklendirmeninkidir; Bir sunucunun aşırı yüklendiğini tespit ederseniz, başka bir sunucuyu aşırı yüklenmiş sunucunun isteklerinin bir kısmını almasına izin verecek bir yere yerleştirmeniz yeterlidir. Yine, müşteri konfigürasyonu gerekli olmadığından, bu çok hızlı bir şekilde yapılabilir.


Herhangi bir yayın tek noktaya yayından daha fazla bant genişliği kullanıyor mu? Aynı IP adresini paylaşan bin sunucumuz olduğunu , bu adrese bir paket gönderdiğimizde , tek noktaya yayından daha fazla bant genişliği gerektirmeyeceğini düşünün?
Pacerier

5
Hayır - Herhangi bir yayın adresine gönderilen trafik, yalnızca adresi bildiren bir yere ulaşır. Çok noktaya yayın grubuna gönderilen paketlerin bu grupla ilgilenen tüm ana bilgisayarlara gönderildiği çok noktaya yayın düşünebilirsiniz .
Murali Suriar

Etki alanı adlarıyla çözülen " Bir sunucunun / iş istasyonunun nerede konuşlandırıldığına bağlı olarak farklı DNS sunucuları yapılandırmak yerine " sorunu değil mi? Öyleyse, hangi etki alanı adlarının zaten ne yaptığını basitçe çoğalttığınızda herhangi bir yayının amacı nedir?
Pacerier

1
@Pacerier - DNS sunucunuzu bulmak için etki alanı adlarını kullanamazsınız - bu döngüsel bir bağımlılıktır. Örnek: dns.foo.com'u yapılandırın. DNS sunucunuz olarak. Dns.foo.com adresine hangi IP adreslerini gönderirim? Biliyorum, DNS’de arayacağım. vs
Murali Suriar

32

Her zaman "herhangi bir kanalı" anlamamda kafamı karıştıran şeylerden biri, yüksek seviyeli bir terim olmasına rağmen, pratik uygulamada genellikle iki örneğe indirgenmesidir:

  1. Aynı IP bloğunu, kullanıcıları "daha yakın" bir siteye yönlendirmenin zorlu bir yolu olarak , birden fazla AS yolu üzerinden tanıtmak için BGP kullanan yönlendiriciler. Aynı zamanda, sadece rotaları sorunlu bir bölgeden geri çekerek diğer bölgelere neredeyse şeffaf bir yerine çalışma sağlar. Bu, neredeyse her protokol için faydalı olabilir, ancak açık bir şekilde arka uç veri senkronizasyonu endişelerini de beraberinde getirir.

  2. Aynı hizmet IP'sini kendi ağınızdaki birden fazla noktadan reklam ( statik yönlendirme , OSPF , EIGRP veya her neyse). Güzergahlar farklı ağırlıktaysa , yük devretme mekanizması olarak işlev görür. Güzergahlar eşit şekilde ağırlıklandırılırsa , çoğu marka-markalı yönlendiricinin paket başına veya akış başına yük dengeleme özelliklerinden faydalanabilir. Uygulama katmanı protokolünün bu konuda rahat olmasına dikkat etmelisiniz , bu nedenle DNS ile kullanıldığını neredeyse her zaman duyuyorsunuz.bir isteğin daima bir paket olduğu ve her şeyin durumsuz olduğu. Şahsen, bunu bir DNS ve uygun yük dengeleyici kombinasyonunun neredeyse her zaman daha iyi bir çözüm olacağı durumlarda, uygulama katmanının ağ katmanına kaygısız bir şekilde sızması olarak görüyorum.


Bir paket ve vatansızlıktan bahsettiği için +1
nponeccop

3
DNS’in sorunu Google’ın başka bir uzaktan çözücüyü kullanabilmesi ve çözücünün kullanıcıdan daha farklı olması için en yakın sunucunun kullanılmasıdır. Elbette bu geçerlidir, sadece herhangi bir yayın, DNS dışı kullanım içindir (örneğin, tcp anycast veya diğer kullanımlar).
akostadinov

@cagenut, Paket başına yük dengeleme durumunda HTTP kırılır mı (ağırlıklar nedeniyle veya başka şekilde)?
Pacerier

16

Temelde DNS gibi UDP tabanlı servisler için kullanılır. Temel olarak, aynı rotayı dünyadaki birden fazla veri merkezinden duyuruyorsunuz. Bu şekilde, müşterileriniz BGP rotalarına göre "en iyi" ve "en yakın" veri merkezine gönderilir. Ağ sağlayıcıları oyun oynayabilir ve belirli ağlardan gelen trafiği farklı şekilde yönlendirebilir, çünkü "en iyi" ve "en yakın" ifadelerini tırnak içine aldım. Genel olarak, her şey en iyi şekilde sonuçlanır, ancak bu bir garanti değildir.

Bunun bir örneği, DNS sunucularınızı 1.2.3.4 ve 1.2.3.5 olarak listelemek olacaktır. Yönlendiricileriniz birden fazla veri merkezinden 1.2.3 / 24 için bir rota yayınlayacaktır. Japonya’daysanız ve orada bir veri merkeziniz varsa, orada olma ihtimaliniz var. ABD’deyseniz, ABD veri merkezinize gönderilirsiniz. Yine, BGP yönlendirmesine dayanır ve gerçek coğrafi yönlendirmeye dayanmaz, ancak genellikle işler böyle dağılır.


1
O zaman çatışmalar nasıl önlenir?
Pacerier

Anlaşmazlıklarla ne demek istediğinizi anlamadım. BGP çatışmalara gerçekten izin vermiyor. Sadece bir rota seçer. Herhangi bir yayınla ilgili (genellikle göz ardı edilen) bir sorun yasaldır. Teknik olarak, herhangi bir yayın farklı patentlerle kaplıdır. Kimse bunu zorlamaz, ancak farklı trafik türleri (CDN, DNS, TCP - UDP) farklı patentler kapsamındadır. Bu paragraf IANAL ile kaplanmalıdır.
diq

Yani bu ip2location servislerinin yanlış olduğunu mu söylüyorsunuz? IP için resmi bir konum bulunmadığından ve hangi BGP bilgisayarına konuştuğunuza bağlı olarak herhangi bir yer olabilir mi?
Pacerier

9

Orijinal cevabım uyarınca, blogumda iki makale daha yayınladım: Anycast DNS - Bölüm 3, RIP ve Anycast DNS Kullanımı - Bölüm 3, RIP Kullanımı (devam). İkincisi daha fazla ayrıntıya girer, ancak www.netlinxinc.com/netlinx-blog.html adresinde, RIP kullanarak Anycast DNS için Cisco yönlendiricileri ve Açık Kaynaklı Quagga ana bilgisayar tabanlı yönlendirme yazılımının nasıl yapılandırılacağı hakkında gerçek tarifler bulacaksınız.

Şu anda serideki dördüncü yazıyı yazmaya çalışıyorum. Bu, OSPF kullanarak Anycast DNS'in nasıl dağıtılacağına dair tarifler sağlayacaktır. Serinin son bölümünde BGP kullanarak Anycast DNS'i dağıtmak için tarifler göstereceğim.

Anycast DNS - Bölüm 1, Genel Bakış

Anycast DNS - Bölüm 2, Statik Yolları Kullanma

Anycast DNS - Bölüm 3, RIP Kullanımı

Anycast DNS - Bölüm 3, RIP Kullanımı (devam)


Öyleyse, herhangi bir yayın nedeniyle, dünya genelinde internetteki bir başkasının ISS'nizin size verdiğiyle aynı kamu IP'sine sahip olması mümkün mü?
Pacerier

Yalnızca ISS'lerin herhangi bir yayın sunucusunu dağıtabildiği doğru değil mi?
Pacerier

Aslında, herhangi bir yayın yapabilmek için birden fazla ISS'niz olması gerekir .
Pacerier

4

Verilen bu esas olarak şu anda DNS ...

Gayrı resmi olarak hizmetinizi daha esnek ve daha iyi ağ erişimi / gecikme / hız ile aynı adresi kullanarak tüm dünyayı aynı yerde birden çok yere kurmanıza olanak sağlayarak yapar. Birisi bu adresi sorduğunda, en yakın / en iyi rota verilir.

Bir sunucu açısından:

Eğer tek noktaya yayın tek bir kişiye gidecekseniz ve çok noktaya yayın bir kaç kişiye gidecekseniz ve yayın tüm insanlara gidecekseniz, herhangi bir yayın schitzofrenik ve her bir kişiye en uygun kişiliğin onlarla en iyi şekilde bağlandığı birden fazla kişiliğe sahip olacaksınız. Hmm. En iyi benzetme değil.


3

Anycast'in gerçekten ilginç bir kullanımı DNS. 5 farklı DNS sunucusunu çeşitli fiziksel ve ağ konumlarına yerleştirebilir, ancak tek (veya bazen hem birincil hem de ikincil DNS) adresleri paylaşabilirsiniz. Kaynağın bulunduğu yere bağlı olarak, en yakın düğümlerine yönlendirilirler. Bu, bazı trafik dengelemeleri yapar ve bir DNS sunucusu ölürse artıklık sağlar.


Fakat artık DNS sistemi tarafından artıklık sağlanmıyor mu?
Pacerier

2

Meslektaşlarımdan birine göre, DoS saldırısını azaltma tekniği olarak da kullanışlıdır, çünkü insanlar yalnızca "en yakın" herhangi bir IP adresine saldırabilirler, yani ABD’de çok fazla zombi varsa, çoğunlukla etkilenmez, çünkü aslında paketleri gönderemezler.

Ayrıca, BGP'de doğru yol olarak tanıtılması muhtemel olmayan bir yerden geliyorsa (örneğin, ASN bir N Amerikan’ı gösterdiğinde Avrupa’ya gelen paketler gibi), sahtecili paketleri filtrelemenin bir yolu olarak kullanmak mümkün olabilir. blok).


1
Eh, sadece AS yolunu olan insanları durduracak olan basit durumda bile, bu sunucuya gider --- örneğin, size Comcast'ten ulaşan ancak AT&T'den olmayan insanları durdurabilirsiniz. Yük devretme için "düzgün" bir kurulum ayarladıysanız (L7 servisini takip edin, ne zaman düştüğünü söylemeyi bırakın), o zaman DoS saldırılarıyla başa çıkmak daha zordur, çünkü bir sunucuyu bombalayacağından sonraki sıraya geçecektir. duyurular indirildi ...
James Cape

@JamesCape, İlginç, Bir sonrakine geçtiklerinde, insanlar doğru şekilde bağlantı kuramadıkları için dos başarısız oldu?
Pacerier

@Pacerier En basit durumda, her yerde aynı IP'yi reklam verdiğiniz yerde, üzerinde istihbarat olmadan, evet. Bununla birlikte, hizmet yanıt vermediğinden ABD’deki reklamları akıllıca çekip çekmeye çalışırsanız, geriye kalan tek reklam Avrupa'da yayınlanacaktır. Böylece tüm ABD zombileri bir sonraki uygun sunucuya ulaşacak ve onu da öldürecek.
James Cape

2

Ayrıca, Anycast'ın, sıfırlanamayan veya uzun süreli konuşmalara dayanamayan bazı TCP bağlantıları için iyi veya güvenilir olmadığını not etmek de iyidir.

BGP kullanan Anycast IP'leri, internete belirli bir HOST'a 2, 3 veya daha fazla yol olduğunu söyler , ancak gerçekte bunlar aynı ana bilgisayar değil, daha düşük gecikmeli bağlantılara ulaşmak için birden fazla veri merkezinde reklamı yapılan ana bilgisayarların tam kopyalarıdır.

Örneğin, 198.251.86.133 için 301 www olmayan yeniden yönlendirme yapan 3 sunucum var, bu ana bilgisayara ping işlemi yaparsanız, sunucularım ABD-Doğu, ABD olduğu için zaman zaman DUPLICATE yanıtları alabilir, hatta bulunduğunuz yere bağlı olarak düşebilir -West ve EUR. kısa süreli bağlantılar için (tarayıcı önbelleği olan 301'ler gibi) bu, en yakın veri merkezindeki yerel bir sunucu tarafından hızlı bir yanıt verir.

Artıklık açısından, herhangi bir yayında yerleşik hiçbir şey yoktur, yine de IP'nin (tipik senaryolarda) her zaman bu veri merkezlerini göstereceği şekilde, her yerde bağımsız fazlalık gerekir.


Re "ping"; UDP bağlantısına ping atmıyor mu?
Pacerier

Re, "bu IP’nin (tipik senaryolarda) daima bu veri merkezlerini göstereceğini"; Emin misiniz? Bu sunucu karartılırsa, en yakın sunucuya işaret etmeye başlarlar, değil mi?
Pacerier
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.