Copiezi adresa dintr-o interogare în regula ta de rutare, site-ul funcționează, iar o săptămână mai târziu nu mai funcționează. Nimic din regulă nu s-a schimbat. Serviciul s-a mutat pe altă adresă de margine, clientul a rezolvat alt nume de gazdă sau sesiunea a trecut pe IPv6. Decizia din fața ta este dacă o regulă bazată pe nume sau un interval explicit este instrumentul potrivit pentru acest serviciu, și trei condiții decid asta. Ce urmează separă numele de adresă, pentru că doar unul dintre ele este stabil.

De ce o interogare nu este un inventar

O rețea de distribuție a conținutului răspunde cu o adresă aleasă pentru resolver, regiune și moment. Întreabă de două ori din rețele diferite și poți primi răspunsuri diferite. Întreabă o dată și tratează răspunsul ca lista de adrese a serviciului, iar regula pe care o scrii este o instantanee, nu o regulă. Aceasta este toată problema cu tratarea unui răspuns DNS ca configurație.

Există o a doua lipsă. Un singur nume de gazdă vizibil acoperă rar întreaga aplicație, pentru că autentificarea, media și traficul API folosesc adesea nume separate. O regulă construită din numele de gazdă din bara de adrese poate acoperi pagina și poate rata videoclipul, ceea ce se citește ca o defecțiune parțială, nu ca o eroare de rutare.

A treia lipsă este familia de adrese. O regulă doar pentru v4 nu spune nimic despre înregistrarea AAAA pe care clientul ar putea-o prefera.

Trei condiții care decid regula de domeniu sau intervalele

În primul rând, serviciul publică un set stabil de prefixe pe care le poți deține și documenta? Dacă da, intervalele explicite sunt oneste și ieftine. Dacă nu, o regulă de domeniu este singurul mecanism care poate urmări serviciul.

În al doilea rând, mecanismul de domeniu al clientului tău se reîmprospătează? O regulă care se rezolvă o dată la conectare și niciodată după aceea este o instantanee cu branding mai bun. În al treilea rând, mecanismul acoperă subdomenii și ambele familii de adrese, sau doar numele pe care le-ai tastat?

Răspunde la acestea trei și alegerea este de obicei evidentă. Ghicitul produce o regulă care funcționează la test și eșuează în producție.

Testează o sesiune, nu o pagină

Încarcă pagina, apoi efectuează operațiunea care contează: autentifică-te, pornește redarea, încarcă un fișier. Fiecare dintre ele poate ajunge la altă gazdă, iar cea care eșuează este cea pe care regula ta a ratat-o.

Enumeră cu ce contactează sesiunea cu adevărat, nu ce afișează pagina:

dig +short example.com A
dig +short example.com AAAA
curl -sI https://example.com | head -5

Ține resolverul vizibil în timpul comparației, pentru că o regulă care funcționează de la un resolver și eșuează de la altul îți spune despre răspunsul CDN-ului, nu despre tunel. Un TTL scurt înseamnă și că răspunsul pe care l-ai notat are un termen de valabilitate.

Ce acoperă de fapt fiecare mecanism

Cele două mecanisme par interschimbabile într-o pagină de setări și se comportă diferit dedesubt.

MechanismWhat it matchesHow it fails
Domain ruleNames the client resolves, then their addressesMisses subdomains, or goes stale when refresh is off
Address routeA prefix you wrote downKeeps matching an address the service has left

O rută de adresă din kernel potrivește prefixe. Nu are nicio idee ce este un nume de gazdă, așa că nu poate urmări un serviciu care își schimbă adresele. O regulă de domeniu rezolvă nume și rutează rezultatul; urmărește serviciul, dar depinde de resolver, de comportamentul de reîmprospătare și de modul în care clientul tratează subdomeniile, așa că o regulă care urmărește numele trebuie testată cu resolverul pe care clientul îl folosește cu adevărat.

Niciuna nu este un supramulțime al celeilalte, de aceea amestecarea lor fără o notă produce confuzie mai târziu.

Verifică din nou după ce serviciul se schimbă

După o actualizare a clientului sau o schimbare a serviciului, rulează din nou același test de sesiune. O listă de adrese care funcționa înainte este o dovadă despre acea perioadă, nu un inventar permanent al infrastructurii serviciului.

Notează ce mecanism acoperă ce nume de gazdă și data ultimei verificări.

Acea notă este diferența dintre o regulă pe care o poți apăra și o regulă pe care nimeni nu îndrăznește să o atingă. Dacă serviciul publică propria listă de prefixe, folosește-o și citează data. Dacă nu, spune asta și ține regula de domeniu cu comportamentul ei de reîmprospătare scris alături.

Articole similare