VPN سازمانی داخل WireGuard: کدام لایه اول میآید؟
دو کلاینت روی یک ماشین تنها زمانی کار میکنند که تونل بیرونی خودِ اتصال کلاینت داخلی را حمل کند و متریکها برای هر پیشوند رابط درست را انتخاب کنند.
دو دلیل موجه برای تودرتو کردن تونلها روی لپتاپ یک توسعهدهنده وجود دارد. یا کلاینت سازمانی باید طوری به نظر برسد که از کشوری مشخص میآید، یا دو شبکه خصوصی باید همزمان قابل دسترسی باشند. هر دو حالت نیاز دارند که تونل بیرونی خودِ اتصال کلاینت داخلی را حمل کند.
راهاندازی دو کلاینت با هر ترتیبی این را به دست نمیدهد. این مسیریابی است که آن را میسازد.
دو ترتیب ممکن را مقایسه کنید
لایه بیرونی را تونلی انتخاب کنید که نقطه پایانیاش از اینترنت عمومی قابل دسترسی است. لایه داخلی تونلی است که سرورش فقط از طریق همان خروجی پاسخ میدهد. در Windows تقسیم عملی این است: WireGuard بیرون و کلاینت سازمانی درون. عامل تعیینکننده کنترل است.
کلاینت رسمی WireGuard یک فایل پیکربندی کامل را اعمال میکند، همراه با مسیرها و DNS. کلاینتهای سازمانی تجاری معمولاً هر دو را پنهان میکنند. قرار دادن یک کلاینت پنهان در بیرون، شما را با حدس زدن درباره مسیر زیرین تنها میگذارد.
ترتیب معکوس ناممکن نیست. فقط استدلال دربارهاش سختتر است، چون کلاینت بیرونی مسیرها را بر اساس برنامهای بازنویسی میکند که هرگز آن را نمیبینید.
بگذارید AllowedIPs فقط محدوده سازمانی را نام ببرد
AllowedIPs مقصدهایی را فهرست میکند که WireGuard به تونل مسیر میدهد. برای تودرتو کردن فقط به نشانی سرور داخلی و پیشوندهای سازمانی نیاز دارد. هر چیز دیگری در شبکه محلی میماند، از جمله چاپگرها و هایپروایزر. این بهطور طراحی یک تونل تقسیمشده است و مشکل استثنا را کاملاً دور میزند.
لایه بیرونی با تونل کامل به 0.0.0.0/0 منهای محدودههای محلی نیاز دارد. قالب نمیتواند استثنا را بیان کند، پس متمم باید محاسبه و جایگذاری شود.
[Interface]
PrivateKey = ...
Address = 10.99.4.2/32
[Peer]
PublicKey = ...
Endpoint = 198.51.100.44:51820
AllowedIPs = 198.51.100.44/32, 10.20.0.0/16, 10.21.0.0/16
وقتی کلاینت داخلی مسیرهای خودش را نصب نمیکند، خودتان پیشوندهای سازمانی را فهرست کنید. پیشوندی که از آن خط جا بماند مقصدی است که تونل بیرونی هرگز آن را حمل نمیکند. نسخه کهنه فهرست از نبودنش بدتر است، چون هنوز درست به نظر میرسد.
ترتیب، متریکها و آداپتور دوم
ابتدا تونل بیرونی را وصل کنید، سپس کلاینت سازمانی را راهاندازی کنید. آنگاه اتصال نقطه پایانیاش بهجای دروازه محلی از WireGuard خارج میشود. به رابط سازمانی متریک کمتری بدهید تا پیشوندهایش برای نشانیهایی که در اختیار دارد برنده شوند.
# which interface currently claims the corporate prefix?
Find-NetRoute -RemoteIPAddress 10.20.10.5 | Select-Object -First 1
# prefer the corporate interface for its own prefixes
Set-NetIPInterface -InterfaceAlias 'Corp VPN' -InterfaceMetric 3
Set-NetIPInterface -InterfaceAlias 'wg-personal' -InterfaceMetric 40
wg show interfaces
متریکها همان مرحلهای است که مردم از آن میگذرند. بدون ترتیب، برای پیشوند همپوشان مسیری که آخر نصب شده برنده میشود. این بین راهاندازیها تغییر میکند و به همین دلیل مشکل متناوب به نظر میرسد.
کلاینتهای مبتنی بر OpenVPN 2.6 تله خودشان را اضافه میکنند. وقتی آداپتور تخلیه کانال داده از قبل اشغال شده باشد، نمونه دوم بهسادگی از راهاندازی امتناع میکند. افزودن disable-dco به نمایه به مسیر قدیمیتر TAP برمیگردد و آنگاه هر دو کنار هم اجرا میشوند.
کجا مسیر تودرتو میشکند
قطع تونل بیرونی تونل داخلی را میکشد. وصل کردن دوباره فقط کلاینت داخلی اغلب آن را مستقیم به اینترنت میفرستد و بیصدا تودرتویی را برمیدارد. هر بار توالی را از صفر آزمایش کنید، با هر دو تونل متوقف.
انتظار MTU قابل استفاده کوچکتری داشته باشید. هر لایه سرباری اضافه میکند، پس یک جفت شروع حدود 1420 و 1400 نقطهای برای آغاز است. انتقالی که روی بستههای بزرگ گیر میکند در حالی که درخواستهای کوچک موفق میشوند، نشانه معمول است. سیاست سازمانی حد دیگر است، چون کلاینتی که دستگاه مدیریتشده میخواهد میتواند مسیر تودرتو را نقض بداند.
وقتی هر دو سر شبکههای ثابت هستند، تونل سایتبهسایت بین دروازهها مشکل ترتیب را بهجای مدیریت کردن حذف میکند. روی یک لپتاپ، دو تونل فقط زمانی همزیستی دارند که هر کدام رابط خودش و قاعدهای داشته باشد که مقصدها را بر پایه پیشوند انتخاب کند.