Pon a VPN detrás dun módulo Wi-Fi UART, non dentro del
Un módulo Wi-Fi UART necesita un socket TCP, e a pasarela é a que posúe o túnel. Nomea o seu enderezo, mantén aberta a ruta de volta e sabe onde comeza o cifrado.
Un microcontrolador cun módulo Wi-Fi UART non precisa implementar unha VPN para chegar a un servizo situado detrás. O módulo xa executa unha pila TCP/IP e expón sockets polo porto serie, e unha pasarela na mesma LAN pode transportar ese tráfico polo túnel. O deseño só funciona se pode responder catro preguntas por orde, así que tráteo como unha lista de comprobación: enderezo, socket, ruta, límite. Detéñase na primeira porta que falla, porque as seguintes non poden compensala.
Asigne un traballo por capa
A ligazón UART transporta ordes AT e carga útil entre o microcontrolador e o módulo. O módulo únese á rede Wi-Fi e posúe a conexión IP, incluído o seu enderezo de orixe. A pasarela posúe o túnel, as credenciais e a política de reenvío. Manter eses traballos separados é o que fai que o deseño se poida depurar en cada etapa.
A separación tamén cambia como se escribe a política da pasarela. Unha regra de orixe debe nomear o enderezo LAN do módulo, non un enderezo imaxinario para o microcontrolador detrás da ligazón serie. O microcontrolador non ten identidade IP propia neste deseño, e finxir que a ten produce unha regra que nunca coincide.
Dea ao módulo un enderezo estable mediante o mecanismo de reserva que admita a rede, ou pon os dispositivos no seu propio segmento e deixa que a pasarela coincida por interface. Un enderezo de grupo que cambia tras un reinicio acabará rompendo unha política que era correcta cando se escribiu.
Pode a pasarela nomear o enderezo do módulo?
Antes de que se abra calquera socket, confirme que o módulo está asociado, ten enderezo e que a pasarela o ve na interface esperada. Esta é a porta que falla máis en silencio, porque o módulo informará encantado dun intento de conexión que nunca saíu da LAN.
AT+CWMODE=1 AT+CWJAP="lab-wifi","passphrase" AT+CIPSTA? AT+CIPMUX=0
O modo de conexión única mantén simple a secuencia de ordes, e é o punto de partida correcto para un sensor que fala cun só servizo. O modo de varias conexións cambia a sintaxe de cada orde posterior, así que decida en cal está antes de copiar un exemplo doutra versión de firmware.
Abra o socket desde o módulo
Co enderezo e o modo resoltos, o módulo pode abrir unha conexión TCP ao servizo privado. O enderezo de abaixo é un exemplo dun rango de documentación; substitúa o polo seu e conserve a mesma forma.
AT+CIPSTART="TCP","10.90.0.20",9000
AT+CIPSEND=18
{"t":21.4,"rh":48}
Esa orde AT abre un socket TCP simple, e un socket non é un túnel: nada nel crea unha VPN e nada nel cifra a carga útil. O modo TLS do firmware é unha función aparte coa súa propia orde e o seu propio manexo de certificados, e un módulo UART calquera pode non admitir ningún dos dous. Consulte a referencia de ordes AT de TCP/IP do seu firmware en lugar de supor que a sintaxe anterior se lle aplica.
A lonxitude da carga útil en AT+CIPSEND debe coincidir co que se envía realmente, ou o módulo esperará bytes que nunca chegan e a conexión parecerá colgarse. Ese fallo parece un problema de rede e case sempre é un erro de unidade na lonxitude.
Encamiñe a conexión a través da pasarela
A pasarela necesita unha ruta ao destino privado, permiso para reenviar da rede de dispositivos ao túnel e unha ruta de volta que chegue ao módulo. Se o lado remoto non encamiña de volta á subrede de dispositivos, o deseño necesita unha regra de tradución deliberada, e esa regra cambia a identidade de orixe que ve o servizo.
ip route get 10.90.0.20 sudo tcpdump -ni wg0 'host 10.90.0.20 and port 9000' sudo conntrack -L | grep 9000
Vixíe primeiro a ruta de volta. Un paquete reenviado que chega ao servizo e nunca volve produce un tempo de espera no módulo sen ningún erro na pasarela, o que manda a xente a mirar a ligazón Wi-Fi durante horas. A entrada de conntrack dille se a pasarela viu a resposta.
Decida onde remata realmente o túnel
O túnel comeza na pasarela. Non cifra a ligazón UART, e non converte o segmento LAN entre módulo e pasarela en parte do túnel. Todo o que necesite protección nese segmento necesita o seu propio mecanismo, e o TCP simple deste exemplo non é TLS.
Decida tamén que ocorre cando cae o túnel. Se a entrega debe ser só por VPN, a política de reenvío non debe permitir o mesmo destino por unha vía alternativa, porque unha ruta de reserva anula o requisito en silencio. Limite o comportamento de reconexión para que un módulo desconectado non inunde a ligazón serie nin o servizo remoto con reintentos.
Anote as catro respostas xuntas: o enderezo do módulo, o destino do socket, a ruta da pasarela e onde comeza o cifrado. A seguinte persoa que depure este dispositivo necesitará as catro, e ningunha pode deducirse só do firmware.