Profilis su dviem šimtais maršrutų veikia viename kompiuteryje, o kitame įdiegia tik keturiasdešimt. Variklis, jį paleidžianti integracija ir jį maitinantis serveris turi savo žodį, ir kiekvienas jų gali sustabdyti sąrašą skirtingoje vietoje. Gedimo skaitymas kaip vieno limito nuveda prie netinkamo failo. Mechanizmas turi tris etapus, o sustojęs etapas palieka matomus pėdsakus, kai žinote, ko ieškoti.

Trys etapai, trys skirtingi limitai

Pirmiausia variklis išanalizuoja parinktį ir nusprendžia, ar ši versija ją supranta. Tada integracija įdiegia tai, ką praneša variklis, o jos pačios kodas gali apriboti arba performuoti sąrašą. Galiausiai serveris nusprendžia, kiek maršrutų jis išsiųs konkrečiam tapatumui, prieš tai, kai bet kuris kliento etapas ką nors pamato. Trys etapai, trys lubos, ir tik vienas jų yra skaičius profilyje.

Vienų lubų pakėlimas nieko neduoda kitiems. Atmestas išsiųstas maršrutas gali būti serverio politikos sprendimas, kliento išspręstas persidengimas arba diegėjo limitas, kuris išmetė perteklių. Kiekvienas šių atvejų turi kitokį sprendimą.

Atskirkite tris prieš ką nors matuodami. Analizatoriaus klaida įvardija žymą, diegėjo limitas palieka trumpą maršrutų lentelę, o politikos sprendimas nepalieka nieko. Pėdsakai pasako, kurį etapą tikrinti pirmiausia.

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

Analizatorius kalba pirmas

Nežinoma parinktis nepavyksta garsiai ir anksti, o klaidos tekstas įvardija žymą. Tai lengviausiai atpažįstamas etapas: palyginkite tikslią pranešimą su įdiegta variklio versija, nes viename leidime pridėta parinktis nežinoma ankstesniame. Profilis, nukopijuotas iš naujesnio diegimo, yra įprasta šio neatitikimo priežastis. Analizatorius niekada tyliai neignoruoja nurodymo, kurio neatpažįsta.

Priimta parinktis nieko nesako apie rezultatą. Analizė pavyksta, o sąrašą vis tiek gali apkarpyti diegėjas arba serveris gali jo niekada nepasiūlyti. Laikykite švarią analizę leidimu tęsti, o ne įrodymu.

Užrašykite versijos eilutę iš dvejetainio failo, kuris iš tikrųjų veikė, o ne iš paketų tvarkyklės supratimo, kas įdiegta. Šie du dažniau nesutaria, nei tikimasi.

Diegėjas turi savo lubas

Komponentas, kuris valdo aktyvavimą, gali būti NetworkManager papildinys, o ne variklio dvejetainis failas, ir jis gali nustatyti savo limitą dar prieš atsirandant bet kuriam tuneliui. Jo redaktorius gali rodyti lauką, kurio veikiantis variklis niekada neskaito, arba skaityti lauką, kurio redaktorius nerodo. Abi situacijos iš išorės atrodo kaip kliento klaida. Nė vienos neištaiso profilio redagavimas.

Skaičiuokite, kas atvyko, o ne kas buvo sukonfigūruota. Komanda ip route show dev tun0 išvardija įdiegtus maršrutus, o šio skaičiaus palyginimas su išsiųstu sąrašu atskiria atmestą maršrutą nuo to, kuris niekada nebuvo išsiųstas. Skaičius, atitinkantis siuntimą, grąžina įtarimą serveriui.

Apvalkalas aplink variklio dvejetainį failą, skirtas priversti didesnį skaičių, užgožia atnaujinimus ir paverčia atšaukimą spėliojimu. Jis taip pat paslepia tikrąjį limitą nuo kiekvieno, kas kitą kartą skaitys konfigūraciją.

Serveris nusprendžia, kas jums buvo pasiūlyta

Politika kiekvienam klientui gali sumažinti sąrašą prieš perduodant. Konkrečiam klientui skirtas failas gali pridėti maršrutų vienam tapatumui, arba grupinė politika gali jų praleisti, ir klientas negali atskirti filtruoto maršruto nuo niekada neapibrėžto. Būtent šis neapibrėžtumas ir daro serverio įrašą svarbų. Prašykite tikrojo siuntimo sąrašo tam tapatumui, o ne šablono.

Palyginkite serverio įrašą su gautu sąrašu. Tarpas tarp jų yra politikos sluoksnis, ir jis paprastai mažesnis, nei profilis leidžia manyti.

Kai dizainas leidžia, apibendrinkite gretimus tinklus ir ištrinkite pasenusius įrašus. Mažiau ir didesnių maršrutų išsprendžia daugiau atvejų nei aukštesnės lubos.

Pakeiskite skaičių tinkamoje vietoje

Naudokite dokumentuotą komponento, kuris iš tikrųjų valdo limitą, nustatymą. Jei lauko papildinyje nėra, patikrinkite, ar papildinys senesnis už funkciją, ar maršrutus valdo kita bazinė dalis. Tada šalia pasirinktos reikšmės užrašykite variklio, papildinio ir serverio versijas. Kitas atnaujinimas vėl atveria klausimą, ir būtent pastaba leidžia į jį atsakyti.

Išbandykite iš naujo po bet kurio iš trijų atnaujinimo. Tinkamoje vietoje pakeltas limitas vis tiek pasislenka, kai pasikeičia jį taikantis komponentas. Versijų įrašas yra vienintelis dalykas, darantis tą poslinkį nuspėjamą.

Susiję straipsniai