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 документтери чекти жана түзмөктүн моделин сүрөттөйт.

Тектеш макалалар