Yazılım ile Tanımlanan Ağ (SDN)
Fiziksel ve sanal servislerin çok daha hızlı devreye alındığı, kurulması ve işletilmesi çok daha basit, marka bağımlılığı olabildiğince azalmış, ölçeklenebilir, kurumların kendi ağları üzerinde kendi ihtiyaçlarına göre daha kolay uyarlamalar gerçekleştirebildikleri ağ sanallaştırmasıdır.
SDN Hakkında Detaylı Bilgi
Mevcut ağ yapıları günümüz gereksinimlerine cevap verebilecek şekilde tasarlanmamıştır. Geçmiş yıllarda ağ yapılarına birçok yenilikler/protokoller eklenmiş olmasına karşın bu yapıların hepsi kendi içinde özel bir soruna çözüm getirmek üzere hazırlanmış kapalı yapılardır. Bu yaklaşım her ne kadar soruna çözüm getirmiş gibi görünse de başka bir soruna yol açmıştır: karmaşıklık.
Büyük ağ yapılarına yeni bir cihaz eklemek veya yerini değiştirmek için birçok anahtar (switch), yönlendirici (router) ve güvenlik duvarında (firewall) ayarlamalar yapmak gerekmektedir. Buna ek olarak çalışan ağ cihazlarının üreticileri, modelleri, hatta üzerlerinde çalışan yazılımların sürümleri bile dikkate alınmak zorundadır. Bütün bunların doğal sonucu olarak ağ yöneticileri çok gerekmedikçe ağ üzerinde herhangi bir değişiklik yapmak istememekte, bu da statik bir ağ yapısına sahip olma sonucunu doğurmaktadır. Oysa günümüzde sunucu sistemleri sanallaştırma sayesinde son derece dinamik bir yapıya sahiptirler. Yeni bir sanal sunucuyu dakikalar içinde hazırlayan bir teknoloji kullanırken aynı sunucunun ağ ayarlarını yapabilmek için çok daha uzun bir zaman harcamak hem mantıklı değildir hem de mevcut ağ yapılarını gelişimin önünde engel haline getirmektedir.
Her ağ cihazında farklı üç sistem bulunmaktadır. Verileri bir yerden bir yere yollamaktan sorumlu olan “data plane”, hangi verinin nereye yollanacağına/yollanmayacağına karar vermekten sorumlu olan “control plane” ve bütün bunların ayarlarının yapılmasını sağlayan, cihazı yönetmenize izin veren “management plane”. Bu üç sistem her üreticide farklı olup, bazı üreticilerin değişik modellerinde bile farklılıklar gösterebilir. Her birini her üretici için ayrı ayrı öğrenmek gerekir. Bütün bunları yaptığınızda bile gerekli ayarlamaları yapmak için cihazlara ayrı ayrı bağlanmanız ve gerekli değişiklikleri yapmanız lazımdır. Yukarıda da anlattığımız gibi bu hem çok karmaşıktır hem de ağ yapınızı bir bütün olarak görmenizi, yönetmenizi zorlaştırır. Ağ yönetim yazılımları bu konuda size yardım etmek için tasarlanmışlardır ancak zaten karmaşık olan sisteme karmaşıklığı azaltmak için ek bir katman daha eklemek demektir.
Bütün bunların daha kolay bir yolu olması gerektiğini düşünen Berkeley ve Stanford üniversitelerindeki insanlar 2008 yılında “control plane” ile “data plane” ‘i birbirinden ayırıp, “control plane”i cihaz üzerinden merkezi bir yapıya almayı düşündüler. Böylece tüm cihazlar tek bir yerden ve tek bir arayüz ile kontrol edilebilecekler, programlanabileceklerdi. Cihazlar da verinin yollanmasından sorumlu olacaklardı. Bu çalışmaların sonucunda Yazılım ile Tanımlanan Ağ (SDN) kavramı ortaya çıktı.
Yandaki şekilde de görebileceğiniz gibi altyapı katmanında cihazlar bulunmakta. Kontrol katmanı cihazlardan alınmış ve farklı bir katman olarak merkezi bir yapı haline getirilmiş. Cihazlar ile kontrol katmanı arasındaki iletişim “open flow” adında bir protokol ile sağlanmakta. Bu protokol herkese açık, bu sayede herhangi bir üreticiye bağımlı olmuyorsunuz. Kontrol katmanının üzerinde de uygulamalar var. Bu uygulamalar ile kontrol katmanı arasındaki iletişim de API’ler aracılığı ile sağlanmakta. Bu API’ler araclığı ile kendi hazırladığınız yazılımlar doğrudan kontrol katmanı ile iletişim kurabileceği gibi güvenlik duvarı gibi ağ uygulamarı da bu katmanda bulunuyor ve kontrol katmanı ile herhangi bir uygulama gibi iletişim kuruyorlar.
SDN Yapısal Bileşenleri
SDN Uygulaması (Uygulama Katmanı)
SDN uygulamaları, ağ isteklerini ve ağdan bekledikleri davranışı doğrudan SDN kontrol ünitesine uygulama arayüzü (API) aracılığı ile ileten programlardır. Buna ek olarak genel ağ yapısını da SDN kontrol ünitesinden alıp kendi iç karar verme mekanizmaları için kullanırlar. Tipik bir SDN uygulaması SDN Kontrol ünitesi ile haberleşmek için bir veya birden fazla driver (API veya NBI olarak de isimlendirilebilir) ve yapmak üzere tasarlandığı işin mantıksal bileşenlerinden oluşur.
SDN Kontrol Ünitesi (Kontrol Katmanı)
SDN kontrol ünitesi tüm ağ operasyonunun yönetildiği mantıksal merkezi ünitedir. Görevleri arasında;
– SDN uygulamalarından gelen istekleri donanım katmanına (SDN Datapath) iletmek
– SDN uygulamasına ağın yapısını iletmek
– Altyapı katmanının ne yapacağını bilemediği için kendisine ilettiği paketlerin ne yapılacağına karar vermek sayılabilir.
Tipik bir SDN kontrol ünitesinde SDN uygulamaları ile haberleşmek için bir veya birden fazla driver (API veya NBI olarak de isimlendirilebilir), donanım katmanında yer alan ağ cihazları ile haberleşmek için gerekli olan arayüz (CDPI : Control Data Plane Interface) ve yapmak üzere tasarlandığı işin mantıksal bileşenlerinden oluşur.
SDN Datapath (Altyapı Katmanı)
Mantıksal bir ağ cihazı olarak tanımlanabilir. Üzerinde yer aldığı donanımın (network switch) tam kontrolüne sahiptir. Üzerinde yer aldığı donanımın tüm özelliklerini SDN kontrol ünitesine gösterebildiği gibi bu özelliklerin sadece bir kısmını da gösterebilir. Ağ paketlerini göndermek/almak görevini yürütür. SDN kontrol ünitesi ile Open-flow veya benzeri bir protokol kullanarak haberleşir.