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

چرا نشانه رفتن دستگاه‌ها به میزبان شکست می‌خورد

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

به همان ترتیب تشخیص دهید، نه اینکه تنظیمات را تصادفی تغییر دهید. هر قطعه گمشده نشانه‌ای کمی متفاوت تولید می‌کند.

ارسال و ترجمه را روی میزبان فعال کنید

دو تغییر روی میزبان متصل دو قطعه اول را پوشش می‌دهد: ارسال IPv4 را فعال کنید و ترافیک LAN را به رابط تونل ترجمه کنید.

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

مقدار sysctl را در فایلی زیر /etc/sysctl.d نگه دارید و قاعده MASQUERADE را پس از راه‌اندازی دوباره بررسی کنید، چون رابط‌های جلوی فایروال می‌توانند زنجیره‌های سفارشی را پاک کنند. در Windows قابلیت اشتراک‌گذاری هر دو گام را انجام می‌دهد، اما آداپتور LAN را نیز به یک زیرشبکه ثابت دوباره نشانی می‌دهد و درگاهش را پاک می‌کند، که نشانی‌دهی ثابت و ارسال پورت را می‌شکند. مسیر روتر به میزبان را روی نشانی جدیدش بازگردانید پیش از آنکه نتیجه بگیرید اشتراک‌گذاری شکست خورده است. سپس ببینید شمارنده‌های قاعده افزایش می‌یابند وقتی دستگاه دوم ترافیک می‌فرستد.

به LAN مسیری بدهید که از راه‌اندازی مجدد جان سالم به در ببرد

دستگاه‌های دیگر به مسیری به پیشوند دور نیاز دارند و دو روش فراهم کردن آن در دامنه تأثیر متفاوت‌اند.

ip route add 10.8.0.0/24 via 192.168.1.20 dev eth0

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

پیش از سرزنش تونل به MTU توجه کنید

تونل‌ها اندازه قابل استفاده بسته را کوچک می‌کنند و دستگاه دوم هیچ نمی‌داند. انتقال‌های بزرگ و دست‌دادن‌های TLS متوقف می‌شوند در حالی که درخواست‌های کوچک موفق‌اند.

ping -M do -s 1400 10.8.0.5

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

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

مقالات مرتبط