MTU ve MSS hesaplayıcı
VPN ya da tünelden sonra bazı sayfalar açılmıyor, büyük dosyalar takılıyor mu? Fiziksel MTU'yu ve kapsülleme katmanlarını girin; tünel içi MTU'yu, TCP MSS değerini, ping ile sınama komutlarını ve MSS clamping örneklerini görün.
Tünelin üzerinden geçtiği arayüzün MTU'su. Ethernet için çoğunlukla 1500; jumbo çerçeveli ağlarda 9000 olabilir.
Sonuçlar
- Tünel içi MTU
- 1.440 bayt
- TCP MSS
- 1.400 bayt
- MTU 1.440 − 40 (IP + TCP başlığı, seçenekler hariç)
- Toplam başlık
- 60 bayt
- Ping yükü (tünel içi yol)
- 1.412 bayt
- MTU 1.440 − 28 (IP + ICMP başlığı)
Katman katman MTU
| Katman | Başlık | Kalan MTU |
|---|---|---|
| Fiziksel arayüz | — | 1.500 |
| WireGuard (IPv4 dış) | −60 | 1.440 |
Ping ile sınama
DF (parçalama yasak) bitiyle ping atarak yolun gerçek MTU'sunu doğrulayın. Komut geçerse bu boyut yoldan geçiyordur; hata alırsanız boyutu küçültüp tekrarlayın, en büyük geçen N + başlık = yol MTU'su.
Tünel içi yol (hesaplanan iç MTU için) · Yük boyutu N = 1412 bayt
Windows
ping -f -l 1412 <hedef>
Linux
ping -M do -s 1412 <hedef>
Tünel dışı yol (IPv4 altyapı, fiziksel MTU için) · Yük boyutu N = 1472 bayt
Windows
ping -f -l 1472 <hedef>
Linux
ping -M do -s 1472 <hedef>
"Packet needs to be fragmented but DF set" ya da "message too long" yanıtı, o boyutun yoldan geçmediğini gösterir.
MSS clamping örnek satırları
Tünel girişinde TCP SYN paketlerinin MSS değerini düşürmek, ICMP filtrelenen yollarda parçalanma ve takılma sorunlarını önler.
Örnek; ortamınıza göre uyarlayın (arayüz adlarını, zincirleri ve yön kurallarını doğrulayın).
Linux (iptables/ip6tables)
ip link set dev <tunel-arayuzu> mtu 1440 iptables -t mangle -A FORWARD -o <tunel-arayuzu> -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1400
MikroTik RouterOS
/ip firewall mangle add chain=forward out-interface=<tunel-arayuzu> protocol=tcp tcp-flags=syn action=change-mss new-mss=1400 passthrough=yes
Cisco IOS
interface <tunel-arayuzu> ip mtu 1440 ip tcp adjust-mss 1400
Sınama olmadan üretim yönlendiricisine uygulamayın.
Parçalanma ve DF biti
IPv4'te paket yoldaki bir bağlantının MTU'sundan büyükse ve DF bit kapalıysa yönlendirici paketi parçalar; DF açıksa paketi atar ve ICMP "Fragmentation Needed" mesajı gönderir. IPv6'da yönlendiriciler paket parçalamaz: büyük paket atılır ve ICMPv6 "Packet Too Big" döner, parçalamayı yalnızca gönderen yapabilir.
Bu ICMP mesajları güvenlik duvarında engellenirse yol MTU keşfi (PMTUD) çalışmaz ve bağlantı küçük paketlerle açılır ama büyük veri aktarımında takılır ("kara delik"). Bunun sık görülen çözümü TCP SYN'de MSS'yi düşürmektir; UDP ve diğer protokoller için tünel arayüzünün MTU'sunu doğrudan düşürmek gerekir.
Hesap ve varsayımlar
- Tünel içi MTU = fiziksel MTU − Σ kapsülleme başlıkları.
- TCP MSS = MTU − 40 (IPv4: 20 IP + 20 TCP) ya da MTU − 60 (IPv6: 40 IP + 20 TCP). TCP seçenekleri (ör. zaman damgası) MSS'yi etkin olarak biraz daha düşürür.
- Ping yükü N = MTU − 28 (IPv4: 20 IP + 8 ICMP) ya da MTU − 48 (IPv6: 40 IP + 8 ICMP).
- Tipik başlıklar: PPPoE 8, GRE 24, WireGuard IPv4 60 / IPv6 80, VXLAN 50 (IPv4 dış). IPsec ESP, OpenVPN ve L2TP için değer yapılandırmaya göre değişir; kendiniz girin.
Girdiğiniz değerler tarayıcınızda işlenir; sunucuya gönderilmez ve kaydedilmez.
Bu hesap bir ön tahmindir: başlık boyutları tipik değerlerdir ve şifre takımı, NAT-T, seçenekler ve dış IP sürümüne göre değişir. Sonucu mutlaka ping ile ve gerçek trafikte doğrulayın; örnek yapılandırma satırlarını ortamınıza uyarlamadan uygulamayın.
VPN, site arası bağlantı ya da bulut ağ geçişlerinizi birlikte tasarlayıp sınayalım mı?
Görüşme talep edin01
Nasıl kullanılır
A
Fiziksel arayüzün MTU'sunu ve tünelden geçen trafiğin IP sürümünü seçin.
B
Kapsülleme katmanlarını fiziksel hattan içe doğru ekleyin; tipik başlık boyutlarını kendi yapılandırmanıza göre düzenleyin, IPsec/OpenVPN/L2TP için değeri kendiniz girin.
C
Tünel içi MTU ve MSS değerini alın; ping komutlarıyla yolu sınayın, gerekirse MSS clamping örneğini ortamınıza uyarlayın.
02
MTU, MSS ve tünel başlığı
MTU, bir arayüzün tek pakette taşıyabileceği en büyük IP paketi boyutudur (Ethernet'te tipik 1500 bayt). Tünel ya da VPN, her paketi yeni başlıklarla sarar; bu başlıklar aynı çerçeveden yer kaplar, bu yüzden tünelin içinden geçen paketler için kalan MTU küçülür. MSS ise TCP'nin tek parçada taşıyacağı en büyük veri miktarıdır ve MTU'dan IP ve TCP başlıkları çıkarılarak bulunur.
Katmanlar üst üste bindirilebilir (ör. PPPoE üzerinde WireGuard); her biri MTU'yu kendi başlığı kadar düşürür. Araç, kapsüllemeleri fiziksel hattan içe doğru sırayla toplar ve her adımda kalan MTU'yu gösterir.
03
Başlık boyutları neden "tipik değer"
PPPoE (8 bayt), GRE (IPv4 dış için 24), WireGuard (IPv4 dış için 60, IPv6 dış için 80) ve VXLAN (IPv4 dış için 50) sabit bir yapıya sahiptir ve yaygın değerlerdir. Yine de dış IP sürümü, seçenekler ve çevre ağdaki ek etiketler (ör. VLAN) bunları değiştirebilir; bu yüzden her değeri düzenlenebilir bıraktık.
IPsec ESP, OpenVPN ve L2TP için başlık; şifre takımına, bütünlük algoritmasına, dolgu ve NAT geçişi (NAT-T) gibi seçeneklere göre geniş aralıkta değişir. Bu araç bunlar için hazır değer önermez: kendi yapılandırmanızdan ya da ürün belgesinden girin.
04
MSS clamping ne zaman gerekir
TCP bağlantısının MSS'yi uçlar el sıkışırken (SYN) belirlediğini ve ortadaki tünelin MTU'sunu bilmediğini düşünün. Yol MTU keşfi çalışmıyorsa (ICMP engelli) uçlar tünele sığmayan paketler gönderir ve bağlantı takılır. Tünel çıkışında SYN paketlerinin MSS'sini düşürmek, uçları baştan uygun boyuta çeker.
Clamping yalnızca TCP'yi çözer; UDP tabanlı protokoller için tünel arayüzünün MTU'sunu uygun değere ayarlamak gerekir. Örnek satırlar yaygın platformlar içindir; arayüz adlarını, zincirleri ve yön kurallarını kendi ortamınıza göre doğrulayın.
Sık sorulanlar
- Girdiğim değerler bir yere gönderiliyor mu?
- Hayır. Hesap tarayıcınızda çalışan kodla yapılır; değerler sunucuya iletilmez ve kaydedilmez.
- MTU ile MSS arasındaki fark nedir?
- MTU, bir arayüzün taşıyabileceği en büyük IP paketidir; MSS ise TCP'nin tek parçada taşıyacağı veri boyutudur. IPv4'te MSS = MTU − 40, IPv6'da MTU − 60 (TCP seçenekleri hariç).
- WireGuard için hangi MTU değerini kullanmalıyım?
- Dış hat 1500 ise dış başlık IPv4 ise 1440, IPv6 ise 1420 bulunur (60 ve 80 bayt başlık). Pratikte 1420 çoğu durumda güvenli kabul edilir; yine de kendi yolunuzu ping ile doğrulayın. Daha dar bir hat (PPPoE, mobil) varsa değeri düşürmeniz gerekebilir.
- IPsec için neden hazır başlık değeri yok?
- ESP başlığı ve bitişi şifre takımına, dolguya, NAT-T kullanılıp kullanılmadığına ve tünel/taşıma kipine göre değişir. Yanlış bir hazır değer yanıltıcı olurdu; kendi yapılandırmanızdan girin ya da ping ile sınayarak bulun.
- Ping komutundaki -l / -s değeri neden MTU − 28?
- Ping, ICMP yükünün boyutunu verir; pakete 20 bayt IPv4 ve 8 bayt ICMP başlığı eklenir. IPv6'da IP başlığı 40 bayttır, yani MTU − 48.
- MSS clamping tek başına yeterli mi?
- TCP için çoğunlukla evet, UDP/ICMP için hayır. Tünel arayüzünün MTU'sunu da doğru ayarlayın ve ICMP "Fragmentation Needed" / "Packet Too Big" mesajlarını gereksiz yere engellemeyin.
VPN ya da tünelde takılma mı yaşıyorsunuz?
Site arası bağlantılar, uzaktan erişim ve bulut ağları için tasarım, MTU planı ve sınamayı birlikte yapalım. Ücretsiz keşif görüşmesinde mevcut durumu ve hedeflerinizi konuşalım.