Nid oes angen i ficroreolwr â modiwl Wi-Fi UART weithredu VPN i gyrraedd gwasanaeth y tu ôl i un. Mae’r modiwl eisoes yn rhedeg stac TCP/IP ac yn datgelu socedi dros y porth cyfresol, a gall porth ar yr un LAN gludo’r traffig hwnnw drwy’r tiwnel. Dim ond os gallwch ateb pedwar cwestiwn yn eu trefn y mae’r dyluniad yn gweithio, felly triniwch hyn fel rhestr wirio: cyfeiriad, soced, llwybr, ffin. Stopiwch wrth y giât gyntaf sy’n methu, oherwydd ni all y rhai diweddarach ei iawndal.

Rhowch un swydd i bob haen

Mae’r ddolen UART yn cludo gorchmynion AT a llwyth tâl rhwng y microreolwr a’r modiwl. Mae’r modiwl yn ymuno â’r rhwydwaith Wi-Fi ac yn berchen ar y cysylltiad IP, gan gynnwys ei gyfeiriad ffynhonnell. Y porth sy’n berchen ar y tiwnel, y manylion mewngofnodi a’r polisi anfon ymlaen. Cadw’r swyddi hynny ar wahân sy’n gwneud y dyluniad yn ddadfygadwy ar bob cam.

Mae’r gwahanu hefyd yn newid sut rydych yn ysgrifennu polisi’r porth. Dylai rheol ffynhonnell enwi cyfeiriad LAN y modiwl, nid cyfeiriad dychmygol i’r microreolwr y tu ôl i’r ddolen gyfresol. Nid oes gan y microreolwr unrhyw hunaniaeth IP ei hun yn y dyluniad hwn, ac mae esgus bod ganddo yn cynhyrchu rheol na fydd byth yn cyfateb.

Rhowch gyfeiriad sefydlog i’r modiwl drwy ba bynnag fecanwaith cadw a gefnogir gan y rhwydwaith, neu rhowch y dyfeisiau ar eu segment eu hunain a gadael i’r porth gyfateb yn ôl rhyngwyneb. Bydd cyfeiriad o gronfa sy’n newid ar ôl ailgychwyn yn torri polisi a oedd yn gywir pan ysgrifennwyd ef.

A all y porth enwi cyfeiriad y modiwl?

Cyn i unrhyw soced agor, cadarnhewch fod y modiwl wedi’i gysylltu, bod ganddo gyfeiriad, a bod y porth yn ei weld ar y rhyngwyneb a ddisgwylir. Dyma’r giât sy’n methu’n dawel amlaf, oherwydd bydd y modiwl yn fodlon adrodd am ymdrech gysylltu na adawodd y LAN erioed.

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

Mae modd un cysylltiad yn cadw’r dilyniant gorchmynion yn syml, a dyna’r man cychwyn cywir ar gyfer un synhwyrydd yn siarad ag un gwasanaeth. Mae modd sawl cysylltiad yn newid cystrawen pob gorchymyn diweddarach, felly penderfynwch ym mha fodd yr ydych cyn copïo enghraifft o fersiwn firmware arall.

Agorwch y soced o’r modiwl

Gyda chyfeiriad a modd wedi’u pennu, gall y modiwl agor cysylltiad TCP i’r gwasanaeth preifat. Mae’r cyfeiriad isod yn enghraifft o ystod dogfennaeth; disodlwch ef â’ch un chi a chadw’r un siâp.

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

Yr hyn y mae’r gorchymyn AT hwnnw yn ei wneud yw agor soced TCP plaen, ac nid tiwnel yw soced: nid oes unrhyw beth ynddo yn creu VPN ac nid oes unrhyw beth ynddo yn amgryptio’r llwyth tâl. Mae modd TLS y firmware yn nodwedd ar wahân gyda’i orchymyn ei hun a’i drin tystysgrifau ei hun, ac efallai na fydd modiwl UART mympwyol yn cefnogi’r naill na’r llall. Edrychwch ar gyfeirlyfr gorchmynion AT TCP/IP eich firmware yn hytrach na thybio bod y gystrawen uchod yn berthnasol iddo.

Rhaid i hyd y llwyth tâl yn AT+CIPSEND gyfateb i’r hyn rydych yn ei anfon mewn gwirionedd, neu bydd y modiwl yn aros am feitiau na ddônt byth a bydd y cysylltiad yn ymddangos yn hongian. Mae’r methiant hwnnw’n edrych fel problem rhwydwaith ac mae bron bob amser yn wall o un yn y hyd.

Llwybrwch y cysylltiad drwy’r porth

Mae angen llwybr ar y porth i’r cyrchfan preifat, caniatâd i anfon ymlaen o rwydwaith y dyfeisiau i mewn i’r tiwnel, a llwybr dychwelyd sy’n cyrraedd y modiwl. Os nad yw’r ochr bell yn llwybro’n ôl i is-rwydwaith y dyfeisiau, mae angen rheol cyfieithu fwriadol ar y dyluniad, ac mae’r rheol honno’n newid yr hunaniaeth ffynhonnell y mae’r gwasanaeth yn ei gweld.

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

Gwyliwch am y llwybr dychwelyd yn gyntaf. Mae pecyn a anfonwyd ymlaen sy’n cyrraedd y gwasanaeth ac na ddaw byth yn ôl yn cynhyrchu terfyn amser yn y modiwl heb unrhyw wall ar y porth, sy’n anfon pobl i syllu ar y ddolen Wi-Fi am oriau. Mae’r cofnod conntrack yn dweud wrthych a welodd y porth yr ateb o gwbl.

Penderfynwch le mae’r tiwnel yn gorffen mewn gwirionedd

Mae’r tiwnel yn dechrau yn y porth. Nid yw’n amgryptio’r ddolen UART, ac nid yw’n troi’r segment LAN rhwng y modiwl a’r porth yn rhan o’r tiwnel. Mae unrhyw beth sydd angen amddiffyniad ar y segment hwnnw angen ei fecanwaith ei hun, ac nid TLS yw TCP plaen yn yr enghraifft hon.

Penderfynwch hefyd beth sy’n digwydd pan fydd y tiwnel yn cwympo. Os rhaid i’r danfoniad fod drwy VPN yn unig, ni chaiff y polisi anfon ymlaen ganiatáu’r un gyrchfan drwy lwybr arall, oherwydd mae llwybr wrth gefn yn trechu’r gofyniad yn dawel. Cyfyngwch yr ymddygiad ailgysylltu fel nad yw modiwl datgysylltiedig yn gorlifo’r ddolen gyfresol na’r gwasanaeth pell ag ailgeisiadau.

Cofnodwch y pedwar ateb gyda’i gilydd: cyfeiriad y modiwl, targed y soced, llwybr y porth a lle mae’r amgryptio’n dechrau. Bydd y person nesaf sy’n dadfygio’r ddyfais hon angen y pedwar, ac ni ellir casglu’r un ohonynt o’r firmware yn unig.

Erthyglau cysylltiedig