TUN не істейді және VPN протоколы әлі не істеуі керек
TUN IP пакеттерін ядро мен бағдарлама арасында жылжытады. Тасымалдау, аутентификация және шифрлау сол бағдарлама сөйлейтін протоколға тиесілі.
tun0 мен VPN протоколын бір нәрсе деп қарау адамдарды дұрыс емес журналға жібереді. Интерфейс — пайдаланушы кеңістігіндегі бағдарлама ядромен IP пакеттерін алмасатын жергілікті шекара. Протокол — сол бағдарлама пакеттерді алғаннан кейін олармен жасайтын әрекет: тасымалдау, аутентификация, шифрлау және серіктес. Құрылғыны жасау осылардың ешқайсысын таңдамайды.
Екі компонент, бір пакет жолы
Ядро IP пакетін құрылғыға жазады, ал бағдарлама оны файл дескрипторынан оқиды. Кері бағытта бағдарлама пакетті қайта жазады және ядро оны шынайы интерфейске келгендей маршруттайды. TUN IP тасымалдайды, ал TAP Ethernet кадрларын тасымалдайды. Сол шекарада пакетті оқу кадрлауды көрсетеді, және құрылғы дәл осы үшін қажет.
Сол шекарадан әрі қарайғының бәрі бағдарламаның ісі. Екі бағдарлама интерфейстің бірдей тұжырымдамасын қолданып, пакеттермен мүлдем басқаша әрекет жасай алады. Құрылғының өзінен кейін не болатыны туралы пікірі жоқ. Файл дескрипторы — бағдарламаның ядро жағындағы жалғыз тұтқасы.
Құрылғыны жасаңыз, содан кейін шекараны бақылаңыз
Шекараны сынаған кезде құрылғыны әдейі жасаңыз. Тұрақты құрылғы оны жасаған процестен кейін де қалады, бұл эксперименттер үшін пайдалы және кейін жиі шатасудың көзі болады. VPN-ді кінәламас бұрын жалаушалар мен иесін тексеріңіз.
sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9Байланыс мәліметтері құрылғы түрін және оған тіркелген иесін көрсетеді. Ешбір процесс оны ашық ұстамаса, оған жазылған пакеттер ешқайда кетпейді. Процесс тіркелмеген құрылғы байланыс тізімінде сау көрінуі мүмкін, бірақ ештеңе өткізбейді.
Интерфейс атауы неге уәде бере алмайды
Интерфейс атауы шифрлау немесе аутентификация туралы ештеңе айтпайды. Бағдарлама пакеттерді TLS-ке, өз протоколына, IPsec-ке немесе ештеңеге орауы мүмкін. TAP орнына TUN таңдау шекарадағы кадрлауды өзгертеді, қауіпсіздік жобасын емес. Кадрлау таңдауы шынайы және қауіпсіздік сұрағынан әлдеқайда кіші.
Анықтау дәл осылай жұмыс істейді: бақылаушы сымда сыртқы протоколды көреді, қай жергілікті құрылғы жасағанын айтатын жапсырманы емес. Басқа нәрсеге ұқсайтын туннель мұны интерфейс атауына емес, сыртқы протоколына байланысты жасайды. Бақылаушы пакетті қай жергілікті құрылғы жасағанын көре алмайды, тек пакеттің қалай көрінетінін көреді. Өнімдерді салыстырғанда осы екі сұрақты бөлек ұстаңыз, өйткені бір жауап ешқашан екіншісін білдірмейді.
Түзетуді сәтсіз аяқталған кезеңге сәйкестендіріңіз
Бірдеңе бұзылғанда сәтсіздік кезеңдерін бөліңіз. Жоқ құрылғы, рұқсат қатесі және қабылданбаған кіру түрлі дәлелдер мен түрлі түзетулер береді. Алдымен жергілікті күйді, содан кейін бағдарламаның өз журналын, содан кейін серіктес көзқарасын оқыңыз. Бірдеңені өзгерту алдында үшеуін де оқыңыз.
ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'Егер құрылғы бар болса және оны процесс ұстап тұрса, жергілікті шекара жұмыс істейді, ал мәселе әрі қарай. Егер құрылғы жоқ болса, ешқандай тіркелгі деректерін тексеру көмектеспейді. Атауға болатын кезең — сынауға болатын кезең. TUN/TAP құжаттамасы шекара мен құрылғы моделін сипаттайды.