OpenVPN-apparatrutt: konfigurationsägare eller startskript?
En filialrutt som överlever en omstart kan ändå försvinna efter en sparning i GUI:t eller en firmwareuppdatering. Jämför den stödda konfigurationsägaren med ett patchskript.
Du lägger till en filialrutt, den fungerar, och sedan tar en firmwareuppdatering eller en sparning från webbgränssnittet bort den. Två rättelser verkar lika rimliga i det ögonblicket: att lägga rutten i apparatens stödda konfigurationskälla, eller att lägga till den i den genererade filen från ett startskript. De beter sig lika i en vecka och skiljs vid den andra uppgraderingen. Den här artikeln jämför vad var och en faktiskt äger.
De två kandidaterna äger olika saker
Den stödda konfigurationskällan är allt apparaten behandlar som indata: ett GUI-fält, en importerad profil, en dokumenterad mapp per klient, en inställningsdatabas som hanteringspaketet läser. Den genererade server.conf är utdata. Att redigera utdata fungerar tills generatorn körs igen, och det sker vid sparning, vid omstart och vid uppgradering.
Skriptmetoden patchar den utdatan efter att generatorn är klar. Det är en legitim teknik för ett labb, och det är fel standard för ett filialkontor, eftersom den gör rutten beroende av textmatchning i stället för ett dokumenterat fält.
| Question | Supported config source | Post-generation script |
|---|---|---|
| Survives a GUI save | Yes | Only if the save does not regenerate the file |
| Survives a package upgrade | Usually, when the field is documented | No guarantee; the wrapper can be replaced |
| Supportable by the vendor | Yes | No |
| Obvious to the next admin | Yes, it is in the UI | No, it lives in a wrapper |
Vad apparaten regenererar, och när
Hanteringspaket håller vanligtvis inställningar i en databas eller en uppsättning mallar och genererar daemonkonfigurationen vid start. En sparning från webbgränssnittet skriver ofta om hela filen i stället för att patcha en rad. Om din ändring levde i den filen är den nu borta, och ingenting loggar en varning, eftersom ingenting gick förlorat ur apparatens synvinkel.
Startwrappers har ett andra felmode. En grep efter ett direktiv med ett visst mellanrum slutar matcha efter en malländring, och skriptet gör tyst ingenting. Värre ändå, en firmwareuppdatering kan ersätta wrappern med en ny version och ta patchen med sig. Då har du en rutt som fanns i ett år och försvann under underhåll som ingen kopplade till routing.
Vad den stödda ägaren måste uttrycka
Ett filialprefix behöver tre påståenden, inte ett. Klienten måste lära sig rutten, servern måste veta vilken autentiserad klient som äger prefixet, och filialsidan måste skicka tillbaka trafiken till tunneladressen den fick. I OpenVPN-termer betyder det en pushad route, en matchande iroute bunden till klienten, och en returväg på andra sidan.
Det är här apparaternas gränssnitt vilseleder. En kryssruta märkt ”låt klienter komma åt serverns LAN” beskriver trafik mot serverns eget nätverk. Din filial är motsatt riktning: ett nätverk bakom en klient, nåbart från serversidan. Samma etikett innebär inte stöd för det, och ett giltigt direktiv i en fil är inte ett löfte om att paketet bevarar det.
När det inte finns någon stödd kontroll
Ibland kan den installerade versionen verkligen inte uttrycka en peer-specifik rutt. Då är de ärliga alternativen en annan gateway du kontrollerar, eller ett stött site-till-site-läge i båda ändar. Båda ändarna måste tala det. En produktsida som säger site-till-site gör inte en godtycklig OpenVPN-profil utbytbar mot en annan protokolls tunnel, och att tvinga det paret ger vanligtvis en halvansluten tunnel som ser bra ut på en statussida.
Välj det alternativ du kan beskriva i en mening för den som ärver nätverket. Om svaret kräver att nämna en skriptsökväg och ett textmönster är designen redan skör.
Gör avsikten granskningsbar
Registrera kontraktet utanför apparaten: effektiv klientidentitet, prefix, returgateway och det stödda fältet som levererar var och en. Exportera konfigurationen via den stödda mekanismen så att en återuppbyggnad har en referens, och verifiera tjänsten efter en återanslutning, en omstart och en uppgradering i stället för bara efter ändringen.
Jämför det genererade resultatet med den registreringen när något går sönder, i stället för att återställa en oförklarad rad och hoppas.OpenVPN 2.6-referensen är platsen att bekräfta hur route och iroute samspelar innan du bråkar med ett gränssnitt.
Checklista för nästa ändring: namnge ägaren, ange det tredelade kontraktet, exportera avsikten, och testa om efter apparatens egna livscykelhändelser i stället för efter din redigering.