VPNని UART Wi-Fi మాడ్యూల్ వెనుక ఉంచండి, దాని లోపల కాదు
UART Wi-Fi మాడ్యూల్కు TCP సాకెట్ అవసరం, సొరంగం గేట్వే సొంతం. దాని చిరునామాను పేర్కొనండి, తిరిగి వచ్చే మార్గాన్ని తెరిచి ఉంచండి మరియు ఎన్క్రిప్షన్ ఎక్కడ మొదలవుతుందో తెలుసుకోండి.
UART Wi-Fi మాడ్యూల్ ఉన్న మైక్రోకంట్రోలర్ దాని వెనుక ఉన్న సేవను చేరుకోవడానికి VPNని అమలు చేయాల్సిన అవసరం లేదు. మాడ్యూల్ ఇప్పటికే TCP/IP స్టాక్ను నడుపుతోంది మరియు సీరియల్ పోర్ట్ ద్వారా సాకెట్లను అందిస్తోంది, అదే LANలోని గేట్వే ఆ ట్రాఫిక్ను సొరంగం ద్వారా తీసుకెళ్లగలదు. నాలుగు ప్రశ్నలకు వరుసగా సమాధానం చెప్పగలిగితేనే ఈ నిర్మాణం పనిచేస్తుంది, కాబట్టి దీన్ని తనిఖీ జాబితాగా పరిగణించండి: చిరునామా, సాకెట్, మార్గం, హద్దు. విఫలమయ్యే మొదటి ద్వారం వద్ద ఆగండి, ఎందుకంటే తర్వాతివి దాన్ని భర్తీ చేయలేవు.
ప్రతి పొరకు ఒక పని ఇవ్వండి
UART లింక్ మైక్రోకంట్రోలర్ మరియు మాడ్యూల్ మధ్య AT ఆదేశాలు మరియు పేలోడ్ను తరలిస్తుంది. మాడ్యూల్ Wi-Fi నెట్వర్క్లో చేరి తన మూల చిరునామాతో సహా IP కనెక్షన్ను కలిగి ఉంటుంది. గేట్వే సొరంగం, ఆధారాలు మరియు ఫార్వర్డింగ్ విధానాన్ని కలిగి ఉంటుంది. ఈ పనులను వేరుగా ఉంచడమే ప్రతి దశలో నిర్మాణాన్ని డీబగ్ చేయగలిగేలా చేస్తుంది.
ఈ వేర్పాటు గేట్వే విధానాన్ని రాయడం విధానాన్ని కూడా మారుస్తుంది. మూల నియమం మాడ్యూల్ LAN చిరునామాను పేర్కొనాలి, సీరియల్ లింక్ వెనుక ఉన్న మైక్రోకంట్రోలర్ కోసం ఊహాత్మక చిరునామాను కాదు. ఈ నిర్మాణంలో మైక్రోకంట్రోలర్కు సొంత IP గుర్తింపు లేదు, ఉందని నటించడం ఎప్పుడూ సరిపోలని నియమాన్ని సృష్టిస్తుంది.
నెట్వర్క్ మద్దతిచ్చే ఏ రిజర్వేషన్ పద్ధతి ద్వారానైనా మాడ్యూల్కు స్థిరమైన చిరునామా ఇవ్వండి, లేదా పరికరాలను వాటి సొంత విభాగంలో ఉంచి గేట్వేను ఇంటర్ఫేస్ ప్రకారం సరిపోల్చనివ్వండి. పునఃప్రారంభం తర్వాత మారే పూల్ చిరునామా రాసినప్పుడు సరైనదిగా ఉన్న విధానాన్ని చివరికి బద్దలు కొడుతుంది.
గేట్వే మాడ్యూల్ చిరునామాను పేర్కొనగలదా?
ఏ సాకెట్ తెరవకముందే, మాడ్యూల్ కనెక్ట్ అయిందని, దానికి చిరునామా ఉందని, గేట్వే దాన్ని ఆశించిన ఇంటర్ఫేస్లో చూస్తోందని నిర్ధారించండి. ఇదే అత్యంత తరచుగా నిశ్శబ్దంగా విఫలమయ్యే ద్వారం, ఎందుకంటే LAN నుండి ఎప్పుడూ బయటకు వెళ్లని కనెక్షన్ ప్రయత్నాన్ని మాడ్యూల్ సంతోషంగా నివేదిస్తుంది.
AT+CWMODE=1 AT+CWJAP="lab-wifi","passphrase" AT+CIPSTA? AT+CIPMUX=0
ఒకే కనెక్షన్ మోడ్ ఆదేశాల క్రమాన్ని సరళంగా ఉంచుతుంది, ఒకే సేవతో మాట్లాడే ఒక సెన్సార్కు ఇదే సరైన ప్రారంభం. బహుళ కనెక్షన్ మోడ్ తర్వాతి ప్రతి ఆదేశం వాక్యనిర్మాణాన్ని మారుస్తుంది, కాబట్టి మరో ఫార్మ్వేర్ వెర్షన్ నుండి ఉదాహరణను కాపీ చేసే ముందు మీరు ఏ మోడ్లో ఉన్నారో నిర్ణయించుకోండి.
మాడ్యూల్ నుండి సాకెట్ తెరవండి
చిరునామా మరియు మోడ్ నిర్ణయమైన తర్వాత, మాడ్యూల్ ప్రైవేట్ సేవకు TCP కనెక్షన్ తెరవగలదు. క్రింది చిరునామా పత్రకరణ పరిధి నుండి ఒక ఉదాహరణ; దాని స్థానంలో మీది ఉంచి అదే ఆకారాన్ని నిలుపుకోండి.
AT+CIPSTART="TCP","10.90.0.20",9000
AT+CIPSEND=18
{"t":21.4,"rh":48}
ఆ AT ఆదేశం సాధారణ TCP సాకెట్ను తెరుస్తుంది, సాకెట్ సొరంగం కాదు: అందులో ఏదీ VPN సృష్టించదు, ఏదీ పేలోడ్ను ఎన్క్రిప్ట్ చేయదు. ఫార్మ్వేర్ TLS మోడ్ సొంత ఆదేశం మరియు సొంత ధృవపత్ర నిర్వహణ ఉన్న ప్రత్యేక లక్షణం, ఏదైనా UART మాడ్యూల్ రెండింటినీ మద్దతివ్వకపోవచ్చు. పై వాక్యనిర్మాణం దానికి వర్తిస్తుందని ఊహించడం కంటే మీ ఫార్మ్వేర్ కోసం TCP/IP AT ఆదేశ సూచన చూడండి.
AT+CIPSEND లోని పేలోడ్ పొడవు మీరు నిజంగా పంపేదానికి సరిపోలాలి, లేకపోతే మాడ్యూల్ ఎప్పటికీ రాని బైట్ల కోసం వేచి ఉంటుంది మరియు కనెక్షన్ వేలాడుతున్నట్టు కనిపిస్తుంది. ఆ వైఫల్యం నెట్వర్క్ సమస్యలా కనిపిస్తుంది మరియు దాదాపు ఎల్లప్పుడూ పొడవులో ఒకటి తేడా.
కనెక్షన్ను గేట్వే ద్వారా పంపండి
గేట్వేకు ప్రైవేట్ గమ్యస్థానానికి మార్గం, పరికర నెట్వర్క్ నుండి సొరంగంలోకి ఫార్వర్డ్ చేయడానికి అనుమతి మరియు మాడ్యూల్ను చేరే తిరుగు మార్గం అవసరం. దూరపు వైపు పరికర ఉపనెట్వర్క్కు తిరిగి మార్గం ఇవ్వకపోతే, నిర్మాణానికి ఉద్దేశపూర్వక అనువాద నియమం అవసరం, ఆ నియమం సేవ చూసే మూల గుర్తింపును మారుస్తుంది.
ip route get 10.90.0.20 sudo tcpdump -ni wg0 'host 10.90.0.20 and port 9000' sudo conntrack -L | grep 9000
మొదట తిరుగు మార్గాన్ని గమనించండి. సేవను చేరి ఎప్పటికీ తిరిగి రాని ఫార్వర్డ్ చేసిన ప్యాకెట్ గేట్వేలో ఎలాంటి లోపం లేకుండా మాడ్యూల్లో సమయ మితి ఉత్పత్తి చేస్తుంది, ఇది ప్రజలను గంటల తరబడి Wi-Fi లింక్ను చూస్తూ ఉండేలా చేస్తుంది. conntrack నమోదు గేట్వే సమాధానాన్ని చూసిందో లేదో చెబుతుంది.
సొరంగం నిజంగా ఎక్కడ ముగుస్తుందో నిర్ణయించండి
సొరంగం గేట్వేలో ప్రారంభమవుతుంది. అది UART లింక్ను ఎన్క్రిప్ట్ చేయదు, మాడ్యూల్ నుండి గేట్వే వరకు ఉన్న LAN విభాగాన్ని సొరంగంలో భాగం చేయదు. ఆ విభాగంలో రక్షణ అవసరమైన దేనికైనా దాని సొంత విధానం అవసరం, ఈ ఉదాహరణలో సాధారణ TCP అనేది TLS కాదు.
సొరంగం పడిపోతే ఏమి జరుగుతుందో కూడా నిర్ణయించండి. డెలివరీ VPN ద్వారా మాత్రమే ఉండాలంటే, ఫార్వర్డింగ్ విధానం అదే గమ్యాన్ని ప్రత్యామ్నాయ మార్గం ద్వారా అనుమతించకూడదు, ఎందుకంటే బ్యాకప్ మార్గం షరతును నిశ్శబ్దంగా నిర్వీర్యం చేస్తుంది. పునఃకనెక్షన్ ప్రవర్తనను పరిమితం చేయండి, తద్వారా డిస్కనెక్ట్ అయిన మాడ్యూల్ సీరియల్ లింక్ లేదా దూర సేవను పునఃప్రయత్నాలతో నింపదు.
నాలుగు సమాధానాలను కలిపి రాయండి: మాడ్యూల్ చిరునామా, సాకెట్ లక్ష్యం, గేట్వే మార్గం మరియు ఎన్క్రిప్షన్ ఎక్కడ మొదలవుతుంది. ఈ పరికరాన్ని తర్వాత డీబగ్ చేసే వ్యక్తికి నాలుగూ అవసరం, వాటిలో దేన్నీ ఫార్మ్వేర్ నుండి మాత్రమే ఊహించలేరు.