Tünel geri geliyor, istemci bağlandığını söylüyor, tarayıcı ise kopmadan önce yüklediği sayfada dönmeye devam ediyor. VPN yeniden bağlanması bir yolu geri getirir, uygulamaların ve uzak tarafın eski yol üzerinde biriktirdiği bağlantı durumunu geri getirmez. Bunlar onarılacak iki ayrı şeydir ve karıştırmak sizi sebepsiz yere VPN ayarlarına geri gönderir.

Tek bir test onları temiz biçimde ayırır ve on saniye sürer. Eski istek asılıyken aynı hedefe yeni bir istek gönderin.

Yeniden bağlanmadan ne sağ çıkar, ne çıkmaz

Tünel bir rota, anahtar ve adres kümesidir ve yeniden bağlanma üçünü de geri getirebilir; oysa kurulmuş her akış ölü kalır. İşletim sistemi soketi uygulama istediği için açık tutar ve o soketin zaman aşımı dakikalar veya saatler uzakta olabilir. Altında eş, akışı unutmuştur, bir çeviri kaydının süresi dolmuştur ya da yol artık el sıkışmayı hiç görmemiş bir uçtan geçiyordur. Yeniden bağlanma dizisinde hiçbir şey uygulamanın soketlerini dolaşıp onarmaz.

Bazı istemciler yeniden bağlanırken eski bağlantıları düşüren bir kanca ekler, çoğu eklemez. Buradaki davranış istemciye, platforma ve sürüme göre değişir.

Uzak taraf sizi de unuttu

Uzak uç kendi durumunu tutar: bir TLS oturumu, bir TCP denetim bloğu ve belki adresinizi ve bağlantı noktanızı akışa bağlayan bir eşleme kaydı. Yoldaki bir çeviri cihazı, tünel hızla yeniden kurulsa bile boşluk sırasında o eşlemenin süresini doldurabilir. Eşleme gidince, sunucunun artık tanımadığı bir akış için paketler gelir ve yanıt, istemcinin hiç göstermediği bir sıfırlama olabilir. Uygulamalar bunu hata değil takılma olarak bildirir, çünkü hâlâ hiç yanıt vermeyecek bir soketi beklemektedirler.

Sunucu tarafındaki boşta kalma zaman aşımları aynı şeyi kendi takvimlerine göre yapar; bu yüzden bir oturum hiçbir ağ olayı olmadan ölebilir. Sunucunun beklediğinden uzun süre boşta kalan bağlantı, tünelin kaydığını fark etmeden önce çoktan gitmiştir.

Yeni istek, onları ayıran testtir

Eski istek hâlâ asılıyken aynı ana bilgisayara yeni bir istek gönderin ve ikisini de izleyin. Yeni istek başarılı olursa tünel, rota ve ad çözümlemesi çalışıyor demektir ve arıza eski akışla sınırlıdır. Yeni istek de başarısız olursa bir yol sorununuz var ve uygulamanın oturum durumu yanlış bir izdir.

Test sırasında doğrudan trafik için herhangi bir engeli yerinde bırakın. Kazara bir yedek yoldan başarılı olan istek tünel hakkında hiçbir şey kanıtlamaz.

Eski bağlantıyla değil, yeni bağlantıyla doğrulayın

Aşağıdaki komutlar hâlâ açık soketleri gösterir, bir yeni istek başlatır ve oturum tablosunun akış için hâlâ bir kayıt tutup tutmadığını denetler. Fark görünsün diye ilkini yeniden bağlanmadan önce ve sonra çalıştırın. Ana bilgisayarı ve bağlantı noktasını kendi hizmetinizle değiştirin.

ss -tanp | grep -E ':(443|8443)'
curl -sS -o /dev/null -w '%{http_code} %{time_connect}\n' --max-time 8 https://intranet.example.com/
conntrack -L 2>/dev/null | grep 8443
dig +short intranet.example.com

Trafiğin akmadığı kurulmuş bir soket aranacak imzadır ve durum kodu döndüren yeni bir istek yolun canlı olduğunu gösterir. Bağlantı tablosu bir şeyin akışı hâlâ eşleyip eşlemediğini yanıtlar ve istemcinin göremediği kısım budur. Çözümleyici sorgusu sayfa yüklemesinin diğer yarısını kapsar, çünkü ad hatası ile takılmış bağlantı tarayıcıda aynı görünür. Birlikte, bu dört çıktı eski bir oturumu bozuk bir tünelden ayırır.

Kesinti zamanını, yeniden bağlanma zamanını ve eski ile yeni istek arasındaki farkı kaydedin. Bu kayıt belirsiz bir şikâyeti birinin üzerinde işlem yapabileceği bir rapora çevirir.

İlgili makaleler