Traceroute neden VPN tünelinde tek yönde ölür
Bir yönde tamamlanıp diğer yönde yıldızlar basan bir iz genellikle tanılama sorunudur. Sonda yöntemlerini, dönüş yollarını ve gerçek bir isteği karşılaştırın.
Bir yönde tamamlanan, diğer yönde ise yıldız satırları basan traceroute çıktısı asimetrik yönlendirme gibi görünür ve genellikle öyle değildir. Gösterilen her atlama, sondanın varmasını, bir yönlendiricinin yanıt vermeye karar vermesini ve yanıtın geri dönüp sonda ile eşleşmesini gerektirir. Bu halkalardan herhangi birini koparın, satır yıldıza dönüşür ve tünel veri taşımaya devam eder.
İz, taşıma hakkında kanıt olmadan önce tanılama hakkında kanıttır. Sormaya değer soru üç halkadan hangisinin başarısız olduğudur ve yanıt çıktının biçiminden değil, paketlerden gelir.
Yıldız eksik bir yanıttır, eksik bir atlama değil
Traceroute her turda TTL'si bir yönlendirici daha ötede sona eren sondalar göndererek dışa doğru ilerler. Süresi dolmuş bir sondayı atan yönlendiricinin kendini adlandıran bir ICMP Time Exceeded iletisi döndürmesi gerekir ve araç bu adı basar. Aracın gerçekte beklediği, o iletinin bir zaman aşımı içinde varmasıdır. Yönlendirici başka bir kaynak adresinden yanıt verirse, hata üretme sıklığını sınırlarsa ya da sondayı tek kelime etmeden düşürürse, tur basılabilir hiçbir şey üretmez.
Bu sonuçların hiçbiri ileri yolun bozuk olduğunu söylemez. Yıldız, yanıtsız kalan posta hakkında bir rapordur, boş bir yol hakkında değil.
Sonda yöntemi hangi filtreyle karşılaşacağınızı belirler
Linux'ta varsayılan yöntem genellikle yüksek numaralı bir UDP hedef bağlantı noktasıdır, Windows'taki tracert ICMP yankıları gönderir ve Linux'a bunun yerine ICMP veya TCP kullanması söylenebilir. Bunların her biri durum tutan bir güvenlik duvarı veya bulut güvenlik grubu için farklı türde trafik gibi görünür. Bir taraftan UDP izini diğer taraftan ICMP iziyle karşılaştırmak iki farklı deneyi karşılaştırmaktır. Sonuçları fark olarak adlandırmadan önce yöntemi, adres ailesini, kaynak adresi ve zaman aşımını sabitleyin.
Adil bir karşılaştırma için izi trafiği gerçekten taşıyan ana bilgisayarlardan çalıştırın, onlar adına yönlendiren bir ağ geçidinden değil. Yönlendirici tarafından üretilen bir iz, yönlendiricinin kendi kaynak adresini ve çıkış politikasını kullanır; bunlar bir istemcinin gördüğü her şeyden daha katı olabilir. Tam komutu kaydedin ki sonraki kişi yineleyebilsin.
Zaman aşımı değeri deneyin diğer yarısıdır ve notlardan kolayca çıkar. Tıkanık bir yolda iki saniyelik bekleme yıldız bildirirken beş saniyelik bekleme aynı yerde atlama bildirir. Değeri tüm çalıştırmalarda aynı tutun ki karşılaştırma ağ hakkında kalsın.
Dönüş yolu kendi rotasıdır
Bir ICMP hatası kendi kaynağı ve hedefi olan sıradan bir pakettir ve izleyiciye geri dönüş yolu gerekir. Tünel politikası LAN öneklerini taşıyor ama hatayı üreten yönlendiricinin adresini taşımıyorsa, ileti size ulaşamayacak bir yoldan çıkar. Yanıt filtreleme, rota var olsa bile onu düşürebilir, çünkü paket beklenmedik bir adresten beklenmedik bir arabirime gelir. Bu, uygulama hatası değil tanılama düzleminde bir uyumsuzluktur.
İz tamamlanana kadar her seçiciyi genişletmek resmi güzelleştirir ve politikayı kötüleştirir. Belirli tanılama adresini onarın ya da yıldızı kabul edip uygulamayı başka bir yolla sınayın.
Tüneli gerçek bir istekle doğrulayın
Hizmetin kendi bağlantı noktasında bir TCP el sıkışması, önemli yönde yönlendirmeyi, dönüş yönlendirmesini ve filtrelemeyi sınar. Aşağıdaki komutlar iki uçta çalışır ve her tarafın neyi açabildiğini karşılaştırır. Hizmet bağlantı noktasını ve tünel arabirimi adını kendi kurulumunuzdan alın.
traceroute -I -n -w 2 203.0.113.40
traceroute -T -p 443 -n -w 2 203.0.113.40
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' --max-time 5 http://203.0.113.40:8080/health
ss -tan state established
Önce iki traceroute çalıştırmasını okuyun: ICMP çalıştırması atlamalar gösteriyorsa ve TCP çalıştırması göstermiyorsa fark yöntemdedir, yolda değil. Ardından curl sonucunu uygulama düzeyinde yanıt olarak alın, çünkü makul bir durum koduyla tamamlanan bir alışveriş, ileri ve dönüş yollarının gerçek trafik için çalıştığı anlamına gelir. Soket listesi bağlantının kurulup kurulmadığını gösterir ve bunu hiçbir iz size söyleyemez.
Etkileşimli bir oturumu iki yönde taşırken bir traceroute yıldızlar basan tünel sağlıklıdır ve yalnızca fotojenik değildir. Her tarafın komut çıktısını kayıt olarak saklayın ve eksik atlamaları VPN hakkında bir hüküm değil, tanılama hakkında açık bir soru olarak ele alın.