DNS în farul Nebula: cine poate interoga ce înregistrări?
Ascultătorul opțional răspunde din datele de gazdă pe care le deține farul. Interogările pentru înregistrări A și TXT diferă ca accesibilitate și public, așa că leagă-l în mod deliberat.
Rolul de far în Nebula face multă muncă pe care oamenii o presupun automată, iar răspunsul la DNS nu este una dintre ele. Servirea numelor este un ascultător opțional care pornește dezactivat, motiv pentru care o gazdă care rezolvă bine în overlay poate să nu aibă deloc cu ce rezolva laptopul unui coleg. Înainte de a-l activa, decide cine trebuie să ajungă la el și ce tipuri de înregistrări ești dispus să servească, pentru că aceste două răspunsuri diferă.
Ascultătorul este opțional și dezactivat implicit
Descoperirea și DNS sunt servicii separate. Farul ajută peerii să se găsească unii pe alții și poate, în plus, să răspundă la interogări de nume despre gazdele pe care le cunoaște, dar această a doua parte trebuie activată explicit în configurație.
Decide ce interfețe și rețele trebuie să ajungă la ascultător înainte de a activa orice. Un serviciu DNS care răspunde pe o interfață pe care nu ai intenționat-o devine o mică scurgere de informații fără nicio intrare în jurnal pe care cineva să o citească. Decizia este mult mai ieftină acum decât restrângerea ei mai târziu, când ceva depinde de răspunsul greșit. Două linii de configurație se justifică mai ușor decât o notă de incident peste șase luni.
Înregistrările A și TXT nu împart același public
Aceste două tipuri de înregistrări sunt servite în condiții diferite, iar tratarea lor ca un singur serviciu este greșeala pe care acest articol există ca să o prevină.
| Query | What it returns | Who can reach it |
|---|---|---|
| A record for a host name | That host Nebula IP | Any host that can reach the listener, overlay or not |
| TXT for a host IP | Certificate information | Only over the Nebula network |
Această asimetrie este intenționată, nu o scăpare. O mapare nume-la-adresă are valoare mică pentru un străin, în timp ce metadatele certificatului descriu identitățile din overlay-ul tău. Nu transporta o presupunere dintr-un rând în altul doar pentru că același proces le servește pe amândouă.
Răspunde doar despre gazdele proprii ale farului
Acesta nu este un resolver general pentru biroul tău, VPC-ul din cloud sau internetul public. Farul răspunde din informații despre gazde care i-au fost date, de aceea funcția trăiește pe nodurile de far și nu pe fiecare peer.
Când un nume eșuează fără nicio legătură cu overlay-ul, găsește zona și resolverul care îl dețin cu adevărat. Amestecarea unui resolver overlay în configurația DNS generală a unei gazde produce eșecuri care par aleatorii, pentru că unele nume se rezolvă, iar la altele nu răspunde nimic.
Observă și punctul de intrare bootstrap. Un nume de gazdă folosit pentru a ajunge la primul far trebuie rezolvat printr-o cale obișnuită înainte ca descoperirea să se poată baza pe el, așa că problema oului și a găinii arată aici exact ca un overlay stricat. Se raportează chiar la fel: un peer care nu urcă niciodată și niciun motiv evident. Verifică rezolvarea numelor înainte de a atinge certificatele, pentru că această ordine prinde oamenii care au început cu jumătatea mai grea.
Verifică adresa de legare, apoi testează din exterior
lighthouse.dns.host și lighthouse.dns.port decid unde ascultă serviciul opțional. Revizuiește aceste valori împreună cu firewall-ul gazdei și politica de rețea, pentru că o adresă de legare este o declarație de intenție, nu un control de securitate în sine.
dig @10.42.0.1 -p 53 workstation.nebula A +short
dig @10.42.0.1 -p 53 10.42.0.7 TXT +short
Interoghează din rețelele pe care intenționezi să le permiți, nu din farul însuși. O căutare reușită pe far dovedește că procesul rulează și nu îți spune nimic despre ce poate întreba o gazdă externă, iar aceasta este întrebarea care contează cu adevărat.
Expune-l intenționat
Numele și metadatele certificatului sunt informații operaționale utile, iar utilitatea taie în ambele direcții. Decide dacă ascultătorul ar trebui să fie doar pentru overlay, ce tipuri de înregistrări să fie permise și cine revizuiește configurația când se schimbă.
Apoi notează-l lângă setările farului. Următoarea persoană care depanează o eroare de rezolvare va presupune altfel că serviciul a fost mereu acolo. Va presupune și că a fost mereu accesibil din orice loc în care testează. Un paragraf care consemnează adresa de legare, rețelele permise și tipurile de înregistrări economisește acelei persoane o după-amiază și îți economisește un mesaj care întreabă de ce s-a schimbat ceva.