Yenidən yükləmədən sonra ilk qoşulma işləyir. Ondan sonrakı hər cəhd qoşulma mərhələsində asılır və nəhayət vaxtı bitir, və yeganə etibarlı çarə növbəti yenidən yükləmədir. Bu nümunə profil problemi deyil və bu, etimad məlumatları problemi deyil. Arxa planda nəsə hələ də əvvəlki cəhdin vəziyyətini saxlayır və növbəti cəhd onunla toqquşur.

macOS-da bu nəsə adətən IKE demonudur.

Nümunə: bir dəfə qoşulur, sonra vaxt bitir

Hər yükləmədə düz bir dəfə işləyən qoşulma, ayırmadan sonra qalan, lakin yenidən yükləmədən sonra qalmayan vəziyyətə işarə edir. Profillər hər ikisindən sonra qalır, yəni profil dəyişən deyil. Etimad məlumatları da hər ikisindən sonra qalır, məgər server hesabı kilidləyirsə. Yenidən yükləmədə dəyişən şey işləyən demonlar çoxluğu və onların saxladığı soketlərdir.

Bu, bir dənə də jurnal açmadan əvvəl araşdırmanı daraldır. Sual belə olur: hansı proses IKE portuna sahibdir və o, özünü nə edir hesab edir.

İki demon, bir port

Sistem racoon IKE versiyası 1 ilə danışan qoşulma zamanı işə salır. Cari buraxılışlarda həmçinin iked var: IKEv2 və daha yeni IPsec yığını üçün. Hər ikisi UDP 500 və UDP 4500 portlarını bağlaya bilər və hər ikisi qoşulma cəhdi parol sorğusunda ləğv edildikdə və ya şəbəkə dəyişikliyi ilə kəsildikdə yarım açıq təhlükəsizlik assosiasiyasını saxlaya bilər.

Bu baş verəndə növbəti cəhd təmiz başlamır. Köhnə assosiasiya hələ də həmkarın vəziyyətini tutduğu halda danışıqlar aparmağa çalışır və mübadilə aydın xəta ilə uğursuz olmaq əvəzinə dayanır. İstifadəçi fırlanan göstərici, sonra vaxt bitməsi görür.

Heç nəyi öldürməzdən əvvəl sahibini tapın, çünki cavab hansı xidməti yenidən başladacağınızı və sonra hansı jurnalı oxuyacağınızı müəyyən edir.

sudo lsof -i :500 -i :4500
ps -ef | grep -E "racoon|iked"

Çıxışı iki fakt kimi oxuyun: hansı proses portu tutur və onlardan birdən çoxu varmı. Eyni soket üçün yarışan iki IKE demonu qeyri-sabit server kimi görünən çoxlu aralıq davranışı izah edir.

Prosesi deyil, işi yenidən başladın

Köhnə sistemlərdə prosesi öldürmək və növbəti qoşulmanın onu yenidən başlatmasına icazə vermək kifayətdir. Cari buraxılışlarda demonu launchd idarə edir və yalnız prosesə siqnal göndərmək işi nə işləyən, nə də başlamağa planlaşdırılan vəziyyətdə qoya bilər. Bunun əvəzinə işi dayandırın və başladın.

sudo launchctl stop com.apple.racoon
sudo launchctl start com.apple.racoon

Əgər launchd-də işin qeydi yoxdursa, prosesi adı ilə öldürmək yenə də növbəti cəhddə yeni danışıqları məcbur edir. Test hər iki halda eynidir: yenidən qoşulmağa çalışanda heç bir proses portu tutmamalıdır. Bunu eyni əmrlə təsdiqləyin lsof yenidən başlatmanın işlədiyini güman etmək əvəzinə.

Sonra bir dəfə qoşulun və müştəri jurnalını əvvəldən oxuyun. 1-ci mərhələdən keçib sonra ötürmə uğursuzluğu bildirən danışıq yerli soket problemini təkrarlayır; həmkar tərəfindən rədd edilən danışıq tamamilə başqa bir biletdir.

Rədd edən server olanda

Hər ikinci qoşulma yerli olaraq uğursuz olmur. Server ayırmadan sonra sabit pəncərə ərzində yeni girişi rədd edə bilər və müştərinin vaxt bitməsi ilişmiş demonla eyni görünür. Fərqləndirici ucuzdur: demonu yenidən başlatmaq kömək etmirsə, amma başqa hesab dərhal qoşulursa, pəncərə server tərəfindədir və Mac heç vaxt problem olmayıb.

Bölünmüş tunel siyasəti eyni forması əks istiqamətdən yaradır. Bütün trafiki tuneldə tələb edən server bölünmüş tunel üçün konfiqurasiya edilmiş müştərini danışıq zamanı atacaq və müştəri siyasət rəddi əvəzinə vaxt bitməsi bildirəcək. Profili hər şeyi tuneldən göndərmək üçün dəyişmək onu qoşula bilər, amma bu, şəbəkə sahibi ilə veriləcək siyasət qərarıdır, səssizcə tətbiq ediləcək düzəliş deyil.

Müştərini yenidən dəyişməzdən əvvəl həmkarın jurnalını oxuyun. Rədd, siyasət uyğunsuzluğu və səssiz düşmə Mac ekranında hamısı “qoşulur” kimi görünən üç fərqli səbəbdir.

Köhnə müştərilər və 64 bitlik nüvə

Köhnə Cisco IPSec müştərisi 32 bitlik və PowerPC sistemləri üçün qurulmuş nüvə uzantısını yükləyir. 64 bitlik nüvəyə yüklənmiş Mac-da bu uzantı yüklənə bilmir və müştəri 51 xətası ilə erkən uğursuz olur, çünki VPN alt sisteminə ümumiyyətlə çata bilmir. Heç bir miqdarda demon yenidən başlatma səhv arxitekturalı nüvə uzantısını düzəltmir.

Uzantını yenidən yükləmək bir müddət işləyə və sonra növbəti yükləmədə yenidən uğursuz ola bilər. Davamlı cavablar ya hələ dəstəkləndiyi yerdə köhnə nüvəni işlətmək, ya da sistemlə gələn daxili müştəriyə keçməkdir. Yüklənə bilməyən üçüncü tərəf müştərisinə bir axşam sərf etməzdən əvvəl arxitekturanı yoxlayın.

  • Bir dəfə təkrar yaradın, sonra profilə toxunmazdan əvvəl hansı demonun UDP 500 portuna sahib olduğunu yoxlayın.
  • 1-ci mərhələdən sonra ilk uğursuzluğu oxuyun: ötürmə xətası yerli soketə işarə edir.
  • Yalnız prosesi deyil, launchd işini yenidən başladın və portun boş olduğunu təsdiqləyin.
  • Server tərəfli yenidən autentifikasiya pəncərəsini müştəri nasazlığından ayırmaq üçün ikinci hesab sınayın.
  • Müştərini günahlandırmazdan əvvəl nüvə arxitekturasını qeyd edin.

Düz bir dəfə işləyən VPN, əksi sübut olunana qədər vəziyyət problemidir. Demonu təmizləmək yenidən yükləmədən daha sürətlidir və yenidən yükləmənin atacağı jurnal sübutunu saxlayır.

Əlaqəli məqalələr