Әр OpenVPN түйініндегі бір қызмет IP мекенжайы: ол не істемейді
Әр түйінде жеке /32 брондаңыз, клиент өзі таңдаған серверге жетуі үшін. Мекенжай ақаулық кезінде ауыспайды, сессияларды көшірмейді және сау түйінді таңдамайды.
Клиент бірнеше OpenVPN серверінің біріне қосылады, содан кейін сол түйінде жұмыс істейтін шағын қызмет қажет болады: күй беті, метрика соңғы нүктесі, резервтік көшіру агенті. Әр түйінге бірдей жеке қызмет мекенжайын беру клиент конфигурациясын қай серверге түскеніне қарамастан бірдей етеді. Бұл ыңғайлылық шынайы, және оны шамадан тыс түсіну де оңай: ортақ мекенжай қай түйінге жеткеніңізді айтады, бірдеңе артық екенін емес.
Неге бірдей мекенжай әр түйінде жұмыс істейді
Әр түйін мекенжайды жергілікті түрде иеленеді және ол үшін жауап береді, сондықтан оған ағымдағы туннелі арқылы жеткен клиент қызметті сол туннельдің арғы ұшында алады. Түйіндер арасында ештеңе үйлестірілмейді және бір түйіннен екіншісіне трафик өтпейді.
Мекенжай — жергілікті белгі, көшірілмей қайталанады. Әр түйін тек өзі үшін жауап береді және олардың ешқайсысы мекенжай үшін трафикті басқа түйіннің атынан бермейді. Дәл осы бір клиент конфигурациясын жарамды ұстайды, ал серверлер тәуелсіз күйде қалады. Бұл да дизайнға түйіндер арасында ешқандай үйлестіру қажет еместігінің себебі.
Сондықтан бірдей конфигурация олардың арасында маршруттау протоколынсыз әр серверде жұмыс істейді. Бұл да дизайнның денсаулық туралы ештеңе айтпауының себебі: мекенжай ауру түйінде де сау түйіндегідей дәл солай болады, өйткені ол хостқа байланған, қызметтің пайдалы болуына емес.
Оны loopback-қа тағайындаңыз, туннельге емес
Мекенжайды loopback интерфейсіне қою оны кез келген туннель құрылғысының өмір сүру мерзімінен ажыратады, сондықтан қайта қосылу немесе конфигурацияны қайта жүктеу оны жоймайды. Мекенжай хост бар болғанша бар болады.
lo үстіндегі мекенжай сүзгі емес. Қызмет әлі де оны тыңдауы керек, және хосттың брандмауэры әлі де нақты кіретін жолды бағалайды, ол туннель интерфейсіне келеді. Loopback тек жергілікті дегенді білдіреді деп ойлайтын адам ақырында заңды клиенттерді бұғаттайды немесе өзі ойламаған нәрсені ашады.
Тағайындауды hook-тан қайта қосудың орнына хосттың желілік конфигурациясы арқылы тұрақты етіңіз. Орнату hook-ы туннель көтерілмеген түйінде іске қосылмайды, ал қызмет мекенжайы туннель белсенділігіне тәуелді болмауы керек. Мекенжайды таратылымыңыз басқаратын интерфейс конфигурациясына қойыңыз, содан кейін бір рет қайта жүктеп, оны тексеріңіз. Қайта жүктеу — кейінгі конфигурация өзгерісіне төтеп беретін жалғыз сынақ.
ip address show dev lo | grep 10.250.0.1
ip address add 10.250.0.1/32 dev loБір маршрутты итеріңіз және бір барар жерді меңзеңіз
Клиентке мекенжай үшін хост маршруты қажет, оны ол қосылатын сервер ұсынады. Әрбір сервер бірдей барар жерді ұсынатындықтан, клиент ауысқанда профиль өзгермейді.
Қызметті кінәламас бұрын клиенттің не орнатқанын тексеріңіз.
ip route get 10.250.0.1HTTP қызметі үшін мекенжайға атау және сол атауға сертификат беріңіз. Ортақ IP — жеке басы емес, ол TLS тексеруін жоймайды және бір жеке кілтті әр түйінге көшіруді ақтамайды. Ортақ мекенжайға шешілетін атау сертификат тарихын қарапайым ұстайды және қажет болса түйін бойынша жеке басты сақтауға мүмкіндік береді.
Ортақ мекенжай не істей алмайды
Ол ақаулық кезінде ауысуды қамтамасыз етпейді. Таңдалған түйін өлсе, мекенжай онымен бірге өледі, ал клиент басқа жерде қайта қосылуы керек.
Ол тірі TCP сессиясын көшірмейді, өйткені жаңа қосылым ескісі туралы ештеңе білмейтін басқа хостта аяқталады.
Ол сау түйінді таңдамайды, жүктемені теңгермейді және түйіндер арасында деректерді синхрондамайды. Олардың әрқайсысы өз ақау режимдері бар жеке механизм, ал мекенжай тәсілі оларды жабады деп кейіп таныту — қарапайым дизайнның төзімділік туралы лайықсыз беделге ие болу жолы. Егер екі туннель бір уақытта белсенді болса, барар жердің мағынасы екіұшты болады, сондықтан бір белсенді туннель туралы болжамды ашық ұстаңыз.
Қызметтің жеке басын атаумен бірге ұстаңыз
Мекенжайдың нені білдіретінін жазып қойыңыз: ол клиент қазір қосылған түйіндегі қызметке жетеді. Сол бір сөйлем осы үлгі тартатын түсініспеушіліктің көп бөлігін болдырмайды.
Содан кейін бөліктерді бірге құжаттаңыз: мекенжай, ол өмір сүретін интерфейс, сервер итеретін маршрут, және қызмет ұсынатын атау мен сертификат. Болашақ оқырман тексере алатын төрт шағын факт, ол оларды тексеретін ретпен.
Егер талап түйінге жергілікті қызмет үшін тұрақты барар жер болса, үлгі сәйкес келеді және ешнәрсеге дерлік тұрмайды.
Егер талап қолжетімділік болса, бір қабат жоғары көтеріліңіз: жүктеме теңгерушісі, денсаулық тексерулері бар қызмет атауы немесе түйінді қалай ауыстыруды бұрыннан білетін оркестрация жүйесі.
Мұны ерте шешу ортақ мекенжайды өзі болып қалатын ыңғайлы белгі ретінде сақтайды, ол ешқашан жобаланбаған жұмысты тыныш күтетін құрамдас бөлікке айналдырмайды.