یک حساب VPN روی دو سرور: سه دفتر وضعیت
پذیرش مشترک، پیکربندی شبکه محلی هر گره و جلسههای زنده مسائل جداگانهای هستند. پیش از تکرار یک حساب میان گرهها، آنها را جدا نگه دارید.
یک حساب که میتواند به هر یک از دو گره VPN وارد شود، خیلی پیش از آنکه پرسش نرمافزاری باشد، یک پرسش طراحی است. نمای حساب، شبکهای که هر گره در اختیار دارد و جلسهای که یک کارخواه متصل نگه میدارد، سه نوع متفاوت از وضعیت هستند و وقتی آنها را این طرف و آن طرف کپی میکنید، به شکلهای متفاوتی خراب میشوند. کپی کردن هر سه در یک سامانه راه رایجی برای از دست دادن یکی از آنهاست.
سه دفتر زیر را به ترتیب بررسی کنید. هر یک میپرسد چه چیزی مرجع است، چه چیزی محلی است و وقتی گره دیگر نیست چه میشود، و پاسخها از یکدیگر نتیجه نمیشوند.
چه کسی میتواند متصل شود: یک مرجع، گرههای بسیار
با دفتر پذیرش آغاز کنید: کدام منبع هویت مرجع است، به کدام صادرکنندگان گواهی اعتماد میشود، کدام حسابها واجد شرایط هستند، کدام عامل دوم اعمال میشود و هر حساب به چه چیزی دسترسی دارد. سپس بنویسید هر گره چگونه از تغییرها باخبر میشود و با چه سرعتی.
پایگاه دادهٔ مشترک یکی از اجزای ممکن آن پاسخ است. اثبات این نیست که هر سیاست مرتبط همانجا زندگی میکند یا هر گره تغییری را در یک لحظه اعمال میکند. حسابی که در گره A غیرفعال شده اما در گره B هنوز پذیرفته میشود یعنی فرایند خروج کامل نشده است.
تصمیم بگیرید گره وقتی مرجع در دسترس نیست چه میکند. پذیرش اعتبارنامههای ذخیرهشده در زمان قطعی یک انتخاب سیاست با هزینهٔ امنیتی است و رد کردن آنها انتخاب سیاستی با هزینهٔ دسترسپذیری. هر دو قابل دفاعاند؛ مستند نکردن آن قابل دفاع نیست.
مرجع صادرکننده را نیز از دادههای حساب جدا نگه دارید. چند دروازه میتوانند بدون نگه داشتن کلید امضای آن به یک CA یکسان اعتماد کنند و هر گره هنوز گواهی سرور خودش و رابطهٔ اعتماد سمت کارخواه خودش را لازم دارد.
آنچه یک گره در اختیار دارد: نشانیها و مسیرها
دفتر دوم برای هر گره محلی است: نشانی شنود، هویت سرور، استخر نشانی، مسیرهای منابع خصوصی، سیاست حلکننده و اینکه ترافیک چگونه به سمت اینترنت خارج میشود. همان حساب میتواند توسط هر یک از دو گره سرویس داده شود در حالی که این اشیا متمایز میمانند.
مسیر بازگشت همان بخشی است که فراموش میشود. اگر هر دو گره نشانیها را از یک استخر بدهند، شبکهٔ خصوصی نمیتواند بگوید یک کارخواه معین به کدام گره تعلق دارد و پاسخ ممکن است به جای نادرست فرستاده شود. استخرهای متفاوت هم به مسیر و مجوز نیاز دارند، پس یک بازهٔ شمارهٔ متمایز طراحی کامل نیست.
کارخواهها را آگاهانه به یک گره هدایت کنید. انتخاب DNS، فهرست نقاط پایانی کارخواه و سرویس پیشانی سازوکارهای متفاوتی با رفتار سلامت و جابهجایی در خرابی متفاوت هستند. انتخاب یکی خوب است؛ برخورد با «متعادلسازی بار» به عنوان طراحی، مسیر بازگشت و رفتار خرابی را تعریفنشده میگذارد.
یک نمونهٔ مستند محصول اینجا کمک میکند. مستندات تکرار Pritunl شبکهٔ VPN را به عنوان شیئی برای هر نسخهٔ تکراری در نظر میگیرد و کارخواهها روی نسخههای متفاوت به مسیر و اتصال اضافی نیاز دارند تا به هم برسند. این چیدمان ویژهٔ محصول است، نه دستور پختی برای Community OpenVPN، اما نشان میدهد چرا افزودن یک نسخهٔ تکراری شبکه را تغییر میدهد و نه فقط انبار حسابها را.
جلسه چیست: وضعیت زنده، نه یک ردیف
دفتر سوم جلسهٔ زنده است. کارخواه متصل وضعیت پروتکل و تخصیص شبکه را روی گرهای دارد که او را پذیرفته است. دانستن حساب در گره دیگر، جلسه، کلیدها یا توانایی ادامه دادن بستهها را به آن گره نمیدهد.
روشن بگویید وقتی گره خراب میشود چه رخ میدهد. نتیجهٔ پشتیبانیشده میتواند اتصال دوباره به گره دیگر با احراز هویت تازه و نشانی جدید باشد و پس از آن برنامه به شیوهٔ خودش بازیابی میشود. اگر تحویل بیدرنگ لازم است، آن نیاز به پشتیبانی صریح در پیادهسازی دارد، نه استنتاج از تکرار پایگاه داده. پاسخ را جایی بنویسید که مهندس کشیک بتواند پیدا کند.
قواعد ظرفیت هم به همین برخورد نیاز دارند. محدودیت دو جلسهٔ همزمان برای هر حساب تنها زمانی میان گرهها اجرا میشود که مرجعی دید هماهنگ از جایگاههای اشغالشده داشته باشد. فهرستهای محلی گرهها و سابقهٔ حسابی تاریخی به آن دید نمیرسند.
آزمودن سه دفتر
هر یک را جداگانه بیازمایید. از گره A وارد شوید، سپس از گره B، و تأیید کنید که هر دو با بازههای نشانی مورد انتظار موفق میشوند. یک هویت را پس بگیرید و هر دو گره را بررسی کنید، نه فقط گرهای را که تصادفاً آزمودهاید. سپس یک گره را متوقف کنید و ببینید کارخواه و برنامهٔ خصوصی در واقع چه میکنند.
مسیر بازگشت را در آزمون پذیرش بگنجانید. کارخواهی که به B وصل میشود اما نمیتواند پاسخ یک منبع پشت A را دریافت کند، بررسی پذیرش را گذرانده و بررسی شبکه را رد کرده است و این تفاوت باید در گزارش بیاید.
طراحی حساب چندگرهای تنها زمانی کامل است که هر سه دفتر مالک صریح، مسیر تغییر و رفتار خرابی داشته باشند. کپی کردن یک پروندهٔ پیکربندی میان گرهها به هیچیک از این پرسشها پاسخ نمیدهد.