UART Wi-Fi modulua duen mikrokontrolagailu batek ez du VPNrik inplementatu behar haren atzeko zerbitzu batera iristeko. Moduluak TCP/IP pila exekutatzen du jada eta socketak serie-atakan zehar eskaintzen ditu, eta LAN bereko atebide batek trafiko hori tunelaren bidez eraman dezake. Diseinuak soilik funtzionatzen du lau galderari ordenan erantzun badiezazkiokezu, beraz, hartu kontrol-zerrenda gisa: helbidea, socket-a, ibilbidea, muga. Gelditu huts egiten duen lehen atean, geroago datozenek ezin baitute hura konpentsatu.

Eman zeregin bat geruza bakoitzari

UART estekadurak AT komandoak eta karga erabilgarria eramaten ditu mikrokontrolagailuaren eta moduluaren artean. Modulua Wi-Fi sarera batu eta IP konexioaren jabe da, bere iturburu-helbidea barne. Atebidea tunelaren, kredentzialen eta birbidaltze-politikaren jabe da. Zeregin horiek bereizita edukitzeak egiten du diseinua etapa bakoitzean arazteko modukoa.

Bereizketak atebidearen politika nola idazten duzun ere aldatzen du. Iturburu-arau batek moduluaren LAN helbidea izendatu behar du, ez serie-estekaduraren atzean dagoen mikrokontrolagailuarentzako helbide asmatu bat. Mikrokontrolagailuak ez du berezko IP identitaterik diseinu honetan, eta baduela itxuratzeak inoiz bat egiten ez duen araua sortzen du.

Eman moduluari helbide egonkor bat sareak onartzen duen erreserba-mekanismoaren bidez, edo jarri gailuak beren segmentuan eta utzi atebideari interfazearen arabera bat etortzen. Berrabiarazi ondoren aldatzen den multzo-helbide batek idaztean zuzena zen politika hautsi egingo du azkenean.

Atebideak moduluaren helbidea izendatu dezake?

Edozein socket ireki aurretik, egiaztatu modulua elkartuta dagoela, helbidea duela eta atebideak espero den interfazean ikusten duela. Hau da isil-isilik sarrien huts egiten duen atea, moduluak pozik jakinaraziko baitu LANetik inoiz irten ez zen konexio-saiakera bat.

AT+CWMODE=1
AT+CWJAP="lab-wifi","passphrase"
AT+CIPSTA?
AT+CIPMUX=0

Konexio bakarreko moduak komando-sekuentzia sinple mantentzen du, eta abiapuntu egokia da zerbitzu batekin hitz egiten duen sentsore bakarrarentzat. Konexio anitzeko moduak ondorengo komando bakoitzaren sintaxia aldatzen du, beraz, erabaki zein modutan zauden firmware bertsio desberdin bateko adibidea kopiatu aurretik.

Ireki socket-a modulutik

Helbidea eta modua finkatu ondoren, moduluak TCP konexio bat ireki dezake zerbitzu pribatura. Beheko helbidea dokumentazio-barruti bateko adibidea da; ordezkatu zurea eta mantendu forma bera.

AT+CIPSTART="TCP","10.90.0.20",9000
AT+CIPSEND=18
{"t":21.4,"rh":48}

AT komando horrek TCP socket soil bat irekitzen du, eta socket bat ez da tunel bat: beronen barruan ezerk ez du VPNrik sortzen eta ezerk ez du karga erabilgarria zifratzen. Firmwarearen TLS modua funtzio bereizia da, bere komandoa eta bere ziurtagiri-kudeaketa dituena, eta UART modulu arbitrario batek agian ez du bat ere onartzen. Begiratu zure firmwarearen TCP/IP AT komandoen erreferentzia, goiko sintaxia hari dagokiola suposatu beharrean.

AT+CIPSEND-ko karga erabilgarriaren luzerak bidaltzen duzunarekin bat egin behar du, bestela moduluak inoiz iristen ez diren byteen zain egongo da eta konexioa itsatsita dagoela dirudiko du. Hutsegite hori sare-arazo bat ematen du eta ia beti luzeran bat gehiegikoa da.

Bideratu konexioa atebidearen bidez

Atebideak ibilbide bat behar du helmuga pribatura, gailuen saretik tunelera birbidaltzeko baimena eta modulura iristen den itzulera-bide bat. Urruneko aldeak gailuen azpisarera atzera bideratzen ez badu, diseinuak itzulpen-arau nahi bat behar du, eta arau horrek zerbitzuak ikusten duen iturburu-identitatea aldatzen du.

ip route get 10.90.0.20
sudo tcpdump -ni wg0 'host 10.90.0.20 and port 9000'
sudo conntrack -L | grep 9000

Begira ezazu lehenengo itzulera-bidea. Zerbitzura iristen den eta inoiz itzultzen ez den birbidalitako pakete batek denbora-muga sortzen du moduluan, atebidean errorerik gabe, eta horrek jendea orduak Wi-Fi estekadurari begira jartzen du. conntrack erregistroak esaten dizu atebideak erantzuna ikusi zuen ala ez.

Erabaki non amaitzen den tunela benetan

Tunela atebidean hasten da. Ez du UART estekadura zifratzen, eta ez du moduluaren eta atebidearen arteko LAN segmentua tunelaren parte bihurtzen. Segmentu horretan babesa behar duen edozerk bere mekanismoa behar du, eta adibide honetako TCP soila ez da TLS.

Erabaki zer gertatzen den tunela erortzen denean ere. Entrega VPN bidez soilik egin behar bada, birbidaltze-politikak ezin du helmuga bera bide alternatibo batetik onartu, ordezko ibilbide batek isil-isilik gainditzen baitu baldintza. Mugatu berriz konektatzeko jokabidea, deskonektatutako modulu batek serie-estekadura edo urruneko zerbitzua berriz saiatzeekin gainezka ez dezan.

Idatzi lau erantzunak elkarrekin: moduluaren helbidea, socket-aren helburua, atebidearen ibilbidea eta zifratzea non hasten den. Gailu hau araztuko duen hurrengo pertsonak laurak beharko ditu, eta horietako bat ere ezin da firmwaretik soilik ondorioztatu.

Erlazionatutako artikuluak