"Enter"a basıp içeriğe geçin

Switch Protokolleri

Switch cihazları, L2 yönetimini hatasız, güvenli ve hızlı sağlamak için bazı protokoller kullanır. Bu yazıda en çok kullanılan protokolleri ve yapıları göreceğiz.

İlk olarak VLAN konusunu detaylı şekilde incelememiz gerekiyor.

VLAN

Fiziksel olmayan (logical) ağlar inşa etmemizi sağlar. Bir LAN, VLAN sayesinde farklı gruplara bölünür.
Şimdiye kadar hep aynı L2 cihazına bağlı uç cihazların aynı LAN üzerinde olduğunu söylemiştik. Ancak VLAN sayesinde bu değişebilir.
A ve B cihazları aynı switch’e bağlı 2 cihaz olsun. Fiziksel olarak aynı LAN üzerinde imiş gibi gözükseler de, VLAN sayesinde tıpkı farklı ağlarda bulunan 2 cihaz gibi davranabilirler.
Yani VLAN teknolojisi, bir ağı sanal ağlara (gruplara) ayırmamızı sağlar.(Logical Network) Ağı portlara göre ayırmış oluruz. Farklı Vlanlardaki portlar birbiriyle doğrudan iletişim kuramaz.
İki bilgisayarın doğrudan (L3 cihazı olmadan) bağlantı kurabilmesi için hem aynı LAN hem de aynı VLAN üzerinde olması gerekir.

Switch’in portlarından biri VLAN1, diğeri VLAN2 olarak ayarlanmış. Bu yüzden bağlantı kurulamaz.

Bu örnekte aynı bağlı oldukları portların VLAN numaraları aynı. Ama biri 192.168.1.x diğeri 192.168.2.x ağı üzerinde. Bu yüzden bağlantı kuramazlar.

 

Biz bir şey yapmasak da switch üzerinde bir VLAN oluşur. Ve tüm interface’ler bu VLAN’a dahildir. Yani varsayılan ayarlarda switch tek vlan’dan oluşan bir yapıdır.
Eğer ikinci bir VLAN açarsak ve bazı portları bu VLAN’a eklersek, iki farklı ağ elde etmiş oluruz.

Broadcast yayınının bir switch’in tüm portlarına iletildiğini söylemiştik. Bunun doğrusu, broadcast yayını aynı VLAN üzerindeki tüm portlara iletilir.
VLAN ile farklı ağlarda bulunun iki cihaz birbirinin broadcast mesajlarından etkilenmez. Yani switch aynı router gibi davranır ve mesajın diğer VLAN’lara ulaşmasını engeller. Her bir VLAN bir broadcast domaindir.
Bu durumda broadcast mesajı sadece bulunduğu VLAN üzerinde dolanır. Bu da bant genişliğinden tasarrufla beraber güvenliği de arttırır.

VLAN1 turkuaz, VLAN2 turuncu renkte gösterirmiş. Farklı VLAN’lar üzerindeki cihazlar birbiriyle konuşamaz. Bu yüzden Turuncu alandakiler turuncular ile, Turkuaz alandakiler Turkuazdakiler ile konuşabilir. Ayrıca broadcast mesajları diğer VLAN’lara taşınmaz. Yani Turkuaz bölgedeki bir bilgisayarın yaptığı broadcast yayını sadece Turkuaz bölgedeki cihazlara iletilir.

Ağlar mantıksal olarak bölündüğü için ekstradan bir güvenlik sağlanır. Aynı switch üzerinde birden çok ağ oluşturabildiğimiz için ek donanım maliyetinden de kurturabiliriz.

Daha önce 2 switchi birbirine bağladığımızda tüm portların aynı ağa dahil olduğunu söylemiştik. Bu varsayılanda böyledir.
Bir vlan oluşturduğumuzda iki switch de etkileneceği için farklı switchlerdeki cihazlar aynı vlan’a eklenebilir.

PC0,2,4, ve 6 farklı switch’lerde olsalar da aynı VLAN’dalar. Zaten farklı switchlerde de olsalar aynı LAN üzerinde olduklarından bağlanmalarında sorun olmaz. Örneğin PC0’dan PC4’e bir mesaj gönderilecekse önce Switch0’a gelir. İki switch arasındaki kablo üzerinden Switch1’e gider. Switch2 de mesajı PC4’e iletir. (Burada iki switch arasındaki kablo sıkıntı çıkaracak, ama bundan ileride bahsedeceğiz)

Sonuç olarak VLAN sayesinde ağımızı ölçeklendirerek daha kolay kontrol edilebilir, ölçeklenebilir ve daha güvenli bir ortam oluşturabilir, bu sırada maliyeti de düşürebiliriz.

VLAN türleri : Amaçlarına göre bir çok farklı VLAN türü vardır.
Normalde bir switch’e bağlı tüm portlar VLAN1 denen default VLAN’a bağlıdır. Bu ağ varsayılan olarak dışarıya kapalıdır. Kullanabilmek için, (örneğin telnet için) VLAN’ı aktif etmeli (no shutdown) ve bir IP adresi vermeliyiz.
varsayılan vlan olarak gelen vlan1 silinemez ve adı değiştirilemez.

Diğer VLAN türleri

Data VLAN : Veri paketlerinin aktarımını sağlayan Vlan türüdür.
Management VLAN : IP adresi olan VLAN’lardır. (Telnet oturumu için VLAN1’e IP adresi vermiştik)
Native VLAN : Varsayılan VLAN gibi düşünülebilir. Birazdan göreceğiz.
Voice VLAN : ses taşıması yapar.
Reserved VLAN : Özel protokollerin kullanımı için ayrılmıştır.

VLAN Konfigürasyonu

VLAN’ın ne olduğu hakkında fikir edindiğimize göre, konfigürasyona geçebiliriz.

Her bir VLAN 2-100 arasında bir ID’ye sahiptir.

VLAN oluşturmak için ID ile config moduna girmemiz yeterlidir.
config modunda vlan 10 dersek 10 ID’sindeki vlan oluşur ve port config moduna girer.
name isim diyerek vlan ismini değiştirebiliriz.

 

show VLAN diyerek vlan tablosunu açabiliriz. Bizim oluşturmadığımız vlanlar default veya reserved vlanlardır. show vlan id 10 diyerek sadece o ıd’nin bilgilerine erişebiliriz.

Şuanda sadece Vlan1 ve reserved vlanlar var. Ve görüldüğü gibi tüm portlar varsayılan olarak Vlan1’e ayarlanmış

Vlan2’yi ekledim. Tabloya tekrar baktığımda Vlan2 oluşmuş. Ama herhangi port eklenmemiş.

Bir portu bir VLAN’a eklemek için ilgili portun config moduna gireriz
switchport mod access yazarak o portu access moda alırız. Ardından switch access vlan 2 dersek, o portu vlan2’e dahil etmiş oluruz.
Artık bu interface, daha önce bulunduğu ağa (Vlan1) dahil değildir.
int range kullanarak birden çok interface aynı anda ekleyebiliriz.

2. ve 4. portları Vlan2’ye dahil ettim. Artık Vlan1’e bağlı olan diğer portlar ile farklı ağda olduklarından, L3 cihazı olmadan  iletişim kuramazlar. Ve bir broadcast domain oluşturmuş oldum.(az önce bahsettiğimiz gibi)

Bir interface olmayan bir vlan’a eklemeye çalışırsak bizim için o vlan oluşturulur ve portu ekler.

no vlan 10 diyerek vlan’ı silebiliriz.
Eğer bir vlan silinirse, ona bağlı interface’ler vlansız kalmış gibi görünür. Aslında trunk moda geçer. Ne olduğunu birazdan göreceğiz. Bu interface tekrar başka bir vlan’a bağlamamız gerekebilir. Vlan1 silinemez.

Vlan1’i silemedim. Vlan2’yi sildim. Ama ona bağlı olan portlar tabloda gözükmüyor. Bir port tabloda gözükmüyorsa trunk porttur.

 

Bir interface’i başka bir vlana bağladığımızda, bulunduğu ağ da değişir. Bu yüzden bu porttaki cihazın IP adresi de buna göre olmalıdır.
Örneğin vlan 5’e dahil bir cihazın IP adresi 192.168.5.xxx şeklinde olmalıdır. (teorik olarak şart değil, ama pratikte sıkıntılar oluşur)

a ve b cihazlarımız vlan 2 üzerinde, a 192.168.2.101 b ise 192.168.1.101 ip adresine sahip olsun. Aynı vlan’da da olsalar, ıp adresleri farklı ağlarda olduklarını söylediği için bu iki cihaz arasında ping atılamaz.

Yani L3 cihazı olmadan iki cihaz arasında ping atabilmek için, hem aynı ağa ait Ip adreslerine sahip olmaları, hem de aynı VLAN üzerinde olmaları gerekir.

VLAN işlevi ve Yapılandırması

Vlan, ağı portlara göre böler. Portlar arası iletişimi sınırlandırır. IP adresi ise cihazlara göre böler.
Aynı vlan’daki cihazlar aynı broadcast domain üzerindedir. Yani a cihazının yolladığı broadcast mesaj b cihazına gider. Ama IP adreslerine göre cihazlar farklı ağlarda olduğu için, ping yollanmadan önce yapılan ARP yayınına diğer ağdaki cihazlar yanıt vermez.
Bu karışıklığı önlemek için cihazlara vlan id’lerine göre IP adresi vermek mantıklıdır.

İki Switch arasında VLAN’ları Eşleştirmek

Sayfanın başlarındaki örneğe geri dönelim, farklı switchlerdeki portlar aynı vlan’da olabiliyordu. Ancak burada bir sıkıntı var.

İki switch’i bağlayan kablonun ucundaki portlar (Fa0/3, Fa0,4) da bir VLAN’a ait. Yani aradaki kablo sadece Vlan1 için iletişime izin veriyor.
Örneğin, a cihazı switch1’e ve vlan 2’ye bağlı olsun, b cihazı da switch2’ye ve vlan 2’ye bağlı olsun
Eğer switcleri bağlayan kabloların takılı olduğu portlar vlan1’de ise, mantık olarak iki switchteki vlan2’ler arasında arasında bağlantı yoktur.
İki switch arasındaki kablonun takılı olduğu portlar sadece vlan1’deki portların iletişimine izin verir. Aradaki bağlantıyı sağlayan portları vlan2 olarak tanımlanırsa sorun çözülür. Ama bu sefer de vlan1 veya diğer vlanlarda sıkıntı çıkar.

Port modları

Bu duruma çözüm olarak trunk modu oluşturulmuştur. Şimdiye kadar portlarımızı access modunda kullanıyorduk (switchport mod access). access modu, bir portun sadece bir vlan için taşıma yapmasına izin verir.
Trunk mod sayesinde ise, tek port ile birden çok vlan için taşıma yapabiliriz.
Yani iki switch arasındaki kablonun takıldığı portları trunk moda alırsak, iki switchteki tüm aynı ID’li vlan’lar birbirine bağlanmış olur.
Access mod switch ile uç cihazlar arasında kullanılırken, 2 switch arasında trunk mod tercih edilir.

Switchleri bağlayan portlardan Switch1’deki fa0/3 interface’ini trunk moda aldım. Artık bu port üzerinden tüm interface’ler iletişim kurabilir. Aynı işlemi diğer switch’teki fa0/4 için de yaparsam, ilk başta istediğim gibi, iki switchteki tüm aynı Vlanda olan cihazlar aynı broadcast domain üzerinde olur ve birbirleri ile iletişim kurabilir.

trunk modda varsayılan olarak tüm vlanlar için izin verilir.
Trunk modda olan tüm portları ve izin verdikleri Vlan’ları görmek için show int trunk komutunu kullanırız.

Fa0/4 portu trunk moddaymış ve 1 ile 1005. Vlan’lar arasındaki tüm vlanlara izin veriyormuş. Bunu değiştirebiliriz.

interface config modda switchport trunk allowed liste : liste yerine izin verdiğimiz portları yazabiliriz.

Artık sadece 1 ve 2. Vlanların kullanımına izin veriliyor.

all dersek tüm VLAN’lara izin verir. (varsayılan)
none hiçbirine izin vermez
switchport trunk allowed vlan 3,10 sadece 3 ve 10 için izin verir.
switchport trunk add 12 listeye 12’yi de ekler. Artık 3,10 ve 12’ye izin veriliyor.
switchport trunk remove 10 VLAN10 listeden silindi 3 ve 12’ye izin veriliyor.
switchport trunk except 4,6 4 ve 6. VLAN’lar hariç tüm VLAN’lara izin verir

Native vlan gibi diğer özelliklerden ileride bahsedeceğiz.

Dinamik-Static modlar

Trunk ve access modları static modlardır. Yani elle değiştirilmediği sürece sabit kalırlar. Bunların dışında dinamik olarak yani karşıdaki interface’in durumuna göre değişen modlar da vardır.

Eğer herhangi bir ayar yapmadıysak, port dynamic auto moddadır. Yani karşısındaki cihaza göre değişir.
switchport mod access diyerek access moda geçmişti.
switchport mod trunk dersek de trunk moda geçer.

Karşılıklı iki interface aynı modda olmalıdır.
Eğer ikisi de access ise bağlantı access modda olur.
İkisi de trunk ise bağlantı trunk olur.
Eğer portlardan biri dinamic auto ise, karşıdaki port neyse dinamik moddaki port da otomatik olarak o moda geçer.
İkisi de dinamic auto ise bağlantı access olur.

Bunun dışında dynamic desirable modu da vardır. Normalde dynamic auto ile aynıdır. Tek farkı şudur:
Eğer karşılıklı iki interface dynamic auto ise aradaki aktarım access modda olur. En az biri desirable ise aktarım trunk olur.

Karşılıklı portların durumu ile ilgili şöyle bir tablo oluşturabiliriz.

AccessTrunkDynamic AutoDynamic Desirable
AccessAccess BağlanmazAccessAccess
TrunkBağlanmazTrunkTrunkTrunk
Dynamic AutoAccessTrunkAccessTrunk
Dynamic DesirableAccessTrunkTrunkTrunk

DTP (Dynamic Trunk Protocol)

İki switch’i bağlayan interface’lerden biri trunk diğeri auto modda ise auto’da olanın trunk moda geçmesi için DTP mesajları yollanır.
Yani DTP mesajı, auto olarak ayarlanan interface’in trunk moda geçmesi için talepte bulunan bir protokoldür.

Dinamik yapılandırma ve dtp güvenlik zafiyetlerine neden olabilir. Bunu önlemek için portların static olarak ayarlanması ve DTP’nin kapatılması gerekir.
Mesela dinamik bir portumuz olsun. Eğer saldırgan bu porta trunk modda bir cihazla bağlanırsa tüm VLAN’lara erişmiş olur. Ve bu istemediğimiz bir durumdur.

Dinamik portlarda DTP kapatılamaz. Ama static olanlarda kapatılabilir. Mesela iki interface’den biri trunk biri auto olsun. Eğer DTP kapatılırsa trunk karşısında auto da olsa bağlantı kurulamaz.
DTP’yi kapatmak için port’un config moduna girip switchport nonegotiate dememiz yeterlidir.

Bahsettiğimiz zafiyetler boştaki interface’ler için de geçerlidir. Yani sadece kullanılan portları değil, tüm portları statik moda almamız veya kapatmamız gerekir. Bunun için range kullanabiliriz

Trunk Portlar Arasında Taşıma

Bir mesaj trunk porttan geçerken, mesaja kaynağının hangi vlan olduğunun eklenmesi gerekir. Access modda buna ihtiyacımız yoktu. Çünkü portun hangi vlan’ı taşıdığı belliydi. Ama trunk modda paketin hangi vlan’a ait olduğunu bilmek için pakete vlan tagı eklenmelidir.
Bu etiketin eklenmesi için (tagging) mesaj EthernetII formatından 802.1q formatına dönüşür. Trunk moddaki portlar arasındaki kabloda 802.1q formatında taşınır. Yani trunk moddaki interface’ler 802.1q interface’idir.
Diğer switche ulaştığında switch mesajın hedefi olan vlan’ı öğrenir ve artık etikete ihtiyaç kalmaz. Etiket kaldırılır (untagging) ve mesaj formatı 802.1q’dan EthernetII formatına geri çevrilir.

// bu etiketin cisco adı ISL

Native VLAN

Trunk moddaki arayüzlerde paketlerin etiketli olarak taşındığını söylemiştik. Ancak HUB gibi cihazlar paket içeriğine bakamadığı için bu etiketi okuyamaz. Yani Hub üzerinde 802.1q formatındaki etiketli mesajlar taşınamaz.
Native VLAN da bu sorunu çözmek için üretilmiştir. Her portta etiketi olmayan bir VLAN bulunur. Native VLAN’dan gelen paketlere etiket eklenmez. Bir Native VLAN’dan gelen mesaj hiç değiştirilmeden diğer interface’de tanımlı Native VLAN’a iletilir.
Hub cihazı bu etiketsiz paketi iletebildiği için sorun çıkmaz.

Native VLAN, tüm portlar için varsayılan olarak VLAN1 yani default VLAN’dır.
Yani sonuç olarak Native VLAN olan VLAN1 üzerindeki mesajlar trunk interface’lerden geçerken etiket eklenmeden, 802.1q formatına dönüşmeden direk EthernetII formatında iletilir.

Farklı interface’ler için farklı VLAN’lar Native VLAN olarak tanımlanabilir. Ama kablonun iki tarafındaki interface’ler için Native VLAN ID’leri aynı olmalıdır.

A ve B switch’lerimiz olsun. A’nın 23. B’nin de 24’üncü interface’i birbirine trunk şekilde bağlıdır. Ve bağın iki ucunda da VLAN3 Native VLAN olarak tanımlıdır.
VLAN3’den A switchinin 23. portu üzerinden taşınması için bir mesaj gelirse mesaj Native VLAN’dan geldiği için etiketlenmeden karşıdaki B cihazının 24. portuna yollanır.
B cihazı bu etiketsiz mesajın Native VLAN’dan geldiğini anlar. 24. portta Native VLAN VLAN3 olduğu için mesaj VLAN3’e yollanır ve hedefine ulaşır.

A switch’i 20. porttan da C switchine bağlı olabilir. Eğer 20. port için Native VLAN VLAN10 olarak tanımlanırsa, bu sefer 20. porttan taşınan VLAN10 mesajları etiketlenmeden yollanır.

Bir portta tanımlı Native VLAN’ı değiştirmek için interface config moduna gireriz. switchport native vlan 10 diyerek o porta ait NAtive VLAN’ı VLAN10 olarak ayarlayabiliriz.
İki taraf için de aynı VLAN Native VLAN olarak ayarlandığı anda portlar etiketsiz mesaj trafiğine açılmış olur. Ama eğer birinde VLAN^birinde VLAN10 Native VLAN olarak tanımlıysa trafik engellenir.

Güvenlik ipucu

Native VLAN dışarıdan erişime müsait olduğundan (vlan spoofing attack, double tagging attack…), zorunda olmadıkça kullanılması önerilmemektedir.
Başlangıçta switch’teki tüm interface’ler VLAN1’e, yani dolayısıyla Native VLAN’a bağlıdır. Bu bir güvenlik sorunudur.
Güvenli bir ağ oluşturmak için Native olması gerekmeyen portlarda Native VLAN, VLAN1 dışında ve kullanılmayan bir port olarak ayarlanmalıdır.
show interfaces trunk diyerek trunk portlardaki Native VLAN’ları görebiliriz.

Daha önce telnet için VLAN1 kullanmıştık. Sadece telnet ile uzaktan yönetim için bir VLAN açıp uzaktaki yönetim bilgisayarını bu VLAN’a eklemek de güvenliği sağlamak için iyi bir yöntemdir.(IP değişmeyi unutma!!!)

 

CDP (Cisco Discovery Protokol)

Endüstri karşılığı LLDP protokolüdür.Komşu cihazların birbirini tanımasını sağlarlar. Mesela karşı cihazın duplex bilgisi bu şekilde bilinebilir.

Veya önceki konuda karşılıklı iki portun Native vlan’ının aynı olması gerektiğini söylemiştik. Karşıdaki cihazın Native VLAN bilgisi CDP mesajı ile öğrenilir.

Switch ve router gibi chazlar belli aralıklarla (default 60 saniye) tüm portlarına multicast cdp mesajı yollar ve karşı cihaza kendi bilgilerini verirler. //multicast mac: 01000ccccccc
Eğer karşı cihazdan 180 saniye (3×60) cevap gelmezse, komşuyla bağlantının koptuğuna karar verir ve komşuluğu kaldırır. (hold time)

Bu mesajlar tüm portlara yollansa da sadece ağ cihazları mesajı anlar. Diğer mesajlar yanar. Ancak CDP mesajının tüm portlara yollanması bir güvenlik açığıdır. (CDP spoofing attack yapılabilir.)

Bu yüzden gereksiz portlardaki (ağ cihazı olmayan) CDP mesajlarını engellememiz gerekir. Bunun için o intercase’in config moduna gireriz.

no cdp enable yazarak, o port için cdp mesajlarını kapatırız.
Global config modda no cdp run yazarsak tüm cdp mesajları kapanır.

CDP mesajları 802.3 ile yollanır. Bu format cisco cihazlara özeldir.

 

 

    Bir cevap yazın

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