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

بررسی کنید که مسیر واقعاً به کجا اشاره می‌کند

با خواندن مدخل مسیر و مبدل‌ها در کنار هم شروع کنید. مسیری با گام بعدی روی واسط VPN و شاخصی که با هیچ مبدل فعلی مطابقت ندارد، امضای این خرابی است؛ همان پیشوند روی شاخصی دیگر یا بازمانده است یا مسیری که واقعاً می‌خواهید. هر دو فهرست را پیش از تغییر هر یک بخوانید، چون مقایسه جالب میان شماره درون مسیر و شماره‌هایی است که اکنون وجود دارند. اگر شاخص مسیر در فهرست مبدل‌ها دیده شود، شاخص مشکل شما نیست و جست‌وجو به معیارها، سیاست یا انتهای دور منتقل می‌شود. اگر دیده نشود، هیچ تشخیص دیگری لازم نیست: مسیر به زیرساختی بسته شده که دیگر وجود ندارد.

Get-NetRoute -DestinationPrefix '10.77.0.0/16' | Select-Object DestinationPrefix, NextHop, InterfaceIndex, Store
Get-NetAdapter | Where-Object InterfaceDescription -like '*VPN*' | Select-Object Name, InterfaceIndex, InterfaceDescription
Get-VpnConnection -Name 'Lab VPN' | Select-Object Name, ServerAddress, SplitTunneling

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

پیشوند را به نمایه ببندید، نه به مبدل

VPN بومی Windows می‌تواند فهرست مسیر خودش را داشته باشد، بنابراین اتصال هر بار که بالا می‌آید از مبدل درست دوباره استفاده می‌کند. آن‌گاه مسیر از نمایه پیروی می‌کند نه از شماره‌ای که یک بار دیده‌اید، و هیچ اسکریپتی لازم نیست پس از هر شماره‌گیری شاخصی را حدس بزند. افزودن پیشوند با فرمان حذف متناظر هم برگشت‌پذیر است، که تغییر را قابل حسابرسی نگه می‌دارد. پیشوند با اتصال ذخیره می‌شود نه در اسکریپت راه‌اندازی، پس نمایه‌ای که به کاربر دیگری کپی شود قصد را با خود می‌برد.

Add-VpnConnectionRoute -ConnectionName 'Lab VPN' -DestinationPrefix '10.77.0.0/16' -PassThru

مرجع Add-VpnConnectionRoute پیوند با اتصال را مستند می‌کند، و دامنه دفترچه تلفن اهمیت دارد: نمایه هر کاربر و نمایه همه کاربران دو شیء متفاوت‌اند. این سازوکار به کارخواه VPN خود Windows تعلق دارد، پس مبدل فروشنده‌ای که سرویس خودش آن را مدیریت می‌کند ممکن است مسیرهایش را از منبع سیاستی کاملاً دیگری بگیرد.

پیش از افزودن مسیر جدید، مسیرهای قدیمی را پاک کنید

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

Get-NetRoute -AddressFamily IPv4 | Where-Object DestinationPrefix -like '10.77.*'
Remove-NetRoute -DestinationPrefix '10.77.0.0/16' -NextHop '0.0.0.0' -Confirm:$false

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

با ترتیب متفاوت دوباره وصل شوید

شرط را بازتولید کنید نه اینکه امید داشته باشید تلاش اول نماینده بوده است. قطع کنید، دوباره وصل شوید و مسیر انتخاب‌شده به همان منبع دور را در حالی که تونل بالاست تأیید کنید؛ وقتی چند VPN در کار است، آن‌ها را با ترتیب متفاوت بالا بیاورید و ببینید مسیر انتخابی تغییر می‌کند یا نه. ترتیب متغیری است که بیشتر مردم از آن می‌گذرند، و همان چیزی است که مسیر بسته‌شده به اتصال اشتباه را آشکار می‌کند.

rasdial 'Lab VPN' /disconnect
rasdial 'Lab VPN'
Find-NetRoute -RemoteIPAddress 10.77.5.20 | Select-Object -First 1

نتیجه‌ای که می‌خواهید این نیست که مبدل یک بار شماره‌اش را نگه دارد. این است که مسیر با هر شماره‌ای که اتصال می‌گیرد، هر بار ظاهر شود و با بسته شدن اتصال ناپدید شود. دو بار وصل شدن دوباره ارزان‌ترین راه برای جدا کردن این نتایج است.

بدانید مسیر چه کاری نمی‌تواند بکند

مسیر نمایه یک راه فراهم می‌کند و بس. دیوار آتش دور را باز نمی‌کند، مسیر بازگشت در انتهای دور نمی‌سازد، و دو سایتی را که از یک محدوده نشانی استفاده می‌کنند حل نمی‌کند؛ هر یک از این‌ها پیکربندی جداگانه‌ای با مالک جداگانه است. پس تأیید راه، آغاز آزمون پذیرش است نه تمام آن.

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

مقالات مرتبط