İki yaşıl bağlantı ikonu müqayisə kimi görünür və adətən təsadüfdür. Əgər sınaq sorğusu hər iki tuneldən istifadə edə bilirdisə, nəticə ən yaxşı halda onlardan birini, ən pis halda isə heç birini təsvir edir. Hər müşahidəyə şəbəkə konteksti, nəzərdə tutulan təyinat və sınaqdan əvvəl yazılmış gözlənti verin. Özünüz idarə etdiyiniz Linux maşınında adlandırılmış şəbəkə ad sahələri bu ayrılığı almağın ən ucuz yoludur.

İki yaşıl işıq müqayisə deyil

Ad sahəsi marşrut cədvəllərini, interfeysləri və şəbəkə yığınının vəziyyətini ayırır, ona görə birinin içində başlayan sorğu sakitcə digərinin tunelini borc ala bilməz. Ayırmadığı şeylər prosessor, fiziki yuxarı kanal və hostda işləyən ad həlledici xidmətdir. Məhz bu son boşluqda bu sınaqların çoxu heç kim fərqinə varmadan uğursuz olur. Ad sahəsini tərk edib hostun həlledicisindən soruşan axtarış, sınaq altındakı tunellə heç bir əlaqəsi olmayan cavab qaytarır.

Bu prosedur artıq qurulmuş, təsdiqlənmiş iki sınaq ad sahəsini, işlək xarici bağlantını və dəstəklənən müştəriləri nəzərdə tutur. O, heç nə yaratmır, heç nə qeyd etmir və heç bir konfiqurasiyanı dəyişmir. Müştəri tam masaüstü sessiyası tələb etdikdə və ya ondan kənarda işləməkdən imtina etdikdə ayrı virtual maşınlar dürüst seçim olaraq qalır.

Gözləntini ilk işdən əvvəl təyin et

Hər kontekst üçün uğurun nə olduğunu qərarlaşdırın: həlledici, xidmətin adı, gözlənilən ünvan və tunel düşdükdə tələb olunan davranış. Bu planlaşdırılmış dəyərləri öz sütununda saxlayın, çünki planı müşahidə ilə qarışdıran qeyd vaxt möhürü olan uydurmadır. Aşağıdakı yoxlama siyahısı qeydin lazım olan formasıdır və hər sətir ilk bağlantıdan əvvəl doldurula bilməlidir.

TunnelOwnerClient interface inside the namespaceProof commandRequired on disconnect
vpn-athe identity that owns profile A, recorded by nameits own tun device, never the host'sip -n vpn-a -4 route get 10.55.10.20traffic stops; no host-side fallback
vpn-ba separate owner, even when both run on one boxits own tun device in its own namespaceip -n vpn-b -4 route get 10.55.20.20verified separately, never inferred from A

Həlledici naqilləri həmin qeyddə öz sətrini tələb edir, çünki yalan danışma ehtimalı ən yüksək sahə məhz budur. Ad sahəsinə bağlı fayllar, məsələn /etc/netns/vpn-a/resolv.conf əmrin ad sahəsinin içində işlədiyi zaman öz adi yollarında görünür, necə ki iproute2 ad sahəsi arayışı təsvir edir, lakin ad xidməti keçid konfiqurasiyası və onun başlatdığı hər hansı lokal həlledici axtarışı yenə hosta çəkə bilər.

Bir dəfə bir tunel, digəri ayrılmış

A-nı mövcud sahibi vasitəsilə qoşun, B isə söndürülmüş qalsın, sonra idarəetmə kontekstindən siyasəti, marşrutları və seçilmiş yolu yoxlayın. Aşağıdakı əmrlərdən üçü vəziyyəti oxuyur; yalnız sonuncusu ad xidməti ilə əlaqə saxlayır və heç biri tətbiq sorğusu göndərmir.

sudo ip -n vpn-a -4 rule show
sudo ip -n vpn-a -4 route show table all
sudo ip -n vpn-a -4 route get 10.55.10.20
sudo ip netns exec vpn-a getent ahostsv4 svc-a.lab.internal

Marşrut axtarışı təyinat haqqında hipotetik suala cavab verir, ona görə xidmətin trafiki qəbul etdiyini göstərə bilməz. Bu iki sübut növünü ayrı sütunlarda saxlayın, çünki rədd edilmiş bağlantının yanında sağlam marşrut real və adi nəticədir. Sonra real tətbiqlə bir zərərsiz icazəli sorğu göndərin, onu A-nın kontekstində adi imtiyazsız istifadəçisi kimi işə salın, sertifikat yoxlaması və tətbiq autentifikasiyası toxunulmaz qalsın, və nəticəni xidmətin gördüyü mənbə ünvanı ilə birlikdə qeyd edin. A-nı sahibi vasitəsilə ayırın və bütün baza xəttini B üçün təkrarlayın, etdiyiniz hər hansı konfiqurasiya dəyişikliyini qeyd edin, əks halda iki baza xətti müqayisə edilə bilən olmaqdan çıxır.

İkisi də qoşulmuş, sonra bir-bir söndürülür

Sabit vəziyyət asan hissəsidir. Hər iki tunel qoşulmuş halda hər kontekstin axtarışını və tətbiq sorğusunu təkrarlayın, sonra bir tuneli kəsin və digərini yoxlayın. Bağlantı sırası özü soruşulan sual olduqda tərs ardıcıllıqla yenidən qoşulun.

sudo ip netns exec vpn-a tcpdump -ni any port 443 -c 5
sudo ip netns exec vpn-b getent ahostsv4 svc-b.lab.internal
sudo ip -n vpn-b -4 route get 10.55.20.20

Tutma tətbiq nəticəsinin həll edə bilmədiyi mübahisələri həll edir: sorğunun gözlədiyiniz interfeysdən, yoxsa tamamilə başqa bir şeydən çıxdığını göstərir. Hər keçid üçün sahibin əməlini, vaxt möhürünü, marşrut nəticəsini, ad nəticəsini və tətbiq nəticəsini qeyd edin. Sonra təsirlənən ad sahəsinin içində qapalı-uğursuzluq tələbini yoxlayın, çünki izolyasiya qapadıcı açar deyil. Ad sahəsi iki tuneli ayrı saxlayır; profil trafikin dayanması lazım olduğunu deyəndə heç birinin trafik daşımasına mane olmur.

Bu qeydin nəyi iddia edə bildiyi və bilmədiyi

Uğur bu quruluş üçün, bu hostda, o vaxt həmin müşahidələri sübut edir. Bir masaüstü marşrut cədvəlini paylaşan iki müştəri haqqında heç nə demir və hər iki tunel yük daşıyarkən ötürmə qabiliyyəti haqqında da heç nə demir. Bunlar ayrı testləri olan ayrı suallardır və müqayisə hər sətrə əlavə olunan kontekst qədər yaxşıdır.

Uğursuzluqları qeyddə uğurların yanında saxlayın, o anda hansı tunelin qoşulu olduğunu işarələyin. Ölçmə anındakı vəziyyəti gizlədən təmiz səhifə, onu göstərən çirkin səhifədən pisdir. Qeydi sonralar təkrar istifadə edilə bilən edən şey nəticə deyil, kontekstdir.

Bir maşındakı iki tuneli dürüst müqayisə etmək olar, ancaq həqiqətən idarə etdiyiniz qədər kontekstin içində. Bundan artığı yanında yaşıl ikon olan bir arzudur.

Əlaqəli məqalələr