Mac VPN бір рет қосылады да, кейін уақыт бітеді: IKE демонын тазалаңыз
Әр жүктеуде бір рет қосылатын Mac ескірген IKE бірлестігін ұстап тұр. UDP 500-ге ие демонды табыңыз, оның тапсырмасын қайта іске қосыңыз және сервер терезесін тексеріңіз.
Қайта жүктегеннен кейінгі бірінші қосылым жұмыс істейді. Одан кейінгі әрбір әрекет қосылу кезеңінде ілініп қалады да, ақырында уақыт бітеді, ал жалғыз сенімді ем — тағы бір қайта жүктеу. Бұл үлгі профиль мәселесі емес және ол тіркелгі деректерінің мәселесі де емес. Фондағы бірдеңе әлі де алдыңғы әрекеттің күйін ұстап тұр, ал келесі әрекет онымен соқтығысады.
macOS-та бұл бірдеңе әдетте IKE демоны.
Үлгі: бір қосылым, кейін уақыттың бітуі
Әр жүктеуде дәл бір рет жұмыс істейтін қосылым ажыратудан кейін сақталатын, бірақ қайта жүктеуден кейін сақталмайтын күйді көрсетеді. Профильдер екеуінен де аман қалады, сондықтан профиль айнымалы емес. Тіркелгі деректері де екеуінен де аман қалады, егер сервер тіркелгіні құлыптамаса. Қайта жүктеуде өзгеретін нәрсе — жұмыс істеп тұрған демондар жиынтығы және олар ұстап тұрған сокеттер.
Бұл бір журналды ашпас бұрын тергеуді тарылтады. Сұрақ IKE портына қай процесс ие және ол өзін не істеп жатыр деп ойлайды дегенге айналады.
Екі демон, бір порт
Жүйе іске қосады racoon қосылым IKE 1 нұсқасында сөйлескенде. Ағымдағы шығарылымдар да әкеледі iked IKEv2 және неғұрлым жаңа IPsec стек үшін. Екеуі де UDP 500 мен UDP 4500-ді байланыстыра алады, және екеуі де қосылу әрекеті құпиясөз сұрауында жойылғаннан немесе желі өзгерісімен үзілгеннен кейін жартылай ашық қауіпсіздік бірлестігін ұстай алады.
Бұл болғанда, келесі әрекет таза басталмайды. Ескі бірлестік әлі де серіктестің күйін алып тұрғанда ол келіссөз жүргізуге тырысады, және айырбас айқын қатемен сәтсіз аяқталудың орнына тоқтап қалады. Пайдаланушы айналмалы белгіні көреді, содан кейін уақыт бітеді.
Бірдеңені өлтірмес бұрын иесін табыңыз, себебі жауап қай қызметті қайта іске қосатыныңызды және кейін қай журналды оқитыныңызды анықтайды.
sudo lsof -i :500 -i :4500
ps -ef | grep -E "racoon|iked"Шығысты екі факт ретінде оқыңыз: қай процесс портты ұстап тұр және олардың біреуінен көбі бар ма. Бір сокет үшін бәсекелесетін екі IKE демоны тұрақсыз серверге ұқсайтын көптеген үзілісті мінез-құлықты түсіндіреді.
Процесті емес, тапсырманы қайта іске қосыңыз
Ескі жүйелерде процесті өлтіріп, келесі қосылымның оны қайта іске қосуына жол беру жеткілікті. Ағымдағы шығарылымдарда демонды launchd басқарады, және тек процеске сигнал жіберу тапсырманы ол не жұмыс істемейтін, не бастауға жоспарланбаған күйде қалдыруы мүмкін. Оның орнына тапсырманы тоқтатып, іске қосыңыз.
sudo launchctl stop com.apple.racoon
sudo launchctl start com.apple.racoonЕгер launchd-та тапсырманың жазбасы болмаса, процесті атымен өлтіру келесі әрекетте жаңа келіссөзді әлі де мәжбүрлейді. Сынақ екі жағдайда да бірдей: қайта қосылуға тырысқанда ешбір процесс портты ұстап тұрмауы керек. Мұны сол командамен растаңыз lsof қайта жүктеу жұмыс істеді деп болжаудың орнына.
Содан кейін бір рет қосылып, клиент журналын басынан оқыңыз. 1-кезеңнен өтіп, кейін жіберу қатесін хабарлайтын келіссөз жергілікті сокет мәселесін қайталайды; серіктес қабылдамаған келіссөз мүлде басқа билет.
Сервердің өзі бас тартқанда
Әрбір екінші қосылым жергілікті түрде сәтсіз бола бермейді. Сервер ажыратудан кейін белгіленген терезе үшін жаңа кіруді қабылдамауы мүмкін, ал клиенттің уақыт бітуі ілініп қалған демонға дәл ұқсайды. Айырмашылық арзан: егер демонды қайта іске қосу көмектеспесе, бірақ басқа тіркелгі бірден қосылса, терезе сервер жағында және Mac ешқашан мәселе болмаған.
Бөлінген туннель саясаты сол пішінді қарсы жақтан жасайды. Барлық трафикті туннельде талап ететін сервер бөлінген туннельге бапталған клиентті келіссөз кезінде тастап кетеді, ал клиент саясаттан бас тартудың орнына уақыттың біткенін хабарлайды. Профильді бәрін туннель арқылы жіберуге өзгерту оны қосуы мүмкін, бірақ бұл желі иесімен бірге қабылданатын саяси шешім, тыныш қолданылатын жөндеу емес.
Клиентті қайта өзгерту алдында серіктес журналын оқыңыз. Бас тарту, саясат сәйкессіздігі және тыныш тастау — үшеуі де Mac экранында «қосылып жатыр» деп көрінетін үш түрлі себеп.
Ескі клиенттер және 64-биттік ядро
Ескі Cisco IPSec клиенті 32-биттік және PowerPC жүйелеріне арналған ядро кеңейтімін жүктейді. 64-биттік ядроға жүктелген Mac-те бұл кеңейтім жүктелмейді, және клиент 51 қатесімен ерте сәтсіз аяқталады, себебі VPN ішкі жүйесіне мүлде жете алмайды. Ядро кеңейтімін қанша рет қайта жүктесеңіз де, қате сәулетті кеңейтімді түзетпейді.
Кеңейтімді қайта жүктеу біраз уақыт жұмыс істеп, кейін келесі жүктеуде қайта сәтсіз болуы мүмкін. Тұрақты шешімдер — ескі ядроны әлі қолдау бар жерде іске қосу немесе жүйемен бірге келетін кіріктірілген клиентке көшу. Жүктелмейтін үшінші тарап клиентіне кеш жұмсамас бұрын сәулетті тексеріңіз.
- Бір рет қайталаңыз, содан кейін профильге тиер алдында қай демонның UDP 500-ге ие екенін тексеріңіз.
- 1-кезеңнен кейінгі бірінші сәтсіздікті оқыңыз: жіберу қатесі жергілікті сокетті көрсетеді.
- Тек процесті емес, launchd тапсырмасын қайта іске қосыңыз және порттың бос екенін растаңыз.
- Сервер жағындағы қайта аутентификация терезесін клиент ақауынан ажырату үшін екінші тіркелгіні қолданып көріңіз.
- Клиентті кінәламас бұрын ядро сәулетін жазып алыңыз.
Дәл бір рет жұмыс істейтін VPN — керісі дәлелденбейінше күй мәселесі. Демонды тазалау қайта жүктеуден жылдамырақ және қайта жүктеу лақтырып тастайтын журнал дәлелдерін сақтайды.