Host marşrutlarına toxunmadan ad fəzalarında VPN marşrutlaşdırmasını sına
Üç simulyasiya edilmiş rol, üç təcrid olunmuş kontekst və hər keçid üçün bir veth. Host-a toxunmadan əvvəl ad fəzası laboratoriyasını host marşrutu laboratoriyası ilə müqayisə et.
İki laboratoriya eyni VPN topologiyasını modelləşdirə və tamamilə fərqli yollarla uğursuz ola bilər: biri şəbəkə ad fəzalarında yaşayır, digəri host-un öz marşrutlarında. Ad fəzası versiyası hər interfeysi, marşrutu və soketi silə biləcəyiniz bir kontekstdə saxlayır, host versiyası isə daha sürətli başlayır və arxasında vəziyyət qoyur. Bu qalan vəziyyət ikinci laboratoriyanın bir ay sonra təkrarlanmasını çətinləşdirən səbəbdir. Əvvəlcə təmizləməni müqayisə et, çünki təcrübəni iki dəfə işə salıb-salamayacağını bu müəyyən edir.
Eyni laboratoriyanı qurmağın iki yolu və hər birinin nə vaxt üstün olduğu
Host marşrutu laboratoriyasında işlədiyiniz maşına tunel interfeysi və marşrutlar əlavə edirsiniz, beləliklə təcrübə taleyi shell-inizlə, paket menecerinizlə və hər digər bağlantı ilə paylaşır. Ad fəzası laboratoriyasında hər rol öz interfeys, ünvan, marşrut və soket yığınına sahib olur və ad fəzasını silmək bütün bunları aradan qaldırır. Heç bir model daha düzgün deyil, çünki onlar fərqli suallara cavab verirlər. Mövzu marşrutlaşdırma və yönləndirmə olduqda ad fəzalarını, mövzu bir masaüstü müştərisinin necə inteqrasiya etdiyi olduqda isə host laboratoriyası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 qarışdırmaq adi səhvdir: yalnız host müştərisinə qarşı sınanan ad fəzası laboratoriyası iki quruluşdan heç biri haqqında heç nə sübut etmir. İlk keçidi yaratmazdan əvvəl hansı sualı verdiyinizə qərar verin.
Hər rol üçün bir kontekst, qəsdən bağlanmış
Hər rol üçün bir ad fəzası yaradın və hər veth cütünün hər ucunu ona sahib olan kontekstə köçürün. İlk dörd əmr formanı görmək üçün kifayətdir:
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 clientLaboratoriyaya host-da heç nə ilə kəsişməyən diapazonlar verin və başlamazdan əvvəl hansı ad fəzasının hansı ünvana sahib olduğunu yazın. İşləyən laboratoriya iki ayrı yol tələb edir: VPN son nöqtəsinin öz həmkarına çatması üçün xarici yol və qorunan resurs üçün geri dönüş yolu. Onları iki qərar kimi modelləşdirin, çünki yalnız gedən yarısını quran laboratoriya əl sıxma testindən keçir və tətbiq testindən kəsir.
Yönləndirmə rolu laboratoriyaların maraqlı olduğu yerdir
Bir rol yönləndirməlidir, bu da həmin ad fəzasında yönləndirməni aktivləşdirmək və dizaynın tələb etdiyi qaydanı əlavə etmək deməkdir. Yönləndirmə vəziyyəti hər ad fəzası üçündür, buna görə host parametri laboratoriya üçün əhəmiyyətsizdir və laboratoriya parametri xaricə sızmır, şəbəkə ad fəzaları sənədləşməsi belə təsvir edir. WireGuard sənədləşdirir ki, interfeys və onun xarici soketi müxtəlif ad fəzalarında yaşaya bilər, bu faydalı bir hiylə və özünüzü çaşdırmaq üçün əla bir yoldur. İnterfeysi köçürməyin bağlantının hər hissəsini eyni şəkildə köçürdüyünü güman etməyin.
Test paketindən sonra yönləndirmə sayğacını yoxlayın, çünki heç vaxt uyğunlaşmayan qayda ilə paketi atan qayda marşrut cədvəlində eyni görünür. Onları yalnız sayğaclar ayırır.
Baza xəttini qeyd edin, sonra bir marşrutu pozun
Mövcud olanı qeyd etməklə başlayın, konteksti hər sətrin yanına yazın. Ad fəzalarını, sonra test təyinatının onlardan birinin içində tutacağı marşrutu, sonra onu daşıyan keçiddəki sayğacları oxuyun:
ip netns list
ip -n client route get 10.0.0.5
ip -n gateway -s link show veth-gÜçüncü əmr insanların atladığı əmrdir və dəlillər elə orada yaşayır: atılan və səhv sayğacları paketin yönləndirmə roluna ümumiyyətlə çatıb-çatmadığını deyir. Dəyişiklikdən sonra eyni üç görünüşü qeyd edin və dəlili yaddaşınız deyil, fərq olsun. Sonra tam olaraq bir şeyi pozun, ya marşrutu silməklə, ya da yönləndirmə yolunda bir rədd qaydası əlavə etməklə, və proqnozlaşdırdığınız simptomu təsdiqləyin: cavabsız tamamlanmış əl sıxma və ya gözləmə müddəti əvəzinə ad həllində uğursuzluq. Yalnız uğuru nümayiş etdirən laboratoriya çox az şey öyrədir.
Növbəti işə salmanı təkrarlanan edən təmizlikdir
Təmizliyi adlandırdığınız resurslarla məhdud saxlayın, çünki ümumi firewall sıfırlaması və ya host marşrutunun silinməsi təkrarlanabilirlik deyil, ikinci hadisədir. Topologiyanı, dəqiq əmrləri və gözlədiyiniz müşahidələri saxlayın ki, növbəti işə salma əvvəlki vəziyyətin hansı kontekstdə olduğunu təxmin etmək əvəzinə eyni uğursuzluğu təkrar istehsal etsin. Bu qeyd olmadan laboratoriya prosedur deyil, hekayədir.
Laboratoriya üçün yerli yaradılmış etimadnamələrdən istifadə edin və istehsal hesablarını paylaşılan nümunələrdən uzaq saxlayın. Sonra hər ad fəzasını silin və host görünüşünün dəyişmədiyini təsdiqləyin, bu modeli seçməyin bütün səbəbi budur. Təmiz silə bilmədiyiniz laboratoriya əlavə addımlarla host dəyişikliyidir.