نشانی VPN در برابر اجاره DHCP شبکه محلی: چه کسی IP تونل را میدهد؟
کارخواه VPN شما نشانی نشان میدهد که هرگز در پرونده اجاره شبکه محلی پیدا نمیشود. کارخواه، بار IKEv2 و استخر دروازه را بخوانید تا واگذارکننده واقعی را بیابید.
کارخواه را وصل کنید و به جای نماد Wi-Fi، به کارت شبکه نگاه کنید. نشانی مانند 10.80.0.14 میتواند روی یک تونل باشد، در حالی که هیچ کارساز DHCP در شبکه محلی دفتر هرگز آن اجاره را ثبت نکرده است. این که کدام فرایند شماره را انتخاب کرده، تعیین میکند عیبیابی از کجا شروع شود.
در کارخواه همه چیز یکسان به نظر میرسد: یک نشانی IPv4، یک ماسک، گاهی یک دروازه پیشفرض. تفاوت تنها وقتی آشکار میشود که بپرسید چه کسی برای آن نشانی پاسخ میدهد و چه کسی از آن سابقه نگه میدارد.
نشانی تونل را از سمت کارخواه بخوانید
ویندوز تفاوت را نشان میدهد اگر کل بلوک را بخوانید نه خط اول. ipconfig /all توصیف کارت شبکه، نشانی فیزیکی و یک خط DHCP را چاپ میکند. کارت شمارهگیری PPP یا IKEv2 معمولاً DHCP را غیرفعال گزارش میکند، چون اتصال نشانی خود را در هنگام شمارهگیری چانه زد نه اینکه آن را از کارساز شبکه محلی اجاره کند. کارت تونلی با DHCP فعال غیرعادی است و ارزش بررسی جداگانه دارد.
لینوکس همان اطلاعات را بین دو ابزار تقسیم میکند. ip -4 addr show dev tun0 نشانی و طول پیشوند را میدهد. nmcli -f IP4 connection show work آشکار میکند که مقدار از نمایه اتصال آمده یا از تبادل DHCP روی پیوند یا از پیکربندی هل داده شده. WireGuard روشنترین مورد است، چون wg-quick خط Address را از پرونده پیکربندی هنگام ظهور رابط اعمال میکند و هیچ همتا در زمان اتصال چیزی واگذار نمیکند.
پیشوند هم چیزی میگوید. /32، یا ماسک 255.255.255.255، یعنی دروازه انتظار مسیریابی به یک نشانی میزبان را دارد، در حالی که ماسک گستردهتر به زیرشبکهای روی پیوند جایی پشت تونل اشاره میکند.
بار پیکربندی IKEv2 چه چیزی حمل میکند
IKEv2 سازوکار اختصاصی برای این کار دارد. بار پیکربندی توصیفشده در RFC 7296، بخش 3.15.1 ویژگیهایی مانند INTERNAL_IP4_ADDRESS، INTERNAL_IP4_NETMASK، INTERNAL_IP4_DNS و همتایان IPv6 آنها را حمل میکند. کارخواه وقتی ترجیحی ندارد ویژگیای با مقدار طول صفر میفرستد و پاسخدهنده مقداری را برمیگرداند که میخواهد استفاده شود. این تبادل داخل IKE_AUTH و از پیش رمزنگاریشده جریان دارد، پس هیچ پخش DHCP هرگز از تونل عبور نمیکند.
دو پیامد دارد. نخست، نشانی را پاسخدهنده یا هر پسزمینه مجوزدهی که با آن مشورت میکند انتخاب میکند، و به همین دلیل یک استخر میتواند روی دروازه، در پاسخ RADIUS یا در نگاشت ارائهدهنده هویت باشد. دوم، ویژگی DNS از ویژگی نشانی جداست. دریافت 10.80.0.14 هیچ چیزی درباره این که کدام حلکننده برگشت، یا اصلاً برگشت یا نه، نمیگوید.
ویژگی ماسک شبکه در عمل اختیاری است. بسیاری از استقرارها فقط یک نشانی برمیگردانند و میگذارند کارخواه مسیر میزبان نصب کند، به همین دلیل همان استخر میتواند روی یک کارخواه مانند /32 و روی دیگری مانند /24 به نظر برسد.
جایی که دامنه DHCP شبکه محلی و استخر VPN برخورد میکنند
مشکل وقتی شروع میشود که هر دو واگذارکننده به یک محدوده اشاره کنند. کارساز DHCP برای 10.20.30.0/24 هیچ چیزی از استخری VPN که برای 10.20.30.128/25 پیکربندی شده نمیداند، پس چیزی مانعش نمیشود که 10.20.30.140 را به یک چاپگر اجاره دهد، در حالی که دروازه همان نشانی را به کارخواه دوردست میدهد. برخورد روزها بیصدا میماند و سپس به صورت تکرار گاهبهگاه ظاهر میشود.
طرح مسیریابی سایتبهسایت برخورد را بهطور ساختاری دور میزند. میزبان در شعبه نشانیای را که کارساز DHCP محلی به او داده نگه میدارد. رابطهای تونل روی هر دو دروازه نشانیهای پیوند خودشان را دارند و جدول مسیریابی تعیین میکند بستهها چگونه سفر کنند. نشانیهای کارخواهان دسترسی دور دسته سوم است و نباید با نشانیهای پیوند دروازه مخلوط شود.
پل زدن تونل به شبکه محلی آن جداسازی را برمیدارد. اگر طرح واقعاً به یک دامنه پخش نیاز دارد، نقطه پایانی VPN باید در همان تصمیمهای واگذاری که کارساز DHCP میگیرد شرکت کند، از طریق رله یا منبع مرجع مشترک، نه اینکه خودش نشانی صادر کند.
بررسی کنید کدام فرایند مالک نشانی است
پیش از تغییر محدوده، مالکیت را اثبات کنید. روی کارخواه نشانی و پیشوند را ثبت کنید. در شبکه محلی در پایگاه داده اجاره جستوجو کنید. روی دروازه استخرهایی را که برای واگذاری پیکربندی شده فهرست کنید. نشانیای که در پرونده اجاره پیدا شود متعلق به کارساز DHCP است، یعنی تونل پل شده یا رله شده؛ نشانیای که تنها در استخر دروازه پیدا شود متعلق به نقطه پایانی تونل است.
# client: address and prefix on the tunnel interface
ip -4 addr show dev tun0
# LAN DHCP server: is this address leased to anyone?
grep -c '10.80.0.14' /var/lib/dhcp/dhcpd.leases
# gateway: pools that remote-access clients draw from
sudo swanctl --list-pools
وقتی پاسخ روشن شد چهار چیز را ثبت کنید: کدام مؤلفه نشانی کارخواه را واگذار میکند، کدام محدوده برای آن رزرو شده، ترافیک برگشت چگونه به آن محدوده میرسد و کدام منابع آن را میپذیرند. این چهار ورودی یک خط کارت شبکه مجازی را به یک واقعیت عملیاتی تبدیل میکند.
همانجا بررسی ویژگی DNS را تکرار کنید. استخری که نشانی میدهد اما حلکننده نمیدهد کارخواه را روی DNS محلی خودش رها میکند، که خرابی متفاوتی از استخری است که نشانیای را میدهد که شبکه محلی از پیش استفاده میکند.