Адресата на партнерот се промени среде сесија: што прави float во OpenVPN
float му дозволува на автентифициран партнер да ја промени својата надворешна адреса среде сесија. Тој не открива крајни точки, не отвора повторно мртва врска и не ги прескокнува проверките на идентитетот.
Лаптопот преминува од канцелариски Wi-Fi на мобилен хотспот, тунелот издржува уште неколку секунди, а потоа сообраќајот запира додека интерфејсот сѐ уште тврди дека е поврзан. На серверот списокот со состојба сѐ уште ја покажува старата јавна адреса. Ова е ситуацијата за која постои float, а истовремено и ситуацијата во која луѓето очекуваат од него многу повеќе отколку што прави. Правилното разбирање на границата претвора збунувачко застанување или во промена на конфигурацијата во еден ред или во сосема друга истрага.
Што олабавува float и што никогаш не олабавува
Вообичаено сесијата продолжува да разговара со надворешната адреса и порта со кои почнала, а пакетите што пристигнуваат од каде било на друго место се игнорираат. Опцијата float ја отстранува таа строга врска откако партнерот веќе се докажал, така што изменетото мапирање на изворот може да ја продолжи истата сесија наместо да биде отфрлено. Ништо во криптографските проверки не се менува: клучевите, сертификатите и секаква HMAC заштита остануваат точно како што се конфигурирани.
Ова е одлука за секој пакет, а не политика за тоа кој смее да се поврзе. Непозната машина што испраќа пакет од нова адреса не докажала ништо, а нејзиниот пакет се отфрла како и секој друг неавтентифициран сообраќај. Само сообраќајот што поминува низ сопствената автентикација на сесијата може да ја помести запишаната адреса на партнерот, и затоа е безбедно float да остане вклучен во средини каде клиентите се движат.
Тој не кажува ништо ни за внатрешниот тунел. Поместената надворешна адреса не доделува нова тунелска адреса, не го менува базенот и не му дава на партнерот пристап до нешто ново. Внатре во тунелот важат истиот идентитет и истите турнати рути пред и по поместувањето. Движењето не преговара повторно за податочниот канал, така што договорената шифра и клучевите продолжуваат.
Пакетот што поместува сесија мора да се автентифицира
Започнете сесија на вообичаениот начин кон конфигурираниот далечен крај, а float се справува со она што се случува кога мапирањето ќе се промени. Мобилен оператор што пренумерира среде текот, NAT порта што го препишува своето мапирање на порта или лаптоп што ја менува горната врска — сите даваат иста форма: автентифицирани пакети од нова торка, што пристигнуваат во сесија која сѐ уште верува во старата.
Кога ќе прашаат дали float работи, корисен доказ е завршено ракување проследено со прифатена промена на изворот, а не линија во дневникот само за адресата. Поврзете ја старата и новата надворешна адреса со сесијата што остана жива, потоа потврдете дека сообраќајот навистина продолжил низ тунелот.
Ако сесијата умре наместо да се помести, пакетот што пристигнал од новата адреса веројатно не ја поминал автентикацијата или воопшто не пристигнал. Двата случаи од страна на клиентот изгледаат исто. На серверот, снимање на јавниот интерфејс ви кажува кој од нив го имате пред да допрете каква било конфигурација.
Откривањето е сосема одделен механизам
float не решава имиња по тајмер и не следи динамичен DNS запис. Ако името на домаќинот на серверот почне да се решава на нова адреса, неактивниот клиент нема причина да го забележи и нема пакет од новата крајна точка за автентикација. Тој проблем му припаѓа на логиката за повторно поврзување, на сопственото однесување на клиентот при повторен обид и на DNS, а не на float.
Додавањето на опцијата уште еднаш не може да го надомести недостатокот на рута до новата адреса. Тоа не помага ни кога партнерот молчи, бидејќи молчешкиот партнер никогаш не го испраќа автентифицираниот пакет што би поместил нешто.
Долниот огнен ѕид исто така има збор. Правило што дозволува само старата надворешна крајна точка ја блокира изменетата адреса пред OpenVPN воопшто да ја види, и никаква клиентска конфигурација тоа не го поправа. Разгледајте го животниот циклус на дозволените адреси како посебна задача; проширувањето на правилото на кој било извор ја заменува малата проблема со голема.
Кога профилот го поседува NetworkManager
Профилот од командната линија и увезената врска се одделни конфигурации, а уредувањето на едната не ја допира другата. Пред да претпоставите дека опцијата не е поддржана, утврдете каков тип на приклучок всушност користи зачуваниот профил и каде живеат неговите вредности. UUID на профилот е идентификаторот што е важен кога проверувате или менувате нешто.
Проверете ја зачуваната врска, а не оригиналната датотека за увоз. Ред што преживува во .ovpn датотека не докажува ништо ако активниот менаџер никогаш не го применил, а уредувач без поле за штиклирање за дадена опција исто така не докажува ништо за можностите на протоколот.
Не закрпувајте спакуван приклучок за да го додадете однесувањето, особено не со diff напишан за историска верзија на неповрзана компонента. Ако инсталираната интеграција навистина не може да го изрази поставувањето, правилниот чекор е поддржан профил или друг клиентски пат одобрен од сопственикот на распоредувањето.
Докажете го преминот наместо да го претпоставите
Спроведете го тестот онака како што настанува дефектот. Поврзете се, проверете го сообраќајот низ тунелот, принудете ја надворешната адреса да се промени и потоа проверете три работи: сесијата сѐ уште постои, запишаната адреса на партнерот се поместила и вистинско барање сѐ уште стигнува до целта. Сѐ што е помалку од трите е делумен одговор.
Држете го пристапот за обновување достапен додека тестирате, бидејќи експериментите со движење имаат навика да ја остават заглавена машината од која работите. Сериска конзола или вонпојасен пат го претвора неуспешниот тест во петминутно обновување наместо посета на локацијата.
На крајот, опишете го само случајот што сте го испитале. Успешна промена на адресата за време на сесија не е доказ дека DNS миграциите, друга клиентска имплементација или повторно изграден профил ќе се однесуваат исто. Документацијата за link-options точно го наведува опсегот на опцијата; вашиот тест дневник треба да наведе кој дел од тој опсег навистина сте го покриле.