مسیر دستگاه OpenVPN: مالک تنظیمات یا اسکریپت راهاندازی؟
مسیر شعبهای که یک بار راهاندازی مجدد را پشت سر میگذارد میتواند پس از ذخیره از GUI یا بهروزرسانی میانافزار باز هم ناپدید شود. مالک تنظیمات پشتیبانیشده را با اسکریپت وصله مقایسه کنید.
یک مسیر شعبه اضافه میکنید، کار میکند، و سپس یک بهروزرسانی میانافزار یا ذخیره از رابط وب آن را حذف میکند. دو اصلاح در آن لحظه به یک اندازه معقول به نظر میرسند: گذاشتن مسیر در منبع تنظیمات پشتیبانیشده دستگاه، یا افزودن آن به فایل تولیدشده از یک اسکریپت راهاندازی. یک هفته یکسان رفتار میکنند و در بهروزرسانی دوم از هم جدا میشوند. این مقاله مقایسه میکند که هر کدام واقعاً چه چیزی را در اختیار دارد.
دو نامزد چیزهای متفاوتی را در اختیار دارند
منبع تنظیمات پشتیبانیشده هر چیزی است که دستگاه آن را ورودی میداند: یک فیلد GUI، یک پروفایل واردشده، یک پوشه مستندشده برای هر کلاینت، یک پایگاه داده تنظیمات که بسته مدیریت آن را میخواند. فایل server.conf تولیدشده خروجی است. ویرایش خروجی تا زمانی کار میکند که مولد دوباره اجرا شود، و این در ذخیره، در راهاندازی مجدد و در بهروزرسانی رخ میدهد.
رویکرد اسکریپت آن خروجی را پس از پایان مولد وصله میکند. این یک تکنیک مشروع برای آزمایشگاه است، و برای دفتر شعبه پیشفرض اشتباهی است، چون مسیر را به تطبیق متن وابسته میکند نه به یک فیلد مستندشده.
| Question | Supported config source | Post-generation script |
|---|---|---|
| Survives a GUI save | Yes | Only if the save does not regenerate the file |
| Survives a package upgrade | Usually, when the field is documented | No guarantee; the wrapper can be replaced |
| Supportable by the vendor | Yes | No |
| Obvious to the next admin | Yes, it is in the UI | No, it lives in a wrapper |
دستگاه چه چیزی را بازتولید میکند، و چه زمانی
بستههای مدیریت معمولاً تنظیمات را در یک پایگاه داده یا مجموعه قالب نگه میدارند و پیکربندی سرویس را هنگام شروع میسازند. ذخیره از رابط وب اغلب کل فایل را بازنویسی میکند نه اینکه یک خط را وصله کند. اگر تغییر شما در آن فایل زندگی میکرد، اکنون رفته است، و هیچ چیز هشداری ثبت نمیکند، چون از دید دستگاه چیزی از دست نرفته است.
پوششهای راهاندازی یک حالت خرابی دوم دارند. grep برای یک دستور با فاصلهگذاری مشخص پس از تغییر قالب از تطبیق بازمیماند، و اسکریپت بیصدا هیچ کاری نمیکند. بدتر آنکه، بهروزرسانی میانافزار میتواند پوشش را با نسخه جدید جایگزین کند و وصله را با خود ببرد. آنگاه مسیری دارید که یک سال وجود داشت و در جریان نگهداریای ناپدید شد که هیچکس آن را به مسیریابی مرتبط نکرد.
مالک پشتیبانیشده چه چیزی باید بیان کند
یک پیشوند شعبه به سه گزاره نیاز دارد، نه یکی. کلاینت باید مسیر را بیاموزد، سرور باید بداند کدام کلاینت احراز هویتشده مالک پیشوند است، و سمت شعبه باید ترافیک را به نشانی تونلی که به آن داده شده بازگرداند. در اصطلاحات OpenVPN این یعنی یک route ارسالشده، یک iroute مطابق که به کلاینت گره خورده است، و یک مسیر بازگشت در طرف دیگر.
اینجاست که رابطهای دستگاه گمراه میکنند. یک کادر تأیید با برچسب «اجازه دادن به کلاینتها برای دسترسی به LAN سرور» ترافیک به سمت شبکه خود سرور را توصیف میکند. شعبه شما جهت مخالف است: شبکهای پشت یک کلاینت، قابل دسترسی از سمت سرور. همان برچسب به معنای پشتیبانی از آن نیست، و یک دستور معتبر در یک فایل وعدهای نیست که بسته آن را حفظ کند.
وقتی هیچ کنترل پشتیبانیشدهای وجود ندارد
گاهی نسخه نصبشده واقعاً نمیتواند مسیر مخصوص یک همتا را بیان کند. آنگاه گزینههای صادقانه یک دروازه دیگر است که خودتان کنترل میکنید، یا یک حالت سایت-به-سایت پشتیبانیشده در هر دو طرف. هر دو نقطه پایانی باید آن را صحبت کنند. یک صفحه محصول که میگوید سایت-به-سایت، یک پروفایل دلخواه OpenVPN را با تونل پروتکل دیگری قابل تعویض نمیکند، و تحمیل آن جفتسازی معمولاً تونلی نیمهمتصل میسازد که در صفحه وضعیت خوب به نظر میرسد.
گزینهای را انتخاب کنید که میتوانید در یک جمله برای هر کسی که شبکه را به ارث میبرد توصیف کنید. اگر پاسخ نیاز دارد مسیر اسکریپت و یک الگوی متنی را ذکر کند، طراحی از قبل شکننده است.
قصد را قابل حسابرسی کنید
قرارداد را بیرون از دستگاه ثبت کنید: هویت مؤثر کلاینت، پیشوند، دروازه بازگشت، و فیلد پشتیبانیشدهای که هر یک را تأمین میکند. پیکربندی را از طریق سازوکار پشتیبانیشده صادر کنید تا بازسازی مرجعی داشته باشد، و سرویس را پس از اتصال مجدد، راهاندازی مجدد و بهروزرسانی بررسی کنید، نه فقط پس از تغییر.
وقتی چیزی میشکند، نتیجه تولیدشده را با آن سابقه مقایسه کنید، بهجای بازگرداندن یک خط توضیحنشده و امیدواری.مرجع OpenVPN 2.6 جایی است برای تأیید اینکه route و iroute چگونه برهمکنش میکنند، پیش از آنکه با یک رابط بحث کنید.
فهرست بررسی برای تغییر بعدی: مالک را نام ببرید، قرارداد سهبخشی را بیان کنید، قصد را صادر کنید، و پس از رویدادهای چرخه عمر خود دستگاه دوباره آزمایش کنید، نه پس از ویرایش شما.