Kerio tuneli trafik daşımazdan əvvəl üç şey uzlaşmalıdır: kvnet interfeysindəki ünvan, müştərinin jurnala yazdığı dəyər və server siyasətinin və ya DHCP-nin gözlədiyi şey. Onlar uzlaşmadıqda tunel yenə də autentifikasiyadan keçir və yenə də qalxır, bu da nasazlığı məhz çaşdırıcı edir. İnterfeys hər qoşulma üçün yaradılır, ona görə də əl ilə təyin edilən ünvan yalnız həmin sessiyaya aid olur, başqa heç nəyə yox. Problemin forması budur, həlli isə konfiqurasiya faylı deyil, qarmaqdır. Qalanı dəyərin haradan oxunacağı və harada tətbiq olunacağıdır.

Ünvan niyə daim geri qayıdır

kvnet müştərinin qoşulma başlayanda yaratdığı və bitəndə sildiyi virtual adaptordur. Buna görə də əl ilə verilən ip link set yalnız tətbiq olunduğu sessiya boyu qalır, növbəti qoşulma isə müştərinin təyin etdiyi ilə başlayır. Müştərinin gözlənilən ünvanı tətbiq edə bilmədiyi maşında hər yenidən qoşulma eyni uyğunsuzluğu yenidən gətirir və icarə ya giriş qaydası cihazı yenə rədd edir.

Bu nümunə özlüyündə diaqnostikdir. Bir sessiyada işləyib növbətisində uğursuz olan tunel kredensial problemi deyil, çünki kredensiallar qoşulmalar arasında dəyişmir.

Dəyəri interfeysdən deyil, müştəridən oxuyun

Linux müştərisi danışıq təfərrüatlarını öz sazlama jurnalına yazır və istifadə etmək istədiyi ünvan orada qoşulma ardıcıllığının son ünvan formalı tokeni kimi görünür. Bunu nüvənin həqiqətən saxladığı ilə müqayisə edin, bu bir readlink uzaqlığındadır: cat /sys/class/net/kvnet/address.

Əgər ikisi fərqlənirsə, müştəri düzgün dəyəri bilirdi və onu tətbiq edə bilmədi, interfeys mövcud olduqdan sonra onu tətbiq edən qarmaq bu boşluğu bağlayır. Jurnalda ümumiyyətlə ünvan yoxdursa, problem daha erkəndir və skriptə deyil, müştəri versiyasına ya server profilinə aiddir.

Onu interfeys mövcud olduqdan sonra tətbiq edin

NetworkManager istifadəçiləri öz dispetçer qovluğuna skript qoya və yalnız VPN interfeysi qalxdıqda hərəkət edə bilər. systemd ilə idarə olunan müştəri daha çox diqqət tələb edir: xidmət başlanğıcında işləyən drop-in adətən adapter hələ yoxkən tetiklənir, ona görə də qarmaq adapteri fərz etmək əvəzinə interfeysi gözləməlidir. Ünvanı o zaman təyin edin, əgər link qalxmışkən nüvə imtina edirsə, onu aşağı salın, ünvanı təyin edin və yenidən qaldırın. Çıxarılan tokeni ip link-ə ötürməzdən əvvəl MAC nümunəsi ilə geri oxuyun ki, gözlənilməz jurnal sətri arqumentə çevrilməsin.

Müştəri jurnalından root kimi işləyən hər şey dar sahiblik tələb edir: root-a məxsus fayl, başqaları tərəfindən yazıla bilməyən və yoxlanılmış ünvandan başqa heç bir shell interpolyasiyası olmayan. Nümunə yoxlamasını skriptin içində saxlayın. Jurnal məzmununun hansı əmrin işləyəcəyinə qərar verməsinə imkan verməyin.

Linki deyil, icarəni yoxlayın

ip -4 -o addr show dev kvnet gözlənilən aralıqda ünvan göstərməli, ip neigh show dev kvnet şlüzü göstərməli və VPN-in arxasındakı bir xidmət cavab verməlidir. Sonra bir dəfə ayrılıb yenidən qoşulun; ünvan geri qayıdırsa, qarmaq yanlış hadisədə işləyir ya heç işləmir.

Düzgün ünvanla görünən və heç vaxt icarə almayan interfeys server tərəfini göstərir. Bu başqa yoxlamadır və adətən başqa komandadır. Qarmağı yenidən redaktə etməzdən əvvəl hesabın icazəli olduğunu və hovuzun hələ də ünvanı olduğunu təsdiqləyin.

Yenilənmədən sonra müvəqqəti həlli yenidən nəzərdən keçirin

Ünvanı düzgün təyin edən müştəri buraxılışı sizin qarmağınızı köhnə dəyəri tətbiq etməkdə qoyur ki, bu da düzəlişin gətirdiyi yeni nasazlıqdır. MAC-ı başqa maşından ya forum yazısından da heç vaxt kopyalamayın; bu müştərinin bu hesab üçün jurnala yazdığı dəyərdən istifadə edin və onu yoxladığınız tarixi qeyd edin.

Skripti bir oturuşda oxumaq mümkün qədər qısa saxlayın. Jurnalları təhlil edən müvəqqəti həllər təbiətcə keçicidir. Yaşayanlar gələcək oxucunun ilkin mövzu olmadan anlaya bildiyi həllərdir.

Əlaqəli məqalələr