چرا یک VPN با تونل کامل VLANهای محلی مسیریابیشده شما را پنهان میکند
گزینه allow local network هیچ چیزی درباره VLANهای پشت روتر شما نمیداند. یک مسیر مشخص از طریق دروازه محلی، زیرشبکههای ذخیرهسازی و آزمایشگاه را در دسترس نگه میدارد.
کلید «allow local network» در یک کلاینت VPN طوری به نظر میرسد که همهچیز ساختمان را پوشش میدهد. در عمل معمولاً چند استثنای آدرس خصوصی به مسیر پیشفرض تونل اضافه میکند و همانجا متوقف میشود. VLAN ذخیرهسازی شما فقط در صورتی در دسترس میماند که مسیری برای آن پیشوند مشخص از ورود تونل جان سالم به در ببرد، و در بسیاری از کلاینتها اینطور نیست.
این پرسشی درباره مسیریابی است نه تنظیمی در VPN، که خبر خوبی است: پاسخ مشخصی دارد.
allow-local-network در واقع چه چیزی را پوشش میدهد
کلاینتها آن گزینه را متفاوت پیادهسازی میکنند. برخی مسیرهایی برای زیرشبکهای که ماشین به آن وصل است اضافه میکنند، برخی محدودههای RFC 1918 را اضافه میکنند، و چند تایی فقط دروازه پیشفرض را مستثنا میکنند. هیچکدام نمیدانند که روتر دفتر شما یک VLAN ذخیرهسازی، یک بخش آزمایشگاه یا یک زیرشبکه چاپگر را هم سرویس میدهد، چون آن پیشوندها روی سیمی که کلاینت میبیند نیستند. برای رفتار دقیق، مستندات خود کلاینت را بخوانید بهجای اینکه فرض کنید برچسب توپولوژی شما را توصیف میکند.
این تفاوت بیشترین اهمیت را در طراحی تونل کامل دارد، جایی که کلاینت آگاهانه مسیر پیشفرض را جایگزین میکند تا همه ترافیک از VPN برود. این تمام هدف طراحی است، و همین چیزی است که شبکههای محلی مسیریابیشده را ناپدید میکند. آنها هرگز با مسیر خودشان پوشش داده نشده بودند؛ آنها سوار بر مسیر پیشفرضی بودند که همین حالا جایگزین شده است. کلاینت نمیتواند چیزی را که از وجودش بیخبر است مسیریابی کند، و فقط پیشوندهای متصل به رابط خودش را یاد میگیرد. بقیه چیزها را باید کسی توصیف کند که توپولوژی را میشناسد.
مسیرهای متصل در نخستین روتر متوقف میشوند
یک ایستگاه کاری در 192.168.10.20/24 با دروازه 192.168.10.1 بهطور خودکار یک مسیر متصل برای 192.168.10.0/24 میگیرد. VLAN ذخیرهسازی در 192.168.20.0/24 پیشوند دیگری است که فقط از طریق همان دروازه در دسترس است، و ایستگاه کاری برای آن مسیری فراتر از مسیر پیشفرض ندارد. پیش از بالا آمدن تونل، مسیر پیشفرض معمولی بهطور تصادفی ترافیک ذخیرهسازی را به 192.168.10.1 میفرستد و همهچیز کار میکند.
وقتی VPN مسیر پیشفرض تونل کامل را نصب میکند، بستههای 192.168.20.1 از مسیر پیشفرض جدید به داخل تونل میروند. دروازه دور هیچ تصوری ندارد که آن پیشوند کجاست، پس بستهها را دور میریزد یا به جایی بیفایده هدایت میکند. هیچچیز در VLAN ذخیرهسازی اشتباه پیکربندی نشده بود؛ مسیرش قرضی بود و قرض پس گرفته شد.
وسوسه این است که به یک استثنای گسترده مثل یک جفت مسیر /1 یا یک مسیر پیشفرض دوم چنگ بزنید. مقاومت کنید. هرچه استثنا باریکتر باشد، توضیح، بازبینی و حذف آن وقتی شبکه تغییر میکند آسانتر است.
استثنا را در جدولی بگذارید که برنده میشود
در یک جدول مسیریابی، یک /24 با تطبیق طولانیترین پیشوند بر /0 یا /1 پیروز میشود، پس یک مسیر مشخص به VLAN ذخیرهسازی از طریق دروازه محلی کافی است، به شرط اینکه جدول اصلاً مشورت شود. در لینوکس شکل معمول کوتاه است:
ip route add 192.168.20.0/24 via 192.168.10.1 dev eth0مسیریابی مبتنی بر سیاست این تضمین را پیچیده میکند. یک قاعده پیشین میتواند ترافیک را به جدولی بفرستد که مسیر پیشفرض خودش به داخل تونل اشاره میکند، و جدول اصلی که /24 شما را دارد دیگر هرگز دیده نمیشود. پیش از فرض اینکه مسیر مرجع است قاعدهها را بررسی کنید، چون یک ورودی درستنما در جدول اشتباه، شکستی را توضیح میدهد که شبیه مسیر خراب به نظر میرسد.
سپس ورودی را از طریق سازوکاری که کلاینت پشتیبانی میکند یا مدیر شبکهای که رابط را در اختیار دارد پایدار کنید. مسیری که در خط فرمان تایپ شود در اتصال دوباره بعدی ناپدید میشود، و مسیری که به یک دروازه Wi-Fi بسته شده به شبکه بعدی که لپتاپ بازدید میکند قابل انتقال نیست.
نامها و سیاست از مسیرها پیروی نمیکنند
تعمیر مسیر بستهها را برمیگرداند، نه نامها را. اگر دستگاههای محلی از طریق یک resolver تحمیلی که هیچ چیزی درباره آنها نمیداند حل شوند، حتی با وجود دسترسپذیری آدرس، سوارکردن همچنان شکست میخورد. نامهای محلی به یک ترتیب DNS محلی یا تفکیکشده نیاز دارند، و این تصمیمی جدا از استثنای مسیر است.
سیاست هم دوباره جداست. فیلتر دسترسی محلی یک کلاینت VPN میتواند آگاهانه ترافیک به محدودههای خصوصی را ممنوع کند، و یک مسیر آن قاعده را باطل نمیکند. در شبکهای غیرقابلاعتماد، آدرس خصوصی هم مدرکی بر اینکه مقصد سرور ذخیرهسازی شماست نیست، پس استثنا باید به همان اندازه مسیر مشخص باشد.
قراردادی که میتوانید تحویل دهید
طراحی نهایی باید مثل یک فهرست کوتاه خوانده شود: ترافیک عمومی اینترنت از تونل پیروی میکند، و این پیشوندهای محلی نامدار مسیر خود را از طریق روتر محلی حفظ میکنند. پیشوندها، گام بعدی و پسوند DNS همراهشان را بنویسید، و فهرست را آنقدر کوتاه نگه دارید که کسی بتواند بدون خواندن جدول مسیریابی آن را بررسی کند.
مراقب همپوشانی محدودههای محلی و دور باشید. یک VLAN ذخیرهسازی که پیشوندی را با چیزی پشت VPN مشترک دارد به هر مسیری که مشخصتر باشد حل میشود، و رفتار حاصل به شکلی گیجکننده است که متناوب به نظر میرسد. شمارهگذاری دوباره یک طرف معمولاً ارزانتر از اشکالزدایی ابدی این ابهام است.
قرارداد را دو بار آزمایش کنید: یک بار با تونل بالا و یک بار با آن پایین. اگر مسیر محلی فقط در یکی از این حالتها کار کند، استثنا هنوز قرارداد نیست.