Hər qoşulmadan sonra yazılan marşrut anı həll edir, həftəni deyil. macOS-da davamlı seçim adətən VPN xidməti ilə saxlanılan prefiksdir, çünki xidmət onu hər qoşulmada yenidən quraşdırır və xidmət söndükdə silir. Alternativlər test üçün müvəqqəti route add və yalnız razılaşmadan sonra bilinən ünvanlar üçün qoşulma çəngəlidir.

Marşrutun xidmətə, yoxsa sessiyaya aid olduğunu qərarlaşdırın

Prefiksin nədən asılı olduğunu soruşun. Əgər o, yerli VPN xidmətinin arxasındakı sabit şəxsi şəbəkədirsə, marşrut həmin xidmətə aiddir. Əgər hər qoşulmada dəyişən peer ünvanından asılıdırsa, çəngəl və ya statusa əsaslanan iş daha yaxşı sahib ola bilər. Əgər yalnız növbəti beş dəqiqə üçün yolu yoxlayırsınızsa, müvəqqəti marşrut kifayətdir.

Xidmətə bağlı marşrutun ən təmiz həyat dövrü var. Xidmətlə birlikdə görünür və xidmət qoşulmadıqda yox olur, ona görə də göstərdiyi tuneldən daha uzun yaşaya bilməz. Bu xassə birsətirlik əmrin rahatlığından daha dəyərlidir.

Sessiyaya bağlı marşrut interfeysə aiddir və bu nömrə xəbərdarlıq olmadan dəyişir. Yenidən qoşulma tunelə əvvəlki sessiyadan fərqli utun adı verə bilər və bu, kodda bərkidilmiş əmri heç bir şeyə, daha pisi, başqa tunelə işarə edən marşruta çevirir.

Cari marşrut və xidmət vəziyyətini oxuyun

Sistemin həqiqətən istifadə etdiyi adlardan başlayın. Şəbəkə parametrlərindəki xidmət adı aşağıdakı əmrlər üçün identifikatordur və cari marşrut cədvəli qoşulmuş müştərinin nə quraşdırdığını göstərir. İkisini də tunel işləyərkən oxuyun.

scutil --nc list
networksetup -listnetworkserviceorder
netstat -rn | head -30
route get 10.20.5.5

Bu axtarış kernelin bu ünvan üçün hazırda hansı şlüz və interfeysi seçəcəyini göstərir. Əgər o, artıq tuneli seçirsə, prefiks əhatə olunub və yeni marşrut artıq olar. Əgər yerli routeri seçirsə, tuneldə həmin prefiks çatmır.

Qoşulmuş halda peer ünvanını qeyd edin. O, xidmətə bağlı marşrutda şlüz dəyəri olur və adətən netstat -rn-də tunelin defolt marşrutu üçün göstərilən təyinatdır.

Prefiksi networksetup ilə saxlayın

networksetup aləti şəbəkə xidmətinə əlavə marşrutlar bağlayır. OfficeVPN adlı xidmət və tunel peeri vasitəsilə çatılan şəxsi prefiks üçün forma belədir:

sudo networksetup -setadditionalroutes OfficeVPN 10.20.0.0 255.255.0.0 10.8.0.6
networksetup -getadditionalroutes OfficeVPN

Xidmət adından sonra hər üçlük təyinat, onun netmaskı və şlüz kimi tunel peerini verir. Bir çağırış bir neçə prefiks daşıya bilər və boş çağırış saxlanılan siyahını təmizləyir. Oxuyucu yoxlama addımıdır; siyahı boşdursa, təyin etdiyinizi düşündüyünüz xidmətə tətbiq olunmayıb.

Şlüz tunel peeri olmalıdır, fiziki router deyil. Yerli şlüzü adlandıran marşrut şəxsi prefiksi fiziki interfeysdən göndərir və bu, əlavə addımlarla orijinal nasazlıqdır. Köhnəlmiş peer düzgün görünən marşrutun heç vaxt trafik daşımamasının ən çox yayılmış səbəbidir. Peer-i köhnə qeyddən ünvan kopyalamaq əvəzinə qoşulmuş vəziyyətdən yenidən oxuyun.

route add yalnız test üçün istifadə edin

Birbaşa marşrut prefiksin işlədiyini daimi etməzdən əvvəl sübut etmək üçün faydalıdır. İnterfeys forması şlüz axtarışından qaçır:

sudo route -n add -net 10.20.0.0/16 -interface utun4

Marşrut növbəti yenidən qoşulmada yox olur və bu gün mövcud olan interfeys nömrəsindən asılıdır. Bu onu diaqnostika edir, yerləşdirmə deyil. Test işləyirsə və xidmətə bağlı marşrut işləmirsə, əvvəlcə şlüz dəyərini müqayisə edin; ən çox səhv olan sahə budur.

VPN-in defolt marşrutunu dəyişərək bölünmə davranışını məcbur etməyə dair məsləhətlərdən ehtiyatlı olun. Tam tuneli tətbiq edən müştəri yenidən qoşulmadan və ya siyasət yenilənməsindən sonra marşrutlarını yenidən quraşdıra bilər, ona görə əl ilə dəyişiklik səssizcə ləğv olunur. Bir neçə şəxsi prefiks marşrut problemidir; bütün internet trafikini tam tunel siyasətinə qarşı yerli saxlamaq server tərəfində qərardır.

Çəngəli yalnız ünvan razılaşdırıldıqda seçin

PPP əsaslı bağlantılar üçün, məsələn L2TP, macOS bağlantı qurulduqdan sonra /etc/ppp/ip-up icra edir. Skript interfeys adını və razılaşdırılmış yerli və uzaq ünvanları alır, buna görə serverin təyin etdiyi peerdən asılı marşrut əlavə edə bilər. Bu, sabit xidmət marşrutunun ifadə edə bilmədiyi haldır.

IKEv2 və istehsalçı müştəriləri bu PPP yolundan ümumiyyətlə istifadə etməyə bilər, yəni skript bütün sessiya boyunca səssiz qala bilər. Bu olduqda, scutil --nc status sorğulayan və vəziyyət dəyişikliyinə reaksiya verən launchd işi kiçik gecikmə ilə ekvivalent mexanizmdir.

Hansı çəngəldən istifadə etsəniz də, onu idempotent edin və yalnız yaratdığı marşrutları silsin. Tuneli xatırladan hər marşrutu silən skript sonda VPN serverini əlçatan saxlayan marşrutu da siləcək və əlaqə uğurlu olan kimi düşəcək.

Şəxsi təyinatı, adi gəzintini və yenidən qoşulma və ya yuxu dövrünü yoxlayaraq bitirin. Sonra scutil --dns yoxlayın, çünki ad həlli ayrı siyasətdir və işləyən marşrut şəxsi adların həll olunduğunu sübut etmir.

Əlaqəli məqalələr