Koja komponenta zapravo poseduje ograničenje ruta OpenVPN?
Ograničenje ruta može pripadati OpenVPN engineu, NetworkManager dodatku ili serveru. Imenujte vlasnika pre nego što uredite profil ili povećate broj.
Profil sa dvjesto ruta radi na jednom računaru, a na drugom instalira četrdeset. Engine, integracija koja ga pokreće i server koji ga hrani imaju svoju riječ, i svaki od njih može zaustaviti listu na različitom mjestu. Čitanje kvara kao jednog ograničenja vodi vas u pogrešnu datoteku. Mehanizam ima tri faze, a faza koja se zaustavila ostavlja vidljive tragove kad znate šta tražiti.
Tri faze, tri različita ograničenja
Prvo engine parsira opciju i odlučuje da li je ova verzija razumije. Zatim integracija instalira ono što engine prijavi, a njen vlastiti kod može ograničiti ili preoblikovati listu. Na kraju server odlučuje koliko će ruta poslati datom identitetu, prije nego bilo koja klijentska faza išta vidi. Tri faze, tri plafona, i samo jedan od njih je broj u profilu.
Podizanje jednog plafona ne čini ništa za ostale. Odbijena poslana ruta može biti odluka politike na serveru, preklapanje koje je klijent riješio, ili ograničenje instalatera koje je odbacilo višak. Svaki od tih slučajeva ima drugo rješenje.
Razdvojite tri prije nego što išta izmjerite. Greška parsera imenuje token, ograničenje instalatera ostavlja kratku tabelu ruta, a odluka politike ne ostavlja ništa. Tragovi vam kažu koju fazu prvo provjeriti.
| Stage | Who decides | What you can see |
|---|---|---|
| Parse | Client engine | An error naming the option |
| Install | Activation owner | A route count below the pushed count |
| Offer | Server policy | A route absent from the pushed list |
Parser govori prvi
Nepoznata opcija pada glasno i rano, a tekst greške imenuje token. To je faza koju je najlakše prepoznati: uporedite tačnu poruku sa instaliranom verzijom enginea, jer je opcija dodana u jednom izdanju nepoznata u onom prije njega. Profil kopiran sa novijeg postavljanja uobičajen je izvor tog nesklada. Parser nikada tiho ne ignoriše direktivu koju ne prepoznaje.
Prihvaćena opcija ne govori ništa o rezultatu. Parsiranje uspije, a listu ipak može skratiti instalater ili je server nikada ne ponudi. Tretirajte čisto parsiranje kao dozvolu da nastavite, ne kao dokaz.
Zapišite verzijski niz iz binarnog fajla koji je zaista radio, a ne iz predstave menadžera paketa o tome šta je instalirano. Njih dvoje se ne slažu češće nego što se očekuje.
Instalater ima svoj plafon
Komponenta koja posjeduje aktivaciju može biti NetworkManager dodatak, a ne binarni fajl enginea, i može nametnuti svoje ograničenje prije nego ijedan tunel postoji. Njen uređivač može prikazati polje koje engine koji radi nikada ne čita, ili čitati polje koje uređivač ne prikazuje. Obje situacije spolja izgledaju kao greška u klijentu. Nijedna se ne popravlja uređivanjem profila.
Brojite šta je stiglo, a ne šta je konfigurisano. Komanda ip route show dev tun0 navodi instalirane rute, a poređenje tog broja sa poslanom listom razdvaja odbačenu rutu od one koja nikada nije poslana. Broj koji se poklapa sa slanjem vraća sumnju na server.
Omotač ljuske oko binarnog fajla enginea da bi se silom izvukao veći broj zamagljuje nadogradnje i pretvara vraćanje unazad u nagađanje. On takođe skriva stvarno ograničenje od svakoga ko sljedeći čita konfiguraciju.
Server odlučuje šta vam je ponuđeno
Politika za svakog klijenta može smanjiti listu prije nego što se prenese. Datoteka specifična za klijenta može dodati rute za jedan identitet, ili grupna politika može ih izostaviti, a klijent ne može razlikovati filtriranu rutu od one koja nikada nije bila definisana. Ta dvosmislenost je razlog zašto je zapis servera važan. Tražite stvarnu listu slanja za taj identitet, a ne šablon.
Uporedite zapis servera sa primljenom listom. Razmak između njih je sloj politike, i obično je manji nego što profil sugeriše.
Kad dizajn to dopušta, sažmite susjedne mreže i obrišite zastarjele unose. Manje i veće rute rješavaju više slučajeva od višeg plafona.
Promijenite broj na pravom mjestu
Koristite dokumentovano podešavanje komponente koja zaista posjeduje ograničenje. Ako polje nedostaje u dodatku, provjerite da li je dodatak stariji od funkcije ili da li rute posjeduje neki drugi pozadinski sistem. Zatim dokumentujte verzije enginea, dodatka i servera uz vrijednost koju ste odabrali. Sljedeća nadogradnja ponovo otvara pitanje, a bilješka je ono što ga čini odgovorivim.
Ponovo testirajte nakon svake nadogradnje bilo kojeg od tri. Ograničenje podignuto na pravom mjestu ipak se pomjeri kad se promijeni komponenta koja ga primjenjuje. Zapis verzija jedina je stvar koja to kretanje čini predvidivim.