Bir kompüterdə iki VPN klienti: nə toqquşur və nə işləyir
İki klient defolt marşrut, ad həlledici və filtrləmə sürücüləri üstündə çəkişir. Çıxışın kimə aid olduğunu qeydə alın, sonra ikinci tuneli VM və ya netns ilə ayırın.
İkinci klientiniz qoşulur, birincinin resursları həll olunmağı dayandırır və biletdə deyilir ki, iş VPN-i şəxsi olanı sındırıb. Heç nə nasazlıq mənasında sınıq deyil: hər iki klient nə üçün dizayn olunubsa, onu edib və maşının yalnız bir marşrut cədvəli var. Toqquşma hər klientin özünə aid saydığı dörd resurs üzərindədir. Onları sıra ilə işləyin və düzəliş adətən təmir deyil, dizayn seçimi olur.
Addım 1: çıxışın hansı klientə aid olduğunu tapın
Nəyisə dəyişməzdən əvvəl cari çıxış qərarını oxuyun. Ümumi ünvana marşrut axtarışı paketin indi hansı interfeys və növbəti hopdan istifadə edəcəyini göstərir və bu, kimin qalib gəldiyinin cavabıdır. Onu klientlərin yaratdığı interfeys adları ilə müqayisə edin; bu adlar adətən məhsulun və ya protokolun adını daşıyır. Əgər axtarış gözləmədiyiniz tuneli göstərirsə, toqquşmanı artıq tapmısınız.
ip route get 1.1.1.1
ip route show default
route print
Bəzi klientlər defolt marşrutu heç əvəz etmir; onlar iki yarım əlavə edir, biri ünvan məkanının aşağı yarısı, biri yuxarı yarısı üçün və ikisi birlikdə hər şeyi əhatə edir. Bu, ilkin defolt marşrutu görünən saxlayır və əl ilə düzəlişi düzgün göründürür, halbuki trafik hələ də tuneldən çıxır. Yalnız defolt qeydin varlığına deyil, metrikə və prefiks uzunluğuna baxın.
Hər iki klient eyni metrikla eyni prefiksi iddia edirsə, dayanın. Yadro birini seçəcək, digəri isə heç nə daşımadığı halda qoşulmuş görünəcək.
Addım 2: ad həlledicini və üst-üstə düşən prefiksləri yoxlayın
DNS ikinci toqquşmadır və özünəməxsus əlamət yaradır: adlar uğursuz olur, ünvanlar isə işləyir. Hər klient öz həlledicisini tətbiq edir və son yazan sonrakı sorğuları qazanır. Klientin ayarlar səhifəsini oxumaq əvəzinə həlledici xidmətindən hər keçid üzrə nə işlətdiyini soruşun.
resolvectl status
Get-DnsClientServerAddress
dig +short intranet.corp.example
Sonra iki şəbəkənin istifadə etdiyi özəl prefiksləri müqayisə edin. Hər iki tərəf eyni diapazondan ayırırsa, heç bir klient tərəfi düzəlişi kömək etməyəcək, çünki maşın hansı 10.0.0.0/8 təyinatının hansı tunelə aid olduğunu ayırd edə bilmir. Bir tərəf yenidən nömrələnməli və ya tərcümə olunmalıdır və bu, konfiqurasiya dəyişikliyi deyil, şəbəkə sahibləri ilə söhbətdir. Üst-üstə düşmə, dürüst cavabın dizaynın dəyişməli olduğu yeganə toqquşmadır.
Prefikslər üst-üstə düşürsə, burada dayanın. Bu yoxlama siyahısındakı hər şey sonradan onların düşmədiyini fərz edir.
Addım 3: davamlı ayırma nümunəsi seçin
Etibarlı nümunələr iki klienti eyni marşrut cədvəlinə qarşı işlətməkdən çəkinir. hər iki özəl şəbəkəyə çatan split-tunnel siyasəti olan bir klient ən sadəsidir, bir şərtlə ki, təyinatlar üst-üstə düşməsin və siyasətin sahibi razılaşsın. Virtual maşın və ya şəbəkə ad məkanı növbəti addımdır, çünki hər biri öz cədvəlini və öz həlledicisini alır.
sudo ip netns add vpn2
sudo ip netns exec vpn2 ip link show
sudo ip netns exec vpn2 curl -sI https://intranet.corp.example/
Ad məkanı ikinci əməliyyat sistemi olmadan virtual maşınla eyni ayrılmanı verir, amma kobud kənarları var: tunel qurğusu ora köçürülməlidir və tətbiq onun içində başladılmalıdır. Ayrı fiziki qurğu, idarə olunan iş klienti ilə yanaşı şəxsi VPN üçün çox vaxt ən az təəccüblü seçimdir. Bir tuneli digərinin içində yığmaq ayırma nümunəsi deyil; daxili son nöqtə xarici tuneldən əlçatan qalmalıdır və bu düzüm üstünə MTU və gecikmə problemləri əlavə edir.
Bir nümunə seçin və səbəbini yazın. Bir tətbiq üçün ad məkanını qalanlar üçün split-tunnel ilə qarışdırmaq ilkin toqquşmanı daha çətin ayıklanan formada yenidən yaradır.
Addım 4: hər iki şəbəkəni eyni sessiyadan yoxlayın
Hər özəl şəbəkədə bir resursu tətbiqin həqiqətən işlədiyi mühitdən sınayın, tətbiq ad məkanı daxilində işləyirsə öz qabığınızdan deyil. Çıxış interfeysini, həll olunmuş ünvanı və cavab kodunu birlikdə yoxlayın, çünki üçündən birində uğur digərlərində nasazlığı gizlədə bilər. Yenidən başlatmadan sonra təkrarlayın, çünki klientlərin başlama sırası kimin qalib gəldiyini müəyyən edir. Məhz bu sıranı insanlar qeyd etməyi unudur.
curl -sI https://intranet.corp.example/
curl -sI https://files.personal.example/
ip route get 10.20.30.40
Hər şəbəkə üçün klient versiyalarını, interfeysləri, həlledici vəziyyətini və prefiksləri qeyd edin. Klient yenilənib marşrut davranışını dəyişdikdə, həmin qeyd beş dəqiqəlik düzəliş ilə yenidən qurma arasındakı fərqdir. Növbəti adam hansı tunelin birinci qalxdığına dair yaddaşınızı paylaşmayacaq.
Yoxlama siyahısı o zaman tamamlanır ki, defolt marşruta sahib olan interfeysi, hər adın istifadə etdiyi həlledici, ikinci tuneli ayıran nümunə və yenidən başlatmadan sonra hər şəbəkə üzrə bir sorğunun nəticəsini adlandıra biləsiniz. Bundan azı bugün təsadüfən işləyən konfiqurasiyadır.