Neko je tun1 kreirao unaprijed, profil kaže dev tun1, a veza se i dalje ne uspostavlja. Ime koje postoji na hostu ne govori gotovo ništa, jer pripajanje zavisi od imenskog prostora, tipa uređaja, toga ko posjeduje link i šta démon smije da radi. Ponovno korištenje uređaja također nameće odluku koju zadana konfiguracija skriva: koja komponenta upisuje adrese i rute. Načini kvara dvaju rasporeda razlikuju se mnogo više nego konfiguracijske linije, zato odlučite prije nego što uredite profil.

Ime nije pripajanje

dev tun1 traži od OpenVPN to imenovano sučelje, a tradicionalne korisničke gradnje će ga pokušati otvoriti. Ako ime ne slijedi uobičajeni tun ili tap obrazac, profilu treba i odgovarajući dev-type, jer se tip nikada ne izvodi iz niza znakova. TAP uređaj nije TUN uređaj s drugom oznakom: pripajanje pogrešnog ili uopće ne uspijeva ili stvara link koji prenosi okvire koje nitko ne očekuje. Provjerite tip prije svega ostalog, jer svaka kasnija provjera pretpostavlja da se dvije strane slažu o tome. Zatim potvrdite da proces zaista može otvoriti uređaj, a ne samo da ga vidi.

dev tun1
dev-type tun

Mrežno sučelje i /dev/net/tun su različiti objekti: jedno je link unutar imenskog prostora, drugo je znakovni uređaj koji korisnički program koristi za pripajanje. Linux TUN/TAP dokumentacija opisuje taj put pripajanja i pravila vlasništva za trajne uređaje. Root ljuska koja može pokrenuti ip link dokazuje samo da ljuska ima privilegije, a ne da ih ima démon. Vlasništvo nad čvorom uređaja, skup sposobnosti usluge i korisnik pod kojim se izvršava moraju se svi poklopiti prije nego što otvaranje uspije.

Uređaj koji postoji i ne može se otvoriti problem je vlasništva, a ne rutiranja. Tako ga tretirajte dok otklanjate kvar, inače poslijepodne ode na čitanje tablica rutiranja koje nikada nisu bile problem.

Ko konfigurira link: dva modela vlasništva

U prvom modelu OpenVPN konfigurira adrese i rute kao dio podizanja veze. To je zadano ponašanje i najlakše za razmišljanje, jer jedna komponenta stvara stanje i ponovo ga uklanja. U drugom modelu sučeljem upravlja vanjski menadžer, a ifconfig-noexec zaustavlja OpenVPN da izvršava svoje naredbe za konfiguraciju adresa i umjesto toga predaje parametre skriptama. Menadžer tada mora sam primijeniti ispravnu lokalnu i partnersku konfiguraciju, što je više posla nego što naziv opcije sugerira. Odabir između njih pitanje je ko smije mijenjati link dok je aktivan.

ifconfig-noexec pokriva samo adrese: tablica rutiranja je netaknuta, a konfiguracija ruta pripada route-noexec. Tretirajte dvije direktive kao odvojene kontrole s odvojenim vlasnicima, jer postavljanje jedne i pretpostavljanje druge čest je izvor napola konfiguriranih linkova. Odaberite točno jednog vlasnika po sloju, adrese na jednom mjestu i rute na jednom mjestu. Mrežni menadžer i VPN pomoćnik koji oba upisuju adrese jesu način na koji prekid briše stanje o kojem druga strana još zavisi.

Pregledajte uređaj iz imenskog prostora koji je važan

Pregledajte uređaj iz imenskog prostora u kojem se izvršava VPN proces, a ne iz onog u kojem se slučajno nalazi vaša ljuska. Dvije naredbe ispod odgovaraju na različita pitanja, a razlika se pokazuje kada host vidi sučelje koje kontejner ne može. Pokrenite ih navedenim redoslijedom, jer druga ima smisla tek kad znate postoji li link uopće.

ip -details link show dev tun1
ip tuntap show

Prva naredba ispisuje link onako kako ga vidi kernel, uključujući zastavice i tip sučelja, i tako potvrđujete da je to uređaj koji ste mislili. Druga prikazuje trajne tun/tap unose, koji postoje bez ikakvog procesa koji ih drži. Sučelje koje čeka svog namjeravanog vlasnika drugačija je situacija od žive tunelske veze pripojene drugoj VPN, i samo druga objašnjava zašto vaše pripajanje ne uspijeva. Pronađite proces koji drži uređaj prije nego što bilo šta promijenite, jer trajni unos i zauzeto sučelje imaju različita rješenja.

Podrška za multiqueue poseban je raspored upravljačkog programa s vlastitim zahtjevima, a ne dozvola da nepovezani procesi dijele jedno sučelje. Živa sesija drugog vlasnika pitanje je koordinacije i nijedno uređivanje profila ga ne rješava.

Dvije različite vrste trajnosti

Trajnost kernela i persist-tun opisuju životne vijeke koje je lako pomiješati i skupo pobrkati. Trajni uređaj postoji neovisno od bilo kojeg procesa, pa preživi zaustavljanje i može se ponovo koristiti pri sljedećem pokretanju. persist-tun čuva resurse tokom podržanih mekih resetovanja unutar jednog OpenVPN procesa, mnogo kraći horizont. Nijedno ne obećava da zaustavljanje usluge ostavlja rute i adrese na mjestu, a sučelje koje ostane vidljivo nije dokaz radne šifrirane sesije.

Potvrdite i pozadinski program, jer unaprijed kreirano sučelje ne govori ništa o tome koja će ga implementacija otvoriti. Zajedničke gradnje koje nose izravni put podataka pokušat će ga koristiti osim ako dizajn ne kaže drugačije. Gdje verzija podržava prekidač, disable-dco bira korisnički put; stariji pogoni i drugi klijenti nemaju takvu direktivu, zato držite uvjet verzije uz opciju umjesto da pretpostavljate da se primjenjuje.

Šta se kvari kada se testira samo pokretanje

Sporazum o vlasništvu može proći prvi test i pasti na posljednjem, što pokretanje čini lošom samostalnom provjerom. Umjesto toga posmatrajte dva prijelaza: meki reset i potpuno zaustavljanje praćeno pokretanjem.

systemctl status openvpn-client@lab
ip -details link show dev tun1

Pokretanje je lak slučaj: jedinica se podigne, link se pojavi, a statusni izlaz imenuje profil koji se učitao. Pripajanje je trenutak kada démon otvori uređaj, zato provjeru linka pokrenite nakon što jedinica prijavi da je aktivna, a ne prije toga. Ako link postoji dok se status još aktivira, gledate trajni uređaj kojem se još nitko nije pripojio, a ne radni tunel. Propustite stvarni saobraćaj kroz link prije nastavka, jer pripojeno sučelje bez upotrebljive rute i dalje je kvar.

kill -SIGHUP $(pidof openvpn)
journalctl -u openvpn-client@lab -n 40
systemctl stop openvpn-client@lab
ip -details link show dev tun1

Meki reset treba da ostavi sesiju upotrebljivom i resurse netaknutima, što je posao koji persist-tun obavlja. Potpuno zaustavljanje je mjesto gdje se vanjski menadžer otkrije: ako link ili njegove adrese prežive zaustavljanje, posjeduje ih neko drugi, i to je ili stanje koje ste dokumentovali ili greška koju ste upravo našli. Zabilježite oba zapažanja uz profil, da sljedeća izmjena krene od dokaza, a ne od dijagrama.

Povezani članci