Fiecare nume de tunel arată ca o linie de inventar până când întrebi cui îi aparține. Un nume îți spune că ceva este conectat chiar acum; nu îți poate spune cui aparține serviciul, la ce au voie să ajungă sau dacă configurația care a produs tunelul este cea pe care ai aprobat-o. La scara flotei, acele trei întrebări sunt inventarul, iar tunelul este doar cea mai recentă observație.

Un serviciu, trei înregistrări

Serviciul vizat este ceea ce chiriașul are dreptul să primească: identități, prefixe, resurse și o stare a ciclului de viață. Configurația implementată este politica generată care ar trebui să îl realizeze. Sesiunea observată este dovadă de runtime că ceva s-a conectat. Tratarea lor ca un singur tabel comprimă trei tipuri diferite de adevăr într-un rând care este greșit în trei moduri simultan.

RecordAnswersGoes stale when
Intended serviceWho may reach whatA contract changes and nobody edits the record
Deployed configurationWhat the gateway was toldA device is edited by hand
Observed sessionWhat is running nowTelemetry stops or a session ends

Testul practic este o întrebare la care fiecare înregistrare poate răspunde singură. Întreabă cui îi aparține acest prefix și răspunde înregistrarea serviciului vizat. Întreabă ce politică deține gatewayul și răspunde înregistrarea implementată. Întreabă dacă cineva l-a folosit săptămâna aceasta și răspunde înregistrarea sesiunii. Coloana care nu poate răspunde la propria întrebare este cea care trebuie reparată prima.

Înregistrează chiriașul, nu interfața

Dă fiecărui serviciu un identificator care supraviețuiește unei reconectări. O interfață de tunel temporară sau un număr de sesiune se schimbă din motive care nu au nimic de-a face cu clientul, iar un inventar bazat pe unul dintre ele primește un rând nou de fiecare dată când o legătură tremură. Bazează-l pe chiriaș și pe serviciu, apoi atașează observațiile la acea cheie.

Înregistrarea are nevoie de chiriașul și operatorul responsabili, de identitatea de peer sau de utilizator acceptată, de o referință la acreditare în locul unei copii, de prefixele protejate, de contextul de rutare, de resursele permise și de starea vizată a ciclului de viață. Materialul de acreditare aparține depozitului de secrete acceptat; un inventar care poartă chei private a devenit o a doua copie a mediului, mai puțin protejată.

Configurația generată are un proprietar și o versiune

Automatizarea face acest lucru mai ușor și îl ascunde mai bine. Un generator care rulează cu succes dovedește că șablonul a fost randat, nu că fiecare dispozitiv corespunde ieșirii. Cineva va modifica în cele din urmă un gateway manual în timpul unui incident, iar acea modificare este cel mai valoros lucru de capturat, pentru că este singura pe care nicio rulare ulterioară nu o va reproduce.

Înregistrează ce revizie a produs politica implementată, și păstrează modificările directe ca o diferență de reconciliat în loc să le suprascrii în tăcere. Reconcilierea este produsul aici: succesul generatorului și starea reală a dispozitivului sunt două fapte care trebuie comparate, nu presupuse egale.

Sesiunile sunt dovezi, nu autorizare

Acolo unde implementarea folosește contabilitatea RADIUS, RFC 2866 oferă câmpuri concrete cu care să lucrezi. Acct-Status-Type distinge un început de o oprire, iar înregistrările unei singure sesiuni împart un Acct-Session-Id. Acele câmpuri îți permit să reconstruiești când a început și când s-a încheiat o sesiune fără să te bazezi pe rezumatul unui tablou de bord.

Un identificator de contabilitate este dovadă de runtime. Nu definește ce chiriaș deține o subrețea și nu acordă acces la nimic. Corelează-l cu gatewayul și cu identitatea serviciului, apoi păstrează timpul colectării lângă observație. Un raport lipsă poate fi o defecțiune de telemetrie și nu o absență a utilizării, iar o înregistrare veche nu este dovada că accesul este încă activ acum.

Retragerea folosește aceeași îmbinare

A elimina un serviciu înseamnă a elimina accesul vizat, acreditările și sesiunile active, în această ordine, prin proprietarii fiecăruia. Apoi verifică faptul că configurația învechită a dispărut de pe dispozitive și căile ei permise nu mai sunt rezolvate. Un client care a plecat trimestrul trecut nu ar trebui să mai apară într-o listă de prefixe pentru că numele tunelului a fost șters, dar ruta nu.

Nimic din toate acestea nu cere un echipament pe funcție sau un produs de automatizare anume. Cerința operațională este mai îngustă și mai grea: un client, accesul lui vizat, politica implementată și dovezile actuale de runtime trebuie să poată fi îmbinate fără a te baza pe memoria cuiva despre un nume de tunel. Construiește mai întâi cele trei înregistrări, apoi alege instrumentele care le întrețin.

Articole similare