Je voegt een branchroute toe, hij werkt, en dan verwijdert een firmware-update of een opslag uit de webinterface hem. Twee oplossingen lijken op dat moment even redelijk: de route in de ondersteunde configuratiebron van de appliance zetten, of hem vanuit een opstartscript aan het gegenereerde bestand toevoegen. Ze gedragen zich een week hetzelfde en lopen bij de tweede upgrade uiteen. Dit artikel vergelijkt wat elk ervan werkelijk bezit.

De twee kandidaten bezitten verschillende dingen

De ondersteunde configuratiebron is alles wat de appliance als invoer behandelt: een GUI-veld, een geïmporteerd profiel, een gedocumenteerde map per client, een instellingendatabase die het beheerpakket leest. Het gegenereerde server.conf is uitvoer. Uitvoer bewerken werkt tot de generator opnieuw draait, en dat gebeurt bij opslaan, bij herstart en bij een upgrade.

De scriptaanpak patcht die uitvoer nadat de generator klaar is. Het is een legitieme techniek voor een lab, en het is de verkeerde standaard voor een filiaal, omdat het de route afhankelijk maakt van tekstovereenkomst in plaats van een gedocumenteerd veld.

QuestionSupported config sourcePost-generation script
Survives a GUI saveYesOnly if the save does not regenerate the file
Survives a package upgradeUsually, when the field is documentedNo guarantee; the wrapper can be replaced
Supportable by the vendorYesNo
Obvious to the next adminYes, it is in the UINo, it lives in a wrapper

Wat de appliance opnieuw genereert, en wanneer

Beheerpakketten bewaren instellingen meestal in een database of een set sjablonen en genereren de daemonconfiguratie bij het starten. Een opslag uit de webinterface herschrijft vaak het hele bestand in plaats van één regel te patchen. Als je wijziging in dat bestand leefde, is die nu weg, en niets logt een waarschuwing, omdat er vanuit de appliance niets verloren is gegaan.

Opstartwrappers hebben een tweede faalmodus. Een grep naar een richtlijn met een bepaalde spatiëring stopt met matchen na een sjabloonwijziging, en het script doet stilzwijgend niets. Erger nog, een firmware-update kan de wrapper vervangen door een nieuwe versie en de patch meenemen. Dan heb je een route die een jaar bestond en verdween tijdens onderhoud dat niemand met routing in verband bracht.

Wat de ondersteunde eigenaar moet uitdrukken

Een filiaalprefix heeft drie uitspraken nodig, niet één. De client moet de route leren, de server moet weten welke geauthenticeerde client de prefix bezit, en de filiaalkant moet verkeer terugsturen naar het tunneladres dat hij kreeg. In OpenVPN-termen betekent dat een gepushte route, een overeenkomende iroute die aan de client is gekoppeld, en een terugweg aan de andere kant.

Hier misleiden appliance-UIs. Een selectievakje met het label ‘clients toegang geven tot het LAN van de server’ beschrijft verkeer naar het eigen netwerk van de server. Jouw filiaal is de tegenovergestelde richting: een netwerk achter één client, bereikbaar vanaf de serverkant. Hetzelfde label impliceert geen ondersteuning daarvoor, en een geldige richtlijn in een bestand is geen belofte dat het pakket die behoudt.

Wanneer er geen ondersteunde controle is

Soms kan de geïnstalleerde release echt geen peer-specifieke route uitdrukken. Dan zijn de eerlijke opties een andere gateway die je beheert, of een ondersteunde site-naar-site-modus aan beide kanten. Beide uiteinden moeten hem spreken. Een productpagina die site-naar-site zegt, maakt een willekeurig OpenVPN-profiel niet uitwisselbaar met de tunnel van een ander protocol, en dat paar forceren levert meestal een halfverbonden tunnel op die er op een statuspagina goed uitziet.

Kies de optie die je in één zin kunt beschrijven aan wie het netwerk erft. Als het antwoord een scriptpad en een tekstpatroon moet noemen, is het ontwerp al fragiel.

Maak de bedoeling auditbaar

Leg het contract buiten de appliance vast: effectieve clientidentiteit, prefix, terugweg-gateway en het ondersteunde veld dat elk daarvan levert. Exporteer de configuratie via het ondersteunde mechanisme zodat een herbouw een referentie heeft, en verifieer de dienst na een herverbinding, een herstart en een upgrade in plaats van alleen na de wijziging.

Vergelijk het gegenereerde resultaat met dat record wanneer er iets breekt, in plaats van een onverklaarde regel te herstellen en te hopen.OpenVPN 2.6-referentie is de plek om te bevestigen hoe route en iroute op elkaar inwerken voordat je met een UI in discussie gaat.

Checklist voor de volgende wijziging: benoem de eigenaar, formuleer het driedelige contract, exporteer de bedoeling, en test opnieuw na de eigen levenscyclusgebeurtenissen van de appliance in plaats van na je bewerking.

Gerelateerde artikelen