Една VPN сметка на два сервера: три регистри на состојба
Заедничкото прифаќање, мрежната конфигурација локална за јазолот и живите сесии се одделни проблеми. Држете ги одделно пред да реплицирате една сметка меѓу јазли.
Една сметка што може да се најави на кој било од два VPN јазли поставува дизајнерско прашање многу пред да постави софтверско прашање. Погледот на сметката, мрежата што ја поседува секој јазол и сесијата што ја држи поврзан клиент се три различни вида состојба, и тие откажуваат на различни начини кога ги копирате наоколу. Копирањето на сите три во еден систем е вообичаен начин да изгубите еден од нив.
Поминете низ трите регистри подолу по ред. Секој прашува што е авторитетно, што е локално и што се случува кога другиот јазол го нема, а одговорите не произлегуваат еден од друг.
Кој може да се поврзе: еден авторитет, многу јазли
Почнете со регистарот за прифаќање: кој извор на идентитет е авторитетен, на кои издавачи на сертификати им се верува, кои сметки се подобни, кој втор фактор се применува и до што може да стигне секоја сметка. Потоа запишете како секој јазол дознава за промените и колку брзо.
Заедничка база на податоци е една можна компонента на тој одговор. Таа не е доказ дека секоја релевантна политика живее таму или дека секој јазол применува промена во истиот момент. Сметка оневозможена на јазол A, но уште прифатена на јазол B, значи дека процесот на одјавување не е завршен.
Одлучете што прави јазолот кога авторитетот е недостапен. Прифаќањето кеширани акредитиви за време на прекин е избор на политика со безбедносна цена, а нивното отфрлање е избор на политика со цена за достапноста. И двете се одбраниви; оставањето недокументирано не е.
Држете го авторитетот на издавачот одделно од податоците на сметката. Неколку порти можат да му веруваат на истиот CA без да го држат неговиот клуч за потпишување, и секој јазол уште му треба сопствен сертификат за серверот и сопствена доверлива врска од страната на клиентот.
Што поседува јазолот: адреси и маршрути
Вториот регистар е локален за секој јазол: адреса за слушање, идентитет на серверот, базен на адреси, маршрути до приватни ресурси, политика на резолверот и како сообраќајот излегува кон интернетот. Истата сметка може да биде услужена од кој било од двата јазли, додека овие објекти остануваат одделни.
Повратниот пат е делот што се заборава. Ако двата јазли доделуваат адреси од истиот базен, приватната мрежа не може да каже на кој јазол му припаѓа даден клиент и одговорот може да биде испратен на погрешно место. Различните базени исто така бараат маршрути и дозволи, така што одделен опсег на броеви не е целосен дизајн.
Насочете ги клиентите кон јазол намерно. Изборот на DNS, списоците со крајни точки на клиентот и фронтенд услугата се различни механизми со различно однесување при здравје и при префрлање. Изборот на еден е во ред; третирањето на „балансирањето на оптоварување“ како дизајн ги остава повратниот пат и однесувањето при отказ неопределени.
Документиран пример од производ помага тука. Документацијата на Pritunl за репликација ја третира VPN мрежата како објект по реплика, а клиентите на различни реплики бараат дополнителни маршрути и поврзаност за да се стигнат. Тоа е распоред специфичен за производот, не рецепт за Community OpenVPN, но покажува зошто додавањето реплика ја менува мрежата, а не само складиштето на сметки.
Што е сесија: жива состојба, не ред
Третиот регистар е живата сесија. Поврзаниот клиент има протоколна состојба и мрежно доделување на јазолот што го прифатил. Тоа што сметката е позната на другиот јазол не му ја дава на тој јазол сесијата, клучевите или способноста да ги продолжи пакетите.
Бидете јасни за тоа што се случува кога јазолот откажува. Поддржаниот исход може да биде повторно поврзување со другиот јазол со свежа автентикација и нова адреса, по што апликацијата се опоравува на свој начин. Ако е потребно непрекинато предавање, тоа барање бара експлицитна поддршка во имплементацијата, а не заклучок од репликацијата на базата. Запишете го одговорот таму каде што дежурниот инженер ќе го најде.
Правилата за капацитет бараат ист третман. Ограничувањето од две истовремени сесии по сметка може да се спроведе меѓу јазли само ако некој авторитет има координиран поглед на зафатените места. Локалните списоци на јазлите и историскиот запис на сметката не се собираат во таков поглед.
Тестирање на трите регистри
Вежбајте го секој одделно. Најавете се преку јазол A, потоа преку јазол B и потврдете дека двете успеваат со очекуваните опсези на адреси. Повлечете идентитет и проверете ги двата јазли, не само тој што случајно сте го тестирале. Потоа запрете еден јазол и набљудувајте што навистина прават клиентот и приватната апликација.
Вклучете го повратниот пат во тестот за прифаќање. Клиент што се поврзува со B, но не може да прима одговори од ресурс зад A, го поминал проверувањето за прифаќање и паднал на мрежното, и таа разлика треба да се појави во извештајот.
Дизајнот на сметка за повеќе јазли е целосен само кога сите три регистри имаат експлицитен сопственик, пат на промена и однесување при отказ. Копирањето конфигурациска датотека меѓу јазли не одговара на ниту едно од тие прашања.