İç içe VPN: dış bağlantıyı hangi tünel taşıyor?
İç tünelin kendi uç noktasına bir dış yol ihtiyacı vardır. Yanlış sırada başlatılan iki istemci bir rota çakışması yaratır, bu yüzden önce iç içe yapıyı düzeltin.
Aynı anda çalışan iki VPN istemcisi iç içe bir tünel üretmez; iki tünel ve yönlendirme kavgası üretir. İç içe tünel, iç istemcinin kendi sunucusuna olan bağlantısı bizzat dış tünel tarafından taşındığında vardır ve bu kasıtlı olarak kurulan bir düzendir. Doğru yapılırsa iç sunucu dış sunucunun adresini görür; yanlış yapılırsa bir istemci sessizce diğerinin etrafından yeniden bağlanır. İç içe yapının gerçek mi tesadüfi mi olduğuna üç koşul karar verir.
İç içe yapıya üç koşul karar verir
Birincisi hangi uç noktanın hangi yolu gerektirdiğidir. İç sunucunun adresini adlandırın, dış sunucunun adresini adlandırın ve iç sunucuya yalnızca dış tünel üzerinden ulaşılabildiğini açıkça belirtin. Geri kalan her şey bu cümleden çıkar, hangi rotaların hangi tabloya ait olduğu da dahil.
İkincisi yolu her katmanda görüp göremediğinizdir. Belirli bir hedefin hangi rotayı kullanacağını çekirdeğe soramıyorsanız, zinciri son çıkış IP'sinden çıkarıyorsunuz demektir ve bu tam olarak iç içe yapıyı tesadüften ayırt edemeyen kanıttır.
Üçüncüsü dış tünel düştüğünde ne olacağıdır. İç tünel onunla durabilir, olağan ağ üzerinden yeniden bağlanabilir veya dış yol geri gelene kadar bloke kalabilir ve üçü de savunulabilir politikalardır. Aynı politika değillerdir ve çoğu istemcinin varsayılan davranışı ikincisidir. Uç noktasını fiziksel ağ üzerinden yeniden bağlayan ve bu sırada sağlıklı bir bağlantı gösteren bir istemci, amaçlanan bir zincirin sessizce iki ilgisiz tünele dönüşmesinin en yaygın yoludur.
Birinci koşul: hangi uç nokta hangi yolu gerektirir
ip route get 203.0.113.10 bu soruyu doğrudan yanıtlar: rotayı, kaynak adresi ve çekirdeğin o hedef için şu anda kullanacağı arayüzü yazdırır.
İç istemci başlamadan önce iç sunucu için, sonra bir kez daha çalıştırın ve karşılaştırın. Yanıt fiziksel arayüzden dış tünelin arayüzüne geçiyorsa iç içe yapı o anda gerçektir. Değişmiyorsa iç istemci doğrudan bağlanıyor demektir, panel ne derse desin. Dış sunucunun adresi için tekrarlayın; o adres hâlâ fiziksel arayüz üzerinden çözülmelidir, çünkü her iki uç noktayı özyinelemeli olarak yakalayan bir rota, makineyi ağdan tamamen koparan arızadır.
İkinci koşul: yolu her katmanda inceleyin
Rota seçimi modern bir istemcide ana tablodan fazlasıdır. Politika kuralları işaretli paketleri başka bir tabloya gönderebilir, bir istemci soketini bir arayüze bağlayabilir ve bir konteyner veya ad alanı kendi tablolarına sahiptir. ip rule ve ip route show table all, bu mekanizmalardan hangisinin iş başında olduğunu bulmanın yoludur.
Kendi soketine SO_MARK koyan veya belirli bir aygıta bağlanacak şekilde yapılandırılmış bir istemci, ayarladığınızı sandığınız varsayılan rotayı atlar. Bu bir özelliktir, hata değildir ve tek güvenilir denetimin istemciyle aynı ad alanında çalışan denetim olduğu anlamına gelir. İstemciler konteynerlerde çalışıyorsa denetimleri ana makinede değil o konteynerlerde çalıştırın.
Üçüncü koşul: dış tünel düştüğünde ne olur
Arıza davranışı bir karar gerektirir, varsayılan değer değil. Dış tünel kaybolduğunda iç tünele ne olması gerektiğini yazın, sonra istemcilerin bunu yapmasını sağlayın.
Seçenekler somuttur. Dış yol kaybolduğunda iç istemciyi durdurmak temiz bir zincir ve belirgin bir kesinti verir. Doğrudan yeniden bağlanmasına izin vermek kullanılabilirlik verir ve zincirin inşa edildiği özelliği sessizce ortadan kaldırır. Dış yol geri gelene kadar bloke etmek en katı ve işletmesi en can sıkıcı seçenektir, çünkü dış tünelin her sarsıntısı görünür bir olaya dönüşür.
Üçünü de zararsız trafikle ve kasıtlı bir dış tünel arızasıyla test edin, çünkü yapılandırmayı okumak hangisine sahip olduğunuzu söylemez. Dış tüneli öldürün, iç istemcinin ne yaptığını izleyin ve o düşmüşken rotayı yeniden kontrol edin. Sonra dış tüneli geri getirin ve zincirin yeniden oluştuğunu doğrulayın; iç istemciyi bu arada seçtiği doğrudan yolda bırakmasın.
Zincirin size vermediği şey
Ekstra katmanlar uç noktalar, anahtarlar ve arıza kipleri ekler; hiçbir anonimlik garantisi eklemezler ve dış operatörün bir tünelin var olduğunu görmesini engellemezler. İç içe yapının neye karşı koruduğuna dair her iddia, hangi gözlemciye karşı koruduğunu adlandırmak zorundadır.
Teslim edilen şey çalışan bir bağlantı değil kısa bir belgedir: hangi uç nokta hangi yolu kullanıyor, dış arızada ne oluyor ve mevcut durumu gösteren üç komut. strongSwan'ın yönlendirme belgeleri, tünel trafiğinin bir Linux ana makinesinde arayüzler arasında nasıl iletildiği için yararlı bir referanstır. Her istemci güncellemesinden sonra denetimleri yeniden çalıştırın, çünkü zincirinizi üreten varsayılanlar bir sözleşme değildir. İnceleyemediğiniz bir iç içe tünel, durum ışığı olan bir söylentidir.