Ana bilgisayar yollarına dokunmadan ad alanlarında VPN yönlendirmesini test edin
Üç simüle edilmiş rol, üç yalıtılmış bağlam ve her bağlantı için bir veth. Ana bilgisayara dokunmadan önce bir ad alanı laboratuvarını ana bilgisayar yolu laboratuvarıyla karşılaştırın.
İki laboratuvar aynı VPN topolojisini modelleyebilir ve tamamen farklı şekillerde başarısız olabilir: biri ağ ad alanlarında yaşar, diğeri ana bilgisayarın kendi yollarında. Ad alanı sürümü her arayüzü, yolu ve soketi silebileceğiniz bir bağlamda tutar, ana bilgisayar sürümü ise daha hızlı başlar ve arkasında durum bırakır. O geride kalan durum, ikinci laboratuvarın bir ay sonra tekrarlanmasını zorlaştıran nedendir. Önce temizliği karşılaştırın, çünkü deneyi iki kez yapıp yapamayacağınıza o karar verir.
Aynı laboratuvarı kurmanın iki yolu ve her biri ne zaman kazanır
Bir ana bilgisayar yolu laboratuvarında üzerinde çalıştığınız makineye bir tünel arayüzü ve yollar eklersiniz, böylece deney kabuğunuzla, paket yöneticinizle ve diğer her bağlantıyla kaderi paylaşır. Bir ad alanı laboratuvarında her rol kendi arayüz, adres, yol ve soket yığınını alır ve ad alanını silmek bunların hepsini kaldırır. İki modelden hiçbiri daha doğru değildir, çünkü farklı sorulara yanıt verirler. Konu yönlendirme ve iletim olduğunda ad alanlarını, konu bir masaüstü istemcisinin nasıl bütünleştiği olduğunda ana bilgisayar laboratuvarını seçin.
| Aspect | Namespace lab | Host-route lab |
|---|---|---|
| Isolation | Full stack per role | Shares the host stack |
| Cleanup | Delete named namespaces | Manual route and rule removal |
| Realism | Strong for routing | Needed for GUI clients |
İkisini karıştırmak her zamanki hatadır: yalnızca ana bilgisayardaki istemciye karşı test edilen bir ad alanı laboratuvarı iki düzenlemenin hiçbiri hakkında hiçbir şey kanıtlamaz. İlk bağlantıyı kurmadan önce hangi soruyu sorduğunuza karar verin.
Her rol için bir bağlam, bilerek bağlanmış
Her rol için bir ad alanı oluşturun ve her veth çiftinin her iki ucunu onu sahiplenen bağlama taşıyın. İlk dört komut şekli görmek için yeterlidir:
ip netns add client
ip netns add gateway
ip link add veth-c type veth peer name veth-g
ip link set veth-c netns clientLaboratuvara ana bilgisayarda hiçbir şeyle çakışmayan aralıklar verin ve başlamadan önce hangi ad alanının hangi adrese sahip olduğunu yazın. Çalışan bir laboratuvarın iki ayrı yola ihtiyacı vardır: VPN uç noktasının eşine ulaşması için dış bir yol ve korunan kaynak için bir dönüş yolu. Bunları iki karar olarak modelleyin, çünkü yalnızca giden yarıyı kuran bir laboratuvar el sıkışma testini geçer ve uygulama testinde başarısız olur.
İletim rolü laboratuvarların ilginçleştiği yerdir
Bir rolün iletmesi gerekir, bu da o ad alanının içinde iletimi etkinleştirmek ve tasarımın ihtiyaç duyduğu kuralı eklemek anlamına gelir. İletim durumu her ad alanı içindir, bu yüzden ana bilgisayar ayarı laboratuvar için önemsizdir ve laboratuvar ayarı dışarı sızmaz, ağ ad alanları belgeleri tarafından açıklandığı gibi. WireGuard, bir arayüzün ve dış soketinin farklı ad alanlarında yaşayabileceğini belgeler; bu yararlı bir hile ve kendinizi şaşırtmak için mükemmel bir yoldur. Bir arayüzü taşımanın bağlantının her parçasını aynı şekilde taşıdığını varsaymayın.
Bir test paketinden sonra iletim sayacını kontrol edin, çünkü hiç eşleşmeyen bir kural ile paketi düşüren bir kural yönlendirme tablosunda aynı görünür. Onları yalnızca sayaçlar ayırır.
Bir temel çizgi kaydedin, sonra bir yolu bozun
Neyin var olduğunu kaydederek başlayın, bağlamı her satırın yanına yazın. Ad alanlarını okuyun, ardından bir test hedefinin içlerinden birinde izleyeceği yolu, ardından onu taşıyan bağlantıdaki sayaçları:
ip netns list
ip -n client route get 10.0.0.5
ip -n gateway -s link show veth-gÜçüncü komut insanların atladığıdır ve kanıt tam orada yaşar: düşürülen ve hata sayaçları bir paketin iletim rolüne ulaşıp ulaşmadığını söyler. Bir değişiklikten sonra aynı üç görünümü kaydedin ve kanıtı hafızanız değil diff yapsın. Ardından tam olarak bir şeyi bozun, ya bir yolu silerek ya da iletim yoluna bir ret kuralı ekleyerek, ve öngördüğünüz belirtiyi doğrulayın: yanıtsız tamamlanmış bir el sıkışma ya da zaman aşımı yerine ad çözümlemesi hatası. Yalnızca başarıyı gösteren bir laboratuvar çok az şey öğretir.
Temizlik, sonraki çalıştırmayı yinelenebilir yapan şeydir
Temizliği adlandırdığınız kaynaklarla sınırlı tutun, çünkü genel bir güvenlik duvarı sıfırlaması veya ana bilgisayar yolu kaldırma yeniden üretilebilirlik değil, ikinci bir olaydır. Topolojiyi, tam komutları ve beklediğiniz gözlemleri kaydedin, böylece sonraki çalıştırma önceki durumun hangi bağlamda olduğunu tahmin etmek yerine aynı hatayı yeniden üretir. O kayıt olmadan laboratuvar bir hikâyedir, bir prosedür değil.
Laboratuvar için yerel olarak oluşturulmuş kimlik bilgileri kullanın ve üretim hesaplarını paylaşılan örneklerden uzak tutun. Ardından her ad alanını silin ve ana bilgisayar görünümünün değişmediğini doğrulayın, bu modeli seçmenin tüm nedeni budur. Temiz bir şekilde kaldıramadığınız bir laboratuvar, ek adımlarla yapılmış bir ana bilgisayar değişikliğidir.