VPN روشن است و ماشین مجازی در دسترس نیست؟ احتمالاً مسیر هرگز مشکل نبود
تونل را متهم کردید که مهمان شبکه host-only را پنهان کرده است. معمولاً مسیر همچنان محلی میماند و فیلتر کلاینت یا آدرس شنونده جلوی آن را میگیرد.
VPN را وصل کنید، و ماشین مجازی توسعه که یک دقیقه پیش پاسخ میداد ساکت میشود. داستان واضح خودش نوشته میشود: تونل مسیر را گرفته، میزبان اکنون ترافیک مهمان را به شبکه شرکتی میفرستد، و راهحل افزودن یک مسیر ایستا یا تغییر آداپتر به حالت پل است. این داستان گاهی درست است. اما این علت معمول نیست، و اقدام بر اساس آن در ابتدا معمولاً چیز دیگری را خراب میکند.
شبکه host-only یک شبکه نرمافزاری متعلق به میزبان است که با مهمانهایش به اشتراک گذاشته میشود، جدا از هر اتصال فیزیکی. هیچ چیز در رابط خود کلاینت VPN آن شبکه را تغییر نمیدهد، پس پیش از دست زدن به آن، بفهمید کدامیک از چهار لایه واقعاً شکست خورده است.
مسیر معمولاً همچنان محلی است
از هسته بپرسید، نه از صفحه اول جدول مسیریابی. در لینوکس، ip route get 192.168.56.10 مسیر، رابط و آدرس مبدأ دقیقی را که استفاده میشود گزارش میکند، که پاسخ متفاوتی از خواندن یک مسیر پیشفرض و حدس زدن است. اگر خروجی رابط host-only را نام ببرد، تونل اصلاً در آن مسیر دخالت ندارد.
دو چیز میتواند واقعاً آن را خراب کند، و هر دو مشکل آدرس هستند نه مشکل VPN. یک زیرشبکه راه دور که با پیشوند host-only همپوشانی دارد باعث میشود مسیر مشخصتر برنده شود، و کلاینت VPN که مسیری گسترده با متریک پایینتر نصب میکند میتواند پیشوند را بیرون بکشد. هر دو در همان فرمان دیده میشوند: رابطی که در خروجی نام برده میشود تونل خواهد بود، و اصلاح کار کسی است که صاحب آن طرح آدرس است.
انتخاب مسیر و پذیرش بسته دو تصمیم متفاوت هستند
این همان بخشی است که مدل ذهنی معمولاً از دست میدهد. حتی با یک مسیر محلی بینقص، کلاینت VPN میتواند بسته را رد کند. بسیاری از کلاینتها سیاست دسترسی محلی به شبکه را اعمال میکنند که تعیین میکند کدام مقصدها بیرون از تونل مجاز هستند، و یک زیرشبکه متصل آن فهرست را بهطور خودکار بهروز نمیکند.
بنابراین خطا از سمت برنامه دقیقاً مانند یک مشکل مسیریابی به نظر میرسد و از سمت کلاینت کاملاً متفاوت. اگر ip route get رابط درست را نام ببرد و اتصال باز هم به پایان مهلت برسد، ویرایش مسیرها را متوقف کنید و در عوض رفتار مستند دسترسی محلی کلاینت را بخوانید. برخی کلاینتها فهرست مجاز برای زیرشبکههای محلی ارائه میدهند، برخی هر چیزی را که تونل نیست مسدود میکنند، و برخی فقط هنگامی که یک کلید قطع فعال است مسدود میکنند.
این تمایز مهم است زیرا اصلاحها قابل تعویض نیستند. افزودن یک مسیر نمیتواند یک فیلتر را راضی کند، و غیرفعال کردن یک فیلتر برای رسیدن به یک مهمان تصمیمی بسیار بزرگتر از آن است که نشانه پیشنهاد میکند.
مهمان سه راه برای گفتن نه دارد
مهمانی که میتواند در اینترنت گردش کند هیچ چیز درباره سرویسی که میخواهید اثبات نکرده است. ممکن است شنونده درون مهمان به 127.0.0.1 مقید شده باشد، و در این صورت هیچ درخواستی از میزبان نمیتواند برسد، هرچقدر هم مسیر خوب باشد. در مهمان با ss -ltn بررسی کنید و به ستون آدرس محلی نگاه کنید، نه فقط به درگاه.
بعدی دیوار آتش خود مهمان است. یک ایمیج توسعه با پیشفرض سختگیرانه میتواند بستههای میزبان را بپذیرد و در مرز سرویس آنها را دور بریزد، که مهلتی ایجاد میکند دقیقاً شبیه یک سیاهچاله مسیریابی. در نهایت پیکربندی خود سرویس است: یک برنامه وب مقید به نام میزبان مشخص، یا فهرست مجاز آدرسهای کلاینت، درخواستی از زیرشبکه host-only را رد میکند حتی وقتی هر بسته میرسد.
پیش از آنکه به تغییر حالت شبکه ماشین مجازی فکر کنید، این سه را مرور کنید. هر یک تغییری کوچکتر از بازطراحی اتصال مهمان است، و هر یک آزمون روشنی دارد.
پل واقعاً چیست و چه هزینهای دارد
تغییر آداپتر به حالت پل تعمیر مسیر host-only نیست. این تصمیمی است برای قرار دادن مهمان روی شبکهای دیگر، معمولاً LAN فیزیکی، جایی که برای هر چیز دیگری که آنجا زندگی میکند قابل مشاهده میشود. ممکن است دقیقاً همان چیزی باشد که میخواهید. اما همان چیزی نیست که پیکربندی اصلی انجام میداد.
از آن استفاده کنید وقتی مهمان واقعاً باید همتا در آن LAN باشد و افشا تأیید شده است. از آن استفاده نکنید چون یک سرویس تنها پاسخ دادن را متوقف کرده، زیرا تغییر میتواند مهمان را از جداسازیای که توسعه در برابر آن را ایمن میکرد بیرون ببرد.
پس از هر اصلاح تأییدشده، به ترتیب ثابت آزمایش کنید: یک درخواست تازه از میزبان به مهمان، یک منبع شرکتی لازم از طریق تونل، و رفتار رد مورد نظر با تونل خاموش. اگر مورد آخر دیگر برقرار نیست، اصلاح فراتر از مشکل رفته است.
بخش شبکه host-only در VirtualBox رابط نرمافزاری سمت میزبان و تفاوت آن با اتصال پل را توصیف میکند، که مرجعی است که ارزش خواندن پیش از فرض کردن قابل تعویض بودن این دو حالت را دارد.