Cuma, 16 Kasım 2018

Software Defined Network (SDN) Nedir?

Merhabalar,

Sizlere bu yazımda yazılım tabanlı ağlardan yani Software Defined Network (SDN) ‘lerden bahsedeceğim.

SDN’lere geçmeden önce SDN’lerin ortaya çıkışında rol oynayan geleneksel ağlara değineyim;

Geleneksel ağlarda her bir router’ın içerisinde bir kontrol mekanizması ile bu kontrol mekanizmasından alınan emri yerine getiren bir data plane vardır. Olay şu şekilde gelişir;

Router’ların içinde yönetim ve kuralların yer aldığı bir management plane bulunur. Burada konfigürasyon işlemleri yapılır. Yani komşu router’dan router’a bir paket geldiği zaman basit halde kimden geldiği, kime gideceği bilgisine bakılır. Ve yönlendirme yazılımı adını verdiğimiz bir yazılımla beraber routing tablosuna göre gönderilecek bir sonraki verinin ne olacağına karar verilir. Bu yönlendirme yazılımı Open Shortest Path First yani en kısa yola öncelik veren algoritmalar olabileceği gibi farklı metriklere dayalı başka yönlendirme algoritmaları da olabilir. Bir diğer deyişle control plane software kısmıdır, ağın işletim sistemi gibi davranarak yapılacak işlemlerle ilgili kararlar verir. Bu yazılımın aldığı karar doğrultusunda da data plane’ de paket forwardlanır. Bunu yapan kısım device’tır, harware’dir.

Switch’in içinde control path ile data path, yani yazılım ile donanım bir arada bulunuyor. Bunlar aslında 2 farklı entity ama aynı yerde duruyorlar, tek entity gibi davranıyorlar. İşte sıkıntı burada ortaya çıkıyor.

Mesela bir modülde 10 satırlık bir hata olsun ve bunun değiştirilmesi gereksin. Eğer 100 tane switch’imiz varsa bu 100 tane switch’e tek tek gidip değiştirmemiz gerekiyor. Daha sonra sistem tekrar default ediliyor, sistem tekrar ayağa kaldırılıyor vs vs. Aynı zamanda kodlar üzerinde çıkacak herhangi bir bug zaman kaybı, maliyet kaybı, veri kaybı, prestij kaybı gibi bir sürü kayba neden oluyor. Bunların hepsi göz önüne alınarak “bu yazılımın, OS’in her bir device’ında olması bir sıkıntı, bunu başka türlü yapalım ki hata olduğu zaman ayağa kaldırması daha kolay ve daha az maliyetli olsun, n tane device ile uğraşmak yerine tek bir kod ile yapılabilsin “şeklinde bir karara varılıyor ve bu noktada SDN fikri ortaya atılmış oluyor.

SDN konseptinin temelinde data plane ile control plane’in yani yazılım ile donanımın birbirinden ayrılması yatar. Yazılım bütün ağı görüp üzerinde değerlendirme yapabilecek ve karar verebilecek şekilde merkezi bir noktaya çekilip data plane de ayrı bir yerde tutuluyor. Çünkü az evvel de bahsettiğim gibi yazılımda bir sorun olduğunda bunları ayırmak çok zor ve maliyetli oluyordu. Bu nedenle donanım bağımlılıktan çıkıp yazılıma yöneliyoruz, yazılımda bir sıkıntı çıkarsa tek tek n tane device üzerine gidip kodları execute edip run etmek yerine tek bir noktadan yazılımı değiştirip sistemi ayağa kaldırıyoruz, donanımı değiştirmeye gerek duymuyoruz.

Temel olarak baktığımızda SDN’in 3 tane plane’i var;

Burada da traditional ağlarda olduğu gibi control plane ve data plane var, ama bunlar artık ayrılmış durumda.

Application/Management Plane: Uygulamaların koştuğu yer.

Control Plane: Ağın işletim sistemi gibi çalışıyor. Api’lerden aldığı çıktıları kullanarak paketlerin nasıl yönlendirileceği bilgisini data plane’e iletiyor. Yada ağ üzerinde başka karar verilmesi gereken işlemler varsa ilgili kararları verip bu kararların uygulanmasını sağlıyor. Yani control plane,traditional sistemlerdeki gibi sadece paketin iletilmesinden sorumlu değil. Aynı zamanda ağa genel bir bakış sağlayarak ağ üzerindeki diğer karar verme işlemlerini gerçekleştiriyor.

Data Plane: Control plane’den aldığı bilgilere dayanarak forwarding işlemlerini gerçekleştiriyor.

Yazılım ile donanımın birbirinden ayrılması sonucunda ağın akıllı bir hale gelmesi sağlanmıştır. Çünkü control plane merkezi bir yerde olduğu için ağın bütününü görebiliyor. Yani ağ üzerindeki bütün switchlerin komşuluk ve yönlendirme tablolarına hakim. Dolaysıyla karar vermesi biraz daha akıllı hale gelmiş oluyor. Aynı zamanda ağın alt yapısını uygulamalardan soyutlamış oluyoruz. Data plane’lerin programlanabilir olması da bu sayede gerçekleştirilmiş oluyor.

3 Comments

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.