OpenVPN-komprimering: avvise, berre ta imot eller full LZO?
comp-lzo no er ikkje ei streng avvising. Samanlikn å avvise komprimering, å godta henne éin veg under ei migrering og å halde på henne, og sjekk deretter kva offload gjer.
Tre liner i ein profil ser ut til å slå av komprimering alle saman, og berre éi av dei gjer det faktisk. Skilnaden har noko å seie fordi åtvaringa du vil stilla er eit symptom, medan politikken avgjer om motparten framleis kan komprimera. Å samanlikna vala på éin akse, nemleg kva kvart av dei tillèt etter endringa, fjernar det meste av uklarleiken. Kva du vil ha, kjem an på om du migrerer eller slår deg ned.
Tre politikkar som ser like ut i ei konfigurasjonsfil
Kvart val svarar på eit anna spørsmål. allow-compression no avviser komprimerte nyttelaster heilt, allow-compression asym dekomprimerer det som kjem inn og komprimerer aldri det som går ut, og den gamle comp-lzo no gjev rom for ein push frå motparten som slår på komprimering. Berre det første er ein politikk ein tenar ikkje kan overstyra.
Skriv dei tre i ein tabell før du vel, fordi namna er nære nok til å villa ein gjennomlesar. To av dei køyrer framleis dekomprimeringskode på mottekne pakkar, og det er nettopp det tryggleiksargumentet handlar om. Det tredje fjernar evna i staden for å avgrensa retninga. Viss endringsnotatet seier at komprimering er slått av, oppfyller nøyaktig éi rad den setninga.
Åtvaringa som starta undersøkinga er ikkje målet. Å stilla henne medan ein ettergjevande politikk blir ståande gjev ein rein logg og ei uendra eksponering.
| Setting | What it permits | When it is the right answer |
|---|---|---|
allow-compression no | No compressed payloads, and no compression framing under offload | Both ends can be changed now |
allow-compression asym | Decompress inbound only | A dated migration while peers catch up |
comp-lzo no | Off locally, still pushable by a peer | Legacy compatibility you can still justify |
Kva no tyder på det gamle LZO-valet
På det utdaterte LZO-valet slår no av komprimering for den lokale sida utan å forby motparten å slå henne på der politikken tillèt det. Denne asymmetrien er grunnen til at flytting av ein profil til ei streng avvising endrar åtferd på måtar ein laboratorietest med éin tenar kanskje aldri avdekkjer.
Tryggleiksuro er vilkårleg, ikkje absolutt. Når ein åtakar kan plassera vald klårtekst ved sida av ein løyndom og sjå korleis komprimering endrar storleiken på kryptert trafikk, finst det ein informasjonskanal. Å byte frå LZO til LZ4 endrar algoritmen og innramminga, ikkje den mekanismen.
Den ærlege innramminga handlar altså om kva du er villig til å tillata, ikkje om kva algoritme som blir tilrådd no. Streng avvising er det einaste valet som ikkje er avhengig av samarbeid frå den andre enden.
Berre mottak er ein migreringstilstand, ikkje ein destinasjon
Asymmetrisk aksept finst for at den eine sida kan slutta å komprimera medan den andre framleis ventar det. Det er ei bru, og bruer treng ein sluttdato og ein eigar. Noter kva partar som framleis sender komprimert trafikk, fordi politikken tillèt nettopp den trafikken. Utan den lista blir migreringstilstanden den permanente konfigurasjonen av seg sjølv.
Ein klient kan ikkje tvinga ein inkompatibel tenar til å forlata den gamle innramminga ved å redigera si eiga fil. Push-retninga blir avgjord på tenaren, så migreringa blir faktisk fullført i tenarkonfigurasjonen og filene hans per klient.
Stub-modusar bevarer innramminga medan dei hoppar over sjølve komprimeringsarbeidet, og dei er ikkje ein direkte erstatning for det eldre valet. Test dei mot den eldste parten du framleis må støtta før du vel ein.
Kor offload av datakanalen endrar svaret
Offload av datakanalen flyttar pakkehandtering inn i kjernen, og ein profil som framleis er avhengig av komprimeringsinnramming passar kanskje ikkje på den utlaga vegen. Feilen er ikkje alltid høglydt: ein klient koplar til og oppfører seg deretter annleis enn tunnelen du testa.
Sjekk kva implementasjon som er aktiv før og etter endringa, ikkje berre om tilkoplinga lykkast. Når den utlaga vegen avviser komprimeringsinnramming, passar ein streng avvisingspolitikk og ein utlaga utrulling saman, medan ein ettergjevande politikk og ein utlaga utrulling ikkje gjer det.
Den kombinasjonen fortener sin eigen test, for det er nettopp der ei fil som ser rett ut i stillheit ikkje er den som blir brukt. Samanlikn den forhandla tilstanden med intensjonen som er registrert i profilen, fordi berre éin av dei er synleg i ein logg.
Vel ein politikk, og stadfest deretter det forhandla resultatet
Vel streng avvising når du kan endra begge endar, asymmetrisk aksept når du ikkje kan enno, og full komprimering berre når du kan grunngje kvifor eksponeringa er akseptabel. Stadfest deretter kva som vart forhandla i staden for kva fila seier. Ein stillare logg er berre bevis når han samsvarar med politikken du meinte å rulla ut.
Hald avgjerda ved sida av profilen ho gjeld for, med datoen og partane som framleis er unnatekne. Eit halvt år seinare er den noten skilnaden mellom eit medvite unntak og ei ulukke ingen kan datera. Skriv henne i same repositorium som profilen, slik at neste redaktør ser grunnen før direktivet.