Setzt d'VPN hannert en UART-Wi-Fi-Modul, net dobannen
En UART-Wi-Fi-Modul brauch en TCP-Socket, an d'Gateway huet den Tunnel. Nennt seng Adress, haalt de Réckwee op a wësst, wou d'Verschlësselung ufänkt.
E Mikrokontroller mat engem UART-Wi-Fi-Modul muss keng VPN implementéieren, fir en Déngscht dobannendruech z'erreechen. De Modul bedreift schonn en TCP/IP-Stack an bitt Sockets iwwer de seriellen Uschloss un, an eng Gateway am selwechten LAN kann dee Verkéier duerch den Tunnel féieren. Den Design funktionéiert nëmmen, wann Dir véier Froen an der Rei beäntwerten kënnt, also behandelt en als Checklist: Adress, Socket, Route, Grenz. Bleift bei der éischter Paart stoen, déi feelt, well déi spéider kënnen et net ausgläichen.
Gitt all Schicht eng Aufgab
Den UART-Link transportéiert AT-Befehler an Notzlaascht tëscht dem Mikrokontroller an dem Modul. De Modul schléisst sech dem Wi-Fi-Netz un an huet d'IP-Verbindung, dorënner seng Quelladress. D'Gateway huet den Tunnel, d'Zougangsdaten an d'Weiderleitungsrichtlinn. Dës Aufgaben getrennt ze halen ass et, wat den Design an all Etapp debuggbar mécht.
D'Drénge verännert och, wéi Dir d'Gateway-Richtlinn schreift. Eng Quellregel soll d'LAN-Adress vum Modul nennen, net eng erfundene Adress fir de Mikrokontroller hannert dem seriellen Uschloss. De Mikrokontroller huet an dësem Design keng eegen IP-Identitéit, an et esou ze maachen, wéi wann en eng hätt, schaaft eng Regel, déi ni passt.
Gitt dem Modul eng stabil Adress iwwer de Reservatiounsmechanismus, deen d'Netz ënnerstëtzt, oder setzt d'Apparater op hirem eegene Segment a loosst d'Gateway no Interface passen. Eng Pooladress, déi sech no engem Neistart ännert, wäert eng Richtlinn briechen, déi richteg war, wéi Dir se geschriwwen hutt.
Kann d'Gateway d'Adress vum Modul nennen?
Ier en Socket opgeet, bestätegt, datt de Modul verbonnen ass, eng Adress huet an datt d'Gateway en op deem erwaarten Interface gesäit. Dëst ass d'Paart, déi am dackste stëll feelt, well de Modul fräiwëlleg e Verbindungsversuch mellt, deen den LAN ni verlooss huet.
AT+CWMODE=1 AT+CWJAP="lab-wifi","passphrase" AT+CIPSTA? AT+CIPMUX=0
Den Eenzelverbindungsmodus hält d'Befehlssequenz einfach, an et ass de richtege Startpunkt fir ee Sensor, dee mat engem Déngscht schwätzt. Den Héichverbindungsmodus verännert d'Syntax vun all weiderem Befehl, also entscheet, a wéi engem Dir sidd, ier Dir e Beispill aus enger anerer Firmware-Versioun kopéiert.
Maacht den Socket vum Modul op
Wann Adress a Modus feststinn, kann de Modul eng TCP-Verbindung zum private Déngscht opmaachen. D'Adress hei drënner ass e Beispill aus engem Dokumentatiounsberäich; ersetzt se duerch Är eegen an haalt déi selwecht Form.
AT+CIPSTART="TCP","10.90.0.20",9000
AT+CIPSEND=18
{"t":21.4,"rh":48}
Dee AT-Befehl mécht en einfachen TCP-Socket op, an e Socket ass keen Tunnel: näischt doran erstellt eng VPN an näischt verschlësselt d'Notzlaascht. Den TLS-Modus vun der Firmware ass eng separat Funktioun mat hirem eegene Befehl an hirer eegener Zertifikatsbehandlung, an eng willekürlech UART-Modul ënnerstëtzt vläicht keen vun deenen zwee. Kuckt an der TCP/IP-AT-Befeelsreferenz vun Ärer Firmware, amplaz unzehuelen, datt déi uewe genannte Syntax dofir gëllt.
D'Notzlaaschtlängt am AT+CIPSEND muss dozou passen, wat Dir tatsächlech schéckt, soss waart de Modul op Bytes, déi ni kommen, an d'Verbindung gesäit aus wéi wann se hängt. Dee Feeler gesäit aus wéi e Netzwierkproblem an ass bal ëmmer en Off-by-one an der Längt.
Leet d'Verbindung duerch d'Gateway
D'Gateway brauch eng Route zum private Zil, d'Erlaabnes, vum Apparatenetz an den Tunnel weiderzeleeden, an e Réckwee, deen de Modul erreecht. Wann déi iewescht Säit net an d'Apparatesubnetz zréckrout, brauch den Design eng bewosst Iwwersetzungsregel, an déi Regel verännert d'Quellidentitéit, déi den Déngscht gesäit.
ip route get 10.90.0.20 sudo tcpdump -ni wg0 'host 10.90.0.20 and port 9000' sudo conntrack -L | grep 9000
Passt éischt op de Réckwee op. E weidergeleete Paket, deen den Déngscht erreecht an ni zréckkënnt, produzéiert um Modul eng Zäitiwwerschreidung ouni ee Feeler op der Gateway, wat d'Leit Stonnen op den Wi-Fi-Link kucke léisst. Den conntrack-Agang seet Iech, ob d'Gateway d'Äntwert iwwerhaapt gesinn huet.
Entscheet, wou den Tunnel tatsächlech ophält
Den Tunnel fänkt op der Gateway un. Hie verschlësselt den UART-Link net, an hie mécht den LAN-Segment tëscht Modul a Gateway net zu engem Deel vum Tunnel. Alles, wat op deem Segment Schutz brauch, brauch säin eegene Mechanismus, an einfachen TCP an dësem Beispill ass keen TLS.
Entscheet och, wat geschitt, wann den Tunnel fält. Wann d'Liwwerung nëmmen iwwer d'VPN däerf geschéien, däerf d'Weiderleitungsrichtlinn dat selwecht Zil net iwwer en alternative Wee erlaben, well eng Ersatzroute d'Ufuerderung stëll ënnergrueft. Begrenzt d'Reconnect-Verhalen, sou datt en ofgetrennte Modul de seriellen Uschloss oder den entfernten Déngscht net mat Widderholungen iwwerschwemmt.
Schreift déi véier Äntwerten zesummen op: d'Adress vum Modul, d'Socket-Zil, d'Gateway-Route an wou d'Verschlësselung ufänkt. Déi nächst Persoun, déi dëst Apparat debuggë wäert, brauch all véier, an keng dovun ass just aus der Firmware ofzeleeden.