Tipik bir binada cihazlara takılı soket girişler önce duvar prizlerine ethernet kabloları ile (cat5,cat6) gider. Bu duvar prizleri kenar switch’lere ethernet kablolar ile bağlıdır.

Kenar switchler ise backbone switch’e bağlanırlar. Kenar switch’lerin backbone switch’e bağlanmasında genellikle fiber kablolama kullanılır. Switch’ler üzerlerinde ethernet (Ethernet, FastEthernet, GigabitEthernet) ve fiber için SFP portlar barındırırlar.

Switch’lerin yerleştirilmesinde yine Access, Distrubution ve Core katmanlarından oluşan üç katmanlı mimari‘ye dikkat edilir. Dikkat edersek aşağıdaki yapıda single point of failure yok.

  • Switchlerin Temel Çalışma Biçimleri
  • Collision Domainler, Broadcast Domainler
  • MAC Öğrenme İşlemi, ASIC’s, Switch Forwarding Kararları

Switch’in Temel Çalışma Prensibi

Switch’in görevlerinın başında MAC adreslerini öğrenmek ve onları CAM table içerisinde tutmak gelir. Cihaz 5 dakika gibi bir süre ile öğrendiği MAC adreslerini tutar. Bu bilgi ile portlarını yöneterek cihazlar arasında trafiği akıllıca iletme görevini yerine getirir.

Switch ilk yüklenmesini gerçekleştirdiğinde hafızası yani CAM tablosu boştur. Neyin nerede olduğunu bilemez. Bir portunun ucuna bağlanmış bilgisayar bir frame yollar. Örneğin diğer bir porta bağlanmış cihazı pinglemeye çalışıyor olsun. Bu frame hedef ve kaynak MAC adresini içerir. Cihaz henüz hedef MAC adresinin hangi portunda olduğunu bilemeyecek fakat gelen paketin geldiği portu işaretleyecek.

  • Peki switch bir frame’in iletileceği portu bilmiyorsa ne yapar?
  • Cevap: Geldiği port harici tüm diğer portlardan yollar.

Eğer cihaz hareket vermezse 5 dakika sonunda MAC adresi tablodan silinecektir.

Bir switch’e her bir cihazdan her an gelen binlerce frame’i bunların, tablolanmalarını, idle time hesaplamalarını düşündüğümüzde bu işlemler yoğun bir faaliyet gerektirir. ASIC (Application Integrated Circuitry) burada devreye girer. Özel olarak hazırlanmış hardware chip’ler  bu fonksiyonları hardware seviyesinde gerçekleştirmeye olanak sağlar. Subprocessor chip, a little cpu,  offloaded like video card, video cards ofload video processing from he main processor of your computer. Show cpu command respond should be always very low. Because rarely does the switches cpu get hit unless you overwhelm the ASIC. And that usually happens when you use switches outside of what they design for. Like you use stackable workgroup switch something that made for %10 company in a datacenter. For there is tons of stuff. And you might maxout the ASIC and overflow to the CPU. And thats what you see things go bad really quick.

Broadcast Domain ve Collision Domain

Broadcast ve Collision Domain’ler bir diğer önemli konu. Çok da uzun olmayan bir süre öncesine kadar switch diye bir şey ortada yoktu. Yalnızca hub’lar vardı. Fakat hublar’ın büyük bir problemi vardı. O da yalnızca tek bir bilgisayarın aynı anda gönderim veya alım yapmasına imkan tanıyabilmeleriydi. Burada duplex hakkında konuşmuyoruz. Full-duplex ve half-duplex. Fakat konuşmak istediğimiz bu yeteneğin kendisi. Switch üzerinde birden fazla cihaz olduğunda yalnızca biri birim zamanda gönderim veya alım yapabilir. Ethernet’in içerisinde barındırdığı CSMA\CD ise burada ortaya çıktı. (Carrier Sense Multiple Access \ Collision Detection)

CSMA\CD bütün ethernet tabanlı cihazların kullandığı bir algoritmadır. Cihazlar ağı dinlerler. Eğer hub’u kullanan kimseyi duymazlarsa veriyi gönderirler. Bu cihaz sayısı arttıkça daha problemli hale gelir. Çünkü iki cihaz aynı anda dinleyip, hattın kullanılabilir olduğu kararını verip aynı anda gönderebilirler. Bu bir çakışma (collision) anlamına gelir. Veri karışır ve drop olur. Cihazlar ise bunu detect edebilirler. Collision detection buradan gelmektedir. Bu arada wireless ve token ring adı verilen eski teknoloji  CSMA\CA adı verilen bir algoritma kullanırlar. Bu collision detection’dan (çakışma tespiti) ziyade collision avoidence’dır. (çakışmadan kaçınma)  Network üzerinde tek bir cihazın token’a sahip olduğu ve token’a sahip olan yalnızca bir cihazın gönderebileceği token ring’in ethernet’e karşı yarıştığı eski günlerde collision’lardan kaçınmak yerine tespit edip tekrar göndermenin daha hızlı sonuç verdiği keşfedilmiştir. İlerleme bu yönde oldu. Fakat wireless collision’ları detect edemiyordu. Bu nedenle wireless’da bir adım geri atılarak CSMA\CA kullanıldı.

Bugün ise Hub’ları kullanmıyoruz. Switchleri kullanıyoruz. Switch’in her bir portu collision domain iken. Hub’da yalnızca bir collision domain vardır. Çarpışma alanı aynı anda kaç cihazın gönderebileceğini veya alabileceğini gösterir.

Hub’ın tamamı collision-domaindir. Switch’in her bir portu collision domain’dir.

Broadcast domain öteki yandan bir broadcast’in durdurulmadan ne kadar ilerleyebileceğini belirtir. Switch dünyasında bu tek bir broadcast domain’dir. Switch’lere switch’ler eklediğinizde yine tek bir broadcast domain olur. Çünkü broadcast mesajı switch’in diğer switch’e bağlandığı porttan geçecek ve broadcast olarak yayılacaktır. Tasarım gereği tek bir broadcast domain oluşur.

Switch’in tamamı broadcast-domaindir. Router’ın her bir portu broadcast domaindir.

MAC Adres Tablosu Yönetimi

Aşağıda bir sürü tipi STATIC olan adres görüyoruz. Bu adresler switch’in kendine aitler. Eğer switch biri ile konuşmaya ihtiyaç duyarsa bu MAC adreslerinden birini kullanacak. VLAN’lere geçtiğimizde bir switch’in farklı kimlikler alabildiğini göreceğiz. Bu MAC adresleri cihazın CPU portuna atanmış durumdalar. Esas bizi ilgilendiren ise DYNAMIC olan adresler.

Switch’in Fa1/0/41 portuna takılı olan bilgisayarın network kartının MAC adresini kontrol ettiğimizde eşleştiğini görüyoruz.

Gördüğümüz gibi Switch’deki ve bilgisayardaki formatlama birbirinden farklı. Hepsi aynı anlama geliyor. 12 karakterli hexadecimal MAC adresi.

Cihazdan ping attığımızda tabloya yeni bir dinamik girdinin eklendiğini görebiliriz.

Aşağıda debug mac address table management komutunu görüyoruz.

Debug Komutları: Cisco cihazlarda debug komutları olayları olduğu anda göstermek için kullanılır. Enterprise bir ortamda yapmak tehlikeli olabilir. Cihazın yük altında boğulmasına ve çökmesine sebebiyet verebilir. Bu nedenle debug komutları kullanılırken dikkatli olunmalıdır.

Yukarıdaki komutla cihazdan MAC adres tablosu ile ilgili bütün yaptıklarını rapor etmesini istiyoruz. Ardından bütün dynamic kayıtları sileceğiz.

MAC tablosunu temizledikten bir süre MAC adresimizin eklendiğini görüyoruz. Biz ping vs. gibi paket göndermesek de bilgisayarlar sebepsiz yere ortam trafiği yaratabilirler. Bu da onların MAC adres tablosuna eklenmesine neden olur.

Eğer bir switch’i çalışma ortamında duvardaki girişe taktığımızı farz edelim. Girişin öteki tarafındaki kablo duvarın ardından zeminin altına geçerek bazen direk MDF’e (Main Dist. Facility) genellikle IDF  (Intermediate Dist. Facility) ardından MDF’e gidecek şekilde kablolanmıştır. Karşı tarafta çok büyük ihtimalle başka bir switch var.

Switch duvardaki jak’a takıldığı anda komut satırımıza loglar düşmeye başlıyor. Switch’imizin bağlandığı switch’e bağlı broadcast yapan diğer cihazlar bunlar. Kapatmazsak kullanmamıza engel olabilir. “u all” komutu ile kapattıktan sonra tabloyu tekrar görüntülüyoruz.

Aşağıda baktığımızda bütün diğer cihazların aynı portta olduğunu görüyoruz.

Cihazların Ağ Üzerindeki Yerlerini Tespit Etmek

Switchlere Management IP Adresi Ataması

VLAN network yönetiminde ana konulardan birtanesidir. VLAN’ler switch fonksiyonelliğini birden fazla sanal network’e dağıtmamıza imkan sağlar.

  • Güvenlik
  • IP address management : Network’de kullanabileceğimiz daha fazla IP adresi elde etmek.
  • QoS

VLAN kullanmak için bir çok sebep vardır. VLAN destekleyen bir switch kutudan çıkarıldığı gibi VLAN kullanmaya başlar. Bütün portlar VLAN1  üyesidir. Bu default vlan’dir. Sadece cisco cihazlar üzerinde değil dünya üzerinde VLAN destekleyen bütün cihazlarda durum böyledir. VLAN1 fiziksel bir port değil sanal bir interface’dir. Yönetim amaçlı IP vermekte kullanılır. OSI modelde switch L2 bir cihaz olmasına rağmen bir IP adresine ihtiyaç duymasının sebebi uzaktan yönetmektir. Vlan1’e ister statik ister dinamik IP verebiliriz. Fakat bu bir network cihazı olduğundan DHCP yerine değişmeyen statik bir IP adresi vermek isteriz.

Speed, Duplex ve Collisionlar

Ethernet LAN’ları, local area network’ün çoğunlukla modern aygıtlara sahip olup olmadığına, özellikle de hub adı verilen bazı eski LAN aygıtlarının yerine switch’lere sahip olup olmadığına göre biraz farklı davranırlar.

Daha modern switch’leri kullanıldığında, hub’ları kullanırken gerekli olan half-dupleks iletişimden çok daha hızlı ve basit olan full-duplex iletişimi kullanabilir hale gelir.

Zaman içerisinde network hızları arttı.

  • Ethernet = 10MBPS
  • Fast Ethernet = 100 MBPS
  • Gigabit Ethernet = 1000MBPS
  • ….

Standartlar da değişti.

Half duplex: Cihaz şu anda bir frame alıyorsa, göndermek için beklemek zorundadır; Başka bir deyişle, aynı anda hem gönderip hem alamaz.

Full duplex: Cihaz göndermeden önce beklemek zorunda değildir; Aynı zamanda gönderip alabilir.

Bir switch üzerindeki yapılandırmada herhangi bir portu aşağıdaki gibi kontrol edelim.

Herhangi bir konfigürasyon girilmediğini görüyoruz.

Aşağıdaki gibi interface’imizin özelliklerini görüntüleyebiliriz.

  • Fast Ethernet : Interface’imizin tipi.
  • BW 10000 Kbit : Interface’imizin bant genişliği. Saniyede 10000 Kbit veri transferi yapabiliyor.
  • Auto-Duplex, Auto-Speed: Duplex ve speed’i diğer tarafla anlaşarak belirlemeye çalışacak. Bu her ne kadar iyi olsa da her zaman doğru çalışmayabiliyor. %90-%95 oranında doğru çalışsa ve günümüzde Gigabit Ethernet switchlerde düzeltilmiş olsa da farkında olmamız gereken bir durum bu. Firmaların ürettiği cihaz çeşitliliği ve zaman içerisinde ortaya çıkan farklı teknolojiler sebebiyle ortaya çıkabiliyor.

Hız genelde doğru tahmin edilse de problem duplex üzerine yoğunlaşıyor. Orijinal ethernet standartı geliştirildiğinde her şey hub tabanlıydı. Hub dünyasında half-duplex kullanılıyordu. İletişim telsiz stili aynı anda ya gönderecek ya da alacak şekilde yürütülüyordu. İkisini aynı anda yapamıyordu. Hublardan Switch’lere geçiş sağlandıktan sonra her bir port bir collision-domain oldu. Bu collision-domain aynı anda hem gönderimi hem de alımı destekler hale geldi. 1000MBPS’lik bir port gördüğümüzde – bu half duplex hızıdır, her network half duplex hızına göre tanımlanır – bu aynı anda 1000MBPS’yi gönderebilir ve alabilirsiniz anlamına gelir.

Duplex yanlış algılandığında bir taraf full diğer taraf half olarak kalır. Bir taraf hem gönderip hem alabileceğini düşünürken, öteki ya gönderip ya alabileceğini düşünür. Öteki tarafın gönderdiği frame’leri düşürmeye başlar. Buradaki problem cihazın yanması ya da bozulması değildir. Böyle olsaydı fark etmek daha kolay olurdu. Gerçekte olan şey ise ağın yavaşlamasıdır. Ağın yavaşlığı ise tek başına hiçbir şey ifade etmez.  Bu nedenle bir kabusa dönüşebilir. Bu zorluk sebebiyle sistemdeki eskiden tavsiye edilen sistemdeki önemli cihazlar üzerinde:

  • Server
  • Printer
  • Router
  • Switchler arasındaki uplink bağlantısı. – Switchlere bağlı başka switchler –

Auto detection’u bunların bağlı olduğu interface’ler üzerinde kullanmamaktı. Hardcode olarak yazmaktı.

Default olarak auto’dalardı. Şimdi aşağıdaki komutla görüntülediğimde,

  • Full Duplex, 100Mb/s olduğunu görüyorum.

Bu bizi başka bir ikilemde bırakıyor. FastEthernet dünyasında, FastEthernet ortaya çıktığında Hub’lar geniş olarak kullanıyordu. Eğer FastEthernet bir portda auto-detection hataya düşerse, default konfigürasyon 100Mb/s Half Duplex’di. RFC standardına göre öteki taraf auto’da kalırsa ve 100/H olarak ayarlayacak. Yani eğer bir tarafı F/100 olarak ayarlandığımızda örneğin karşı taraftaki serverın NIC kartını da F/100 olarak ayarlanmak zorundayız.

Gigabitethernet’e geçtiğimizde ise bu sorun çözüldü. Tavsiye de auto’da bırakmak şeklinde değişti. Gigabitethernet – Fast Ethernet bağlantısında yine problem görülebilir. Bu nedenle eğer sistemde bir Fast Ethernet cihazınız var ise ve bu önemli bir bağlantı ise o portları hardcode olarak bağlantının her iki tarafına da yazmak tavsiye edilir.