کلاینت VPN با نشانی LAN روی LAN نیست
دادن نشانی LAN به کلاینت VPN آن را روی آن پیوند قرار نمیدهد. میزبانهای محلی سراغ همسایه میگردند، پس دروازه باید پاسخ دهد وگرنه پاسخ هرگز نمیرسد.
کلاینت متصل میشود، 10.50.0.200 را میگیرد و با وجود اینکه هر دو شماره در همان /24 هستند، به سرور در 10.50.0.20 نمیرسد. باوری که پشت این تنظیمات است این است که نشانیای از پیشوند LAN کلاینت را بخشی از LAN میکند. نمیکند. کلاینت روی یک پیوند نقطهبهنقطه است، سرور مقصد را محلی میداند و قطعه گمشده پاسخی از همسایه است که کسی نمیفرستد.
افسانه: پیشوند یکسان یعنی سگمنت یکسان
پیشوند نشانی به میزبان میگوید کدام مقصدها را میتواند مستقیم برسد و کدامها به مسیریاب نیاز دارند. به میزبان نمیگوید مقصد چگونه فیزیکی متصل است و قطعاً تضمین نمیکند که مقصد بتواند به درخواست لایه پیوند پاسخ دهد. اینها پرسشهای متفاوتی هستند که جدولهای متفاوتی روی میزبان به آنها پاسخ میدهند. ماسک به اولی پاسخ میدهد و جدول همسایهها به دومی، و تنها اولی از سمت VPN در کنترل شماست.
وقتی سرور به 10.50.0.200 میفرستد، مقصد را با ماسک خودش مقایسه میکند، نشانی را on-link میداند و از سگمنت محلی نشانی سختافزاری متعلق به آن را میپرسد. آن درخواست از رابط Ethernet خارج میشود و کلاینت VPN آنجا نیست که بشنود.
هیچ چیز در تنظیمات کلاینت نمیتواند این را از سمت خودش درست کند. مسیر پاسخ به این بستگی دارد که دستگاهی در LAN بهجای کلاینت پاسخ دهد، یا کلاینت نشانیای داشته باشد که سرور آن را محلی نمیداند.
میزبان محلی واقعاً با نشانی چه میکند
رفتار آسان قابل مشاهده است و ارزش دارد پیش از تغییر هر چیزی آن را ببینید. پس از تلاش میزبان LAN برای رسیدن به کلاینت، جدول همسایهها را ببینید: یک ورودی ناقص یا ناموفق تمام تشخیص در یک خط است. همان خط به شما میگوید عیب محلی سگمنت است نه جایی داخل تونل.
ip neigh show 10.50.0.200 ip route get 10.50.0.200 arping -I eth0 -c 3 10.50.0.200
جستوجوی مسیر مقصد را on-link گزارش میکند از طریق رابط Ethernet، و دقیقاً همین مشکل است. اگر ورودی همسایه تا زمانی که نشست VPN برپاست ناقص بماند، تأیید کردهاید که قطعه گمشده حل لایه پیوند است نه مسیریابی یا سیاست دیوار آتش.
همان بررسی را از میزبانی در زیرشبکه دیگر انجام دهید و مقایسه کنید. میزبانی که از طریق مسیریاب به کلاینت میرسد اصلاً به ورودی همسایه نیاز ندارد، و همین تفاوت تصمیم طراحی در مقیاس کوچک است.
چگونه Proxy ARP گام بعدی را فراهم میکند
Proxy ARP باعث میشود دروازه بهجای مقصدی که از طریق رابط دیگر به آن میرسد به درخواست لایه پیوند پاسخ دهد. میزبان LAN یک نشانی سختافزاری میگیرد، قاب را به دروازه میفرستد و دروازه بسته را به نشست VPN هدایت میکند. از دید میزبان کلاینت بهسادگی پشت دروازه به نظر میرسد. هیچ چیز در تنظیمات کلاینت تغییر نمیکند.
مستندات ARP در RouterOS از MikroTik این کاربرد را برای کلاینتهای شمارهگیری توصیف میکند که فضای نشانی LAN متصل را قرض میگیرند. این سازوکار ترمیمی برای حل همسایه است و کار میکند چون دروازه واقعاً روی هر دو مسیر است.
این با پل زدن کلاینت به LAN یکسان نیست. دروازه هنوز باید بسته را به نشست فعال درست هدایت کند و مسیریابی و سیاست دیوار آتش آن هنوز باید سرویس را مجاز کند. Proxy ARP تغییر میدهد چه کسی به درخواست همسایه پاسخ میدهد، نه چه کسی اجازه صحبت دارد.
نام حالتهای پلتفرم را با دقت بخوانید. RouterOS بین proxy-arp و local-proxy-arp تفاوت میگذارد و دومی ترافیکی را که از همان رابط وارد و خارج میشود مدیریت میکند. اینها املای قابل تعویض نیستند و فعال کردن هر دو بدون تمایز میانبر نیست.
چیزی که Proxy ARP به شما نمیدهد
کشف broadcast یا multicast را فراهم نمیکند. کلاینتی که باید سرویسی را با broadcast پیدا کند باز هم شکست میخورد، چون دروازه unicast را به نشست هدایت میکند و کلاینت را عضو دامنه broadcast LAN نمیکند. پروتکلهای کشفی که به broadcast وابستهاند در طراحیهای نشانی قرضی منبع رایج گزارشهایی هستند که میگویند برای یک چیز کار میکند و برای چیز دیگر نه.
نشانی را رزرو نمیکند. اگر شماره قرضگرفتهشده در استخر DHCP یا تخصیص ایستا هم باشد، دو دستگاه ممکن است به یک نشانی برسند و رفتار حاصل به زمانبندی بستگی دارد. ورود موفق رزرو نیست.
و نیاز به هماهنگی با صاحب LAN را برنمیدارد. ورودی Proxy ARP که صاحب طرح نشانی را غافلگیر کند حادثهای پشتیبانی است که منتظر هفتهای آرام است.
مقایسه با استخری که جدا مسیریابی میشود
جایگزین این است که به کلاینتهای VPN پیشوند خودشان داده شود و میزبانهای LAN به آن مسیریابی کنند. آنگاه سرور پاسخهای off-link را به دروازهاش میفرستد، دروازه پیشوند را به نقطه پایانی VPN مسیریابی میکند و روی سگمنت LAN اصلاً به حل همسایه نیازی نیست. این قطعات متحرک کمتری از یک نشانی قرضی بهعلاوه پاسخ proxy است.
آن طراحی هم استدلال دربارهاش آسانتر است و هم حسابرسیاش، چون بازه کلاینتها بهطور آشکار از بازه LAN جداست. هزینهاش یک مسیر، یک مسیر بازگشت و یک قاعده دسترسی است، همان چیزهایی که طراحی proxy ARP در جایی کمتر آشکار لازم دارد.
میان مدلها آگاهانه انتخاب کنید نه تصادفی. Proxy ARP یک رابطه مشخص را ترمیم میکند؛ استخر مسیریابیشده نیاز به آن ترمیم را از میان برمیدارد. بنویسید کدام را انتخاب کردید و چرا، تا نفر بعد مجبور نشود آن را از یک ورودی همسایه ناموفق دوباره کشف کند.