Aralıklı Ağ Kopmaları ve Layer 2 Loop Analizi: MAC Flapping Üzerinden Gerçek Bir İnceleme

Bazı ağ problemleri vardır, insanı en çok yoran tip bunlar oluyor.
Ağ tamamen gitmez. Her şey çalışıyor gibi görünür. Ama stabil değildir.

Ping atarsın, bir süre 1 ms gider.
Sonra bir anda 90 ms olur.
Arada timeout girer.
Uygulama kopar ama hemen geri gelir.

Kullanıcı tarafında tarif genelde aynıdır:
“Bağlantı gidip geliyor.”

Bu yazıda böyle bir problemi Layer 2 seviyesinde teknik olarak inceleyeceğim.
Sorunun kaynağı routing değil, firewall değil, internet hattı değil.
Sorun doğrudan switch seviyesinde, MAC learning mekanizmasında.

Bu yazıda sorunu birebir simüle edebilmek adına bir topoloji oluşturdum

Bu topolojide Access Switch 1 ile Access Switch 2 arasında iki fiziksel bağlantı bulunmaktadır. Normal şartlarda access katmanında paralel bağlantılar ya EtherChannel ile birleştirilir ya da STP tarafından kontrol edilir. Bu senaryoda ise bilinçli olarak iki bağlantı ayrı ayrı bırakılmıştır. Amaç ideal tasarımı göstermek değil, STP devre dışı kaldığında veya yanlış yapılandırıldığında oluşabilecek Layer 2 loop problemini analiz etmektir.

Problemin Başlangıç Noktası

Önce semptomlara bakalım.

  • Ping süreleri düzensiz.
  • TCP bağlantıları arada reset oluyor.
  • Servisler tamamen düşmüyor ama reconnect ediyor.
  • Ağ genel olarak yavaş değil ama kararsız.

Bu noktada çoğu kişi Layer 3 tarafına bakmaya başlar.
Gateway, route, firewall, NAT, ISP…

Ama bazı durumlarda problem çok daha temel bir seviyededir.

Layer 2.

Layer 2 Neden Bu Kadar Kritik?

Switch’in temel görevi frame’i doğru porta iletmektir.

Bunu nasıl yapar?

  • Gelen frame’in source MAC adresini öğrenir.
  • O MAC’i geldiği port ile eşleştirir.
  • MAC address table’a kaydeder.
  • Destination MAC’e göre frame’i iletir.

Bu mekanizma stabil çalıştığı sürece ağ stabildir.

Ama bu öğrenme mekanizması kararsız hale gelirse, forwarding kararı da kararsız hale gelir.

İşte burada MAC flapping devreye girer.

MAC Flapping Nedir?

Normal bir ağda bir cihazın MAC adresi tek bir access portunda görünür.

Örneğin:

MAC A → Fa0/10

Bu eşleşme sabittir.

Ama eğer aynı MAC adresi:

  • Bir saniye Fa0/22’de
  • Sonra Fa0/23’te
  • Sonra Fa0/24’te

görünüyorsa bu fiziksel olarak mümkün değildir.

Bu şu anlama gelir:

Switch aynı MAC’i birden fazla fiziksel yoldan görüyor.

Bu da genelde tek bir şeyi gösterir:

Layer 2 loop.

Simüle edilmiş bir Layer 2 loop örneği

Layer 2 Loop Nasıl Oluşur?

En klasik senaryo:

İki switch arasında ikinci bir paralel bağlantı yapılır.
Spanning Tree kapalıdır ya da yanlış yapılandırılmıştır.

Alternatif yol oluşur.

Bu durumda bir broadcast frame şu yolu izleyebilir:

Switch A → Switch B
Switch B → Switch A
Switch A → Switch B

Ve bu döngü devam eder.

Ethernet frame’lerinde TTL yoktur.
Yani frame kendiliğinden ölmez.

Bu yüzden broadcast frame’ler ağ içinde dönmeye devam eder.

Loop Olduğunda Gerçekten Ne Olur?

Bu kısmı iyi anlamak lazım.

  1. Bir cihaz ARP request gönderir (broadcast).
  2. Switch bunu tüm portlara flood eder.
  3. Alternatif bağlantı üzerinden frame tekrar geri gelir.
  4. Switch aynı source MAC’i başka porttan öğrenir.
  5. MAC table güncellenir.
  6. Frame tekrar dolaşır.

Bu süreç milisaniyeler içinde gerçekleşir.

Sonuç:

  • MAC address table sürekli değişir.
  • Forwarding kararı kararsız olur.
  • Broadcast trafiği katlanarak artar.
  • CPU yükü yükselir (gerçek donanımda).
  • TCP trafiği etkilenir.

TCP Neden Etkilenir?

TCP güvenilir bir protokoldür ama gecikmeye duyarlıdır.

Layer 2 seviyesinde kararsızlık olduğunda:

  • Frame geç iletilir.
  • Frame drop olur.
  • Retransmission başlar.
  • RTT artar.
  • Window küçülür.

Ping çıktısında şu tablo görülür:

1 ms
1 ms
96 ms
Request timed out
3 ms

Bu kararsızlık, forwarding tablosunun sürekli değişmesinden kaynaklanır.

Switch bir frame’i yanlış porta gönderdiğinde drop olur, sonra tekrar öğrenir.

Bu sırada TCP bekler.

MAC Address Table Üzerinden Teşhis

Teşhis için en kritik komut:

show mac address-table

Bu komutu arka arkaya birkaç kez çalıştırdığımda aynı MAC adresinin farklı portlarda göründüğünü gözlemledim.

Bu çok net bir göstergedir.

Normal bir ağda bu asla olmaz.

Bir cihaz fiziksel olarak aynı anda üç farklı porta bağlı olamaz.

Bu durumun tek mantıklı açıklaması, frame’in farklı fiziksel yollardan geri dönmesidir.

Bu Neden Tehlikelidir?

Çünkü ağ tamamen çökmez.

Bu en tehlikeli tiptir.

Tamamen çöken bir ağın problemi nettir.

Ama bu durumda:

  • Servisler bazen çalışır.
  • Bazen kopar.
  • Sorun tutarsızdır.

Bu da teşhisi zorlaştırır.

Çoğu zaman problem yanlış yerde aranır.

Spanning Tree’nin Rolü

Spanning Tree Protocol, Layer 2 topolojide döngü oluşmasını engellemek için vardır.

Fiziksel olarak loop olsa bile, mantıksal olarak tek aktif yol bırakır.

Bunu nasıl yapar?

  • Root bridge seçer.
  • Path cost hesaplar.
  • Fazla portu blocking durumuna alır.

Eğer STP devre dışıysa veya yanlış yapılandırılmışsa, loop engellenemez.

Fiziksel olarak ekstra olarak yok STP tarafından blokelenir ve mantıksal olarak tek yol olarak çalışır.

Sorunun Çözümü

Çözüm iki seviyede ele alınmalıdır:

1. Fiziksel Kontrol

  • Gereksiz paralel bağlantılar kaldırılır.
  • Topoloji doğrulanır.

2. Protokol Seviyesi

  • STP aktif olduğu doğrulanır.
  • show spanning-tree ile port durumları incelenir.
  • Blocking port kontrol edilir.
  • BPDU Guard aktif edilir.
  • Loop Guard değerlendirilir.

STP devreye alındığında:

  • Bir port blocking olur.
  • MAC flapping durur.
  • Ping stabil hale gelir.
  • Latency normale döner.

Bu Problemin Öğrettiği Şey

Layer 3 bilgisi yeterli değildir.

Routing doğru olabilir.
Firewall düzgün çalışıyor olabilir.
ISP stabil olabilir.

Ama Layer 2 kararsızsa, tüm üst katmanlar etkilenir.

Ağ problemlerinde her zaman şunu düşünmek gerekir:

“Bu gerçekten Layer 3 problemi mi, yoksa altta daha temel bir şey mi var?”

MAC address table, bazen tüm problemi anlatır.

Sonuç

Layer 2 loop küçük bir fiziksel hatadan doğabilir.
Ama etkisi tüm ağı destabilize edebilir.

Aralıklı kopmalar, latency spike’ları ve tutarsız bağlantılar görüldüğünde yalnızca ping sonucuna değil, switch’in öğrenme davranışına bakmak gerekir.

Ağ tasarımı yalnızca IP planlamasından ibaret değildir.
Layer 2 topolojisi doğru kurgulanmadığında en temel forwarding mekanizması bile kararsız hale gelir.

Gerçek stabilite, en alt katmandan başlar.

Teşekkürler;

Kaynaklar

  1. Cisco — Troubleshoot MAC Flaps / Loop on Catalyst Switches
    https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol-stp-8021d/221722-troubleshoot-mac-flaps-loop-on-cisco-cat.html
  2. Cisco — Troubleshoot MAC Address Flap Notification
    https://www.cisco.com/c/en/us/support/docs/ip/syslog/221140-troubleshoot-mac-address-flap-notificati.html
  3. Cisco Meraki — Loop and MAC Flap Detection
    https://documentation.meraki.com/Switching/MS_-_Switches/Operate_and_Maintain/Monitoring_and_Reporting/Loop_and_MAC_Flap_Detection_on_MS
  4. Layer 2 Switching Loops Explained
    https://www.youtube.com/watch?v=ZfoURvPekmY


Subscribe to my newsletter

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir