Vendosni VPN-në pas një moduli Wi-Fi UART, jo brenda tij
Një modul Wi-Fi UART ka nevojë për një socket TCP, dhe porta e rrjetit zotëron tunelin. Emërtoni adresën e tij, mbani të hapur rrugën e kthimit dhe dini ku fillon kriptimi.
Një mikrokontrollues me një modul Wi-Fi UART nuk ka nevojë të zbatojë një VPN për të arritur një shërbim që ndodhet pas tij. Moduli ekzekuton tashmë një stivë TCP/IP dhe ekspozon socket-e përmes portës serike, dhe një portë rrjeti në të njëjtin LAN mund ta çojë atë trafik nëpër tunel. Dizajni funksionon vetëm nëse mund t'u përgjigjeni me radhë katër pyetjeve, prandaj trajtojeni si një listë kontrolli: adresa, socket, rruga, kufiri. Ndaloni te porta e parë që dështon, sepse ato pasardhëse nuk mund ta kompensojnë.
Jepni një detyrë për çdo shtresë
Lidhja UART transporton komanda AT dhe ngarkesën midis mikrokontrolluesit dhe modulit. Moduli bashkohet me rrjetin Wi-Fi dhe zotëron lidhjen IP, përfshirë adresën e burimit. Porta e rrjetit zotëron tunelin, kredencialet dhe politikën e përcjelljes. Pikërisht ndarja e këtyre detyrave e bën dizajnin të korrigjueshëm në çdo fazë.
Ndarja ndryshon edhe mënyrën se si shkruani politikën e portës. Një rregull burimi duhet të emërtojë adresën LAN të modulit, jo një adresë imagjinare për mikrokontrolluesin pas lidhjes serike. Mikrokontrolluesi nuk ka identitet IP të vetin në këtë dizajn, dhe të pretendosh se ka prodhon një rregull që nuk përputhet kurrë.
Jepini modulit një adresë të qëndrueshme përmes çdo mekanizmi rezervimi që mbështet rrjeti, ose vendosni pajisjet në segmentin e tyre dhe lërini portën të përputhet sipas ndërfaqes. Një adresë nga pishina që ndryshon pas një rindezjeje do të thyejë përfundimisht një politikë që ishte e saktë kur e shkruajtët.
A mundet porta t'i emërtojë adresën modulit?
Përpara se të hapet çdo socket, konfirmoni se moduli është i lidhur, ka adresë dhe se porta e sheh atë në ndërfaqen e pritur. Kjo është porta që dështon më shpesh në heshtje, sepse moduli raporton me kënaqësi një përpjekje lidhjeje që nuk e la kurrë LAN-in.
AT+CWMODE=1 AT+CWJAP="lab-wifi","passphrase" AT+CIPSTA? AT+CIPMUX=0
Mënyra me një lidhje e mban sekuencën e komandave të thjeshtë, dhe është pikënisja e duhur për një sensor që flet me një shërbim të vetëm. Mënyra me shumë lidhje ndryshon sintaksën e çdo komande pasardhëse, prandaj vendosni në cilën jeni përpara se të kopjoni një shembull nga një version tjetër firmueri.
Hapni socket-in nga moduli
Kur adresa dhe mënyra janë përcaktuar, moduli mund të hapë një lidhje TCP me shërbimin privat. Adresa më poshtë është një shembull nga një interval dokumentacioni; zëvendësojeni me tuajën dhe mbani të njëjtën formë.
AT+CIPSTART="TCP","10.90.0.20",9000
AT+CIPSEND=18
{"t":21.4,"rh":48}
Ajo komandë AT hap një socket TCP të thjeshtë, dhe një socket nuk është tunel: asgjë në të nuk krijon VPN dhe asgjë nuk e kripton ngarkesën. Mënyra TLS e firmuerit është një funksion i veçantë me komandën e vet dhe trajtimin e vet të certifikatave, dhe një modul UART i çfarëdoshëm mund të mos mbështesë asnjërën. Konsultoni referencën e komandave AT për TCP/IP të firmuerit tuaj në vend që të supozoni se sintaksa më sipër vlen për të.
Gjatësia e ngarkesës në AT+CIPSEND duhet të përputhet me atë që dërgoni në të vërtetë, përndryshe moduli do të presë bajt që nuk vijnë kurrë dhe lidhja do të duket e ngecur. Ai dështim duket si problem rrjeti dhe pothuajse gjithmonë është një gabim prej një në gjatësi.
Drejtojeni lidhjen përmes portës
Porta ka nevojë për një rrugë drejt destinacionit privat, leje për të përcjellë nga rrjeti i pajisjeve në tunel dhe një rrugë kthimi që arrin modulin. Nëse ana e largët nuk rrugëton mbrapsht në nënrrjetin e pajisjeve, dizajni ka nevojë për një rregull përkthimi të qëllimshëm, dhe ai rregull ndryshon identitetin e burimit që sheh shërbimi.
ip route get 10.90.0.20 sudo tcpdump -ni wg0 'host 10.90.0.20 and port 9000' sudo conntrack -L | grep 9000
Vëzhgoni fillimisht rrugën e kthimit. Një paketë e përcjellë që arrin shërbimin dhe nuk kthehet kurrë prodhon një afat kohor në modul pa asnjë gabim në portë, gjë që i shtyn njerëzit të shikojnë për orë të tëra lidhjen Wi-Fi. Zëri i conntrack ju tregon nëse porta e pa përgjigjen fare.
Vendosni se ku përfundon në të vërtetë tuneli
Tuneli fillon në portë. Ai nuk e kripton lidhjen UART, dhe nuk e kthen segmentin LAN midis modulit dhe portës në pjesë të tunelit. Çdo gjë që ka nevojë për mbrojtje në atë segment ka nevojë për mekanizmin e vet, dhe TCP i thjeshtë në këtë shembull nuk është TLS.
Vendosni gjithashtu se çfarë ndodh kur tuneli bie. Nëse dorëzimi duhet të bëhet vetëm përmes VPN-së, politika e përcjelljes nuk duhet të lejojë të njëjtin destinacion përmes një rruge alternative, sepse një rrugë rezervë e anulon kërkesën në heshtje. Kufizoni sjelljen e rilidhjes që një modul i shkëputur të mos e përmbytë lidhjen serike ose shërbimin e largët me përpjekje të përsëritura.
Shkruani katër përgjigjet së bashku: adresën e modulit, objektivin e socket-it, rrugën e portës dhe ku fillon kriptimi. Personi i ardhshëm që do të korrigjojë këtë pajisje do t'i ketë nevojë të katërta, dhe asnjëra nuk mund të deduktohet vetëm nga firmueri.