مسیرهای خصوصی را نگه دارید و تغییر مسیر را کنار بگذارید: تونل تقسیمشده OpenVPN
تونلی که فقط برای شبکههای خصوصی است دو قاعده لازم دارد: پیشوندهای خصوصی از آن عبور میکنند و مرور معمولی مسیر محلی خود را حفظ میکند. حذف یک مسیر پیشفرض سیاست نیست.
تونل بالا میآید، برنامه بارگذاری میشود و سپس همه چیز دیگر روی لپتاپ رفتار عجیبی پیدا میکند. این شکل معمول سیاستی است که فقط برای شبکههای خصوصی است و با حذف یک خط پیادهسازی میشود. برداشتن یک مسیر پیشفرض هل دادهشده واقعاً تغییر میدهد ترافیک به کجا میرود، اما نمیگوید ترافیک به جای آن باید به کجا برود و اصلاً به تجزیه نام نمیپردازد. سیاست پیش از آنکه آزمونپذیر باشد به دو نیمه مثبت نیاز دارد.
حذف تغییر مسیر تنها نیمی از تغییر است
تغییر مسیر کل تونل و سیاست فقط خصوصی در آنچه درباره جهان ادعا میکنند تفاوت دارند. تغییر مسیر مدعی هر مقصدی است، در حالی که سیاست خصوصی مدعی یک فهرست است و بقیه را به حال خود میگذارد. حذف ادعا بدون نوشتن فهرست، کلاینتی میسازد که بیرون از شبکه محلی به جایی نمیرسد، و این بیشتر شبیه خطای مسیریابی است تا شکاف در سیاست. فهرست را پیش از برداشتن ادعا بنویسید، و آنگاه ترتیب آن دو گام دیگر مهم نیست.
هر دو نیمه الزاماند نه پیشفرض. پیشوندهای خصوصی باید به تونل وارد شوند و مقصدهای معمولی باید مسیری را که پیش از اتصال داشتند حفظ کنند.
اگر سازمانی تونل کامل را الزامی کند، هیچیک از اینها اعمال نمیشود. طراحی فقط خصوصی به استقرارهایی تعلق دارد که مسیریابی تقسیمشده در آنها تأیید شده است.
pull-filter یک تطبیق است، نه یک کلید
دستور pull-filter گزینههای هل دادهشدهای را که نامشان با یک پیشوند مطابقت دارد حذف میکند و همین تمام کاری است که میکند. نادیده گرفتن تغییر مسیر هر گزینه هل دادهشده دیگر را سر جایش باقی میگذارد، که معمولاً همان چیزی است که میخواهید: مسیرها، تنظیمات DNS و مقدار دروازه مسیر همچنان میرسند. همچنین نمیتواند دستوری را که در پروفایل محلی نوشته شده حذف کند، زیرا فیلترکردن بر آنچه سرور هل میدهد اعمال میشود.
در برابر وسوسه نادیده گرفتن هر گزینهای که با route آغاز میشود مقاومت کنید. این الگو مسیرهای خصوصی را هم که اتصال به آنها نیاز دارد دور میریزد و میتواند اطلاعات دروازهای را که تونل به آن وابسته است از دست بدهد.
route-nopull تصمیمی گستردهتر از آنچه به نظر میرسد است. مانع میشود کلاینت مسیرهای هل دادهشده و گزینههای از نوع DHCP را بهصورت یک گروه بپذیرد، که با فیلترکردن یک گزینه سیاستی متفاوت است.
فهرست مسیرها را از برنامه به بیرون بنویسید
از آنچه کاربر واقعاً باز میکند شروع کنید، سپس اجزای پشتیبان را بیفزایید. برنامهای در 10.60.20.15 زیرشبکه خود 10.60.0.0/16 را در بر میگیرد، و یک نام خصوصی حلکنندهای را در بر میگیرد که به آن پاسخ میدهد. پس کاربری که یک برنامه خواسته است به دو مقصد و یک تصمیم DNS نیاز دارد. هر چیزی فراتر از آن فهرست، بنا بر ساخت بیرون از گستره است، و همین سیاست را قابل بازبینی نگه میدارد.
روی سروری که همکاری میکند اینها به دو مسیر هل دادهشده تبدیل میشوند و هیچیک از آنها تغییر مسیر نیست. توپولوژی تونل و مقادیر دروازه مسیر را که سرویس موجود تأمین میکند حفظ کنید.
وقتی تنها برخی کاربران به این سیاست نیاز دارند، آن را برای هر کلاینت یا هر گروه اعمال کنید. تغییر مسیریابی همه برای رفع نیاز یک تیم همان راهی است که یک تونل تقسیمشده را به قطعی تبدیل میکند.
| Destination | Intended path |
|---|---|
10.60.0.0/16 | Tunnel, for the approved application services |
10.61.0.53/32 | Tunnel, to reach the internal resolver |
corp.example queries | Internal resolver, selected per namespace |
| Everything else | Local path and local resolver |
بگذارید DNS همان مسیر را دنبال کند
مسیر به حلکننده سیاست حلکننده نیست. روی کلاینت systemd-resolved نتیجه معنایی یک دامنه مسیریابی برای فضای نام خصوصی است که به حلکننده داخلی اشاره میکند، و همین باعث میشود تنها آن نامها از آن استفاده کنند. کلاینت ویندوز به جای آن به سازوکار سیاست فضای نام خودش نیاز دارد. یک خط سرور DNS در پروفایل به خودی خود هیچیک از این دو را نصب نمیکند.
بررسی کنید سیستم عامل چه چیزی را انتخاب کرده است، نه اینکه پروفایل چه خواسته است. در لینوکس resolvectl status دامنه و سرور را برای هر پیوند نشان میدهد؛ در ویندوز جدول سیاست فضای نام شاهد معادل است.
حلکننده را از طریق تونل در دسترس نگه دارید، وگرنه سیاست به نشانی اشاره میکند که نمیتوان از آن پرسید. نشانی حلکنندهای که تونل به آن نمیرسد، سیاستی کارآمد را به یک وقفه زمانی تبدیل میکند.
هر دو نیمه را در یک اتصال دوباره بررسی کنید
پس از تغییر کلاینت را دوباره وصل کنید و مسیر مؤثر به یک نشانی خصوصی و یک نشانی عمومی را بررسی کنید. سپس یک نام خصوصی و یک نام عمومی را تجزیه کنید و تأیید کنید که هرکدام از حلکننده مورد نظر استفاده کردهاند. بارگذاری یک وبسایت عمومی تنها نیمه دوم را ثابت میکند، و همان نیمهای است که معمولاً تصادفی کار میکند.
سیاست نهایی را در یک جمله ثبت کنید: این پیشوندها و نامها از این اتصال استفاده میکنند و هر چیز دیگر از مسیر محلی پیروی میکند. سپس آن را در پروفایل نگه دارید به جای آنکه بعد از هر ورود تنظیمات آداپتور را تعمیر کنید.