MTU nedir? IP fragmentation nasıl çalışır ve Path MTU Discovery neden sorun çıkarabilir?
Cevap
MTU (Maximum Transmission Unit), bir linkin taşıyabileceği en büyük L3 paket boyutudur. Ethernet'te varsayılan 1500 byte'tır. TCP için MSS = MTU − 40 (IP 20 + TCP 20) = 1460 byte.
IPv4 fragmentation
Paket, çıkış arayüzünün MTU'sundan büyükse router onu parçalara böler. Header'daki alanlar:
- Identification: Aynı paketin parçalarını eşleştirir.
- Flags:
DF(Don't Fragment),MF(More Fragments). - Fragment Offset: 8 byte birimleriyle parçanın yeri.
Birleştirme (reassembly) yalnızca hedef host'ta yapılır. Fragmentation CPU yükü getirir; tek parça kaybolursa tüm paket yeniden gönderilir.
Path MTU Discovery (PMTUD)
Kaynak DF=1 ile gönderir. Yoldaki router paketi geçiremezse düşürür ve ICMP Type 3 Code 4 (Fragmentation Needed) ile izin verilen MTU'yu bildirir. IPv6'da router hiç fragment etmez; ICMPv6 Packet Too Big gönderir.
Klasik sorun: PMTUD black hole
Bir firewall tüm ICMP'yi engellerse kaynak uyarıyı hiç almaz. Sonuç: TCP el sıkışması başarılı olur, küçük istekler çalışır ama büyük yanıtlar (web sayfası, dosya) takılır. Bu, VPN, GRE ve PPPoE (1492) gibi overhead ekleyen yollarda çok yaygındır.
Çözümler
! Cisco: tünel arayüzünde TCP MSS'i düşür
interface Tunnel0
ip mtu 1400
ip tcp adjust-mss 1360# Yol MTU'sunu test et (Linux): 1472 + 28 = 1500
ping -M do -s 1472 8.8.8.8- ICMP Type 3 Code 4'ü firewall'da izinli bırakın.
- Datacenter'da jumbo frame (9000) kullanılıyorsa uçtan uca tüm cihazlarda aynı olmalıdır.
İlgili Ağ Temelleri soruları
- OSI modelinin katmanları nelerdir?
- TCP ile UDP arasındaki fark nedir?
- TCP üçlü el sıkışma (three-way handshake) nasıl çalışır?
- 192.168.10.0/26 ağında alt ağ maskesi nedir ve kaç kullanılabilir host vardır?
- Tarayıcıya bir adres yazdığınızda DNS çözümlemesi nasıl gerçekleşir?
- Bilinmesi gereken yaygın port numaraları nelerdir? HTTP ve HTTPS arasındaki fark nedir?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.