جمعه کار می‌کرد. دوشنبه همان کلاینت ویندوز با کادری پاسخ می‌دهد که می‌گوید تلاش برای اتصال شکست خورد، و جملهٔ زیر آن جمله‌ای است که قبلاً برای ده‌ها مشکل بی‌ربط دیده‌اید. آن کادر پایان یک زنجیره است، نه آغاز آن. ویندوز مرحله‌ای را پنهان می‌کند که تلاش واقعاً در آن مرد، و دو قطعهٔ کوچک شواهد آن را نام می‌برند: کد عددی نتیجه و یک رویداد RasClient از همان دقیقه. ترتیبی که من به کار می‌برم این است — تلاش را ثابت کنید، کد را بخوانید، رویداد را بیرون بکشید، سپس دقیقاً یک لایه را تغییر دهید.

متن کادر گفتگو آخرین گام است، نه علت

جمله‌ای که می‌خوانید پس از آن انتخاب می‌شود که تلاش از هم باز شده است. «اتصال پیش از برقراری توسط رایانهٔ راه دور قطع شد» زمانی ظاهر می‌شود که سروری در میانهٔ مذاکره گوشی را می‌گذارد، زمانی که IPsec پیش از آنکه نام کاربری شما حتی ارسال شود شکست می‌خورد، و زمانی که سیاستی تونل را یکسره رد می‌کند. سه صاحب متفاوت، یک جمله. با عبارت‌پردازی مانند یک ردهٔ نشانه رفتار کنید و نگذارید تا زمانی که کد با آن همسو نشده چیزی را هدایت کند.

چیزی که هنوز می‌توانید ثابت کنید خود تلاش است. نام اتصال، نوع تونل ذخیره‌شده در نمایه — PPTP، L2TP/IPsec، SSTP یا IKEv2 — زمان تا ثانیه و کد را بنویسید. اگر مطمئن نیستید کدام پروتکل واقعاً اجرا شده، به‌جای اعتماد به حافظه %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk را باز کنید و ورودی را بخوانید؛ نمایه‌ای که برای پروتکل جدید بازاستفاده می‌شود نام نمایشی قدیمی خود را نگه می‌دارد.

پیش از خواندن واژه‌ها عدد را بخوانید

کدها به سه مرحله می‌افتند، و مرحله از عبارت‌پردازی دقیق مهم‌تر است: تبادل احراز هویتی که به آن رسیده و رد شده، سروری که هرگز پاسخ نداد، یا مذاکره‌ای که پس از بالا آمدن پیوند فروپاشید. 691 از نوع اول است — بررسی اعتبارنامه اجرا شد و شکست خورد، چه به‌خاطر گذرواژهٔ اشتباه، چه حساب قفل‌شده یا منقضی، چه پروتکل احراز هویتی که سرور نمی‌پذیرد. 812 هم رد است، اما با اعتبارنامه‌های معتبر: سیاستی روی سرور دسترسی راه دور علیه شما تصمیم گرفت. مایکروسافت فهرست کدهای خطای اتصال شماره‌گیری و VPN را نگه می‌دارد، و ارزش دارد پیش از جست‌وجوی متن پیام، شمارهٔ خود را آنجا بخوانید.

809 ردهٔ مقابل است: چیزی برنگشت. این مشکل مسیر است — TCP 443 برای SSTP فیلتر شده، GRE برای PPTP مسدود شده، UDP 500 و 4500 یا ESP برای عبور IPsec انداخته شده. گذرواژهٔ تازه این را درست نمی‌کند و گواهی تازه هم نه. 720 یعنی پیوند بالا آمد و PPP هرگز مذاکره را تمام نکرد، که به ناسازگاری پروتکل یا سروری که نتوانست نشانی تخصیص دهد اشاره دارد. 789، یا 13801 در IKEv2، هویت درون IPsec است: گواهی‌ای که موضوعش با نامی که شماره می‌گیرید نمی‌خواند، زنجیره‌ای نامعتبر، یا کلید از پیش به‌اشتراک‌گذاشته که بین دو سر متفاوت است.

رویداد RasClient همان دقیقه را بیرون بکشید

در نمایشگر رویداد، Windows Logs > Application که بر منبع RasClient فیلتر شده نخستین جایی است که باید نگاه کنید. نوشتهٔ مایکروسافت دربارهٔ خطای 720 به رویداد 20227 در همان گزارش اشاره می‌کند. همان ارائه‌دهنده شناسه‌های دیگری برای نتایج دیگر صادر می‌کند، پس پیام و کد نتیجهٔ نهفته در آن را بخوانید نه اینکه شناسه را تشخیص بدانید؛ یک کادر عمومی به‌همراه 20227 که 720 را حمل می‌کند داستان بسیار باریک‌تری است.

از PowerShell، بدون کلیک از طریق GUI:

Get-WinEvent -FilterHashtable @{
  LogName      = 'Application'
  ProviderName = 'RasClient'
  StartTime    = (Get-Date).AddMinutes(-15)
} | Format-List TimeCreated, Id, Message

نتیجهٔ خالی آگاهی‌بخش است. معمولاً یعنی شماره‌گیری هرگز به‌اندازه‌ای پیش نرفت که RAS چیزی ثبت کند، یا نرم‌افزاری که شکست خورد اصلاً کلاینت بومی نیست — کلاینت‌های شخص ثالث تشخیص خود را نگه می‌دارند و اغلب چیزی در گزارش Application نمی‌نویسند. پیش از آنکه نتیجه بگیرید ثبت رویداد خراب است، گزارش فروشنده را بررسی کنید.

یک خط زمانی بسازید نه توده‌ای از رویدادها

حلقه‌های تلاش دوباره سروصدا می‌سازند. پنج اتصال مجدد خودکار خوشه‌ای از رویدادها بر جای می‌گذارند، و وسوسه آن است که آنها را یک توالی با یک علت بخوانید. آنها پنج تلاش جداگانه‌اند، و فقط برخی به سرور رسیده‌اند. پنجرهٔ دو یا سه دقیقه‌ای و یک نام اتصال بگیرید و پیش از هر تفسیری هر رویداد را با کد خودش فهرست کنید.

سپس بپرسید تلاش کجا ایستاد. وقتی دروازه یا بخش پشتیبان احراز هویت هیچ سابقه‌ای برای آن برچسب زمانی ندارد، کلاینت هرگز به آن نرسیده و شما با مشکل دسترسی‌پذیری روبه‌رو هستید. وقتی بخش پشتیبان درخواست و ردی را نشان می‌دهد، تصمیم همان‌جا گرفته شده و ردهٔ اعتبارنامه یا سیاست اعمال می‌شود. پیش از مقایسهٔ زمان‌ها ساعت را مقایسه کنید: کلاینت‌ها زمان محلی را گزارش می‌کنند، بسیاری از دروازه‌ها UTC ثبت می‌کنند، و اختلاف باعث می‌شود جفتی کاملاً همبسته بی‌ربط به نظر برسد.

برای ضبط تکرارپذیر، از خط فرمان شماره بگیرید و بگذارید نتیجه را چاپ کند:

rasdial "Office VPN"
rasdial "Office VPN" /disconnect

کنسول عددی را نشان می‌دهد که GUI پشت متن دوستانه پنهان می‌کند، و اجرای دوباره می‌گوید کد پایدار است یا متناوب.

هر مرحله می‌گوید چه چیزی را تغییر دهید

نام‌گذاری مرحله تنها وقتی سودمند است که مجموعهٔ تغییرها را به یک لایه کاهش دهد:

  • 691 — احراز هویت: روش EAP که کلاینت عرضه می‌کند در برابر آنچه سرور می‌پذیرد، وضعیت حساب، انقضای گذرواژه، اجازهٔ شماره‌گیری.
  • 812 — سیاست سرور: سیاست دسترسی راه دور یا قاعدهٔ NPS که با این کاربر و این پنجرهٔ زمانی می‌خواند.
  • 809 — دسترسی‌پذیری: قواعد دیوار آتش در مسیر، NAT و عبور پروتکل، درگاهی که نوع تونل انتخاب‌شده نیاز دارد.
  • 720 — مذاکرهٔ PPP: ناسازگاری پروتکل احراز هویت، تخصیص نشانی، تنظیم PPP در سمت سرور.
  • 789 / 13801 — هویت IPsec: موضوع گواهی در برابر نامی که شماره می‌گیرید، زنجیرهٔ اعتماد، کلید از پیش به‌اشتراک‌گذاشته.

یکی از آنها را تغییر دهید، همان نمایه را دوباره بیازمایید و کد جدید را بنویسید. کد متفاوت پس از یک تغییر پیشرفت است نه تناقض: شکست را به مرحلهٔ بعدی برده‌اید، و اصلاح یک دست‌دادن چندمرحله‌ای همین‌طور به نظر می‌رسد. کاری که نباید بکنید این است که دیوار آتش، گواهی و گذرواژه را در یک نشست تغییر دهید و سپس اعتبار را به آخرین موردی که رسید بدهید.

شواهد را به اشتراک بگذارید، نه محیط را

پیام‌های رویداد غنی‌تر از آنچه به نظر می‌رسند هستند. آنها نام اتصال، حساب، اغلب نام یا نشانی درونی دروازه و گاهی اثر انگشت گواهی را حمل می‌کنند. اصل را همان‌جا که باید نگه دارید و برای هر کس دیگری نسخه‌ای ویرایش‌شده و جداگانه بسازید؛ بازنویسی خط زمانی از حافظه دقیقاً همان جزئیاتی را از دست می‌دهد که آن را سودمند می‌کند.

تحویلی که پیگیری می‌شود پنج میدان لازم دارد: کد، مرحله‌ای که به آن تعلق دارد، کلاینت و نوع تونل، برچسب زمانی با منطقهٔ زمانی‌اش، و اینکه آیا دروازه درخواست را دیده است یا نه. هر چیز دیگری اختیاری است. با آن پنج، نفر بعدی می‌تواند بحث اعتبارنامه را از بحث مسیریابی تشخیص دهد بدون تکرار بررسی.

پیش از بستن هر چیزی، تلاش را روی همان نمایه بازپخش کنید و تأیید کنید کد اکنون کجا می‌نشیند. موفقیت آن را تمام می‌کند؛ شکست متفاوت یعنی مرحلهٔ اصلی درست شده و مرحلهٔ بعدی در دست شماست.

مقالات مرتبط