Professional Documents
Culture Documents
ICCNA Eğitimi
by Yavuz BULUT
Kıdemli Ağ Danışmanı ve Eğitmeni
BÖLÜM
200 - 301
- 14
Bölüm - 14
AĞ
46 Cisco Software Defined Access-SDA
45
Controller Tabanlı
I SDN and Controller Tabanlı Ağ’lar
Software Defined Networking (SDN) (Yazılım Tanımlı Ağ Oluşturma) Data Plane terimi, bir ağ cihazının bir mesajı iletmek için yaptığı görevleri ifade eder.
Bu bölüm de SDN ve Ağ programlanabilirliğinin en temel kavramlarını Başka bir deyişle, veriyi almakla, işlemekle ve aynı veriyi iletmekle ilgili her yaptığı şey
işleyeceğiz. Geleneksel ağ cihazlarında bulunan bazı işlevlerin bölünmesinden Data Plane’nin bir parçasıdır.
Data, Control, and Management Planes Adım 1: Host paketi default router’ı olan R1'e gönderir.
Adım 2: R1, alınan paket üzerinde bazı işlemler yapar, bir yönlendirme kararı verir ve
İlk olarak ağ cihazlarında ki bazı işlevlerden bahsedelim. Örneğin, Router’lar ve
paketi iletir.
switch’ler, ağ oluşturmak için birbirlerine fiziksel olarak kablolarla ve kablosuz
Adım 3 ve 4 : Router’lar R2 ve R3 ayrıca paketi alır, işler ve iletir.
olarak bağlanır. Switch’ler Ethernet frame’lerini iletir, router’lar IP paketleri iletir.
Network katmanı route’ları öğrenmek için routing protokolleri gibi birçok farklı
Bu verdiğimiz örnek router’da Data Plane aşamasında gerçekleşir.
protokol kullanırlar.
Ağ cihazları bu yaptığı her işlevi belirli bir Plane ile kategorize edilebilir. Bu
Kategoriler ise Data Plane, Control Plane ve Management Plane olarak üçe
ayrılır.
Ağ cihazlarında Data Plane aşamasında yaygın olarak yapılan bazı işlevlerin Geleneksel ağlar hem dağıtılmış bir Data Plane hem de dağıtılmış bir Control
detaylarına aşağıdaki listeden bakalım. Plane kullanır. Diğer bir deyişle, her cihazın bir Data Plane ve bir Control Plane’i
vardır. Aşağıdaki örnekte router’larda Data Plane ve Control Plane aşamalarını
■ Bir ethernet frame paketin kapsülden çıkarılması ve yeniden kapsüllenmesi
göstermektedir.
(Router ve Layer 3 Switch’ler)
■ 802.1Q Trunk Header ekleme veya kaldırma (Router ve Switch’ler)
■ Bir Ethernet Framin’deki hedef MAC adresini, MAC adres tablosu ile
eşleştirmek (Layer 2 Switch’ler)
■ Bir IP paketinin hedef IP adresini IP yönlendirme tablosuyla eşleştirme (Router
ve Layer 3 Switch’ler)
■ Verileri şifreleme ve yeni bir IP Header ekleme ( VPN] işlemleri için ) Şekil 45-2 Router’da Control ve Data Plane Aşamalarının Çalışma Mantığı
■ Source veya Destination IP adresini değiştirme ( NAT işlemi için)
Yukarıdaki şekilde, Control Plane protokolü olan OSPF tüm Router’larda çalışır. Her
■ Bir filtre nedeniyle bir mesajın silinmesi (ACL’ler ve Port Security işlemleri)
Router’daki OSPF IP Routing tablosuna route’ları ekler, kaldırır ve değiştirir. Geçerli
Listedeki tüm işlemler Data Plane aşamasını oluşturur, çünkü Data Plane mesaj
route’lar belirlendikten sonra, Data Plane gelen paketleri iletebilir. Aşağıdaki liste ,
başına yapılan tüm eylemleri içerir.
yaygın olarak Control Plane protokollerinin çoğunu içerir:
Control Plane terimi, Data Plane’i kontrol eden herhangi bir eylemi ifade eder. ■ IPv4 ARP
Zaten birçok Control Plane protokolünü biliyorsunuz, örnek olarak tüm IP ■ IPv6 Komşu Bulma Protokolü (NDP)
routing protokolleri Control Plane aşamasında çalışırlar. ■ Switchlerin MAC Adres öğrenmesi.
■ STP
Management Plane
Plane işlevlerini, Controller adı verilen ve merkezi bir uygulama olarak çalışan bir Kontrolün derecesi ve kontrolün türü büyük ölçüde değişir. Örneğin, Controller
yazılıma taşımak. cihazların dağıtılmış Control Plane’i değiştirerek tüm Control Plane işlevlerini
gerçekleştirebilir. Alternatif olarak Controller cihazların çalışma şeklini
Controllers ile Merkezi Yönetim
değiştirmeden dağıtılmış Data, Control ve Management Plane’lerinin devam eden
Çoğu geleneksel Control plane işlemi dağıtılmış bir mimari kullanır. Örneğin, her çalışmasını yönetebilir . Ve liste birçok varyasyonla devam ediyor.
Router kendi OSPF Routing protokol sürecini çalıştırır. İşlemleri yapmak için, bu
Bir Controller fikrini daha iyi anlamak için, bir SDN Controller’ının tüm önemli
dağıtılmış Control Plane süreçleri Router’lar arasındaki iletişimi kurmak için OSPF
Control Plane işlevlerini merkezileştirdiği Şekil 45-4'te gösterildiği gibi özel bir
protokol mesajları gibi mesajları kullanır. Sonuç olarak, geleneksel ağların dağıtılmış
durumu düşünün. İlk olarak Controller ağdaki cihazlara erişebilmesi için ağa
bir Control Plane kullandığı söylenir.
bağlanır. Ağ cihazlarının her biri hala bir Data Plane sahiptir; ancak, cihazların
Bir ağdaki herhangi bir işlevi yerine getirmek için dağıtılmış veya merkezileştirilmiş Control Plane işlevleri artık Controller tarafından gerçekleştirilir. Controller Data
mimarileri kullanmanın artıları ve eksileri vardır. Birçok Control Plane işlevi, Plane girişlerini doğrudan programlar. Ağ cihazları, routing tablolarını geleneksel
dağıtılmış bir mimariyle iyi çalışma konusunda uzun bir geçmişe sahiptir. Bununla dağıtılmış Control Plane işlemleriyle doldurmaz.
birlikte, merkezi bir uygulamanın yazılması, dağıtılmış bir uygulamaya göre daha
kolay olabilir çünkü merkezi uygulama, tüm verileri tek bir yerde toplar. Bu yeni
ortaya çıkan yazılım tanımlı mimariler dünyası (SDA), temelleri Controller adı verilen
merkezi bir Control Plane sahip bir merkezi mimariyi kullanır.
Southbound Interface
Bir SBI, Controller ve cihazların iletişim kurabilmesi için genellikle bir protokol içerir,
ancak genellikle bir uygulama programlama arayüzü (API - Application
Şekil 45-4 Centralized Control Plane and a Distributed Data Plane
Programming Interface) içerir. Bir API, bir uygulamanın (programın) başka bir
uygulama ile veri alışverişi yapması için bir yöntemdir. Programlar verileri işler,
böylece bir API iki programın veri alışverişi yapmasına izin verir. Bir protokol,
genellikle bir standartlar gövdesinden bir belge olarak varolsa da, bir API, bir ağdaki
programlar arasında yapılandırılmış verileri iletmek ve kopyalamak için bir program
tarafından kullanılabilen, genellikle kullanılabilir kodlar (işlevler, değişkenler ve veri
yapıları) olarak bulunur.
Northbound Interface
Bir merkezi bir kontrol modelinde Controller , Control Plane için gereken işin NBI'nin nerede olduğunu görmek için önce Controller cihazının kendisini
çoğunu yapar ve Ağ hakkında her türlü yararlı bilgiyi toplar. Controller ağ hakkındaki düşünün. Controller bir VM veya fiziksel sunucularda çalışan bir yazılımdır. Bir
tüm bu yararlı bilgiler için merkezi bir havuzunu oluşturabilir. Aşağıdaki liste uygulama, Controller ile aynı sunucu üzerinde çalışabilir ve iki programın iletişim
Controller’ın ağda topladığı bilgileri listeler; kurabilmesi için bir API olan bir NBI kullanabilir.
■ Ağdaki tüm cihazların listesi Aşağıdaki şekil tam da böyle bir örneği göstermektedir. Şekildeki büyük kutu,
■ Her bir cihazın yetenekleri Controller yazılımının bulunduğu sistemi temsil etmektedir. Bu Controller Java
■ Her cihazdaki interface’ler / portlar tabanlı bir yazılımdır ve Java tabanlı bir yerel API'ye sahiptir. Controller üreticisi
■ Her Port’un mevcut durumu başka bir şirket veya herhangi birisi, Controller’ın Java API kullanan aynı işletim
■ Topoloji - hangi cihazların hangi interface bağlandığı sisteminde çalışan bir uygulama yazabilir. Controller ile veri alışverişi yapmak için
■ Cihaz yapılandırması - IP adresleri, VLAN'lar vb. bu API’yı kullanarak uygulama ağ hakkındaki bilgileri öğrenebilir.
Bir Controller; Northbound Interface (NBI) açar, böylece verileri ve işlevleri diğer
programlar tarafından kullanılabilir ve çok daha hızlı ağ programlanabilirliğini
sağlar. Programlar Controller’ın API'larını kullanarak bilgi alabilir. NBI'ler ayrıca
programların, Controller cihazının SBI'larını kullanarak cihazlara giren akışları
programlamak için Controller’ın yeteneklerini kullanmasını sağlar.
I CCNA Eğitimi 200-301 Şekil 45-5 Java API: Java Applications Communicates with Controller
by Yavuz BULUT
BÖLÜM - 14 45 I Controller Tabanlı Ağ’lar
çözümünden bahsedeceğiz. NBI'larını kullanan tüm uygulamalarla çoğu Control Plane işlevini merkezileştirir.
Aslında Control Plane işlevleri olmayan ağ cihazlarını gösteren aşağıdaki şekil
■ OpenDaylight Controller
SDN'nin bu merkezileştirilmiş OpenFlow modelini temsil etmektedir.
■ Cisco Application Centric Infrastructure (ACI)
■ Cisco APIC Enterprise Module (APIC-EM) OpenFlow modelinde uygulamalar cihazlara ne tür yönlendirme tablosu
girişlerinin ekleneceğini dikte etmek için Controller’ında desteklediği herhangi bir
OpenDaylight and OpenFlow
API'yı (NBI'ler) kullanabilir, ancak ağ cihazlarının OpenFlow'u destekleyen cihazlar
Yaygın bir SDN biçimi olan Open Networking Foundation'dan (ONF) gelir ve Open olması gerekir.
OpenDaylight açık kaynaklı SDN Controller olarak 2010'larda konsolidasyon Cisco 2010’larda OpenDaylight Controller modeli olan Cisco Open SDN Controller
sürecinden ortaya çıkan en başarılı SDN Controller platformlarından biridir. Tüm (OSC) adı verilen ticari bir sürümünü çıkardı. Bu Controller ODL projesi için
üreticiler açık kaynaklı Controller’ı kendi ürünlerinin temeli olarak kullanabilir ve geliştirilen modelden esinlenerek yapıldı.
her üretici temel özelliklerden ziyade ürünü farklılaştırma kısmına odaklanabilirler.
Cisco artık Cisco OSC'yi üretmiyor ve satmıyor, geçmiş ürünlerden de bilginiz
Şekil 45-6 Architecture of NBI, Controller Internals, and SBI to Network Devices
Cisco veri merkezi için ağ oluşturmayı yeniden tasarlarken, SCI tasarımcıları bir veri
merkezinde çalışan uygulamalara ve ihtiyaç duydukları şeylere odaklandılar. Sonuç
olarak, uygulama mimarileri etrafında ağ oluşturma konseptleri oluşturdular.
Cisco, ağ altyapısını uygulama merkezli bir hale getirdi, dolayısıyla Cisco’nun SDN
veri merkezi çözümünün adı: Application Centric Infrastructure (ACI) ( Uygulama
Merkezli Altyapı )
Cisco ACI, Spine ve Leaf adı verilen özel bir fiziksel switch topolojisi kullanır. ACI ile
fiziksel ağda, sağ taraftaki şekil de gösterildiği gibi bir dizi Spine Switch ve bir dizi
Leaf switch’ler bulunur. Şekil 45-7 Spine-Leaf Network Design
APIC-EM Basics
mevcut ağlardaki cihazları değiştirmeden kurumsal SDN çözümleri sundu. ■ Yol İzleme: Kullanıcı bir kaynak ve hedef cihaz sağlar ve uygulama, her adımda
yönlendirme ayrıntılarla birlikte ağdaki yolu gösterir.
Ağdaki cihazların yeni SDN özellikleri yoksa, Controller tabanlı bir mimari ne gibi
■ Tak ve Çalıştır: Bu uygulama, yeni bir cihazı kutusundan çıkarabilmeniz ve
avantajlar sağlayabilir? Şekil 45-8’deki avantajları sağlayabilir.
Controller’daki otomasyon yoluyla onu IP'ye erişilebilir hale getirebilmeniz için tak
Cisco, 2019'da mevcut APIC-EM ürünü için satışın sona erdiğini duyurdu. APIC-EM çalıştır desteği sağlar.
ürününün işlevlerinin birçoğunu, Cisco DNA Center (DNAC) ürününün temel ■ Kolay QoS: Controller’da birkaç basit adımla, her cihazda karmaşık QoS
46
Cisco Software- I SDA Fabric, Underlay, and Overlay
Defined Access
I DNA Center and SDA Operation
(SDA)
oluşturma yöntemlerine kıyasla Campus LAN'ları oluşturmak için tamamen yeni destekli cihazları dinamik olarak bulmak ve bu cihazların IP bağlantısını sağlamak
bir yöntemdir. Cisco 2010'ların ortalarında SDA ile Campus LAN’ları yeniden için kablolu ve kablosuz bağlantıları kullanır.
tasarlamaya başladı. Fabric (Yapı) : Ağ üzerinden veriyi iletmek için tüm özellikleri bir arada sunan
overlay ve underlay kombinasyonu kullanır..
SDA, bir Controller ve çeşitli API'lar ile Yazılım Tabanlı Mimari modeli kullanır. Bu
mimaride de halen Switch’ler, Router’lar, kablolar ve çeşitli uç noktaları içeren
fiziksel bir ağ kullanılıyor. Yandaki Şekil’de de gösterildiği gibi Dijital Ağ Mimarisi
(DNA) yazılımı merkezi Controller oluyor, bir grafik user interface (GUI) ve API’ları
kullanarak otomasyon sağlanıyor. Kısaca DNA Center, SDA ağlarının Controller’ı
oluyor..
Mimari olarak Controller SBI tarafı şunları içerir; Fabric, Underlay ve Overlay.
SDA yapısı için yeni cihazlar almak mevcut cihazları kullanırken karşılaşılabilecek Şekil 46-3 SDA'da VXLAN Kapsüllemesinin Temelleri
birçok zorluğu ortadan kaldırır. Uyumlu donanım ve yazılımları kolayca sipariş Bunun işe yaraması için, önce Underlay 172.16.0.0/16 IPv4 adres alanı kullanılarak,
edebilir ve DNA Center ile, tüm underlay özelliklerini otomatik olarak tüm switch’leri bu IP adetleri ile yapılandıracaktır. Aşağıdaki şekilde her biri
yapılandırabilirsiniz. gösterilen underlay IP adresine sahip dört switch’li küçük bir SDA tasarımını
gösterir (172.16.0.0/16 adres alanından).
Cisco DNA Center yönettiği cihazlarla iletişim kurabilmesi için birkaç Southbound
API'yi destekler. Bunları iki kategori olarak düşünebilirsiniz:
RESTCONF
Cisco DNA Center, çok sayıda eski Cisco cihazları ve işletim sistemi sürümlerini
destekleyebilmek için eski protokollere ihtiyaç duyar. Zamanla Cisco, daha güncel
donanım ve yazılımlarına NETCONF ve RESTCONF için destek ekliyor.
(www.cisco.com/go/primeinfrastructure) ürünü kullanılmaktadır. Cisco Prime platformunda bir uygulama olarak çalışır. PI sunucusu, sunucularınız üzerinde
Infrastructure, uzun yıllar boyunca şirketlerde ağ yönetimi için kullanılmıştır. kurulup çalıştırılacak bir yazılım paketi olarak veya fiziksel bir cihaz olarak
Aşağıdaki özellikleri içerir: Cisco'dan satın alınabilir.
Şekil 46-5 DNA Center Topology Map Şekil 46-6 DNA Center'dan Bir Cisco 9300 Switch Hakkında Ayrıntılara Gelin ve Tıklayın
GUI mekanizmaları, daha fazla veya daha az ayrıntıya tıklama yeteneği ile nispeten Cisco DNA Center ile ilgili bazı videoları kullanmak ve izlemek için biraz zaman
sezgiseldir. Şekil 45-6, Şekil 45-5'daki topolojideki switch’lerin birinin üzerine gelip ayırmanızı tavsiye ederim. https://developer.cisco.com adresinden Cisco DNA
tıkladıktan sonra, biraz daha ayrıntılı gösterir. Center ile pratik yapmak için Cisco DNA Center sanal laboratuvarlarını
bulabilirsiniz.
Geniş anlamda, Cisco DNA Center ile Cisco PI gibi geleneksel ağ yönetimi ■ Şifreli trafik analizi: Cisco DNA Center şifrelenmiş trafikte bile güvenlik tehditlerini
platformları arasında birkaç temel fark vardır. En büyük fark: Cisco DNA Center, tanımak için değişik algoritmalar kullanılmasını sağlar.
SDA'yı desteklerken diğer yönetim uygulamaları desteklemez. Cisco PI hala Cisco ■ Cihazların sağlık durumları hakkında kapsamlı bilgiler verir.
DNA Center'da bulunmayan bazı geleneksel yönetim özelliklerine sahiptir. Bu ■ Ağda zaman yolculuğu: Mevcut davranışları karşılaştırma yapmak için geçmiş
nedenle, Cisco DNA Center'ın SDA desteği gibi gelecekteki özelliklere odaklanırken istemci performansını bir zaman çizelgesinde gösterir
bu özelliklerin çoğuna sahip olduğu PI'yi geleneksel cihaz yönetimi için kapsamlı
olarak düşünün.
■ EasyQoS: Manuel olarak yapılandırması karmaşık olan QoS'i Cisco DNA Center'dan
yalnızca birkaç basit seçenekle yapabilirsiniz.
Not : Cisco, DNA Center geleneksel ağ yönetimi özelliklerini, Cisco PI ile kıyaslandığında, DNA
I CCNA Eğitimi 200-301 Center'ın PI'ın yerini alabileceği noktaya kadar güncellemeye devam etmeyi umuyor.
by Yavuz BULUT
BÖLÜM - 14
47
REST ve JSON'u
I REST Tabanlı API’ler
I JSON'u Yorumlama
Uygulamalar, iletişim kurmak için uygulama programlama arayüzlerini ( API- REST API'ler, bir REST API'yi neyin oluşturup neyin oluşturmadığına ilişkin bir
Application Programming Interfaces) kullanır. Bunu yapmak için, bir program dizi temel kuralı izler. REST API'lerin yaratıcısı Roy Fielding tarafından
başka bir program tarafından kullanılan değişkenleri ve veri yapılarını öğrenebilir, tanımlanan altı özelliği içerir. (Https://restfulapi.net adresinde iyi bir özet
bu değerlere göre mantıksal seçimler yapabilir, bu değişkenlerin değerlerini bulabilirsiniz). Bu altı özellik
değiştirebilir, yeni değişkenler oluşturabilir ve değişkenleri silebilir. API'ler, farklı
bilgisayarlarda çalışan programların işbirliği içinde çalışmasına ve bir hedefe ■ Client/server architecture
ulaşmak için veri alışverişinde bulunmasına izin verir. ■ Stateless Operation
■ Clear statement of cacheable/uncacheable
API yazılım dünyasında, bazı uygulamalar API'yi kullanan diğer birçok uygulama ile
■ Uniform Interface
birlikte bir API oluşturur. Yazılım geliştiricileri, diğer uygulama yazılımlarının ilk
■ Layered
uygulamanın özelliklerinden yararlanabilmesi için yazılımlarına API'ler ekler.
■ Code-on-Demand
Bir yazılımcı uygulama yazarken bir miktar kod yazar, ancak yazılımcı verileri ve
Bu özelliklerin ilk üçü, bir REST API'nin nasıl çalıştığının temelini oluşturur. Bu ilk
işlevleri sağlayabilen bazı API'leri kullanarak yazılması gereken yeni kod miktarını
üç özelliği ağ oluşturma REST API'leri ile çalışırken daha kolay görebilirsiniz,
azaltarak daha az kod yazarak daha fazla iş yapabilir.
şimdi bu ilk üç özelliğe bakalım.
Şekil 47-1 REST ile Client / Server İşlemi sayfayı her talep ettiğinizde güncellemek ve yeni bir liste sağlamak isteyecektir.
REST APIs and HTTP Read: İstemcideki değişken yapıların ve değerlerin bir kopyasını depolayarak,
İki programın veri alışverişine izin vermek için API'ler kullanılır. Bazı API'ler, aynı sunucuda bulunan değişkenlerin geçerli değerini almasını (okumasını) sağlar.
bilgisayarda çalışan programlar arasında bir arayüz olarak tasarlanabilir, böylece Update: İstemcinin sunucuda bulunan değişkenlerin değerini değiştirmesine
programlar arasındaki iletişim tek bir işletim sistemi içinde gerçekleşir. Diğer (güncellemesine) izin verir
bilgisayarlarda çalışan programlar için birçok API'nin kullanılabilir olması gerekir, bu Delete: İstemcinin sunucudan farklı veri değişkenleri örneklerini silmesine izin verir
nedenle API, API tarafından desteklenen ağ protokollerinin türünü tanımlamalıdır
Örneğin, bir DNA Controller’ın Nourthbound REST API'sini kullanıyorsanız, yeni bir
ve birçok REST tabanlı API, HTTP protokolünü kullanır.
güvenlik politikası gibi yeni bir şey oluşturmak isteyebilirsiniz. Programlama
REST tabanlı API’leri geliştirenler genellikle HTTP'yi seçerler çünkü HTTP'nin perspektifinden bakıldığında, güvenlik politikası, değişkenler tarafından dahili
mantığı, REST API'leri için daha genel olarak tanımlayan bazı kavramlarla eşleşir. olarak temsil edilen DNA Controller’da bir dizi yapılandırma ayarı olarak mevcuttur.
HTTP, REST ile aynı ilkeleri kullanır, istemci / sunucu modeli ile çalışır; stateless Bunu yapmak için, bir REST istemci uygulaması, DNA Center REST API'si aracılığıyla
operation modelini kullanır ve nesneleri önbelleğe alınabilir veya önbelleğe DNA Controller üzerinde değişkenler oluşturan DNA Center RESTful API'yi
alınamaz olarak işaretleyen başlıklar içerir. kullanarak bir oluşturma eylemi kullanır. Controller’da yeni konfigürasyon
oluşturma işlemini CRUD eylemlerini kullanılarak API aracılığıyla gerçekleştirilir.
Software CRUD Actions and HTTP Verbs
HTTP, kısmen REST ile iyi çalışır çünkü HTTP, CRUD paradigmasındaki genel
Yazılım endüstrisi bir uygulama tarafından gerçekleştirilen dört ana eylem için
program eylemleriyle eşleşen Verb’lere sahiptir. Tablo 47-1 HTTP Verb ve CRUD
akılda kalıcı bir kısaltma olan CRUD kullanır. Bu eylemler
terimlerini listeler.
Data modelleme dilleri bir metni bir ağ üzerinden gönderebilmek veya bu metni Genişletilebilir Biçimlendirme Dili (XML), daha eski biçimlendirme dilleri için bazı
bir dosyada depolamak amacıyla değişkenleri tanımlamak için metni kullanma iyileştirmeler yapmak için daha sonra geliştirildi. Bir web sayfasında kullanılacak
yöntemleri sağlar. Data modelleme dilleri bize değişkenleri herhangi bir belirli değişkenleri tanımlayabilecek bir biçimlendirme diline ihtiyacı vardı. XML,
programlama dili tarafından kullanılan dahili gösterimler yerine metinle temsil değişkenleri, değerleri ve veri yapılarını tanımlamak için birçok özelliğe sahip bir
Her Data modelleme dili API sunucularının verileri döndürmesini sağlar, böylece XML ile JSON karşılaştırıldığında, her ikisi de insanlar tarafından okunabilir olmaya
API istemcisi API sunucusunda bulunan veri yapılarının yanı sıra aynı değişken çalışır, ancak XML’i okumak biraz daha zordur. Örneğin, HTML gibi, XML de
adlarını çoğaltabilir. Veri yapılarını açıklamak için veri modelleme dilleri liste aşağıdaki şekilde görüldüğü gibi her değişken için başlangıç ve bitiş etiketleri
değişkenleri, sözlük değişkenleri ve diğer daha karmaşık veri yapıları hakkındaki kullanır. Örnekteki vurgulanan satırda, <macAddress> ve </macAddress> etiketlerin
fikirleri ileten özel karakterler ve kurallar içerir. arasında bulunan değerle bir değişken adını belirtir.
JSON'un ayrıntılarını IETF RFC 8259'da ve www.json.org dahil olmak üzere İnternet
aramalarında bulunan bir dizi sitede bulabilirsiniz.
JSON'u Yorumlama
JSON komut satırı hakkında hiçbir şey bilmeden bile Cisco Router ve Switch’ler ■ Value: İki nokta üst üste işaretinden sonra, key değerini temsil eden öğe.
hakkındaki önceki bilgilerinizden muhtemelen anlayabilirsiniz. Aşağıdaki örnek de ■ Metin(Text): Çift tırnak içinde listelenmiştir.
JSON komut satırında iki cihazdaki Interface’lerin bir listesini gösterdiğini ■ Sayısal(Numeric): Tırnak işaretleri olmadan listelenir.
muhtemelen anlayabilirsiniz. ■ Dizi(Array): Özel bir değer [ ]
■ Nesne(Object): Özel bir değer { }
■ Multiple Pairs: Multiple Key Value çiftini listelerken, çiftleri virgülle ayırın
her çiftin sonu (son çift hariç).
Bu kurallardan bazılarıyla çalışmak için Örnek 47-4’nin JSON verilerini göz önünde
Örnek 47-3 Router Interface’lerini Listeleyen Basit JSON
bulundurun ve üç Key: Value Pairs odaklanın. Örnekten sonraki metin, örneği analiz
edecektir.
JSON Key Yorumlama: Value Pairs
Bağımsız değişken adları ve değerleri olarak düşünebileceğiniz JSON'daki Key:
Value Pairs: ilgili şu kuralları gözden geçirelim.
■ Key: Value Pairs: İki nokta üst üste işaretinden önce ve iki noktadan sonraki
Örnek 47-4 One JSON Object (Dictionary) with Three Key:Value Pairs
değerle bir Key: Value Pairs’i tanımlar.
■ Key: İki nokta üst üste işaretinden önce, çift tırnak içinde, bir değere gönderme
Diğer özel karakterlere gelince, virgüllere ve süslü parantezlere dikkat edin. İlk iki
yapan ad olarak kullanılan metin.
Key: Value Pairs: virgülle biter, yani onu başka bir Key: Value Pairs: izlemelidir. JSON
verilerini başlatan ve sonlandıran süslü parantezleri, tek bir JSON Object’i belirtir.
Veri yapılarını basit bir değerle Key: Value Pairs: ötesinde iletmek için JSON Object
ve JSON Array’leri kullanır. Object biraz esnek olabilir, ancak çoğu kullanımda bir
sözlük gibi davranırlar. Diziler (Arrray) bir dizi değeri listeler. JSON Object ve Array
Örnek 47-5 A JSON Snippet Showing a Single JSON Array (List)
için komut satırının nasıl yorumlanacağına bakalım.
■ { } - Object (Nesne): Bir süslü parantez çifti içine alınmış bir Array ve Key: Value Şimdi, Şekil 47-4'deki JSON verilerinin tüm yapısını düşünün. Metni başlatmak ve
Pairs’den oluşur. bitirmek için eşleşen bir çift süslü parantez vardır ve bir nesneyi (Object) içine alır.
■ [ ] - Array (Dizi): Köşeli parantez çifti içine alınmış bir dizi değer (Key: Value Pairs) Bu nesne iki tane iki nokta üst üste içerir, bu nedenle nesnenin içinde iki Key: Value
değil.. Pairs: vardır.
■ Key (Anahtar): Bir nesnenin (Object) içindeki tüm Key: Value Pairs’ler önceki Key:
Value Pairs’in kurallara uyar.
■ Value Inside Arrays (Dizilerin içindeki değerler): Örneğin, metnin etrafında çift
tırnak, sayıların etrafında tırnak işareti yoktur).
Örnek 47-5, JSON formatında tek bir diziyi (Array) göstermektedir. JSON verilerinin
köşeli parantez [ ile başladığına ve ardından üç metin değerini listelediğine dikkat
edin. Daha sonra bir köşeli parantez ] ile biter.
Şekil 47-4 Accurate/Complete JSON Data with One Object, Two Keys, Two JSON List Values
I CCNA Eğitimi 200-301
by Yavuz BULUT
BÖLÜM - 14 47 I REST ve JSON'u Anlamak
JSON, ihtiyaçlarınıza bağlı olarak boşluklara izin verir veya vermez. İnsanlar için,
boşlukla organize edilmiş ve hizalanmış metinlerle JSON okumak çok daha kolay
olabilir. Örneğin, eşleşen açılma ve kapanma parantezlerinin aynı satırda
bulunması, hangi parantezlerin hangisiyle bittiğini bulmayı çok daha kolay hale
getirir.
48
Ansible, Puppet ve I Ansible, Puppet ve Chef Temelleri
Chef'i Anlamak
I Yapılandırma Yönetim Araçlarının Özeti
araçlarının ücretli ve ücretsiz versiyonları vardır, ancak bazı araçlar Windows işletim cihazın yapılandırmasını temsil eder.
sisteminde çalışmadığı için Linux üzerinde çalıştırmanız gerekebilir. ■ Variables (Değişkenler): YAML kullanılarak, bir dosya Ansible'ın şablonlara ikame
edeceği değişkenleri listeleyebilir.
Bu üç yazılım aracıda donanım tabanlı sunuculardan sanallaştırılmış sunuculara
geçişin bir parçası olarak ortaya çıktı. Sanal Sunucuların sayısı artmaya başlayınca Ansible, ağ cihazlarını yönetmek için aracısız bir mimari kullanır. Ansible'ın ağ
VM'leri oluşturmak, yapılandırmak ve kaldırmak için çeşitli otomasyon yazılımlarına cihazında çalışan herhangi bir koda (aracıya) güvenmediği anlamına gelir. Bunun
ihtiyaç doğdu. yerine Ansible, ağ cihazlarında değişiklikler yapmak ve bilgi almak için SSH veya
NETCONF özelliklerini kullanır. SSH kullanılırken, Ansible’da kullanıcılarının yaptığı
Ansible
gibi cihazda değişiklikler yapar, ancak işi bir insan yerine Ansible koduyla yapar.
Ansible'ı (www.ansible.com) yazılımını kurmanız için Mac, Linux veya bir Windows
Ansible, pull (çekme-veri alma) modeli yerine Şekil 48-1’de gösterildiği gibi Push
‘da bir Linux VM üzerine kurabilirsiniz. Ücretsiz açık kaynak sürümünü kullanabilir
(itmek- veri göndermek) modelini kullanır (Puppet ve Chef pull modelini kullanır).
veya ücretli Ansible Tower sunucu sürümünü kullanabilirsiniz. Kurulduktan sonra
Ansible'ı kurduktan sonra Playbooks ve diğer Ansible dosyalarını oluşturmanız ve
aşağıdakiler gibi birkaç dosya oluşturulur:
düzenlemeniz gerekir.
Puppet
Puppet (www.puppet.com) kullanmak için bir Linux işletim sistemine kurarak Puppet, ağ cihazları desteği için tipik olarak aracı tabanlı bir mimari kullanır. Bazı ağ
başlayabilirsiniz. Test için kendi Linux sunucunuza kurabilirsiniz ama normal cihazları cihaz üzerinde bulunan bir araç aracılığıyla Puppet desteğini etkinleştirir.
kullanım için onu Puppet master adlı bir Linux sunucusuna kurmanız gerekir. Ancak her Cisco işletim sistemi Puppet aracılarını desteklemez, bu nedenle Puppet
Ansible'da olduğu gibi, ücretli veya ücretsiz sürümleri kullanabilirsiniz. Öğrenmek bu sorunu bazı harici bilgisayarlarda çalışan bir proxy aracı kullanarak çözer
ve test etmek için ayrı bir sunucu olmadan Puppet'i öğrenmeye başlayabilirsiniz. (Agentless işlem olarak adlandırılır). Harici aracı daha sonra, Şekil 48-2’da
gösterildiği gibi, ağ cihazı ile iletişim kurmak için SSH kullanır.
Puppet yüklendikten sonra, aşağıdakiler gibi farklı bileşenlere sahip birkaç önemli
metin dosyası da kullanır:
Chef
Puppet aracı (Agent) cihazda daha önceden etkinleştirilmelidir, aşağıdaki şekilde Chef (www.chef.io), Ansible ve Puppet'te olduğu gibi, kurduğunuz ve çalıştırdığınız
gösterildiği gibi bu yapılandırmanın aygıtta görünmesini sağlamak için Pull bir yazılım paketidir. Chef şirketin birçok ürünü vardır, Chef Automate yazılımı ise
modeli kullanır. Yüklendikten sonra bu adımlar gerçekleşir çoğu insanın basitçe Chef olarak adlandırdığı üründür. Puppet'te olduğu gibi
Chef’de yazılımını da bir sunucuya yükleyerek çalıştırırsınız.
Adım 1: Puppet sunucusundaki tüm dosyaları oluşturur ve düzenlersiniz.
Adım 2: Her cihaz üzerindeki aracıyı veya bir proxy aracısını yapılandırmanız ve Chef yazılımını yüklendikten sonra aşağıdakiler gibi farklı bileşenlerle birkaç metin
Adım 3: Agent, sunucudan bildiri ayrıntılarını çeker ve bu da Agent’a ■ Resource: Chef tarafından yönetilen yapılandırmarı yönetilen nesnelerdir.
yapılandırmasının ne olması gerektiğini söyler. ■ Recipe: Kaynaklara ne zaman ve nasıl hareket edip etmeyeceğini belirlemek için
Adım 4: Agent cihaz yapılandırmasının güncellenmesi gerekiyorsa, Puppet aracı, uygulanan Chef mantığı.
cihaz yapılandırmasını güncelleyen aracı ile gerekli tüm ayrıntıları almak için ek ■ Cookbooks: Daha kolay yönetim ve paylaşım için gruplandırılmış aynı tür işler için
çekimler gerçekleştirir. bir dizi kolaylıklar sağlar.
■ Runlist: Belirli bir cihazda çalıştırılması gereken Recipe’ların sıralı bir listesi.
Chef Puppet'e benzer bir mimari kullanır. Ağ cihazları için bir agent çalıştırır. Cisco
cihazının bir Chef istemcisini desteklemediğini için Ansible ve Puppet'in daha fazla
kullanılmaktadır.
www.udemy.com
www.yavuzbulut.com