SDN’in ne olduğunu anlamak için, Microsoft dünyasında kullanılan dizin hizmeti hakkında biraz konuşmalıyız.
Eskiden, merkezi yönetim veya otomasyon olmaksızın tek tek çalışan sunucular ve istemci makinelerine sahiptik. Daha sonraları diğer tüm makineleri kontrol edebilen, bunu yapılandırıldığımız ilkelerle gerçekleştiren, bir etki alanı denetleyicisi (domain controller) kavramını kullanmaya başladık.
Şimdi şöyle sorabiliriz; yönlendiriciler, katman 2 anahtarları ve çok katmanlı anahtarlar gibi ağ aygıtlarıyla da benzer bir konsepte sahip olabilir miyiz?
Cevap; daha statik konfigürasyon kontrollü ağdan ziyade, ağın yazılım tabanlı kontrolü kavramını ifade eden SDN (Yazılım Tanımlı Ağ) kullanılarak yapılabilir. Ağ programlanabilirliği terimi, ağın yazılım kontrolüne daha fazla odaklanmak anlamına gelir.
Bunu yapmak için, bir yazılımın, yönlendiricilerin ve anahtarların olası tüm farklı durumlarda nasıl çalışacağını kontrol etmemizi sağlayacak bir denetleyici kullanacağız ve bu, ağ cihazlarının yapılandırmasını dinamik ve hızlı bir süreç haline getiren anlık ihtiyaçlarımıza göre yapılacaktır.
SDN denetleyicisinin bizim için nasıl çalışacağını tam olarak anlamak için, yönlendiriciler ve anahtarlar gibi ağ aygıtlarının işlerini üç farklı katman veya düzleme (plane) bölerek nasıl çalıştığını anlamamız gerekir.
Veri Düzlemi (Yönlendirme Düzlemi)
Bir ağ aygıtının bir paketi ve çerçeveleri alması, işlemesi ve iletmesi gereken işleri ifade eder.
Bir ağ aygıtının veri düzleminde yaptığı yaygın işler:
- Veri bağlantısı çerçevesinde bir paketin kapsülünün açılması ve tekrar kapsüllenmesi (yönlendiriciler, Katman 3 anahtarları)
- Bir 802.1Q kanal başlığının eklenmesi veya kaldırılması (yönlendiriciler ve anahtarlar)
- Hedef MAC adresini MAC adres tablosuna eşleştirme (Katman 2 anahtarları)
- Hedef IP adresini IP yönlendirme tablosuna eşleme (yönlendiriciler, Katman 3 anahtarları)
- Verileri şifrelemek ve yeni bir IP başlığı eklemek (VPN işlemi için)
- Kaynak veya hedef IP adresini değiştirme (NAT işleme için)
- Filtreye bağlı bir mesajın atılması (ACL’ler, port güvenliği)
Kontrol Düzlemi
Veri Düzlemi, Kontrol Düzleminin sağladıklarına dayanarak ilgili işlemleri gerçekleştirir. Bu yüzden yönlendirme tabloları, MAC adres tablosu, yönlendirme protokolleri vb. bu düzlemde bulunmaktadır.
Ortak kontrol düzlemi protokolleri:
- Yönlendirme protokolleri (OSPF, EIGRP, RIP, BGP)
- IPv4 ARP
- IPv6 NDP
- Switch MAC öğrenimi
- STP
Yönetim Düzlemi
Veri düzlemini doğrudan etkilemez. Ancak, ağ mühendislerinin cihazları yönetmesine izin veren protokolleri içerecektir.
Ortak yönetim düzlemi protokolleri:
- Telnet
- SSH
- HTTP / HTTPS
Not: Anahtarlar söz konusu olduğunda, LAN switch’leri genel bir CPU’dan daha hızlı bir veri düzlemine ihtiyaç duyuyordu. Böylece yazılım, her zaman veri düzlemi işlemeyi gerçekleştirmek için özel bir donanıma sahipti.
Anahtarlama mantığı, CPU’da yazılımla değil, uygulamaya özgü tümleşik devrede (ASIC- application specific integrated circuit) oluşur. Bir ASIC, bir ağ aygıtında mesaj işleme gibi belirli amaçlar için oluşturulmuş bir yongadır.
ASIC, MAC adres tablosunda arama yapmak zorundadır, bu nedenle hızlı tablo araması için, anahtar MAC adres tablosu eşdeğerini depolamak için özel bir bellek türü kullanır: buna üçlü içerik adreslenebilir bellek (TCAM- ternary content-addressable memory) denir.
SDN mimarisini kısaca özetlemek gerekirse, ağ aygıtlarının hala var olduğunu ve hala verileri ilettiğini söyleyebiliriz, ancak kontrol düzlemi işlevleri ve konumu önemli ölçüde SDN ile değişecektir.
SDN Kontrolörleri &SBI / NBI
Daha önce de söylediğimiz gibi, SDN denetleyicileri, etki alanı denetleyicileri gibi davranacak ve dağıtılmış kontrol düzlemini (heri ağ cihazının kendi düzlemi) kullanmak yerine, merkezi kontrol düzlemini kullanacaktır.
SDN Denetleyici, kontrol düzleminin tümünü veya bir kısmını ağ cihazlarından alır ve merkezi olarak kendi başına yapar, sonra ağ cihazlarına ne yapması gerektiğini söyler.
Bir kontrolör, merkezi bir kontrol modelinde kontrol düzlemi için gereken işin çoğunu yapar;
- SDN denetleyici, ağı daha akıllı hale getirir, onlar için kararlar alabilir ve birçok ağ cihazına işlemşeri otomatik olarak dağıtabilir.
- SDN denetleyicisi standart bir dil ile birçok satıcıyı işleyebilir.
- SDN denetleyicisi değişiklikleri gerçekleştirir ve ihtiyaç duyarsa geri alabilir .
- SDN kontrolör gerçek zamanlı durumsal farkındalık özelliğine sahiptir, örneğin ağdaki tıkanıklıkları tespit edebilir.
- SDN denetleyici, GUI veya CLI ile fiziksel veya sanal olarak veya her ikisine erişmek için kullanılabilir.
- SDN denetleyicisinin ana hedefi ağdaki paketlerin akışını yönetmektir.
Flow (Akış): Bir cihaz ile yönlendirici gibi başka bir cihaz arasındaki iletişimdir.
SDN Flow (SDN akışı):SDN Kontrolcüsü ağ cihazına yapılandırma gönderebilir ve akışla başka bir şey yapmasına izin verebilir.
Unutmayın, SDN yönetim arayüzü ve ağ aygıtı arasında ortadaki bir adam gibi davranır.
SDN kontrolörlerinin kuzey yönlü (northbound) arayüzü NBI ve güney yönlü (southbound) arayüzü SBI vardır.
Northbound, yönetim düzlemine yani SDN Kontrolcüsü yöneticisine bağlanır ve yönetir.
Southbound, veri düzlemine yani arayüzlerin trafiğini kontrol etmek için ağ cihazlarına bağlanır ve yönetir.
Çoğu SDN çözümünün, openstack, VMware vSphere web istemcisi gibi kendi kullanıcı arabirimi vardır (Northbound API).
OpenFlow (standart) veya onePK API (Cisco tescilli) gibi Southbound API’ler vardır.
Unutmayın, SBI, NBI ve API hakkında konuştuğumuzda “arayüz” kelimesi yazılım arayüzlerini ifade eder.
Uygulama programlama arabirimi (Application Programming Interface-API): Başka bir uygulama ile veri alışverişi yapmak için bir uygulama (program) yöntemi.
SBI: Bir program (denetleyici) ile iki programın iletişim kurmasını sağlayan (ağ aygıtında) bir arabirimdir.
SBI örnekleri:
OpenFlow (ONF; https://www.opennetworking.org)
OpFlex (Cisco’dan; ACI ile birlikte kullanılır)
CLI (Telnet / SSH) ve SNMP (Cisco’dan; APIC-EM ile birlikte kullanılır)
NBI: Denetleyiciyi açar, böylece veriler ve işlevleri diğer programlar tarafından kullanılabilir, böylece ağ programlanabilirliği daha hızlı bir şekilde geliştirilebilir. Programlar, denetleyicinin API’lerini kullanarak denetleyiciden bilgi alabilir. NBI’ler ayrıca, denetleyicinin SBI’lerini kullanan aygıtlara akışları programlamak için denetleyicinin yeteneklerini kullanmalarını sağlar.
NBI örnekleri:
REST API
openstack
API Sanal Özel Bulut VPC’si
REST (Representational State Transfer- Temsili Durum Transferi): API üzerinden veri aktarımı için HTTP mesajlarını kullanan, uygulamaların farklı ana bilgisayarlarda oturum açmasına izin veren bir API türünü açıklar.
OpenStack: Bir veri merkezi genelinde büyük bir bilgi işlem, depolama ve ağ kaynağı havuzlarını kontrol eden bir bulut işletim sistemidir. Bunların tümü, yöneticilere kullanıcılarına bir web arayüzü üzerinden kaynak sağlama konusunda yetki verirken kontrol sağlayan bir gösterge panosundan yönetilir. https://www.openstack.org/software/
Bir yanıt bırakın