VDS sunucularınız ve istemcileriniz arasında WireGuard tüneli kurarken karşılaşılan SSH donmaları, web sitelerinin yüklenmemesi ve hız düşüşlerini optimum MTU ve TCP MSS Clamping değerleriyle çözün.
Standart kablolu ve veri merkezi ağları
| Katman / Başlık | Protokol Detayı | Başlık Boyutu | İşlevi | Durum |
|---|---|---|---|---|
| Taşıyıcı IP Başlığı | IPV6 Dış Ağ Başlığı | 40 Bayt | Yönlendirme ve hedef VDS adresi | Zorunlu |
| UDP Taşıyıcı Başlığı | RFC 768 UDP | 8 Bayt | WireGuard port soketi (51820) | Zorunlu |
| WireGuard Kapsülleme | ChaCha20-Poly1305 + Auth Tag | 32 Bayt | Kriptografik kimlik ve şifreleme | Şifreli |
| Kalan Tünel İçi Yük (MTU) | İç Paket Verisi (TCP/UDP/ICMP) | 1420 Bayt | Maksimum parçasız tekil paket hacmi | Optimal |
/etc/wireguard/wg0.conf)# /etc/wireguard/wg0.conf [Interface] Address = 10.10.0.1/24, fd42:42:42::1/64 ListenPort = 51820 PrivateKey = <SUNUCU_GIZLI_ANAHTARI> MTU = 1420 # Otomatik MSS Clamping kuralı (PostUp / PostDown): PostUp = iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -o %i -j TCPMSS --clamp-mss-to-pmtu PostUp = iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -i %i -j TCPMSS --clamp-mss-to-pmtu PostDown = iptables -t mangle -D FORWARD -p tcp --tcp-flags SYN,RST SYN -o %i -j TCPMSS --clamp-mss-to-pmtu PostDown = iptables -t mangle -D FORWARD -p tcp --tcp-flags SYN,RST SYN -i %i -j TCPMSS --clamp-mss-to-pmtu
MSS Clamping, tünelden geçen TCP paketlerinin SYN el sıkışmasındaki maksimum segment boyutunu sınırlar; böylece SSH donmaları ve HTTPS kilitlenmeleri tamamen engellenir.
# iptables TCP MSS Clamping Komutları (Anında Uygula) iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -o wg0 -j TCPMSS --set-mss 1380 iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -i wg0 -j TCPMSS --set-mss 1380 ip6tables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -o wg0 -j TCPMSS --set-mss 1360
WireGuard, modern kriptografisi ve Linux çekirdeğine gömülü mimarisiyle son derece hızlıdır. Ancak sistem yöneticilerinin en sık karşılaştığı kafa karıştırıcı sorunlardan biri şudur: ping komutları ve küçük curl istekleri kusursuz çalışırken, büyük bir web sayfası açılmaya çalışıldığında veya SSH oturumunda ls -la yapıldığında bağlantı aniden donar. Bu durumun kök nedeni MTU Uyuşmazlığı ve PMTUD Karadelikleridir (Blackhole):
Standart bir Ethernet paketi azami 1500 bayt olabilir. WireGuard paketi şifreleyip yeni bir UDP paketi içine sardığında; 20/40 bayt dış IP başlığı, 8 bayt UDP başlığı ve 32 bayt WireGuard şifreleme başlığı ekler. Dolayısıyla tünel içindeki MTU IPv4 için en fazla 1440, IPv6 için 1420 bayt olabilir.
Türkiye'de ve dünyada çoğu ev/ofis fiber interneti (FTTH/DSL) PPPoE protokolü kullanır. PPPoE 8 bayt ek yük getirdiği için fiziksel MTU 1500 değil 1492 bayttır. Eğer istemciniz varsayılan 1420 MTU ile tünel açarsa ve taşıyıcı IPv6 ise toplam paket 1500 baytı aşar ve servis sağlayıcının yönlendiricisinde sessizce düşer. PPPoE için doğru değer 1412 bayttır.
Her istemcinin MTU ayarını tek tek değiştirmek yerine, VDS sunucusunun güvenlik duvarına (nftables veya iptables)TCP MSS Clamping kuralı eklenir. Bu kural, TCP üçlü el sıkışmasındaki (SYN paketi) maksimum segment boyutunu tünelin tavanına eşitler; böylece tüm web ve SSH trafiği parçalanmadan, ışık hızında akar.
Paket boyutu MTU'yu aştığında yönlendiriciler ICMP Type 3, Code 4 (Fragmentation Needed) mesajı gönderir. Ancak birçok aşırı korumacı güvenlik duvarı ve CDN tüm ICMP paketlerini engellediği için gönderici paketin düştüğünü anlayamaz ve sonsuz bir bekleme döngüsüne (karadelik) girer. MSS Clamping bu sorunu doğrudan TCP katmanında kökten çözer.