Бірінші іске қосу /dev/net/tun немесе ашылмайтын TUN/TAP құрылғысы туралы хабарламамен құлайды. Сертификаттар әлі оқылмаған, сондықтан профильде кінә жоқ. Демон ядродан осы қонақта жоқ нысанды сұрап тұр.

Бұл нысан — tun модулі қамтамасыз ететін таңба құрылғысы. Оны жасай алуыңыз ядроға кім ие екеніне байланысты.

Демон ядродан нені сұрайды

OpenVPN /dev/net/tun ашады және драйверден интерфейс сұрайды. Драйвер — tun модулі, ал құрылғы түйіні пайдаланушы кеңістігі оған жету үшін қолданатын тұтқа. Модуль жүктелмеген болса, түйін жоқ болуы мүмкін немесе ашу сәтсіз аяқталуы мүмкін. Екі жағдай да server.conf өңдеумен түзелмейді.

Бұл қатені әуелі платформа туралы сұрақ ретінде оқыңыз. Конфигурация қатесі құрылғы ашылғаннан кейін пайда болады, оған дейін емес.

VM немесе ядроны бөлісетін қонақ

KVM, Xen немесе басқа толық виртуалды машинада ядроны өзіңіз басқарасыз. Модульдерді жүктеп, түйінді жасай аласыз. OpenVZ, Virtuozzo немесе LXC үлгісіндегі контейнерде қонақ хосттың ядросын бөліседі, сондықтан оның ішіндегі root хост жүктемеген модульді жүктей алмайды.

Сондықтан бірдей ақаудың екі мүлде бөлек иесі бар. Бірінші жағдайда оны инстанцияның ішінен түзете аласыз. Екіншісінде хосттан немесе провайдерден бірдеңені ашып беруді сұрап отырсыз.

Қай жағдайда екеніңізді шешпес бұрын ls -l /dev/net/tun, lsmod | grep tun және ip -brief link show орындаңыз.

VM-де модульді жүктеу кезінде жүктеңіз

Виртуалды машинада modprobe tun әдетте құрылғы түйінін жасайды. Оның пайда болғанын тексеріп, содан кейін бір рет терілген командаға сүйенбей, дистрибутивтің модуль конфигурациясы арқылы жүктеуді тұрақты етіңіз. Қайта жүктеуден кейін жоғалатын түйін келесі айда дәл осы тикетке айналады.

Сондай-ақ жүктеген ядроде бұл модульдің мүлде бар-жоғын тексеріңіз. Қысқартылған вендорлық ядрода ол болмауы мүмкін.

Түйін бар болып, ашу әлі де сәтсіз болса, келесі күдіктілер — рұқсаттар мен құрылғының major/minor нөмірлері. Бұл жергілікті түзетулер, провайдерге сұраныс емес.

Контейнерде құрылғы хостқа тиесілі

Контейнерде құрылғы мен мүмкіндік — екі бөлек талап. Runtime /dev/net/tun өткізуі керек, ал контейнерге интерфейс жасау үшін желілік мүмкіндік қажет. Екеуін де бермейтін rootless runtime профиль қалай жазылса да сол ашу қатесін шығара береді. Көптеген OpenVZ хосттары тұтынушы панелінде TUN/TAP ауыстырып-қосқышын ұсынады, оны қосу және қайта жүктеу көбінесе бүкіл шешім болады.

Провайдерге екі нақты сұрақ қойыңыз: хостта tun модулі жүктелген бе және осы инстанцияның ішінде құрылғы қолжетімді ме? Бұлыңғыр тикет бұлыңғыр жауап алады.

Модульді қайта құрастыру неге сирек көмектеседі

Қонақтың ішінде модуль құрастыру сирек көмектеседі. Компиляция дәл істеп тұрған ядроның конфигурациясын қажет етеді, ал /proc/config.gz міндетті емес және шағын имидждерде жиі болмайды. Жұмыс істейтін модульдің өзін контейнер ие емес ядроға кіргізу мүмкін емес.

Құрылғы пайда болған соң қызметті қайта іске қосып, трафикті тексермес бұрын интерфейсті растаңыз. tun0 көру — демон құрылғыны ашқанының белгісі. Ол әлі де қайта бағыттау, firewall ережелері немесе клиенттер алатын маршруттар туралы ештеңе айтпайды.

Бұл — әрқайсысының өз дәлелі бар бөлек сұрақтар. Жоқ құрылғы — алғышарт ақауы; бар болып, ештеңе тасымайтын туннель — саясат ақауы.

Қатысты мақалалар