Un profil cu două sute de rute funcționează pe o mașină și instalează patruzeci pe alta. Motorul, integrarea care îl pornește și serverul care îl alimentează au fiecare cuvântul lor, și fiecare poate opri lista într-un punct diferit. Citirea defecțiunii ca o singură limită vă duce la fișierul greșit. Mecanismul are trei etape, iar etapa care s-a oprit lasă dovezi vizibile când știți ce să căutați.

Trei etape, trei limite diferite

Mai întâi motorul analizează opțiunea și decide dacă această versiune o înțelege. Apoi integrarea instalează ce raportează motorul, iar propriul ei cod poate limita sau remodela lista. În final serverul decide câte rute va trimite unei anumite identități, înainte ca vreo etapă a clientului să vadă ceva. Trei etape, trei plafoane, și doar unul dintre ele este numărul din profil.

Ridicarea unui plafon nu face nimic pentru celelalte. O rută trimisă și respinsă poate fi o decizie de politică pe server, o suprapunere pe care clientul a rezolvat-o, sau o limită a instalatorului care a aruncat excesul. Fiecare dintre aceste cazuri are altă corectare.

Separați cele trei înainte de a măsura ceva. O eroare a analizatorului numește un token, o limită a instalatorului lasă un tabel de rute scurt, iar o decizie de politică nu lasă absolut nimic. Dovezile vă spun care etapă trebuie inspectată prima.

StageWho decidesWhat you can see
ParseClient engineAn error naming the option
InstallActivation ownerA route count below the pushed count
OfferServer policyA route absent from the pushed list

Analizatorul vorbește primul

O opțiune necunoscută eșuează zgomotos și devreme, iar textul erorii numește tokenul. Aceasta este etapa cea mai ușor de identificat: comparați mesajul exact cu versiunea instalată a motorului, fiindcă o opțiune adăugată într-o versiune este necunoscută în cea anterioară. Un profil copiat dintr-o implementare mai nouă este sursa obișnuită a acestei nepotriviri. Analizatorul nu ignoră niciodată în tăcere o directivă pe care nu o recunoaște.

O opțiune acceptată nu spune nimic despre rezultat. Analiza reușește, iar lista poate fi totuși scurtată de instalator sau nu poate fi niciodată oferită de server. Tratați o analiză curată ca permisiune de a continua, nu ca dovadă.

Notați șirul de versiune din binarul care a rulat efectiv, nu din ideea managerului de pachete despre ce este instalat. Acestea două nu sunt de acord mai des decât se așteaptă.

Instalatorul are propriul plafon

Componenta care deține activarea poate fi un plugin NetworkManager în loc de binarul motorului, și poate impune propria limită înainte să existe vreun tunel. Editorul ei poate afișa un câmp pe care motorul care rulează nu îl citește niciodată, sau poate citi un câmp pe care editorul nu îl afișează. Ambele situații arată de afară ca o eroare a clientului. Niciuna nu se corectează editând profilul.

Numărați ce a ajuns, nu ce a fost configurat. Comanda ip route show dev tun0 listează rutele instalate, iar compararea acelui număr cu lista trimisă separă o rută aruncată de una care nu a fost niciodată trimisă. Un număr care corespunde trimiterii readuce suspiciunea la server.

Un înveliș de shell în jurul binarului motorului pentru a forța un număr mai mare estompează actualizările și transformă revenirea într-o presupunere. Ascunde și limita reală de oricine va citi configurația mai departe.

Serverul decide ce vi s-a oferit

Politica pe client poate micșora lista înainte de transmitere. Un fișier specific clientului poate adăuga rute pentru o identitate, sau o politică de grup le poate omite, iar clientul nu poate distinge o rută filtrată de una care nu a fost niciodată definită. Tocmai această ambiguitate face importantă evidența serverului. Cereți lista efectivă de trimitere pentru acea identitate, nu șablonul.

Comparați evidența serverului cu lista primită. Diferența dintre ele este stratul de politică, și este de obicei mai mică decât sugerează profilul.

Când proiectarea o permite, rezumați rețelele contigue și ștergeți intrările învechite. Mai puține rute și mai mari rezolvă mai multe cazuri decât un plafon mai înalt.

Schimbați numărul în locul potrivit

Folosiți setarea documentată a componentei care deține cu adevărat limita. Dacă câmpul lipsește din plugin, verificați dacă pluginul este mai vechi decât funcția sau dacă altă componentă de fundal deține rutele. Apoi documentați versiunile motorului, pluginului și serverului lângă valoarea aleasă. Următoarea actualizare redeschide întrebarea, iar nota este cea care o face posibil de răspuns.

Retestați după orice actualizare a oricăreia dintre cele trei. O limită ridicată în locul potrivit se mișcă totuși când se schimbă componenta care o aplică. Evidența versiunilor este singurul lucru care face acea mișcare previzibilă.

Articole similare