Bir VPN konteynerinin ağ ad alanını paylaşan bir uygulama konteynerinin kendi arayüzü yoktur, bu nedenle tünel başarısız olduğunda hiçbir şey gönderemeyeceğini varsaymak kolaydır. Bu varsayım, önemli olan arıza modunda yanlıştır. Ad alanı hayatta kalırken VPN süreci ölürse, uygulama soketlerini ve ad alanı yollarını korur, trafik hâlâ kurulu olan yol üzerinde devam eder. Gerçek bir kill switch, açık bir filtreleme politikası ile çalışma zamanının yaşam döngüsü testleridir, bir başlangıç bağımlılığı değildir.

Ad alanını paylaşmak neden kill switch değildir

Bir ad alanını paylaşmak, uygulamanın VPN konteynerinin arayüzlerini, adreslerini ve yönlendirme tablosunu kullanması anlamına gelir. Paylaşılan ad alanı sağlam olduğu sürece uygulamanın ağa giden bağımsız yolunu ortadan kaldırır ve tünel kaybolduğunda o ad alanının ne yapacağı hakkında hiçbir şey söylemez.

Compose bağımlılık koşulları, bir bağımlılık sağlıklı olana kadar bir uygulamanın başlamasını geciktirebilir. Bu yalnızca tek bir anı kapsar ve sonraki hiçbir arızayı kapsamaz, dolayısıyla bu bir başlangıç sıralaması aracıdır, sürekli bir çıkış güvenlik duvarı değildir.

Konteyner çıktığında gerçekte ne olur

Üç olayı ayırt edin. Konteyner içindeki VPN süreci, konteyner çalışmaya devam ederken ölebilir. Konteyner durabilir veya kaldırılabilir, bu da ad alanını yok eder. Konteyner yeniden oluşturulabilir, bu da yeni bir ad alanı ve yeni kurallar inşa eder.

İlk durumda ad alanı varlığını sürdürür, varsayılan yol hâlâ fiziksel arayüze işaret edebilir ve uygulama doğrudan göndermeye devam eder. İkinci durumda bağımlı uygulama genellikle bağlantıyı tamamen kaybeder, çünkü ad alanı kaybolmuştur. Üçüncü durumda uygulama, tünel hazır olmadan yeni bir ad alanına yeniden bağlanabilir. Her durum farklı bir test gerektirir ve yalnızca düzenli bağlantı kopmasını kapsayan bir tasarım en az ilginç olanı kapsar.

Açık bir çıkış politikası oluşturun

Politikayı paylaşılan ad alanının içine yazın ki uygulamanın paketlerine uygulansın. Biçim, dar istisnalarla varsayılan düşürmedir: loopback, tünelin arayüzü ve tünel taşımasının ihtiyaç duyduğu belirli uç nokta adresi ve bağlantı noktası.

Uç nokta istisnası tünel açılmadan önce yerinde olmalıdır, aksi halde VPN istemcisi sunucusuna ulaşamaz. Kural kümesinin fiziksel arayüze genel olarak izin vermek yerine dış taşımayı açıkça izin vermesinin nedeni budur. Ad alanında IPv6 bağlantısı varsa IPv6 kuralları da ekleyin, çünkü yalnızca IPv4 kapsayan bir politika diğer aileyi açık bırakır.

DNS de politikanın parçasıdır. Uygulama adları yalnızca tünelin içinden erişilebilen bir çözümleyici aracılığıyla çözerse, düşürme kuralı tünel kapalıyken çözümlemeyi bozar ve bu bir kill switch için doğru davranıştır. Bunun istediğiniz şey olup olmadığına bilinçli olarak karar verin.

Yaşam döngüsünü test edin, yalnızca bağlantı kopmasını değil

Tünel sağlıklıyken yeni ve zararsız bir istek gönderin, ardından VPN sürecini öldürün ve bir tane daha gönderin. Konteyner durduktan, yeniden başladıktan ve yeniden oluşturulduktan sonra tekrarlayın. Yeni bir istek önemlidir çünkü mevcut bir bağlantı, yenilerini engelleyen bir kural değişikliğinden sağ çıkabilir.

Engelleme mekanizması olarak bir sağlık kontrolüne veya çıkış IP aramasına güvenmeyin. Bir kontrol durumu gözlemler ve bildirir; bir politika trafiği kontrol eder. İkisi de aynı dağıtıma aittir ve birbirlerinin yerini tutmazlar.

Kuralları kaydedin ki test bir güncellemeden sağ çıksın

Her arıza durumu için beklenen sonucu, onu uygulayan kurallarla birlikte dağıtım belgelerine yazın. Bu kayıt, bir imaj güncellemesinden veya çalışma zamanı yükseltmesinden sonra aynı testin çalıştırılmasını sağlar; çünkü ad alanı davranışı veya varsayılan yollar, kimse compose dosyasını düzenlemeden değişebilir.

VPN uç noktasının gereken dış yolunu sınırsız uygulama çıkışından ayrı tutun ve DNS ile IPv6'yı amaçlanan kapsam içinde tutun. Politika kolaylık olsun diye tüm fiziksel arayüze izin veriyorsa kill switch gitmiştir. Docker ağ belgeleri, politikanın üzerine kurulduğu paylaşılan ad alanı düzenini açıklar ve çalışma zamanının davranışı sorgulandığında bakılacak referans odur.

İlgili makaleler