Bölüm 29: Sanal Yerel Ağlar
Ağlar'a “Sen”i Katmak kitabının bir bölümü: adres çubuğuna yazdığın tek bir isteğin peşinden bakırla fiberin fiziğine inip karşı taraftan geri dönen uzun bir teknik yolculuk.
Kısım 4: Makineden Yerel Ağa (Bölüm 18-29)
Tüm bölümler
- Giriş
- Adres Çubuğundan İsteğe
- Paket Anahtarlamalı Yol
- İsimden Adrese
- DNS Kayıtları
- Önbellek, Tazelik ve Güven
- Port Numarası ve Soket
- Bağlantısız Taşıma: UDP
- Üç Adımlı El Sıkışma
- Simetrik Şifreleme
- Açık Anahtarlı Kriptografi
- TLS El Sıkışması
- Sertifika Zinciri
- HTTP Mesajının Anatomisi
- Durum, Çerez ve Oturum
- HTTP/2'den HTTP/3'e
- İçerik Dağıtım Ağları
- Diğer Uygulama Protokolleri
- Katmanlı Mimari
- Hizmet ve Protokol
- Encapsulation ve Başlıklar
- Paket Yakalama ve Çözümleme
- Ağ Interface Kartı
- Fiziksel Adresleme
- Hata Sezme ve CRC
- Adres Çözümleme: ARP
- Ortam Erişimi: CSMA/CD
- Switch'ler
- Ağ Topolojileri
- Sanal Yerel Ağlar
- Kablosuz Erişim: 802.11
- Radyo Kanalı ve Kapasite
- Kablosuz Ağ Güvenliği
- Hücresel Ağlar
- Spektrum ve Kuşaklar
- Hareketlilik ve Aktarma
- Adres Kiralama: DHCP
- Adresin Anatomisi
- Adres Tükenmesi ve IPv6
- Router Mimarisi
- Kuyruk Yönetimi
- Cihaz Yapılandırma
- Routing Protokolleri
- Kontrol Düzlemi ve SDN
- Ağ İzleme ve Yönetimi
- Alanlar Arası Routing
- Adres Çevirisi
- Ara Kutular
- Tünelleme ve IPsec
- Firewall'lar
- Ağ Saldırıları
- Operatör ve Metro Ağları
- Bitten Sinyale
- Sembol Hızı ve Kanal Kapasitesi
- Multiplexing Teknikleri
- İletim Ortamları
- Bakır Kablo Sonlandırma
- Fiber Sonlandırma
- Fiber Optik İletim
- Bakır Erişim Ağı: DSL
- DSL'de Hız ve Mesafe
- Pasif Optik Ağlar
- Kablo Erişim Ağları
- Kablo Modem ve CMTS
- Denizaltı Kabloları
- Veri Merkezi Ağları
- Encapsulation Çözme
- Güvenilir Aktarım
- Tıkanıklık Denetimi
- Trafik Çözümleme
- Gecikme Bütçesi
- Soket Programlama
- Eşten Eşe ve Protokol Tasarımı
- Uyarlanır Video Akışı
- Gerçek Zamanlı Ses ve Görüntü
- Kablosuz Sensör Ağlarının Mimarisi
- Sensör Ağlarında Ortam Erişimi
- Sensör Ağlarında Yönlendirme ve IP
- Zaman Eşitleme ve Konum Bulma
- Sensör Ağı Uygulamaları
- Mobil Kablosuz Sensör Ağları
- Son Söz
Structured cabling’in (yapısal kablolamanın) yıldız düzeninde her priz kat dolabındaki switch’e bağlanıyordu. Geriye bir soru kalıyor: aynı switch’e takılı iki bilgisayar aynı ağda olmak zorunda mı?
Zorunda değil. Tek bir switch, birbirini hiç görmeyen ağları aynı anda taşıyabiliyor. Peki bunu neyle yapıyor?
Aynı kutuda kaç ağ var?
ARP isteği, broadcast domain’deki bütün komşuların kartını tek tek uyandırıyordu. Broadcast yalnızca ARP değil. DHCP de, hedefi henüz öğrenilmemiş her frame de aynı yolu izliyor. Hepsi LAN’ın tamamını dolaşıyor, bant genişliğini yiyor ve herkese herkesin trafiğini duyuruyor.
Sanal yerel ağ (virtual LAN, kısaca VLAN), yöneticinin çizdiği bir port kümesi ve o kümenin dışına taşmayan bir broadcast domain. Sınır tek bir kutunun içinde de durabiliyor, birkaç switch’e de yayılabiliyor. Çizgiyi donanım çekmiyor; switch’in frame’i hangi porta ileteceğine karar veren yazılım çekiyor. Kutunun içine bakarsan ikiye bölünmüş bir şey göremezsin.
Port tabanlı ayrımda interface’leri gruplara bölen kişi ağ yöneticisi oluyor ve her grup bir VLAN sayılıyor. Sonuç trafik yalıtımı: bir gruptaki porttan çıkan frame yalnızca aynı gruptaki portlara ulaşıyor. Yirmi dört portlu bir switch’i ikiye bölmek, onu iki bağımsız on iki portlu switch’e ayırmakla aynı sonucu veriyor. Öğrenilen adresler de ayrılıyor. Bir VLAN’da görülen MAC, öbürünün tablosuna hiç yazılmıyor.
Grubu belirleyen ölçüt coğrafya olmaktan çıkıyor. Bir port, üstündeki makinenin hangi ekibe ya da hangi uygulamaya hizmet ettiğine göre VLAN’a giriyor. Eskiden bunun tek yolu makineleri aynı kat dolabına toplamaktı. Şimdi bir çalışan ekip değiştirdiğinde kablolamaya dokunulmuyor; üçüncü katman adresi bile aynı kalıyor. Değişen tek şey, portun hangi VLAN’a ait olduğu.
Ölçek tarafında da kazanç var. Altı küçük grubun her birine ayrı bir switch almak yerine kırk sekiz portlu tek bir kutu hepsini alabiliyor. VLAN’sız o kutu yalıtım vermez.
Yönetici her portu bir VLAN’a bildiriyor ve switch’in içinde bir port-VLAN eşleme tablosu birikiyor. Bildirilmemiş portlar varsayılan VLAN’a düşüyor; çoğu cihazda bu VLAN 1. Orası ölü bir alan değil. Switch fabrika ayarında kendi yönetim adresini ve komşularıyla konuştuğu keşif trafiğini orada tutuyor. Yani boş bıraktığın port, çalışan bir ağın ucunda açık duruyor.
Üyelik illa porta bağlı da değil. Statik üyelikte portu VLAN’a katan yönetici; dinamik üyelikte kararı switch veriyor. Takılan makinenin MAC adresine, mantıksal adresine ya da konuştuğu protokole bakıyor. MAC tabanlı üyelikte cihaz hangi porta takılırsa takılsın kendi VLAN’ına düşüyor.
| port | VLAN | ne takılı |
|---|---|---|
| 1-8 | 10 | muhasebe masaüstleri |
| 9-16 | 30 | laboratuvar makineleri |
| 24 | trunk | üst kattaki switch |
Bu tabloda muhasebe masası laboratuvar makinesini hiç görmüyor. Aynı kutuya takılı olmaları bir şey değiştirmiyor.
İki switch’i nasıl bağlarsın?
Ağ tek kutuda bitmiyor. İki switch’te de aynı VLAN’lar varsa, aralarına VLAN başına bir kablo çekmek işe yarıyor. Ama ölçeklenmiyor. N tane VLAN, yalnızca iki switch’i birbirine bağlamak için her switch’te N port yiyor.
Ölçeklenen çözümün adı trunk portu. İki switch’te birer port trunk olarak ayarlanıyor ve aralarına tek bir hat çekiliyor. Trunk’ta VLAN ayrımı yok; hangi VLAN’ın frame’i olursa olsun o tek hattan geçiyor. İki VLAN’lı bir kurulumda kablo sayısı ikiden bire iniyor: %50 tasarruf.
Uç cihazın takıldığı, tek bir VLAN’a ait ve etiketsiz çalışan porta access port (erişim portu) deniyor. İkisi arasındaki fark frame’in üstünde görünüyor.
Trunk’tan geçen frame sıradan bir Ethernet frame’i olamaz. Üstünde hangi VLAN’a ait olduğu yazmak zorunda. Switch, frame’i hatta vermeden önce ona küçük bir alan basıyor; karşı uçtaki switch o alanı okuyup söküyor. Etiketi ekleyen de söken de switch. Uç cihaz onu hiç görmüyor. Bu işin standart adı IEEE 802.1Q. Trunk’ta bir VLAN’ın frame’leri istisna olarak etiketsiz taşınıyor; o VLAN’a yerel VLAN (native VLAN) deniyor ve fabrika ayarında o da çoğu zaman VLAN 1.
802.1Q 1998’de yayımlandı ve VLAN’ı üreticiden bağımsız hâle getirdi. Ondan önce etiketleme üreticiye özel yollarla yapılıyordu ve ortama göre ayrışmıştı: Fast Ethernet’te ISL, FDDI’da 802.10, ATM’de LAN Emulation. ISL veriyi kapsülleyip başına 26 baytlık bir başlık, sonuna 4 baytlık bir CRC ekliyordu. 30 bayt ek yük, 802.1Q etiketinin yedi buçuk katı.
VLAN listesinin kendisi de switch’ler arasında dolaşabiliyor; Cisco’nun VTP’si bunu yapıyor. Bir kutuyu sunucu kipine alıp listeyi orada tutuyorsun; aynı yönetim alanındaki diğerleri listeyi ondan çekiyor. Kolaylık, ama bütün ağı tek noktadan bozma yetkisi de aynı yerde.
Trunk kararının kendisi de pazarlığa açık. Bir portun trunk olup olmayacağı beş kipten biriyle ayarlanıyor ve otomatik kipteki bir port, karşı taraf istekliyse kendiliğinden trunk’a dönüşüyor. Sızma testi kitaplarının VLAN atlama saldırısı (VLAN hopping) dediği şey buradan besleniyor: saldırgan kendini komşu bir switch gibi tanıtan bir pazarlık mesajı yolluyor, takılı olduğu access port’u trunk’a çevirtiyor, sonra istediği VLAN kimliğini kendi frame’ine yazıp o broadcast domain’in içine düşüyor. Saldırının ikinci türü frame’e iki etiketi üst üste koyuyor: ilk switch yerel VLAN’ın etiketini söküp frame’i trunk’a etiketsiz veriyor, bir sonraki switch de alttaki ikinci etiketi okuyup frame’i hedef VLAN’a teslim ediyor.
Saldırı iki ihmalin üstünde yürüyor: portun pazarlığa açık bırakılması ve yerel VLAN’ın fabrika ayarında dokunulmadan durması. İkisini de kapatmak zor değil. Kullanılmayan bir port ya elektriksel olarak kapatılır ya da hiçbir yere çıkmayan tek bir VLAN’a sabitlenip pazarlık dışı bırakılır.
DerinleşmePortu baştan kapalı saymak neyi değiştirir?
Varsayılan VLAN’ın kolaylığı ortada: switch’i kutusundan çıkarıp takıyorsun ve hiçbir ayar yapmadan çalışıyor. Bedeli, hiç ayarlanmamış bir portun da aynı sebeple çalışıyor olması. Açıkları tek tek kapatmak da kalıcı bir çözüm değil, çünkü her yeni port unutulabilecek yeni bir ayar demek.
IEEE 802.1X varsayımı tersine çeviriyor. Port baştan kapalı sayılıyor; kabloyu takan cihaz kimliğini kanıtlayana kadar oradan yalnızca kimlik denetimi trafiği geçiyor. Kimliği soran taraf switch’in kendisi, kararı veren arkadaki kimlik doğrulama sunucusu, kanıtı sunan da istemci. Kanıt kabul edilirse port normal trafiğe açılıyor, edilmezse kapalı kalıyor.
Standardın kendisi kimliğin nasıl kanıtlanacağını söylemiyor. 802.1X yalnızca EAP yöntemlerini taşıyan bir frame tanımlıyor ve tanımlanmış yaklaşık 40 yöntem var; parolayı, sertifikayı ya da SIM kartını seçmek ağın sahibine kalıyor. Bir güvenlik standardının kimlik denetimini standartlaştırmak yerine onun taşınacağı yolu standartlaştırması, ilk bakışta eksiklik gibi duruyor. Ağların birbirine hiç benzemediği düşünülünce tasarımın asıl sağlam tarafı orası. Aynı düzeni 32. bölümde kurumsal Wi-Fi’ın içinde yeniden göreceksin.
Dört bayt nereye giriyor?
Etiket 4 bayt ve frame’in başına girmiyor. İki adres alanının ardından, tür alanının önüne sokuluyor. Encapsulation’da her başlık kendi yükünün önüne ekleniyordu. 802.1Q bu düzeni bozuyor.
hedef MAC 6 bayt
kaynak MAC 6 bayt
--- 802.1Q etiketi, 4 bayt --------------------------------
TPID 2 bayt sabit 0x8100
TCI 2 bayt 3 bit öncelik + 1 bit + 12 bit kimlik
-----------------------------------------------------------
tür alanı 2 bayt
veri 46-1500 bayt
FCS 4 bayt etiketten sonra yeniden hesaplanırİlk iki bayta etiket protokol tanımlayıcı deniyor ve değeri hep aynı kalıyor: onaltılık 8100. Bu değeri gören alıcı, elindeki frame’in etiketli olduğunu anlıyor.

Sonraki iki bayt etiket denetim bilgisi. O 16 bitin 12 biti VLAN kimliği, 3 biti öncelik; kalan 1 bit (DEI) tıkanma anında önce atılabilecek frame’i işaretliyor. On iki bitlik alan 4.096 farklı değer ayırt ediyor. Kullanılabilir numara sayısı 4.094, çünkü iki değer ayrılmış: 0 “yalnızca öncelik taşıyorum” demek, 4.095 ise kullanılmıyor. Cisco’nun eski cihazlarında normal aralık 1 ile 1005 arasındaydı ve 1002-1005 de FDDI ile Token Ring mirasına ayrılmıştı. O sınır standardın değil, cihazın sınırıydı.
Öncelik bitleri 802.1p’nin hizmet sınıfı bitleri: üç bit, sekiz düzey, sıfırdan yediye. IP başlığındaki hizmet türü alanının bu kattaki karşılığı sayılabilir. Bir portta öncelik açıksa, tıkanma anında önce yüksek öncelikle işaretlenmemiş frame’ler düşürülüyor.
Etiket eklendikten sonra frame’in sonundaki FCS yeniden hesaplanıyor; sebebi CRC’nin frame’in tamamını kapsaması. Boy da değişiyor: etiketsiz azami frame önsöz hariç 1.518 bayt, etiketli 1.522 bayt. Veri alanı ise sabit: 46 ile 1.500 bayt arası.
1.522 bayt standarda IEEE 802.3ac ekiyle 1998’de girdi. 2006’daki 802.3as eki, bütün etiketleme biçimleri için sınırı 2.000 bayta çekti; zarf frame azami boya 482 bayt daha ekliyor.
Etiketin asıl bedeli en küçük frame’de görünüyor; dört baytın küçük frame’de neden ağır bastığını 24. bölümde FCS’nin payını hesaplarken görmüştün.
Etiketli bir frame, etiket bilmeyen bir istasyona düşerse ne oluyor? O istasyon başlıkta tanımadığı bir tür değeri buluyor ve frame’i sessizce düşürüyor. Böyle bir frame’in oraya varması da pek olmuyor, çünkü etiketi yalnızca bunun için ayarlanmış cihazlar basıyor.
Switch’in MAC öğrenme tablosunu doldurması ve döngüyü kesen spanning tree tanıdık. Klasik spanning tree bütün VLAN’lar için tek bir ağaç kuruyor ve bazı VLAN’ların trafiğini gereksiz yere uzun yollara itiyor. Çoklu spanning tree (MSTP) 802.1s ekiyle 2003’te tanımlandı, 802.1Q’nun 2005 baskısına girdi ve VLAN gruplarına ayrı ağaçlar kurabiliyor; her bölge 64’e kadar ayrı örnek çalıştırabiliyor.
İki VLAN nasıl konuşur?
Ayırmak kolay oldu. Ayırdıklarını tekrar konuşturmak üçüncü katmana çıkmayı gerektiriyor. Ayrı broadcast domain, ayrı IP alt ağı demek. Muhasebe 192.0.2.0/24 olsun, laboratuvar 198.51.100.0/24. Aradaki her datagramın, iki alt ağı da tanıyan bir cihaza uğraması gerekiyor. Sanki ortada bağlantısız iki switch var.
Router’da her VLAN için ayrı bir fiziksel interface tutmak pahalı. Tek interface’in üstünde alt interface açılıyor; her birine ayrı bir alt ağ ve ayrı bir VLAN numarası veriliyor. Böylece tek bir kablo, kaç VLAN varsa o kadar mantıksal bacak taşıyor.
Router frame’i alıyor, etiketi söküp hangi alt ağa ait olduğunu buluyor, kararını verdikten sonra hedef VLAN’ın etiketini takıp aynı porttan geri yolluyor. Sahada bu düzene, tek bir kabloya asılı router anlamında router on a stick deniyor.
Üreticiler ikisini tek kutuda da birleştiriyor ve o kutunun bir adı var: 3. katman switch. Dışarıdan sıradan bir switch gibi duruyor, portları da öyle; farkı, VLAN’lar arası kararı kendi içinde verip trafiği hiç dışarı çıkarmaması. Router’dan ayrıldığı yer ise interface çeşitliliği: 3. katman switch Ethernet portlarıyla ve kendi bacakları arasında çalışır, farklı türden hatları birbirine bağlamak hâlâ router’ın işidir.
Bunu kendi makinende de görebilirsin. Linux’ta bir interface’in üstüne etiketli bir alt interface eklemek üç satır sürüyor.
ip link add link eth0 name eth0.10 type vlan id 10
ip addr add 192.0.2.10/24 dev eth0.10
ip -d link show eth0.10Son komutun çıktısında vlan protocol 802.1Q id 10 satırını görüyorsun. O interface’ten çıkan her frame artık etiketli.
Özet
- Sanal yerel ağ bir port kümesidir: switch’in iletim yazılımı, aynı kutunun içinde birbirini görmeyen broadcast domain’ler kurar.
- Etiket dört bayttır: iki bayt sabit tanımlayıcı, iki bayt da kimlik ile önceliği taşıyan denetim alanıdır.
- Trunk tek hattır: bütün VLAN’lar aynı kablodan geçer, etiketi ise yalnızca iki uçtaki switch’ler görür.
- 3. katman switch ikisini tek kutuda toplar: VLAN’lar arası kararı kendi içinde verir, ama farklı türden hatları bağlamak hâlâ router’ın işidir.
- VLAN’lar arası geçiş routing’dir: ayrı alt ağlar ancak üçüncü katmana çıkıp geri dönerek konuşabilir.
- Boş port boş değildir: hiçbir VLAN’a bildirilmemiş bir interface, switch’in yönetim trafiğini taşıyan varsayılan VLAN’da bekler.
Aynı kabloda birden çok ağ taşımayı çözdük; ayrımı dört baytlık bir etiket ile switch’in iletim kararı yapıyor. Kablosuz bağlıysan ortada kablo yok; frame o boşlukta nasıl gidiyor?
30. bölüme devam et: Kablosuz Erişim: 802.11