vpn.persistent yrittää yhä, mutta ei pidä sinua yhteydessä
Ominaisuus pyytää VPN-palvelua pitämään tunnelin linkin muutosten yli. Aktivointi, elinvoimaisuus, aikomus ja kill switch -käyttäytyminen pysyvät erillisinä kysymyksinä.
NetworkManager tarjoaa yhden ominaisuuden, vpn.persistent, ja ihmiset pyytävät sitä vastaamaan neljään eri kysymykseen kerralla. Sen ylävirran dokumentaatio on huolellista: pysyvyys koskee, kun VPN-palvelu tukee sitä ja profiili ottaa sen käyttöön, ja yhteyttä pyydetään sitten selviämään linkin muutoksista ja katkoksista aina nimenomaiseen irrotukseen asti. Sama dokumentaatio näyttää myös, että ominaisuuden oletusarvo on false, mitä useimmat palautumissuunnitelmat eivät oleta. Lue se pyyntönä yrittää, ei lupauksena tuloksesta.
Mihin asetus oikeastaan sitoutuu
Profiiliin tallennettu arvo on ohje hallinnalle, ja hallinnan on annettava tämä ohje VPN-liitännäiselle, joka tietää, mitä sillä tehdä. Jos asennettu liitännäinen jättää ominaisuuden huomiotta, profiili aktivoituu silti ja loki pysyy hiljaisena, mikä on molempien maailmojen huonoin vaihtoehto kenelle tahansa, joka myöhemmin selvittää vikaa. Mikään profiilin sisällä ei voi pakottaa liitännäistä toteuttamaan käyttäytymistä, jota sillä ei ole, joten ainoa näkyvä tulos on poissaolo.
Siksi dokumentaation ehto on tärkeämpi kuin kytkin. Tarkista, mikä liitännäinen ja julkaisu sinulla todella on, ja kirjoita versio yhteyden kuvauksen viereen, jotta seuraavan henkilön ei tarvitse löytää sitä uudelleen. Toteuttamattomaan lippuun rakennettu palautumiskäytäntö epäonnistuu tuotannossa täsmälleen kerran ja aina kaikkein hankalimmalla hetkellä.
Ominaisuuden kohteleminen yrityksenä asettaa myös oikean odotuksen testaamiselle. Et tarkista, onko lippu asetettu; tarkistat, tapahtuiko jotain, kun linkki katkesi. Ne ovat eri kokeita, ja vain yksi niistä on iltapäivän arvoinen.
Neljä kysymystä, jotka sulautuvat yhdeksi
Aktivointi kysyy, mikä ylipäätään nostaa VPN:n pystyyn. NetworkManager-profiili voidaan sitoa perusyhteyteen, erikseen hallittu OpenVPN-palvelu omistaa oman käynnistyksensä, ja kolmannen käynnistäjän lisääminen tähän järjestelyyn antaa sinulle kaksi omistajaa, joilla on erilaiset käsitykset siitä, kuka johtaa. Päätä, mikä komponentti omistaa käynnistyksen, ennen kuin lisäät toisen laukaisimen.
Palautuminen kysyy, mitä tapahtuu, kun linkki muuttuu tai katoaa, ja se on se kapea kysymys, jota vpn.persistent käsittelee. Elinvoimaisuus kysyy, voiko asiakas havaita, että vastapuoli lakkasi vastaamasta, ja siihen vastaa sen sijaan OpenVPN:n keepalive- tai uudelleenkäynnistyskäyttäytyminen; kaksi mekanismia kuvataan usein samalla sanalla ja toteutetaan eri paikoissa. Testaa niitä erikseen, eri työkaluilla, tai liität yhden käyttäytymisen toiseen.
Aikomus kysyy, halutaanko uudelleenyhdistämistä lainkaan, ja se on kysymys, johon tilakysely ei voi vastata. Tarkoituksellinen pysäytys ja katkos tuottavat saman passiivisen tilan, joten kaikki, mikä yhdistää uudelleen poissaolon perusteella, arvaa inhimillistä päätöstä. Arvaaminen on kunnossa juuri siihen hetkeen asti, jolloin se ohittaa jonkun.
Tarkistuslista, joka pitää ne erillään
Suorita tapahtumat järjestyksessä sen sijaan, että lukisit kokoonpanon ja järkeilisit siitä, ja kirjaa, mitä kukin näyttää aikaleimalla.
Ensinnäkin, aktivoi aiottu perusyhteys ja vahvista, että VPN nousi odottamasi laukaisimen kautta eikä mekanismin, jonka olit unohtanut olevan asennettu. Toiseksi, hyväksytyn keskeytyksen aikana vertaa hallinnan VPN-tapahtumia, omistavan asiakkaan palautumistilaa ja tuoretta pyyntöä yksityiseen resurssiin. Kolmanneksi, irrota tarkoituksella, odota ja vahvista, ettei mikään käynnistä profiilia uudelleen selkäsi takana.
Kolmas vaihe on se, jonka ihmiset ohittavat, ja juuri se löytää todellisen vian useimmin. Vartija, joka kyselee aktiivista profiilia ja yhdistää uudelleen, kun sitä ei ole, peruu iloisesti käyttäjän tarkoituksellisen irrotuksen. Käyttäjän näkökulmasta se ei ole resilienssiä; se on kone, joka ei tottele. Kysy heiltä ennen kuin lisäät sellaisen.
Kirjoita tulokset samaan asiakirjaan kuin yhteyden kuvaus. Palautumiskäytäntö on vain niin hyvä kuin viimeinen kerta, jolloin joku näki sen epäonnistuvan tahallaan. Aikaleimat tekevät eron näkyväksi jokaiselle, joka lukee muistiinpanot seuraavaksi.
Todennus on osa palautumista
Uudelleenyhdistäminen ei ole puhtaasti verkkoon liittyvä teko. Jos hyväksytty kulku tarvitsee uuden haasteen, kertakäyttökoodin tai salaisuuden, johon aktivointikonteksti ei pääse käsiksi, mikään pysyvyysasetus ei voi tuottaa sitä tyhjästä.
Tämä selittää tutun kaavan: yhteys palautuu koneella, jonka avainnippu on avattu, ja epäonnistuu samalla koneella uudelleenkäynnistyksen jälkeen. Verkkokerros teki täsmälleen sen, mitä pyydettiin, eikä tunnistetietokerroksella ollut mitään tarjottavaa.
Korjaa tunnistetietojen työnkulku sen sijaan, että lyhennät uudelleenyrityksen väliä. Nopeammat uudelleenyritykset kehoitusta vastaan, johon kukaan ei voi vastata, tuottavat lokikohinaa ja väärän vaikutelman siitä, että jotain yritetään.
Pysyvyys ei ole kill switch
Ominaisuus yrittää säilyttää tai palauttaa VPN-suhteen. Se ei päätä, mitä sovellukset saavat tehdä, kun VPN on alhaalla, eikä se itsessään estä mitään.
Jos vaatimuksena on, ettei mikään liikenne poistu tunnelin ulkopuolelle, se on erillinen käytäntö, jolla on oma mekanisminsa, oma testauksensa ja omat vikatilansa. Oletus, että pysyvyys kattaa sen, muuttaa turvallisuuspäätöksen onnettomuudeksi.
Kirjaa molemmat puolikkaat palautumismuistiinpanoihin: mitä VPN yritti ja mitä sovellusliikennettä sallittiin yrityksen ollessa käynnissä.