Server yenidən yüklənir, OpenVPN başlayır, RRAS isə ondan asılı olan adapter və ya marşrut hələ yox ikən qalxır. Bir dəqiqə sonra RRAS-ı əl ilə yenidən başlatmaq bunu düzəldir və problem həll olunmuş kimi görünür, əsl problemi isə gizlədir. Burada iki fərqli şərt qarışdırılır: ilkin şərt olan xidmət işləyir, və RRAS-ın həqiqətən ehtiyac duyduğu şəbəkə resursu istifadəyə yararlı olub. Windows xidmət asılılığı birinci şərti ifadə edə bilər, ikincini heç vaxt ifadə edə bilməz, ona görə resursu təyin etmədən asılılıq əlavə etmək daha səliqəli görünən yükləmə və eyni nasazlıq gətirir.

Simptom soyuq yükləmədə necə görünür

İşarə soyuq başlama ilə yenidən başlatma arasındakı fərqdir. Soyuq başlamada RRAS özünü işləyir kimi bildirir, halbuki tunel adapteri yoxdur, marşrut çatışmır və ya peer ünvanı hələ həll olunmayıb. Əl ilə yenidən başlatma sonra uğurlu olur, çünki o vaxta qədər resurs mövcuddur və xidmət sadəcə bir dəqiqə əvvəl görə bilmədiyi dünyanı yenidən oxuyur. Xidmət jurnalı hər iki halda təmiz başlama göstərəcək, buna görə hadisə baxıcısı tək başına bunu nadir hallarda izah edir.

Nəyisə dəyişməzdən əvvəl hər iki vəziyyəti qeyd edin: RRAS-ın yükləmədə nə bildirdiyini və əl ilə yenidən başlatmanın uğur qazandığı anda nəyin mövcud olduğunu. Əgər bu iki müşahidə eynidirsə, başlama sırası sizin izahınız deyil və asılılıq kömək etməyəcək. Müqayisə on dəqiqə çəkir və bir həftəlik təxminə qənaət edir.

«Yenidən başlatmadan sonra işləyir» əsasında əlavə edilən asılılıq eyni nasazlığı yalnız ilkin şərt xidmətinin RUNNING bildirməsinə qədər gecikdirir. O, həm də yükləməni anlamağı çətinləşdirir, çünki sıralama məhdudiyyəti indi izah kimi görünür. Asılılığın hansı obyekti zəmanət verdiyini və həmin obyektin RRAS-ın görə bilmədiyi obyekt olub-olmadığını soruşun.

Resursu adlandırın, təkcə xidməti yox

Çatışmayan konkret şeyi yazın. Bu, ünvanı olan tunel adapteri, peer alt şəbəkəsinə marşrut, DNS cavabı və ya hələ təmin edilən sertifikat ola bilər. «VPN xidməti işləyir» resurs təsviri deyil, müştəridəki yaşıl ikon da deyil. Obyekti və onu göstərən əmri adlandıra bilməyincə, gözləməyə çalışdığınız şərti təyin etməmisiniz.

Bu OpenVPN nüsxəsinin necə işə salındığını da müəyyənləşdirin. GUI ilə idarə olunan tunel ilə xidmətlə idarə olunan tunelin yükləmə həyat dövrləri fərqlidir və xidmətin adı başqa quraşdırıcı üçün yazılmış nümunədən deyil, qarşınızdakı maşından gəlməlidir. Yadda saxlanılan ada güvənmək əvəzinə namizədləri sadalayın.

Get-Service | Where-Object Name -match 'vpn|openvpn' | Select-Object Name, Status, StartType

Asılılıq zəncirini ona əlavə etməzdən əvvəl oxuyun

Xidmət Nəzarət Meneceri START_PENDING və RUNNING kimi vəziyyətləri bildirir və SERVICE_STATUS reference hər sahənin nə məna verdiyini dəqiq təyin edir. Bu vəziyyətlərin heç biri peer-in, DNS adının və ya aşağı axın tətbiqinin əlçatan olduğuna zəmanət vermir. Bu boşluq bu nasazlığın düzgün konfiqurasiya edilmiş asılılıqdan sağ çıxmasının bütün səbəbidir.

Get-Service -Name RemoteAccess | Select-Object Status, StartType
sc.exe qc RemoteAccess
Get-Service -Name RemoteAccess | Select-Object -ExpandProperty DependentServices

sc.exe qc çıxışındakı DEPENDENCIES sətri qorumalı olduğunuz siyahıdır, çünki sc.exe config RemoteAccess depend= bütün siyahını əvəz edir, ona əlavə etmir. VPN xidməti əlavə edərkən əlaqəsiz ilkin şərti atmaq başqa yükləmədə görünən ikinci nasazlıq yaradır və onu diaqnoz etmək orijinaldan qat-qat çətindir. Mövcud siyahını toxunmazdan əvvəl dəyişiklik qeydinizə köçürün.

Asılılıqlar söndürmə davranışını da dəyişir, çünki ilkin şərti dayandırmaq ondan asılı xidmətləri dayandırır. RRAS-ı tez-tez yenidən başlayan bir şeyə bağlamazdan əvvəl baxım zamanı nə baş verdiyini yoxlayın.

Yenidən başlatmanı taymerə deyil, şərtə bağlayın

Sabit gözləmə tunelin həmişə bu pəncərə içində hazır olacağını fərz edir və bu, sertifikatın yavaş olduğu və ya bağlantının kəsildiyi yükləmədə uğursuz olan fərziyyənin məhz özüdür. Resursun özünü son tarixlə yoxlayın və yenidən başlatmanın ümumiyyətlə lazım olub-olmadığına yoxlama qərar versin.

Get-NetAdapter | Where-Object Status -eq 'Up'
Get-NetRoute -DestinationPrefix 0.0.0.0/0
Get-WinEvent -LogName System -MaxEvents 40 |
  Where-Object ProviderName -eq 'Service Control Manager'

Yükləmədə bu yoxlamaları işlədən və yalnız adapter və ya marşrut hələ yox ikən RRAS-ı yenidən başladan planlaşdırılmış tapşırıq məhdud, audit edilə bilən və silinməsi asandır. Alternativ, hər yenidən qoşulmada RRAS-ı yenidən başlatmaq, sağlam sessiyaları kəsir və qeyri-sabit bağlantını yenidən başlatma dövrəsinə çevirir. Bu dövrə orijinal nasazlıqdan pisdir, çünki indi yaxşı olan istifadəçilərə təsir edir.

Yoxlamaya avadanlığınızda tunelin ağlabatan çəkdiyi müddətə uyğun maksimum gözləmə verin və tapşırıq əl çəkəndə sıfırdan fərqli statusla çıxsın. Sadəcə cəhd etməyi dayandıran səssiz tapşırığı uğur qazanmış tapşırıqdan ayırmaq mümkün deyil.

Keçidi qeyd edin ki, növbəti yükləmə özünü izah etsin

Eyni sətirdə üç vaxt möhürü qeyd edin: asılılıq xidmətinin RUNNING-ə çatdığı an, tələb olunan resursun göründüyü an və RRAS-ın onu nəhayət qəbul etdiyi an. Bu tək sətir növbəti mühəndisin verəcəyi suala cavab verir və istehsalı demək olar ki, heç nəyə başa gəlmir. O olmadan növbəti araşdırma bu araşdırmanın başladığı eyni təxmindən başlayır.

Avtomatlaşdırmanı müəyyən sayda cəhddən sonra dayandırın və sonsuz təkrar cəhd əvəzinə uğursuzluq bildirin. «Resurs heç vaxt görünmədi» mesajı ilə bitən yükləmə, xidməti qaranlıqda təkrar-təkrar başladan yükləmədən daha dəyərlidir. Bu mesaj görünəndə, ikinci bölmədə yazdığınız resurs adı növbəti şəxsin axtaracağı şeydir.

Əlaqəli məqalələr