VPN-i UART Wi-Fi modulunun arxasına qoyun, içərisinə yox
UART Wi-Fi modulu TCP soketi tələb edir, tunelin sahibi isə şlüzdür. Onun ünvanını adlandırın, dönüş yolunu açıq saxlayın və şifrələmənin harada başladığını bilin.
UART Wi-Fi modulu olan mikrokontroller, arxasındakı xidmətə çatmaq üçün VPN tətbiq etmək məcburiyyətində deyil. Modul artıq TCP/IP yığınını işlədir və soketləri seriyalı port üzərindən təqdim edir, eyni LAN-dakı şlüz isə bu trafiki tuneldən keçirə bilər. Dizayn yalnız dörd suala ardıcıl cavab verə bildikdə işləyir, ona görə bunu yoxlama siyahısı kimi qəbul edin: ünvan, soket, marşrut, sərhəd. Uğursuz olan ilk qapıda dayanın, çünki sonrakılar onu kompensasiya edə bilməz.
Hər qata bir vəzifə verin
UART əlaqəsi AT əmrlərini və yükü mikrokontrollerlə modul arasında daşıyır. Modul Wi-Fi şəbəkəsinə qoşulur və mənbə ünvanı daxil olmaqla IP bağlantısına sahibdir. Şlüz isə tunelə, etimad məlumatlarına və yönləndirmə siyasətinə sahibdir. Bu vəzifələri ayrı saxlamaq dizaynı hər mərhələdə sazlanabilən edən şeydir.
Bu ayrılıq şlüz siyasətini necə yazdığınızı da dəyişir. Mənbə qaydası modulun LAN ünvanını adlandırmalıdır, seriyalı əlaqənin arxasındakı mikrokontroller üçün uydurma ünvanı yox. Bu dizaynda mikrokontrollerin öz IP kimliyi yoxdur və onun olduğunu iddia etmək heç vaxt uyğun gəlməyən qayda yaradır.
Modula şəbəkənin dəstəklədiyi hər hansı rezervasiya mexanizmi ilə sabit ünvan verin, ya da cihazları öz seqmentinə qoyun və şlüzün interfeysə görə uyğunlaşmasına icazə verin. Yenidən başlatmadan sonra dəyişən hovuz ünvanı, vaxtilə düzgün olan siyasəti mütləq pozacaq.
Şlüz modulun ünvanını adlandıra bilirmi?
Hər hansı soket açılmazdan əvvəl modulun şəbəkəyə qoşulduğunu, ünvanı olduğunu və şlüzün onu gözlənilən interfeysdə gördüyünü təsdiqləyin. Bu, səssizcə uğursuz olma ehtimalı ən yüksək qapıdır, çünki modul LAN-dan heç vaxt çıxmamış bağlantı cəhdini məmnuniyyətlə bildirəcək.
AT+CWMODE=1 AT+CWJAP="lab-wifi","passphrase" AT+CIPSTA? AT+CIPMUX=0
Tək bağlantı rejimi əmr ardıcıllığını sadə saxlayır və bir xidmətlə danışan bir sensor üçün düzgün başlanğıc nöqtəsidir. Çoxbağlantı rejimi hər sonrakı əmrin sintaksisini dəyişir, ona görə başqa proqram təminatı versiyasından nümunə köçürməzdən əvvəl hansı rejimdə olduğunuzu müəyyənləşdirin.
Soketi moduldan açın
Ünvan və rejim müəyyənləşdikdən sonra modul şəxsi xidmətə TCP bağlantısı aça bilər. Aşağıdakı ünvan sənədləşdirmə diapazonundan bir nümunədir, öz ünvanınızla əvəz edin və formanı eyni saxlayın.
AT+CIPSTART="TCP","10.90.0.20",9000
AT+CIPSEND=18
{"t":21.4,"rh":48}
Baxılan AT əmrinin etdiyi iş sadə TCP soketi açmaqdır və soket tunel deyil: içində heç nə VPN yaratmır və heç nə yükü şifrələmir. Proqram təminatının TLS rejimi öz əmri və öz sertifikat idarəetməsi olan ayrı bir xüsusiyyətdir və təsadüfi bir UART modulu bunların heç birini dəstəkləməyə bilər. Yuxarıdakı sintaksisin ona aid olduğunu güman etmək əvəzinə, proqram təminatınız üçün TCP/IP AT əmrləri arayışına baxın.
AT+CIPSEND içindəki yük uzunluğu həqiqətən göndərdiyinizlə uyğun olmalıdır, əks halda modul heç vaxt gəlməyən baytları gözləyəcək və bağlantı donmuş kimi görünəcək. Bu uğursuzluq şəbəkə problemi kimi görünür və demək olar ki, həmişə uzunluqda bir ədəd səhvidir.
Bağlantını şlüzdən keçirin
Şlüzün şəxsi təyinat nöqtəsinə marşruta, cihaz şəbəkəsindən tunelə yönləndirmə icazəsinə və modula çatan dönüş yoluna ehtiyacı var. Uzaq tərəf cihaz alt şəbəkəsinə geri marşrut vermirsə, dizayn qəsdən edilmiş tərcümə qaydasına ehtiyac duyur və bu qayda xidmətin gördüyü mənbə kimliyini dəyişir.
ip route get 10.90.0.20 sudo tcpdump -ni wg0 'host 10.90.0.20 and port 9000' sudo conntrack -L | grep 9000
İlk növbədə dönüş yolunu izləyin. Xidmətə çatan və heç vaxt geri qayıtmayan yönləndirilmiş paket, şlüzdə heç bir xəta olmadan modulda fasilə yaradır və bu, insanları saatlarla Wi-Fi əlaqəsinə baxmağa vadar edir. conntrack qeydi şlüzün cavabı ümumiyyətlə görüb-görmədiyini bildirir.
Tunelin həqiqətən harada bitdiyini qərarlaşdırın
Tunel şlüzdə başlayır. O, UART əlaqəsini şifrələmir və modul ilə şlüz arasındakı LAN seqmentini tunelin hissəsinə çevirmir. Bu seqmentdə qorunma lazım olan hər şeyin öz mexanizmi olmalıdır və bu nümunədəki adi TCP TLS deyil.
Tunel düşəndə nə olacağını da qərarlaşdırın. Əgər çatdırılma yalnız VPN ilə olmalıdırsa, yönləndirmə siyasəti eyni təyinat nöqtəsinə alternativ yolla icazə verməməlidir, çünki ehtiyat marşrut tələbi səssizcə puça çıxarır. Yenidən qoşulma davranışını məhdudlaşdırın ki, əlaqəsi kəsilmiş modul seriyalı əlaqəni və ya uzaq xidməti təkrar cəhdlərlə doldurmasın.
Dörd cavabı birlikdə qeyd edin: modulun ünvanı, soketin hədəfi, şlüzün marşrutu və şifrələmənin başladığı yer. Bu cihazı sonradan sazlayacaq şəxs dördünə də ehtiyac duyacaq və heç biri yalnız proqram təminatından çıxarıla bilməz.