CDN (İçerik Dağıtım Ağları) nasıl çalışır?


37

Akamai'yi CDN olarak almak. Anladığım kadarıyla, bir müşteri bir sayfa talep ettiğinde, istek Akamai merkezi sunucusuna gider, bu durumda müşterinin konumuna bağlı olarak bir Akamai uç sunucusu alır ve ardından müşteriden gelen talepler doğrudan bu uç sunucuya gider. Sorum şu:

Bir müşteri bir web sitesi talep ederse (adına göre), DNS, Akamai merkezi sunucusunun IP adresini ismiyle çözdüğünde ve onu müşteriye ilettikten sonra, müşteri bu IP adresine tutacaktır; doğrudan Akamai edge sunucularının IP adresine gitmek için?

Yoksa CDN kullanılırken DNS çözünürlüğünün CDN sunucusu tarafından yapılması gerektiğinin gerekliliği mi?

Google, Amazon, Facebook gibi büyük şirketlerin kendi CDN sunucularına sahip mi, yoksa Akamai gibi 3. taraf CDN sağlayıcılarına mı güveniyorlar? Google ve Yahoo! her ikisi de Akamai CDN'lerini kullanıyor, sonra Yahoo! ve Google aynı sunucuda mı yaşıyor? Potansiyel bir güvenlik sorunu oluşturmuyor mu?

Yanıtlar:


27

Sadece ev sahibi olmayan tüm siteyi CDN ile, sadece içerik .

Bir süre önce benzer bir soruyu cevapladığımı farkettim: akamaihd.net ne yapıyor?

Veri isteği akışıWikiMedia tarafından görüntü

Yani sitenize referanslar http://akamai/myfile.ext. Bu isteyecektir myfile.extdan akamai. akamaidaha sonra gerçek içerik sunucusuna bir HTTP yönlendirmesi gönderebilir .

Şimdi, bu son adım önbelleğe alındığında harika, gelecekteki tüm istekler en yakın içerik sunucusuna gidecektir.

Bu nasıl çalışıyor?

Bu web sitesini varsayalım:

<html>
  <body>
    <img src="http://cdn/oliver.png" />
  </body>
</html>

Bu web sitesini kendi web sunucumdan istiyorum. .htmlDosya edilir değil barındırılan cdn. Web sunucumun DNS'si de değil.

İlk istek

Böylece tarayıcım bu HTML dosyasını aldı ve şimdi onu ayrıştırıyor. Başvurulan görüntüyü bulur ve bulunduğu yerde bulunur http://cdn/oliver.png. O dosyayı istiyor.

Bunu yapmak için IP adresini bulması gerekir cdn. Örneğimizde bu IP adresi 10.10.10.10.

Bu IP adresi ile cdnsunucuya ve isteklere bağlanabilir /oliver.png.

Coğrafi Konum

Şimdi cdnanlıyoruz ki, " bu adam Almanya'dan! ". Bu yüzden bana istediğim harika resmimi göndermek yerine, bana şöyle bir HTTP yönlendirme gönderir:

/oliver.png burada değil. Orada10.10.33.33/oliver.png

Bu yüzden tarayıcım 10.10.33.33(umarım bana daha yakındır) resim isteyecektir .

Ciddi anlamda?

Bunun TÜM CDN'lerin çalışma şekli olduğunu söylemiyorum, ancak bir yaklaşım olacaktır.

Ayrıca, sorguyu gönderenin konumuna bağlı olarak ad araması için farklı sonuçlar veren bir DNS arka plan programı da uygulayabilirsiniz.
Ancak bunun pratikte yapıldığından şüpheliyim. Ama belki de bunu nasıl düzgün şekilde ayarlayabileceğimi hayal bile edemiyorum. Bunun nasıl işe yarayacağına dair Fluffy'nin cevabını görün .

CDN'leri kim çalıştırıyor?

Çoğu küresel oyuncu , bir şekilde kendi içerik dağıtım ağına sahiptir (ya da öyle varsayardım). Bazı sağlayıcılar belirli hizmetleri daha büyük CDN'lere gönderir (Microsoft'un MSDN yüklemelerinde yaptığı gibi). Ve bu bir şekilde ikinci konunuza dokunabilir.

Bunu göz önünde bulundurun, MSDN'de Microsoft ürün indirmeleri sunar. Bu indirmeler daha sonra Akamai tarafından sağlanmaktadır. Bu indirmenin URL’sini belirleyebilirseniz, ürünü Microsoft ile hiç temasa geçmeden indirebilirsiniz.

Bu bir güvenlik sorunu mu? Gerçekten değil, çünkü indirilenler hala korunmaktadır (bir ürün anahtarı ile).

Peki ya diğer veriler?

Verileriniz güvenlikle ilgiliyse, CDN materyali değildir. Bir şeyin mümkün olduğunca geniş bir kullanılabilir olmasını istemiyorsanız, yok bir CDN koydu.


Sitenin somewebsite / file.txt olduğunu söyleyin . Diyelim ki Akamai DNS kullanılıyor. Öyleyse, müşteriden ilk istek bir yere mi geliyor yoksa ilk istek yine de Akamai'ye mi gidiyor (bir şekilde müşteri tarafından kullanılan DNS, Akamai CDN'sinin kullanımda olduğunu bildiği için)?
p2pnode

Ve belki de HTTP yönlendirmesini ve neleri başarabileceklerini anlamıyorum, bu yüzden sorumun hala, Akamai uç sunucularının IP adresini nasıl kullandığını bilmesi, böylece Akamai merkez sunucularının resmileşmesi gerekmiyor. tümü ..
p2pnode

@ p2pnode: Yanıtı biraz genişlettim. Umarım merak ettiğiniz şeyi içerir.
Der Hochstapler

1
Bundan ciddi bir performans çıkmadı mı? Bunun yerine her bir tek bir TCP akışı üzerinden gerçekleşen veri aktarımı, birden fazla akış, vb .. tokalaşma daha fazla üstten, kullanılıyor
Akaşanın

@Akash: Normalde, her şey için bir CDN kullanmazsınız , sadece bireysel büyük dosyalar kullanırsınız. Yani, pratikte, bu bir sorun değil.
Der Hochstapler

11

CDN'ye oldukça yaygın bir yaklaşım, " herhangi bir kanal " olarak bilinen şeyi kullanmaktır . Bunun nasıl yürüdüğü, dağıtılmış sunucularınızın o sunucuya hedef olarak yanıt veren DNS'lerle birlikte konumlandırılmasıdır; örneğin, farklı barındırma tesislerinde üç sunucuya sahip olabilirsiniz ve ilgili DNS'leri IP adreslerini sunucunuz için kanonik olduğunu iddia eder (diyoruz content.example.com). DNS'lerin her biri aynı global IP adresine sahip olacak şekilde yapılandırılmıştır ve daha sonra sunucuların her biri BGP güncellemelerini kullanarak en yakın sunucuya giden yolun kazanmasını sağlar - böylece bir ad ararken content.example.comen hızlı / en yakın / kullanılabilir kullanılabilir DNS, HTTP sunucusuyla isteği yanıtlar.

Bu şekilde, hiçbir GeoIP numarası gerekmez ve Internet'in heterojen doğası nedeniyle fiziksel konumu ile ilgisi olabilecek veya olmayabilir, her zaman hangi sunucunun sizin için en hızlı olduğu ile içerik sunulur.

Anladığım kadarıyla Akamai en azından kısmen bu şekilde çalışıyor.


5

Ayrıca Menşe Çekme tipi CDN'ler de mevcuttur.

Amazon Cloudfront bu tekniği kullanabiliyor.

Media.example.com gibi, atanmış sunucu adlarına işaret eden ve tüm içeriğinizi sunucunuzda bırakan bir CNAME kurdunuz. CDN üzerinden yayınlanmasını istediğiniz resimler ve içerik için URL’de media.example.com adresini kullanın. İstek sunucu ağlarına gider ve içerik mevcut değilse, sunucuları içeriği sunucunuzdan çeker. Sisteme girdikten sonra içerik, talebin bulunduğu yere en yakın sunucu çiftliklerine dağıtılır ve atanan TTL için orada kalır. Sunucunuz, TTL süresi doluncaya kadar ve Cloudfront bunu yenilemek zorunda kalmadan önbelleğe alınmış içerik üzerinde herhangi bir trafik görmüyor.


1

Akamai bu şekilde çalışmıyor. Farklı CDN'ler farklı çalışır, ancak Akamai özellikle web sunucuları için herhangi bir yayın yapmaz.

NY'deki bir kullanıcı istediğinde www.acme.com, acme.com'un isim sunucusu bir Akamai isim sunucusuna yönlendirir ("delege"). Akamai ad sunucusu, soruyu soran makinenin nerede olduğunu (IP adresine göre) nerede görür ve hizmet etmek için en yakın / en iyi Akamai sunucusunun IP adresini döndürür www.acme.com.


Nasıl çalışır? Akamai ad sunucusu doğrudan kullanıcıdan veya Akamai ad sunucusuna atanan kullanıcı DNS sunucusundan istek alıyor mu? Yani kullanıcının değil, DNS sunucu konumuna göre coğrafi konumu belirlenir.
odiszapc

0

Akamai'nin CDN'sinin nasıl çalıştığının harika bir özeti burada bulunabilir.

Kısacası:

  • CDN sunucuları, Akamai'nin DNS sunucularına işaret eden bir CNAME kaydına sahiptir.
  • Bu nedenle, bir istemci tarayıcısının bir CDN sunucusuna yaptığı ilk istek, DNS'ye baktığı için, kullanıcının yakınında bulunan bir Akamai sunucusunun ip adresini yanıtlayan Akamai'nin DNS sunucusuna bakar ("Kenar Sunucular")
  • Bu Edge sunucuları, yakın zamanda başka bir kullanıcı tarafından talep edildiyse yerel önbellekten gelen statik unsurlar sunabilir ve varlığın bir kopyasını almak için sunucunuza bile geri dönmesi gerekmez.
  • Eksik öğeler veya önbelleğe alınamayan sayfalar, Akamai ağı üzerinden ana bilgisayarın yakınındaki başka bir uç sunucuya yönlendirilir. Bu uç sunucu, asıl istekleri ana bilgisayar sitesine yapar ve bunları ağ üzerinden orijinal uç sunucuya geri gönderir ve oradan son kullanıcıya geri gönderilir.
  • En son sunucular Akamai'nin özel protokollerini kullanarak ve darboğazları dolaşarak dahili olarak iletişim kurduğundan, trafik genel internet üzerinden olduğundan çok daha hızlı akabilir.

ve yukarıda listelenen blog yazısında da belirtildiği gibi, bazı büyük şirketler DNS’leri kendi sunucularını kullanarak çözerek bir CDN kullanmanın bazı yararlarını ortadan kaldırabilir.


-2

CDN, Anycast DNS'de çalışır. Anycast dns, Anycast ip üzerinde çalışır. Anycast ip: Birden fazla sunucuya bir ip ataması. Kullanıcı dns resolver talebinde bulunduğunda, bu sorgu en yakın sunucu tarafından ele alınacak ve sunucudan en az gecikmeyle veri sağlayacaktır.


Bu, mevcut cevapları daha cevaplayan ne şekilde gelişir?
Chenmunka
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.