TUN ఏమి చేస్తుంది, మరియు VPN ప్రోటోకాల్ ఇంకా ఏమి చేయాలి
TUN కర్నెల్ మరియు ఒక ప్రోగ్రామ్ మధ్య IP ప్యాకెట్లను కదిలిస్తుంది. రవాణా, ప్రామాణీకరణ మరియు ఎన్క్రిప్షన్ ఆ ప్రోగ్రామ్ మాట్లాడే ప్రోటోకాల్కు చెందుతాయి.
tun0 మరియు VPN ప్రోటోకాల్ను ఒకే విషయంగా భావించడం ప్రజలను తప్పు లాగ్కు పంపుతుంది. యూజర్ స్పేస్లోని ప్రోగ్రామ్ కర్నెల్తో IP ప్యాకెట్లను మార్పిడి చేసుకునే స్థానిక సరిహద్దే ఇంటర్ఫేస్. ప్యాకెట్లు వచ్చిన తర్వాత ఆ ప్రోగ్రామ్ వాటితో చేసే పనియే ప్రోటోకాల్: రవాణా, ప్రామాణీకరణ, ఎన్క్రిప్షన్ మరియు ఒక భాగస్వామి. పరికరాన్ని సృష్టించడం వాటిలో ఏదీ ఎంచుకోదు.
రెండు భాగాలు, ఒక ప్యాకెట్ మార్గం
కర్నెల్ పరికరంలోకి IP ప్యాకెట్ రాస్తుంది, ప్రోగ్రామ్ దాన్ని ఫైల్ డిస్క్రిప్టర్ నుండి చదువుతుంది. వ్యతిరేక దిశలో ప్రోగ్రామ్ ప్యాకెట్ను తిరిగి రాస్తుంది, కర్నెల్ దాన్ని నిజమైన ఇంటర్ఫేస్పై వచ్చినట్టుగా రూట్ చేస్తుంది. TUN IP ను మోసుకెళ్తుంది, TAP ఈథర్నెట్ ఫ్రేమ్లను మోసుకెళ్తుంది. ఆ సరిహద్దులో ప్యాకెట్ చదవడం ఫ్రేమింగ్ను చూపుతుంది, పరికరం సరిగ్గా అందుకే ఉంది.
ఆ సరిహద్దు ఆవల ఉన్నదంతా ప్రోగ్రామ్ పని. రెండు ప్రోగ్రామ్లు ఒకే ఇంటర్ఫేస్ భావనను ఉపయోగించి ప్యాకెట్లతో పూర్తిగా భిన్నమైన పనులు చేయగలవు. పరికరానికి తర్వాత ఏమి జరుగుతుందనే దానిపై ఎటువంటి అభిప్రాయం లేదు. ఫైల్ డిస్క్రిప్టర్ మాత్రమే ప్రోగ్రామ్కు కర్నెల్ వైపు ఉన్న ఏకైక హ్యాండిల్.
పరికరాన్ని సృష్టించండి, తర్వాత సరిహద్దును గమనించండి
సరిహద్దును పరీక్షించేటప్పుడు ఉద్దేశపూర్వకంగా పరికరాన్ని సృష్టించండి. నిరంతర పరికరం దాన్ని సృష్టించిన ప్రక్రియ తర్వాత కూడా ఉంటుంది, ఇది ప్రయోగాలకు ఉపయోగకరం మరియు తర్వాత సాధారణ గందరగోళ మూలం. 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 పత్రాలు సరిహద్దును మరియు పరికర నమూనాను వివరిస్తాయి.