Kva TUN gjer, og kva VPN-protokollen framleis må gjera
TUN flyttar IP-pakkar mellom kjernen og eit program. Transport, autentisering og kryptering høyrer til protokollen som programmet snakkar.
Å handsame tun0 og ein VPN-protokoll som éin ting sender folk til feil logg. Grensesnittet er ei lokal grense der eit program i brukarrommet byter IP-pakkar med kjernen. Protokollen er det programmet gjer med pakkane når det har dei: transport, autentisering, kryptering og ein motpart. Opprettinga av eininga vel ingen av delane.
To komponentar, éin pakkeveg
Kjernen skriv ein IP-pakke inn i eininga, og programmet les han frå ein filskildring. I den andre retninga skriv programmet ein pakke tilbake, og kjernen rutar han som om han kom inn på eit ekte grensesnitt. TUN ber IP, medan TAP ber Ethernet-rammer. Å lese ein pakke på den grensa viser innramminga, og det er nettopp det eininga er til.
Alt utanfor den grensa er programmet si sak. To program kan bruke same grensesnittomgrep og gjere heilt ulike ting med pakkane. Eininga sjølv har inga meining om kva som skjer vidare. Filskildringa er det einaste handtaket programmet har på kjernesida.
Opprett eininga, og følg så med på grensa
Opprett ei eining med vilje når du testar grensa. Ei varig eining overlever prosessen som oppretta ho, noko som er nyttig for eksperiment og ein vanleg kjelde til forvirring etterpå. Sjekk flagga og eigaren før du klandrar VPN-en.
sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9Lenkjedetaljane viser einingstypen og den tilknytte eigaren. Viss ingen prosess held ho open, går pakkar som blir skrivne til ho ingen stad. Ei eining utan tilknytt prosess kan sjå sunn ut i ei lenkjeliste medan ho ikkje slepp noko gjennom.
Kva grensesnittnamnet ikkje kan love
Grensesnittnamnet seier ingenting om kryptering eller autentisering. Eit program kan pakke pakkane inn i TLS, i ein eigen protokoll, i IPsec eller i ingenting. Å velje TUN i staden for TAP endrar innramminga på grensa, ikkje tryggingsdesignet. Valet av innramming er reelt, og det er mykje mindre enn tryggingsspørsmålet.
Oppdaging fungerer på same måte: ein observatør ser den ytre protokollen på leidningen, ikkje ei etikett som seier kva lokal eining som laga han. Ein tunnel som ser ut som noko anna, gjer det på grunn av sin ytre protokoll, ikkje på grunn av grensesnittnamnet. Ein observatør kan ikkje sjå kva lokal eining som laga ein pakke, berre korleis pakken ser ut. Hald dei to spørsmåla frå kvarandre når du samanliknar produkt, for eitt svar inneber aldri det andre.
Tilpass rettinga til trinnet som sviktar
Skil feiltrinna når noko går i stykker. Ei manglande eining, ein løyvefeil og ei avvist innlogging gir ulike bevis og ulike rettingar. Les først den lokale tilstanden, deretter programmet sin eigen logg, deretter synet til motparten. Les alle tre før du endrar noko.
ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'Viss eininga finst og ein prosess held henne, verkar den lokale grensa, og problemet er lenger ute. Viss eininga manglar, hjelper inga kontroll av påloggingsinformasjon. Eit trinn du kan namngje, er eit trinn du kan teste. Dokumentasjonen for TUN/TAP skildrar grensa og einingsmodellen.