Prvý štart zlyhá s hlásením o /dev/net/tun alebo o zariadení TUN/TAP, ktoré sa nedá otvoriť. Certifikáty ešte neboli prečítané, takže v profile nič nie je na vine. Démon žiada od jadra objekt, ktorý tento hosť nemá.

Tým objektom je znakové zariadenie, ktoré poskytuje modul tun. Či ho dokážete vytvoriť, závisí od toho, komu patrí jadro.

Čo démon žiada od jadra

OpenVPN otvára /dev/net/tun a žiada od ovládača rozhranie. Ovládačom je modul tun a uzol zariadenia je rukoväť, ktorou sa k nemu používateľský priestor dostáva. Ak modul nie je nahratý, uzol môže chýbať alebo otvorenie môže zlyhať. Ani jeden stav sa neopraví úpravou server.conf.

Čítajte túto chybu najprv ako otázku o platforme. Chyba konfigurácie sa objaví po otvorení zariadenia, nie pred ním.

VM alebo hosť so zdieľaným jadrom

Na KVM, Xen alebo inom plnom virtuálnom stroji jadro ovládate vy. Môžete nahrávať moduly a vytvoriť uzol. Na OpenVZ, Virtuozzo alebo v kontajneri v štýle LXC hosť zdieľa jadro hostiteľa, takže root v ňom nemôže nahrať modul, ktorý hostiteľ nenahral.

Tá istá chyba má teda dvoch veľmi odlišných vlastníkov. V prvom prípade ju môžete opraviť zvnútra inštancie. V druhom žiadate hostiteľa alebo poskytovateľa, aby niečo vystavil.

Pred rozhodnutím, v ktorom prípade ste, spustite ls -l /dev/net/tun, lsmod | grep tun a ip -brief link show.

Na VM nahrávajte modul pri štarte

Na virtuálnom stroji modprobe tun zvyčajne vytvorí uzol zariadenia. Overte, že sa objavil, a potom nahratie zvečnite cez konfiguráciu modulov distribúcie, namiesto spoliehania sa na príkaz zadaný raz. Uzol, ktorý po reštarte zmizne, sa na budúci mesiac stane tým istým tiketom.

Overte aj to, či jadro, ktoré ste zaviedli, ten modul vôbec má. Odľahčené jadro od výrobcu ho nemusí mať.

Ak uzol existuje, ale otvorenie stále zlyháva, ďalšími podozrivými sú oprávnenia a čísla major/minor zariadenia. To sú lokálne opravy, nie žiadosti poskytovateľovi.

V kontajneri zariadenie patrí hostiteľovi

V kontajneri sú zariadenie a schopnosť dve samostatné požiadavky. Runtime musí prepustiť /dev/net/tun a kontajner potrebuje sieťovú schopnosť, aby vytvoril rozhranie. Rootless runtime, ktorý nedá ani jedno, bude naďalej vytvárať tú istú chybu otvorenia, nech je profil napísaný akokoľvek. Mnohí hostitelia OpenVZ ponúkajú v zákazníckom paneli prepínač TUN/TAP a jeho zapnutie spolu s reštartom je často celé riešenie.

Položte poskytovateľovi dve presné otázky: je modul tun nahratý na hostiteľovi a je zariadenie dostupné v tejto inštancii? Nejasný tiket dostane nejasnú odpoveď.

Prečo prestavba modulu pomáha zriedka

Zostavovanie modulu vnútri hosťa pomáha zriedka. Kompilácia potrebuje konfiguráciu presne bežiaceho jadra a /proc/config.gz je voliteľný a na minimálnych obrazoch často chýba. Aj fungujúci modul sa nedá vložiť do jadra, ktoré kontajner nevlastní.

Keď sa zariadenie objaví, reštartujte službu a pred testovaním prevádzky potvrďte rozhranie. Pohľad na tun0 ukazuje, že démon zariadenie otvoril. O presmerovaní, pravidlách firewallu ani trasách, ktoré klienti dostanú, to zatiaľ nič nehovorí.

To sú oddelené otázky s oddelenými dôkazmi. Chýbajúce zariadenie je zlyhanie predpokladu; tunel, ktorý existuje, ale nič neprenáša, je zlyhanie politiky.

Súvisiace články