چرا ترتیب آداپتورها مسیر VPN آزمایشگاه شما را تعیین نمیکند
آداپتور 1 در هایپروایزر هیچ چیزی درباره مسیری که مهمان انتخاب میکند نمیگوید. پس از هر تغییر سختافزاری پیشوندها، معیارها و قواعد سیاست را مقایسه کنید.
اینکه آداپتور 1 در فهرست هایپروایزر اول باشد تنها ترتیب نمایش است و جدول مسیریابی مهمان آن را نمیخواند. آنچه مسیر را تعیین میکند پیشوند، معیار و هر قاعده سیاستی است که پیش از هر دو اعمال میشود. از این رو افزودن یک آداپتور پل به یک VM آزمایشگاهی میتواند مسیر پیشفرض دومی ایجاد کند، در حالی که رابط NAT قدیمی هنوز بهعنوان موجود و با شماره دوم نمایش داده میشود. نتیجه VMای است که گاهی از تونل استفاده میکند و گاهی نمیکند، بدون هیچ تغییر پیکربندی که این را توضیح دهد.
سه شرط مسیر را تعیین میکنند
سه شرط عبارتاند از اینکه کدام پیشوند مشخصتر است، معیارها هنگام برابر بودن پیشوندها چه میکنند، و مهمان پس از تغییر سختافزاری کدام قواعد را اعمال کرده است. به هر یک میتوان با یک فرمان پاسخ داد و هیچیک شامل شمارهگذاری هایپروایزر نیست.
همان نکته آخر تصمیم است: اگر نمیتوانید بگویید کدام پیشوند برای نشانی خود نقطه پایانی VPN برنده میشود، سیاست مسیریابی ندارید، بلکه توپولوژیای دارید که امروز تصادفاً کار میکند.
شرط یکم: کدام پیشوند برنده میشود
مسیری به 10.8.0.0/24 برای نشانی درون آن بر مسیر پیشفرض پیروز میشود، بیتوجه به معیارها و بیتوجه به ترتیب آداپتورها. به همین دلیل کارخواه VPN که مسیر مشخصی نصب میکند حتی وقتی آداپتور دومی با معیار کمتر ظاهر میشود به کار ادامه میدهد: ویژگی پیش از آنکه هزینه در نظر گرفته شود برنده میشود. با ip route show جدولی را که فکر میکنید در حال استفاده است بررسی کنید و با ip route get 203.0.113.9 پاسخی را که هسته واقعاً برای مقصدی مشخص میدهد.
نشانی خود نقطه پایانی مهمترین آزمون است. اگر نشانی سرور VPN از طریق آداپتور پل تازهافزوده حل شود، ممکن است تونل هرگز برقرار نشود، یا برقرار شود و سپس مسیر انتقال خود را از دست بدهد. مشخصاً همان نشانی را بپرسید، نه اینکه فرض کنید رابط تونل پاسخ است.
شرط دوم: معیار چه میکند و چه نمیکند
نقش آن باریکتر از انتظار بیشتر مردم است. معیارها تساوی میان مسیرهای همپیشوند را میشکنند؛ اجازه نمیدهند مسیر گستردهتر بر مسیر مشخصتر پیروز شود. در تساوی عدد کوچکتر ترجیح داده میشود و سیستمعاملهای مختلف در جهتهای مخالف میشمارند، به همین دلیل توصیههایی که بین لینوکس و ویندوز کپی میشوند اغلب با خودشان تناقض دارند.
در مهمان ip route show معیار را کنار هر مسیر چاپ میکند و Get-NetRoute در ویندوز InterfaceMetric بههمراه معیار مسیر را چاپ میکند. هر دو را بخوانید، زیرا ترجیح مؤثر میتواند یک جمع باشد نه یک فیلد. اگر دو مسیر پیشفرض وجود دارد، یافته همین است: مهمان دو راه خروج دارد و اینکه کدام برنده میشود تابعی از اعدادی است که تغییر سختافزاری میتواند تغییر دهد.
شرط سوم: مهمان واقعاً چه چیزی اعمال کرده است
پیکربندی با وضعیت اعمالشده یکی نیست. نام رابطها در همه سکوها در طول تغییرات سختافزاری پایدار نیستند و پیکربندیای که بر اساس نام مطابقت داشت ممکن است اکنون به هیچ چیز اعمال نشود.
وضعیت اعمالشده را بررسی کنید نه وضعیت موردنظر را. ip -br link رابطهایی را که اکنون وجود دارند نشان میدهد و روی میزبان دارای NetworkManager دستور nmcli connection show نشان میدهد کدام نمایه به کدام دستگاه بسته شده است. نمایهای که نتوانست بسته شود رابط را بدون نشانیدهی روشن رها میکند، که شبیه مشکل مسیریابی است و مشکل نامگذاری است. عکسهای فوری بازیابیشده این را بدتر میکنند، زیرا وضعیت ذخیرهشده مهمان ممکن است به هویت آداپتورهایی ارجاع دهد که سختافزار جدید دیگر فراهم نمیکند.
توپولوژی آزمایشگاه را بازتولیدپذیر نگه دارید
اتصالهای شبکه مجازی موردنظر را در کنار پیکربندی مهمان ذخیره کنید تا نگاشت نقش به آداپتور نوشته شود نه اینکه از موقعیت در فهرست استنباط شود.
معمولاً چهار نقش برای نامگذاری کافی است: پیوند خصوصی، مدیریت، انتقال بیرونی و تونل. هر یک باید در یک فایل به آداپتور مشخص و رابط مشخص مهمان نگاشت شود.
سپس برنامه واقعی را پس از تغییر سختافزاری، راهاندازی دوباره یا عکس فوری بازیابیشده آزمایش کنید و مسیر تا نقطه پایانی VPN را نیز در آن آزمون بگنجانید. اگر VM دروازه باید تنها خروجی باشد، بررسی کنید که VM آزمون مسیر پیشفرض دوم ناخواسته نداشته باشد، زیرا آداپتور پل دقیقاً همان مسیر پیشفرض دوم را اضافه میکند. از مهمان آزمایش کنید نه از کنسول هایپروایزر، چون این دو ممکن است درباره اینکه کدام رابط کدام است همنظر نباشند.
مستندات شبکه VirtualBox حالتهای آداپتور و اینکه هر یک به چه چیزی متصل میشود را شرح میدهد و همین بخشی است که ارزش خواندن پیش از افزودن آداپتور دوم را دارد. آزمایشگاهی که مشخص میکند کدام آداپتور به کدام نقش خدمت میکند تغییر مسیر را قابل توضیح میکند. آزمایشگاهی که به شمارهگذاری هایپروایزر تکیه کند هر تغییر را به یک آزمایش تبدیل میکند.