Tam tunel və ya son nöqtə marşrutu: VPN serverini əlçatan saxlamaq
Tunel əvəz etdiyi şəbəkə üzərindən gedir. Host marşrutu istisnasını tətbiq səviyyəsində soket işarəsi ilə müqayisə edin və hər birinin nə vaxt sıradan çıxdığını bilin.
Tuneldən keçən standart marşrut əlavə edin, tunelin öz paketləri də onu izləyəcək. Cədvəl sonra özünü məğlub edən bir qayda ehtiva edir. Serverə şifrəli bağlantı qurmağa çalışdığı bağlantının içindən getməyə çalışır.
İki mexanizm bu döngənin qarşısını alır. Biri marşrut cədvəlində görünür, digəri tətbiqin içində yaşayır.
Daxili və xarici trafik fərqli qərarlardır
Tətbiq paketi virtual interfeysə daxil olur və inkapsulyasiya edilir. Nəticə serverin açıq ünvanına ünvanlanmış yeni paketdir. Bu paketin fiziki şəbəkədə marşruta ehtiyacı var, çünki onun heç bir hissəsi tunelə daxil olmamalıdır.
Hər ikisi marşrut qərarıdır və yalnız birincisi tunelə aiddir. Müştəri serveri də əhatə edən standart marşrut quraşdırdıqda, xarici paket də tutulur.
Simptomlar dərhal və tamdır. Handshake tamamlanır və sonra heç nə axmır, ya da marşrut quraşdırılan anda bağlantı düşür. Hər iki halda keepalive artıq çıxa bilmir.
Birinci variant: son nöqtə üçün host marşrutu
Birbaşa yanaşma serverin ünvanı üçün ilkin şlüz vasitəsilə marşrut əlavə edir. Bir sətir tələb edir. Cədvəli oxuyan hər kəs onu görür. Dəyişiklik qeydində izah etmək də asandır.
Zəifliyi əsas yol dəyişdikdə ortaya çıxır. Yadda saxlanan marşrut köhnə şəbəkədən bir şlüz və interfeys adlandırır. Wi-Fi dəyişikliyindən sonra o şlüz mövcud olmaya bilər və marşrut yerində qalır, düzgün görünür və heç nə etmir.
# before the tunnel: which path reaches the endpoint?
ip route get 198.51.100.7
# pin it through the current gateway
ip route add 198.51.100.7/32 via 192.168.1.1 dev wlan0
# after the tunnel is up, confirm the pin survived
ip route get 198.51.100.7
Host adı bunu çətinləşdirir. Son nöqtə bir neçə ünvana çevrilən bir addırsa, istisna faktiki istifadə olunan ünvanı əhatə etməlidir. Sonrakı sorğu marşrutun heç vaxt əhatə etmədiyi bir şey qaytara bilər.
İkinci variant: soketi qorumaq
Digər yanaşma marşrut cədvəlinə heç vaxt toxunmur. Müştəri tuneli daşıyan soketi işarələyir və ya qoruyur, beləliklə əməliyyat sistemi həmin soketin trafikini siyasətlə tuneldən kənara göndərir. Android mexanizmi birbaşa VPN tətbiqlərinə təqdim edir. Masaüstü müştərilər ekvivalentləri firewall işarələri və ya cihaza bağlama çağırışları ilə həyata keçirir.
Üstünlük ondadır ki, istisna saxlanılan şlüzü deyil, bağlantını izləyir. Şəbəkə dəyişikliyi əsas yolu yenidən yazır və qorunan soket onunla birlikdə hərəkət edir, çünki heç vaxt ünvana bərkidilməmişdi. Marşrut cədvəli təmiz qalır.
Qiyməti görünürlükdür. Marşrut cədvəlində heç nə istisnanı göstərmir, ona görə host marşrutu axtaran rəyçi heç nə tapmır və dizaynı təhlükəli hesab edə bilər. Qoruma müştərinin kodunda və həmin kodun quraşdırdığı siyasət qaydalarında yaşayır.
Onlar arasında seçim
Müştəri dəstəklədikdə soket səviyyəli mexanizmi seçin, çünki bərkidilmiş marşrutu pozan şəbəkə dəyişikliklərinə davam gətirir. İstisna digər alətlərə görünməli olduqda və ya müştəri daha yaxşısını təklif etmədikdə host marşrutunu seçin.
Heç bir mexanizm server ünvanının ümumiyyətlə əlçatan olması ehtiyacını aradan qaldırmır. Şəxsi şlüzün açıq dinləyici ünvanı var və tuneldən kənarda qalmalı olan məhz həmin ünvandır. Onun arxasındakı daxili şəbəkələr yalnız tunel yarandıqdan sonra əlçatan olur.
Hansını seçsəniz də, onu tunelə sahib olan komponentdə saxlayın. Əl ilə əlavə edilmiş təsadüfi host marşrutu növbəti şəbəkəyə qədər işləyir, sonra sabahkı sirli kəsintiyə çevrilir.