Bir CDN (Content Delivery Network) ile ilgili karmaşıklıklardan biri, kullanıcının coğrafi konumunun hassas bir şekilde belirlenmesidir. Geçtiğimiz yıllar içerisinde DNS sunucular üzerinde geleneksel konumlandırma yöntemlerinin kullanımında önemli gelişmeler sağlanmıştır, ancak bu yöntemler günümüzde hala yeterli hassasiyete ulaşamamıştır ve stabil ve entegre bir yapının önünde bazı zorluklar bulunmaktadır. Arvancloud bu sorunu aşmak için Anycast teknolojisini kullanmaktadır.
Anycast ,adreslendirme ve yönlendirme amaçlı bir yöntemdir. Bu yöntemde aynı IP adresi bir dizi sunucu ucuna atanır ve bunlar CDN ağı içerisinde dünya geneline yayılmış farklı veri merkezlerinden oluşan bir dizi sunucu işlevi görür. Bu IP adresine gönderilen talepler, bu talebi gönderen lokasyona topolojik olarak en yakın sunucu tarafından yanıtlanır. Böylelikle, Arvancloud IP adresleri dünya genelinde aynı anda erişim sağlar ve her kullanıcı kendisine en yakın edge sunucusuna bağlanarak ilk bağlantı üzerinden hizmet alır.
Arvancloud, sadece DNS anycast katmanı üzerinde değil, aynı zamanda Anycast yönlendirme (BGP Anycast) üzerinde de entegre bir şekilde çalışan dünyanın az sayıdaki global CDN’inden biridir. Bu bölümde öncelikle geleneksel yönlendirme yöntemlerini ele alacağız. Sonrasında anycast yönlendirme yöntemini analiz ederek avantajlarını paylaşacağız.
İnternet mimarisi geçtiğimiz yıllar içerisinde bilginin (verinin) tek bir sunucuda mevcut olmasına imkan tanıdı ve bu sunucu tüm bilgi taleplerini karşılamaktan sorumluydu. Bu gibi bir yönlendirme mimarisine unicast adı verilir. Bu mimarinin başlıca iki problemi bulunmaktadır:
İşte bu problemler, anycasting adı verilen çözümün geliştirilmesini sağladı.
Anycast Yapısı
Unicast Yapısı
Trafik yönlendirme ve adreslendirme için sıkça kullanılan üç yöntem bulunmaktadır:
Bu yöntemde her sistemin ağ içerisinde kendi IP adresi bulunur ve bir verici, bir alıcının IP adresi ile eşleşen belirli bir mesaj gönderir. Unicast mimarisinde birden fazla cihaz aynı IP adresine sahip olamaz. Global iletişim ağları büyük ölçüde unicasting (çoklu gönderim) kullanmaktadır.
Bu yöntem kapsamında bir mesaj bir adrese gönderilir ve mimari içerisindeki tüm cihazlar bu mesaja ihtiyaç olmasalar dahi bu mesajı alırlar. Bu yaklaşıma göre yönlendiriciler, alıcılar için herhangi IP paketleri iletmezler.
Bu yöntem kapsamında bir dizi cihaz bir grubun parçası haline gelir ve bunlar için bir multicast adres (bir rezerve adres aralığı) atanır. Burada, tüm üye cihazlar belirli bir göndericinin multicast grup adresine göndermiş olduğu trafiği alır. Bu yöntemin sıkça kullanıldığı mecralar arasında internet üzerinde ses dosyası ve video gönderim ağları yer almaktadır.
Anycast yönlendirme, farklı bir yönlendirme protokolü değildir. Sunucu, kullanıcının sistemleri ve diğer ekipmanlardan özel yetenekler talep etmez. Aslında anycast bir konfigürasyon mekanizmasıdır. Tıpkı unicasting gibi anycast’te de birebir bağlantılar söz konusudur. Diğer bir deyişle, göndericiden broadcasting ya da multicasting amacı ile ayrılmamış belirli bir IP adresine bir mesaj gönderilir. Aslında bu sıradan bir açık adrestir.
Unicasting’in aksine, bir IP adresine tek bir cihaz yerine bir grup cihaz atanmaktadır. Dolayısıyla, aynı adresin iki ya da daha fazla cihaza atanmış olması anycast mimarisinde hiçbir sorun teşkil etmez. Bunun sonucunda, aynı IP adresine sahip sunucular dünyanın her yerinde mevcut olabilir. Bunların her biri, kendilerine en yakın kullanıcılara yanıt vermekten sorumludur.
Örneğin, bir web hizmetine dünyanın farklı yerlerindeki üç sunucu (ya da ağ) üzerinden erişilebildiğini varsayalım:
Bu resme göre, kullanıcı yönlendiricisi mesafe de dahil olmak üzere 10.10.5.1 adresinden sunuculara tüm erişim yollarını belirler ve bunları yönlendirme tablosuna kaydeder. Bir kullanıcı 10.10.5.1 adresine bir paket gönderdiğinde bu paket en kısa yola yönlendirilecektir.
Anycast yönlendirme tüm yönlendirme protokolleri üzerinden kullanılanilir. Bir CDN üzerinde BGP yönlendirme protokolü yoluyla uygulanır. Bu amaçla sunucu adresleri BGP mesajları kullanılarak internet yönlendiricilerine tanıtılır ve her yönlendirici kendisinin bu adrese olan mesafesini belirler. Bunun sonucunda, kullanıcılar internet üzerinde belirli web hizmetleri kullanmak istediklerinde kendilerine en yakın sunucuya bağlanır ve istedikleri bilgiye erişirler.
Kullanıcı taleplerine daha yakın sunucular üzerinden yanıt vererek veri erişimindeki gecikmeler azaltılabilir.
Tek bir sunucu kullanmak yerine Anycast kullanıldığı zaman dünya çağında birden fazla çoklu dağıtılmış ağ olacaktır. Sunuculardan biri arızalanırsa, kullanıcı taleplerine otomatik olarak bir sonraki yanıt verir.
Bir bölgede kullanıcılar tarafından gönderilen ve alınan trafik yükünü dengelemek için o alana birden fazla sunucu yerleştirmek amacıyla anycast kullanılabilir.
Anycast uçları arasında botnet’ten etkilenmiş cihazlar tarafından gönderilen büyük trafik miktarını dağıtmak amacıyla Anycast kullanılabilir. Böylelikle, çok büyük rakamlardaki taleplere yanıt veremediği için bir sunucuya erişememe durumunu önlemek mümkün olur.
Anycast yönlendirme sayesinde internet yönlendiricileri kullanıcıların kendilerine en yakın yoldan sunuculara erişim sağlaması problemine çözüm getirilir. Böylelikle, DNS protokolü (DNS paketlerinin kullanıcı sistemlerinde önbelleğe kaydedilmesi) gibi belirli yöntemlerin kullanımındaki pratik sorunlar giderilmiş olur.
Artık anycast yönlendirmenin ne olduğunu açıkladığımıza göre CDN kullanıcıları arasında sıkça sorulan bir soruya geçebiliriz:
“Arvancloud CDn kullanan web hizmetinin IP adresi Almanya’da. Peki bu, o hizmeti kullanan tüm kullanıcıların (Almanyalı kullanıcılar da dahil) meydana getirdikleri trafiğe yurtdışındaki sunuculardan mı yanıt verileceği anlamına geliyor?”
Bunun cevabı hayır olmaktadır. Bu problemi açıklığa kavuşturmak için teknik bir durumu analiz edelim. Daha önce de belirttiğimiz üzere, anycast yönlendirme konfigürasyonunda belirli bir adres dünya genelindeki birçok sunucuya atanmaktadır. Bu sunuculara bundan böyle Arvancloud edge sunucuları adını vereceğiz. Şimdi, Almanya’dan satın alınmış ve Almanya’da kayıtlı Arvancloud anycast IP adres aralığı 185.143.233.0/24’ü ele alalım. Belirli bir ülkeden bir IP aralığı satın alınmış olması, aynı ülkeden adresler kullanılmasını gerektirmemektedir. Aşağıdaki resimde, www.arvancloud.ir adresine anycast çerçevesi içerisinde 185.143.233.2’de bulunan CDN edge sunucularından ulaşılabiliyor olması gerekir.
Bu resme göre, tüm edge sunuculara 185.143.233.2 adresi atanmıştır ve bu adres yakınlardaki yönlendiricilere tanıtılır. Dünyanın herhangi bir yerindeki kullanıcı Arvancloudn’u hizmet sunucusu olarak seçerse, DNS sunucuları alan adını 152.143.233.2 olarak çevirir. Daha önce de belirttiğimiz üzere internet yönlendiriciler kullanıcıları kendilerine en yakın sunuculara yönlendirmektedir. Dolayısıyla, New York (ABD) konumundaki bir kullanıcı www.arvancloud.ir adresini ziyaret ettiği zaman ilgili verileri New York’ta bulunan Arvancloud edge sunucularından alır. Benzer şekilde, kullanıcı İngiltere’nin Manchester şehrinden bağlanıyorsa Arvancloud’un Londra’da bulunan edge sunucularından yönlendirilecektir. Yani, 185.143.233.2 adresi için taleplere yanıt verecek edge sunucusu New York da dahil dünyanın herhangi bir yerinde konumlanmış olabilir.
Son olarak belirtilmesi gereken bir diğer husus ise, DNS sunucuları yoluyla bir alan adının yurtdışındaki bir IP adresine dönüştürülmesi (bu örnekte Almanya’daki), ilgili sunucunun o ülkede bulunduğu ve trafiğin yurtdışına aktarıldığı anlamına gelmez.