Ping yanıt veriyor, DNS çözümlüyor ve tam boyutlu segment gerektiren her sayfa takılıyor. Kendi sarmalamasını ekleyen bir bağlantıda yol sessizce birkaç düzine bayt bütçe kaybeder ve temiz Ethernet için yazılmış bir profil, hattın taşıyamayacağı paketleri istemeye devam eder. Bağlantı yavaş değil; tam da önemli olan paketleri atıyor.

Üç seçenek bunu düzeltebilir ve farklı katmanlarda çalışırlar. Yanlış olanı seçmek ya hiçbir şey yapmaz ya da tüneli yeni bir şekilde kırılgan hale getirir, bu yüzden seçim yolun gerçekte neyi desteklediğiyle başlar.

Üç düğme, üç farklı katman

link-mtu dış bütçedir: şifrelenmiş yük artı OpenVPN başlığı, UDP başlığı ve dış IP başlığı. Makineden neyin çıktığını tanımlar, bu yüzden fiziksel yolun sınırladığı sayı odur.

tun-mtu iç bütçedir: trafiğinizin gördüğü arayüz. Yolun taşıyabileceğinden tam olarak tünelin ek yükü kadar büyüktür ve OpenVPN genellikle onu sizin ayarlamanızı zorlamak yerine kendisi türetir.

mssfix tamamen başka bir mekanizmadır. TCP el sıkışmaları sırasında duyurulan en büyük segment boyutunu yeniden yazar, böylece TCP eşleri sarmalamadan sonra sığan segmentleri seçer. Arayüzün MTU'sunu değiştirmez ve UDP üzerinde hiçbir etkisi yoktur.

link-mtu değerini açıkça ayarlarsanız OpenVPN iç MTU'yu türetmek için kendi ek yükünü çıkarır. Bu ek yük sabit bir değer değildir; şifreye ve kimlik doğrulamaya bağlıdır, bu yüzden bir forumdan kopyalanan değer başka bir profilde yanlış olabilir. Hem link-mtu hem tun-mtu ayarlanırsa istemciye birbiriyle çelişen iki talimat verilir.

Herhangi bir sayı seçmeden önce yolu ölçün

Tünelin içinden değil fiziksel arayüzden ölçün ve ping'in yükü bildirdiğini, paket boyutunu bildirmediğini unutmayın. Yükü 1500 baytlık bir çerçeveyle karşılaştırmadan önce IPv4 ve ICMP başlıkları için 28 bayt ekleyin ve bir eş farklı bir sayı bildirdiğinde bu düzeltmeyi aklınızda tutun.

Linux istemcisinde ping -M do -s 1472 parçalanmayı yasaklar ve paket çok büyükse başarısız olur. Geçene kadar yükü düşürün, sonra yolun MTU'sunu almak için 28 ekleyin. PPPoE 8 bayt harcar, bu yüzden DSL'de 1492 normaldir. DS-Lite ve bazı mobil yollar 40 veya daha fazla harcar ve yanıt genellikle nominal bağlantı hızının ima ettiğinden düşüktür.

Her ping boyutu başarılı olur ama büyük transferler yine takılırsa basit bir boyut sınırı yerine kara delikten şüphelenin. Gerekli parçalanma hakkındaki ICMP mesajı yolun bir yerinde filtreleniyor, bu yüzden gönderen küçültmeyi hiç öğrenmez ve bunu yalnızca büyük segment gerektiren akışlar fark eder.

Önce TCP'yi sınırlayın, sonra tüneli küçültün

TCP el sıkışmaları mssfix değerinin dokunduğu tek şeydir, bu da onu genellikle ilk denenecek en az müdahaleci kontrol yapar. Yolun gerçek bütçesinin biraz altına ayarlayın, iki uç anlaşsın diye sunucudan da aynı değeri gönderin ve büyük bir indirmeyi yeniden test edin. Takılma geçerse sorun TCP segment boyutuydu ve başka hiçbir şeyin değişmesi gerekmez.

Etkilenen trafik TCP değilse iç MTU'yu düşürün. Bir UDP hizmeti, tünel içinde tünel veya tam boyutlu datagramlar gönderen bir uygulama MSS sınırından sonra da başarısız olmaya devam eder çünkü hiçbir şey paket boyutunu yeniden yazmaz. Bu durumda tun-mtu değerini düşürün ya da link-mtu ayarlayıp istemcinin iç değeri türetmesine izin verin, ama asla ikisini birden değil.

Eski parçalama seçeneğine uzanmayın. Paketleri tünelin içinde bölüyordu, ek yük katıyordu ve iyi nedenlerle kullanımdan kaldırıldı; modern OpenVPN yolun doğru tanımlanmasını bekler.

Küçük testler neden çalışmaya devam eder

DNS sorguları, ICMP yankıları ve TCP el sıkışmaları başarısız olan boyutun çok altındadır. Bu yüzden tünel her hızlı testte sağlıklı görünürken TLS el sıkışmaları ve HTTP yanıtları sessizce başarısız olur. Tam da bu kombinasyon, çalışan bir traceroute ve ilk büyük yanıtta takılan bir tarayıcı, aranması gereken işarettir. Yeni bir profile uzanmadan önce tam boyutlu bir teste uzanın.

Başarısız olan trafikle doğrulayın. Büyük bir sayfa getirin, etkilenen hizmet buysa tam boyutlu bir UDP datagramı gönderin ve başka bir bağlantıdaki ikinci istemciden yineleyin. Ölçülen yol MTU'sunu ve seçtiğiniz değeri not edin, çünkü aksi halde profile dokunacak bir sonraki kişi bu sayıyı keyfi sayar.

IPv6 tünel üzerinden giderken iç MTU'yu asla 1280'in altına indirmeyin, çünkü bu her IPv6 bağlantısının taşımak zorunda olduğu en düşük değerdir. Daha küçük bir MTU yol hakkında bir gerçektir, hisle ayarlanan bir performans ayarı değildir.

İlgili makaleler