UART Wi-Fi मॉड्यूल असलेल्या मायक्रोकंट्रोलरला त्याच्या मागील सेवेपर्यंत पोहोचण्यासाठी VPN लागू करण्याची गरज नाही। मॉड्यूल आधीच TCP/IP स्टॅक चालवते आणि सिरियल पोर्टवर सॉकेट देते, आणि त्याच लॅनवरील गेटवे तो रहदारी बोगद्यातून नेऊ शकते। हे बांधकाम तेव्हाच चालते जेव्हा तुम्ही चार प्रश्नांची क्रमाने उत्तरे देऊ शकता, म्हणून याला तपासणी यादी माना: पत्ता, सॉकेट, मार्ग, सीमा। जे पहिले द्वार अपयशी होते तिथे थांबा, कारण पुढील ते भरून काढू शकत नाहीत।

प्रत्येक स्तराला एक काम द्या

UART दुवा मायक्रोकंट्रोलर आणि मॉड्यूलमध्ये AT आदेश आणि पेलोड वाहून नेतो। मॉड्यूल वाय-फाय जाळ्यात सामील होते आणि आपल्या स्रोत पत्त्यासह IP जोडणीचे मालक असते। गेटवे बोगदा, ओळखपत्रे आणि पुढे पाठवण्याच्या धोरणाचे मालक असते। ही कामे वेगळी ठेवल्यानेच बांधकाम प्रत्येक टप्प्यावर दोषनिवारणयोग्य होते।

हा फरक गेटवे धोरण कसे लिहायचे तेही बदलतो। स्रोत नियमाने मॉड्यूलचा लॅन पत्ता नावाने सांगावा, सिरियल दुव्यामागील मायक्रोकंट्रोलरसाठी काल्पनिक पत्ता नाही। या बांधकामात मायक्रोकंट्रोलरची स्वतःची IP ओळख नाही, आणि आहे असे दाखवल्यास कधीही जुळणारा नसलेला नियम तयार होतो।

जाळे जे कोणतेही आरक्षण साधन पुरवते त्याद्वारे मॉड्यूलला स्थिर पत्ता द्या, किंवा उपकरणे त्यांच्या स्वतःच्या विभागात ठेवा आणि गेटवेला इंटरफेसनुसार जुळवू द्या। रीबूटनंतर बदलणारा पूल पत्ता लिहिताना बरोबर असलेले धोरण शेवटी मोडेल।

गेटवे मॉड्यूलचा पत्ता नावाने सांगू शकते का?

कोणतेही सॉकेट उघडण्यापूर्वी मॉड्यूल जोडलेले आहे, त्याला पत्ता आहे आणि गेटवे त्याला अपेक्षित इंटरफेसवर पाहत आहे याची खात्री करा। सर्वाधिक वेळा गुपचूप अपयशी होणारे हेच द्वार आहे, कारण लॅन कधीही न सोडलेल्या जोडणीच्या प्रयत्नाची मॉड्यूल आनंदाने नोंद देईल।

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

प्रथम परतीच्या मार्गाकडे लक्ष द्या। सेवेपर्यंत पोहोचून कधीही परत न येणारे पुढे पाठवलेले पॅकेट गेटवेवर कोणतीही त्रुटी न देता मॉड्यूलमध्ये वेळ संपुष्टात आणते, ज्यामुळे लोक तासन्तास वाय-फाय दुव्याकडे पाहत बसतात। conntrack नोंद गेटवेने उत्तर पाहिले का हे सांगते।

बोगदा खरोखर कुठे संपतो ते ठरवा

बोगदा गेटवेवर सुरू होतो। तो UART दुवा एन्क्रिप्ट करत नाही, आणि मॉड्यूल ते गेटवे यांतील लॅन विभाग बोगद्याचा भाग करत नाही। त्या विभागात ज्याला संरक्षण लागते त्याला स्वतःचे साधन लागते, आणि या उदाहरणातील साधे TCP हे TLS नाही।

बोगदा पडल्यावर काय होते तेही ठरवा। जर वितरण केवळ VPN मधूनच व्हायला हवे, तर पुढे पाठवण्याच्या धोरणाने तेच गंतव्य पर्यायी मार्गाने परवानगी देऊ नये, कारण पर्यायी मार्ग अट गुपचूप निष्फळ करतो। पुन्हा जोडणीचे वर्तन मर्यादित करा जेणेकरून तुटलेले मॉड्यूल सिरियल दुवा किंवा दूरची सेवा पुन्हा प्रयत्नांनी भरून टाकणार नाही।

चारही उत्तरे एकत्र लिहा: मॉड्यूलचा पत्ता, सॉकेटचे लक्ष्य, गेटवेचा मार्ग आणि एन्क्रिप्शन कुठे सुरू होते। हे उपकरण पुढे दोषनिवारण करणाऱ्याला चारही लागतील, आणि यापैकी एकही केवळ फर्मवेअरवरून ओळखता येत नाही।

संबंधित लेख