Kurumsal VPN arkasındaki bir konteyner içinde DNS çözülür, oturum açma sayfası yüklenir, sağlık uç noktası yanıt verir ve ardından bir HTTPS isteği zaman aşımına uğrayana kadar takılır. İmajı yeniden derlemek ve proxy değişkenlerini değiştirmek hiçbir şeyi değiştirmez, çünkü bozuk kısım imajda değildir. İstemci bir taşıma üzerinden kimlik doğrular ve büyük veriyi başka bir taşıma üzerinden taşır, ve yalnızca ikincisi bozuktur.

İki taşıma, tek kafa karıştırıcı belirti

TLS tabanlı kurumsal istemci genellikle sıradan bir TLS bağlantısı üzerinden kimlik doğrular, ardından oturum için UDP tabanlı ikinci bir veri kanalını müzakere eder. Bu ikinci ayak çalıştığında verim ve gecikme iyileşir. Filtrelendiğinde veya yola sığmadığında, büyük aktarımdan önceki her şey başarılı olur ve aktarımın kendisi durur, ki bu tam olarak yukarıdaki örüntüdür.

Konteyner bu müzakereyi değiştirmez; dış paketlerin izlediği yolu değiştirir. Ana makine konteyner akışını çevirir, bu yüzden UDP datagramları istemcinin yerel soketinden farklı bir kaynak bağlantı noktasından çıkar ve kurulmuş bir TCP akışından çok daha kısa bir zamanlayıcıyla sona eren bir çeviri girdisinden geri döner. Tünel ana makinede çalışıp konteynerde başarısız oluyorsa, uygulamayı suçlamadan önce bu iki akışı karşılaştırın. Bu karşılaştırma herhangi bir imaj yeniden derlemesinden daha fazlasını çözer.

Sezgiyle değil, deneyle karar verin

En ucuz deney UDP veri kanalını kapatıp isteği yineler. Masaüstü sarmalayıcı yerine komut satırı istemcisini kullanın, böylece bayrak gerçekten uygulanır: openconnect vpn.example.net --user=you --interface=tun0 --no-dtls. Takılan istek şimdi tamamlanıyorsa sorun DTLS ayağıydı ve geri kalanı gürültüydü.

Sonucu aynı konteynerden iki yönde de doğrulayın, bayrakla bir büyük istek ve bayraksız bir istek. Bayrağı izleyen davranış değişikliği kanıttır; eninde sonunda yüklenen sayfa değildir.

Bayrak düzeltiyorsa nedenini belirleyin

Üç koşul aynı belirtiyi üretir ve farklı yanıtlar gerektirir. Yol UDP'yi tamamen filtreliyor olabilir, bu da bayrağı o ağ için doğru kalıcı yanıt yapar. Yol UDP'ye izin verip büyük datagramları düşürüyor olabilir, bu filtrelemeye değil MTU'ya işaret eder. Ya da yol o kadar kayıplı olabilir ki UDP ayağı TCP'den kötü performans gösterir, bu bir kapasite kararıdır, erişilebilirlik kararı değil.

Bir geçici çözümü belgelemeden önce bunları ayırın. Filtreleme her paket boyutunda dayanır, MTU sorunları yalnızca bir eşiğin üzerinde görünür ve kayıp temiz bir takılma yerine yeniden iletim ve değişken gecikme olarak ortaya çıkar. Her test istemci yapılandırmasını değiştirmeden nedeni daraltır.

Geçici çözümü tutmadan önce paket boyutunu kontrol edin

Neden boyutsa, tünel arayüzü yolun taşıyamadığı paketleri kabul eder ve yük büyüdüğü anda sorun her taşımada geri döner. Arayüzleri karşılaştırın: ana makinede ip link show tun0, sonra ağ seçeneklerinde kayıtlı MTU'yu okumak için docker network inspect bridge. Daha az taşıyan bir tünelin altında hâlâ 1500 baytta duran bir konteyner köprüsü olağan bulgudur.

Tünel içinde parçalanma yasağı testiyle bilinen iyi bir boyuttan yukarı doğru yoklayın, sonra konteyner ağının MTU'sunu düşürün veya tünelde TCP MSS'i sıkıştırın. İki düzeltmeden biri çoğu zaman UDP yolunu yeniden kullanılabilir yapar ve bayrak ihtiyacını ortadan kaldırır, ki filtreleme neden değilse bu daha iyi sonuçtur.

Neyi değişmeye razı olduğunuza karar verin

Veri kanalı kapalıyken tünel yükünü bir TCP bağlantısı içinde taşır. Temiz bir yolda bu yalnızca daha yavaştır; kayıplı bir yolda tek bir kayıp segment arkasındaki her şeyi geciktirir ve dış yeniden iletim içtekiyle yarışır. Bu değiş tokuş etkileşimli geliştirmeye ve küçük API çağrılarına uyar, büyük aktarımlara veya mobil bağlantılarda uzun oturumlara kötü uyar.

Hangi seçeneği seçerseniz seçin, tünelin sonunda hangi taşımayı kullandığını ve nedenini kaydedin. Aylar önce birinin eklediği bir bayrağa sessizce bağımlı olan konteyner bir sonraki kesintidir ve onu ayıklayan kişi bayrağın filtreleme için bir geçici çözüm mü yoksa MTU denemesinin kalıntısı mı olduğunu bilemez.

İlgili makaleler