VPN’de MTU Ayarı Nedir? Ne Zaman Değiştirilmeli?
Paket parçalanması kaynaklı yavaşlık ve doğru MTU değerinin bulunması.
MTU, bir ağ bağlantısının tek pakette taşıyabileceği en büyük veri boyutu. VPN her pakete kendi başlığını eklediği için tünelin içinden geçebilecek paket, dışarıdaki hattın taşıyabileceğinden küçük. Bu fark hesaba katılmazsa büyük paketler yolda düşüyor: bağlantı kuruluyor ama sayfalar yarım yükleniyor, büyük dosyalar takılıyor.
Belirtileri ve diğer sebeplerden nasıl ayrıldığını VPN açıkken site açılmıyor yazısında anlattık. Bu yazı doğru değeri bulmak ve doğru yere yazmak hakkında.
Ne zaman değiştirilmeli?
- VPN bağlı, küçük sayfalar açılıyor, büyük siteler ya da dosyalar takılıyorsa.
- Aynı VPN bir ağda sorunsuz, başka bir ağda (mobil veri, otel Wi-Fi'ı) sorunluysa.
- Kendi kurduğunuz bir VPN sunucusunda bazı cihazlar sorunsuz, bazıları sorunluysa.
Her şey çalışıyorsa MTU'ya dokunmayın. Gereğinden düşük bir değer de sorun çıkarmaz ama küçük bir verim kaybı getirir; düzeltilecek bir şey yokken ayar yapmanın kazancı yok.
Hesap: temel değerden başlık çıkar
Tünelin MTU'su = dışarıdaki hattın MTU'su − VPN'in eklediği başlık. İlk sayı çoğu kişinin sandığı gibi her zaman 1500 değil:
| Hat | Temel MTU |
|---|---|
| Ethernet, kablo internet, çoğu Wi-Fi | 1500 |
| PPPoE kullanan hatlar (Türkiye'de fiber ve VDSL'in çoğu) | 1492 |
| Mobil veri | Operatöre göre değişiyor; ölçmek gerekiyor |
PPPoE kendi 8 baytlık başlığını eklediği için evdeki modem zaten 1492 ile çalışıyor. Hesabı 1500'den yaparsanız tünel 8 bayt fazla büyük kalıyor ve sorun çözülmüyor.
VPN protokollerinin eklediği başlık yaklaşık olarak şöyle:
| Protokol | Başlık (IPv4 üzerinden) | 1500 hatta tünel | 1492 hatta tünel |
|---|---|---|---|
| WireGuard | 60 bayt (IPv6 üzerinden 80) | 1440 | 1432 |
| OpenVPN (UDP) | Şifreleme ayarına göre değişiyor, kabaca 40–70 bayt | Ölçün | Ölçün |
| IKEv2 / IPsec | Şifreleme ayarına göre 50–80 bayt civarı | Ölçün | Ölçün |
WireGuard'ın varsayılanı 1420; bu, dış bağlantının IPv6 olabileceği düşünülerek seçilmiş güvenli bir değer. PPPoE hattında ve IPv6 dış bağlantıda bile 1412'ye kadar inmek gerekebiliyor. Hesap bir başlangıç noktası; kesin değer ölçümle bulunuyor.
Ölçüm: ping merdiveni
Yöntem, "bölünmesin" işaretli büyük bir ping paketi gönderip boyutu değiştirerek geçen en büyük değeri bulmak. Komutta yazdığınız sayı paketin veri kısmı; gerçek paket boyutu buna 28 bayt (IP ve ICMP başlıkları) eklenerek bulunuyor.
| Sistem | Komut |
|---|---|
| Windows | ping -f -l 1472 1.1.1.1 |
| macOS | ping -D -s 1472 1.1.1.1 |
| Linux | ping -M do -s 1472 1.1.1.1 |
Önce VPN kapalıyken dışarıdaki hattı ölçün, sonra VPN açıkken tüneli. Her denemede aralığı ikiye bölün; sekiz on denemede sonuca varıyorsunuz:
| Deneme | Veri boyutu | Sonuç | Sıradaki adım |
|---|---|---|---|
| 1 | 1472 | Parçalanması gerekiyor | Aşağı in |
| 2 | 1400 | Yanıt geldi | Ortaya çık |
| 3 | 1436 | Parçalanması gerekiyor | Aşağı in |
| 4 | 1418 | Yanıt geldi | Ortaya çık |
| 5 | 1427 | Parçalanması gerekiyor | Aşağı in |
| 6 | 1422 | Yanıt geldi | Bir bayt bir bayt yukarı |
| 7 | 1424 | Yanıt geldi | 1425 dene |
| 8 | 1425 | Parçalanması gerekiyor | Son değer 1424 |
Bu örnekte geçen en büyük veri 1424; 28 eklenince yolun MTU'su 1452. VPN kapalıyken ölçtüyseniz bu dış hattın değeri; tünel MTU'su bundan protokol başlığı çıkarılarak bulunur. VPN açıkken tünel arayüzü üzerinden ölçtüyseniz değer doğrudan tünelin taşıyabildiği boyuttur.
Hiç yanıt gelmiyorsa ve hata mesajı da yoksa yol üzerindeki bir cihaz ICMP paketlerini engelliyor olabilir; başka bir hedef adresle deneyin. Ping komutunun diğer seçenekleri ping atma yazısında.
Değeri nereye yazmalı?
| Yer | Ayar |
|---|---|
| WireGuard yapılandırması | [Interface] bölümüne MTU = 1412 satırı |
| OpenVPN | tun-mtu ve mssfix satırları; genellikle yalnızca mssfix düşürmek yetiyor |
| Ticari VPN uygulaması | Ayarlar → Gelişmiş → MTU (varsa); yoksa protokol değiştirmek |
| Windows (tünel arayüzü) | netsh interface ipv4 set subinterface "Arayüz adı" mtu=1400 store=persistent |
| Linux | ip link set dev wg0 mtu 1400 |
Windows komutu yönetici olarak açılmış komut isteminde çalışır; arayüz adını netsh interface ipv4 show subinterfaces listeler. Linux'taki ayar yeniden başlatmada sıfırlanır; kalıcı olması için VPN yapılandırmasına yazılmalı. Kendi sunucunuzu işletiyorsanız ayarı istemci ve sunucu tarafında aynı tutun; kurulum ayrıntısı kendi VPN sunucum yazısında.
MSS sınırlama: ayara dokunmadan çözüm
Web trafiğinin büyük bölümü TCP ile taşınıyor ve TCP bağlantı kurarken karşı tarafa "bana en fazla şu büyüklükte parça gönder" diyor (MSS). VPN sunucusu ya da yönlendirici bu değeri tünele uygun boyuta indirirse, MTU ayarı yanlış olsa bile TCP trafiği sorunsuz akıyor. Ticari VPN'lerin çoğu bunu kendiliğinden yapıyor; sorun daha çok UDP kullanan oyun, görüntülü görüşme ve kendi kurulan VPN'lerde kalıyor.
Çok düşük ayarın bedeli
Her paketin başlığı sabit olduğu için paket küçüldükçe taşınan veri oranı azalıyor. 1500 yerine 1280 kullanmak, verimi yüzde birkaç düşürüyor; çoğu bağlantıda fark hissedilmiyor ama gereksiz. IPv6'nın zorunlu kıldığı en küçük değer 1280; bunun altına inmeyin. Hız sorunlarının diğer sebepleri için VPN hızını artırma yazısına bakabilirsiniz.
Sıkça sorulan sorular
VPN için doğru MTU değeri nedir?
Dış hattın MTU’su eksi protokol başlığı. Ethernet hatta 1500, PPPoE hatta 1492’den başlanır. WireGuard için PPPoE hatta yaklaşık 1432, güvenli varsayılan 1420’dir. Kesin değer ping ile ölçülür.
MTU değerini nasıl ölçerim?
Bölünmesin işaretli bir ping gönderin; Windows’ta ping -f -l 1472 1.1.1.1. Hata alırsanız boyutu küçültün, geçen en büyük değere 28 ekleyin. Sonuç yolun MTU’sudur.
Türkiye’de fiber hatlarda MTU neden 1492?
Fiber ve VDSL hatların çoğu PPPoE ile bağlanır ve PPPoE her pakete 8 baytlık kendi başlığını ekler. Bu yüzden hesap 1500’den değil 1492’den başlamalıdır.
WireGuard’da MTU nereye yazılır?
Yapılandırma dosyasının Interface bölümüne MTU = değer satırı olarak. Sunucu ve istemci tarafında aynı değeri kullanmak sorun çıkma ihtimalini azaltır.
MTU’yu çok düşük ayarlarsam ne olur?
Bağlantı çalışır ama her pakette taşınan veri oranı azaldığı için küçük bir verim kaybı olur. IPv6’nın zorunlu kıldığı 1280’in altına inilmemelidir.