• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8285+роутер+3G модем

alfik777

Member
Доброго!
Описание
ЕSP в качестве станции коннектится по WIFI к 3G- роутеру с подключенным к нему 3G-модемом со статическим IP ( например, 10.10.10.10) На ESP WEB -сервер. Т.е. клиенты из инета, зайдя по адресу 10.10.10.10 должны видеть морду WEB-сервера.
Проблема
В реальности доступ к web-серверу то есть, то нет по каким-то своим законам.
Исходные данные
- ESP8285 в режиме станции имеет постоянный адрес ( например 192.168.10.10) и соединяется по WIFI с роутером
- 3G-роутер, а-ля A15, он "поднимает" модем, имеет виртуальный сервер на 192.168.10.10 с соответствующим портом и раздает WIFI
- 3G модем E352B (STICK)
Проверки
Доступ к серверу из инета есть только тогда, когда пингуется внешний адрес 10.10.10.10 ( логично) . Вот эти пинги то есть, то их нет. При включении роутера и модема пинги появляются и через минуту прекращаются, потом могут опять появиться ненадолго... Также пинги появляются если подключить компьютер к LAN- порту роутера или если просто подключиться к WIFI сети роутера телефоном. Через некоторое время пинги пропадают( я так понимаю при отсутствии активности ). Но при подключении ESP 8285 к этой же WIFI сети - ничего не происходит, пинги не появляются.
Дополнительно
- Модем все время в коннекте. Кроме того, при проверке его в работе с компом напрямую - вопросов нет, сбоев нет.
- роутеры : один с прошивкой qualcomm, второй такой же с WRT, такая же картина и с TP-LINK 3020.
- пробовал чтобы роутер сам раздал адрес для ESP через DHCP - без изменений.
- при проверке работы ESP8285 через "домашний роутер" - все ok.
Вопрос
Что не так? Должен ли пинговаться вообще роутер если ничего не подключено и что нужно чтобы появлялись эти самые пинги при подключении ESP ?
 

pvvx

Активный участник сообщества
Ping - данный сервис предназначен для проверки соединений в сетях на основе TCP/IP.
Сервис отправляет запросы (ICMP Echo-Request) протокола ICMP указанному Вами узлу сети и фиксирует поступающие ответы (ICMP Echo-Reply).

У вас на ESP установлено приложение обеспечивающее ICMP?
Запросы пинг внутренней и внешней сети обрабатываются по разному. В роутере может быть запрещено пинговать из внешней сети внутренние...
Со стороны провайдера 3/4/5G, в целях обеспечения безопасности, могут быть включены ограничения на "статический IP" путем закрытия обращений по основным портам. Эти вопросы решаются у провайдера, а на ESP и роутерах.
 

pvvx

Активный участник сообщества
Со стороны провайдера 3/4/5G, в целях обеспечения безопасности, могут быть включены ограничения на "статический IP" путем закрытия обращений по основным портам (чаще всего это все порты web и ftp). Купите нормальный "Статический IP". Это только бизнес и ещё раз бизнес, а не технические детали.
 

alfik777

Member
У вас на ESP установлено приложение обеспечивающее ICMP?
Пинг , в моем случае не самоцель, а просто так проверяю. Но при установке библиотеки ESP8266Ping и при отправке запроса - отрабатывает нормально и сразу же появляется пинг с инета на мой внешний адрес. Получается при активности, т.е. при отправке запроса сразу появляется доступ на 30- 40 сек. Но у меня же WEB-сервер и запросы к нему инициируются со стороны клиента. Мне что, со стороны сервера нужно постоянно слать запросы чтобы был постоянный доступ к нему?
Со стороны провайдера 3/4/5G, в целях обеспечения безопасности, могут быть включены ограничения на "статический IP" путем закрытия обращений по основным портам. Эти вопросы решаются у провайдера, а на ESP и роутерах.
Это нормальный "статический IP , без ограничений со стороны провайдера.
 

pvvx

Активный участник сообщества
Это нормальный "статический IP , без ограничений со стороны провайдера.
Ваш ответ об этом не говорит:
Пинг , в моем случае не самоцель, а просто так проверяю. Но при установке библиотеки ESP8266Ping и при отправке запроса - отрабатывает нормально и сразу же появляется пинг с инета на мой внешний адрес. Получается при активности, т.е. при отправке запроса сразу появляется доступ на 30- 40 сек. Но у меня же WEB-сервер и запросы к нему инициируются со стороны клиента. Мне что, со стороны сервера нужно постоянно слать запросы чтобы был постоянный доступ к нему?
NAT открывает временный доступ... А порты вашего "статический IP" :) используется в другом роуминге...
На всех IPv4 давно не хватает и у "бизнеса" только такой выход :p
Купите нормальный статический ip у нормального провайдера или APN, или что там у ваших есть.
 

pvvx

Активный участник сообщества
А для начала попробуйте использовать другие порты у вашего Web. Не 80 или 8080 типа... Иногда помогает на "статическом" IP :)
 

alfik777

Member
NAT открывает временный доступ... А порты вашего "статический IP" :) используется в другом роуминге...
На всех IPv4 давно не хватает и "бизнеса" только такой выход :p
т.е. все вопросы к провайдеру и с моей стороны ничего нельзя сделать?
 

pvvx

Активный участник сообщества
Когда купите статический ip, то следует сменить роутер на тот, который закроет ваш ESP всевозможными брандмауэрами и имеет опции ограничения трафика.
Иначе ваш сервер на ESP рухнет или будет виснуть каждый день (или чаще).
Есть и другой путь - отладить web, путем тестов. Для этого существуют множество тестовых online сервисов и разнообразных программ на комп.
Особое внимание стоит обратить на TIME_WAIT для открытия портов в TCP.
Так-же стоит проверить как ESP и вся цепочка коммутации поведет себя при работе через популярные прокси серверы. Они так-же обрезают и изменяют всё, включая размеры TCP пакетов...
Начальные тесты, на описанные фичи, до включения выхода на ESP в мир, вы можете произвести в своей локальной сети... чтобы убедиться - а стоит ли ESP выпускать в мир?
На сегодня нет ни одного подтверждения, что ESP проходит хоть один тест.
 

pvvx

Активный участник сообщества
На ESP неправильно работает даже простой tcp-сокет из-за ограничений по RAM и урезанного TCP стека. А груда NAT и прочих роутеров по пути следования таких TCP просто балдит.
 

alfik777

Member
Ну, собственно сначала и пробовал "локально", т.е. подключаясь ESP к домашнему роутеру. Когда , в основном, все опробовал, то, собственно, и перешел на реальное подключение через 3G- роутер . И тут загвоздочка... если WEB-серверу ждать клиента - то не дождешься, нужны какие то действия...
 

pvvx

Активный участник сообщества
Я точно не знаю, что с вашей сетью провайдера. Но если открыть любой RFC даже по TCP, то там канал – ip : port клиента <-> ip: port сервера должен поддерживаться не менее TIME_WAIT после разъединения. Это по нормативу 120 сек, но все его сокращают, вопреки документации.

Вот вы пробили со своей стороны NAT к клиенту. NAT слепил структуру обслуживания ip : port клиента <-> ip: port сервера, с перемаркировкой ip: port внутренней сети на внешнюю. Не всю же жизнь ему держать эту структуру, т.к. ip: port запросов меняются и у него не хватит ресурсов.

А с внешней стороны NAT не пробить – он не знает внутреннего получателя. Если вы прописали специальное статическое правило в роутере, то это тоже может ничего не дать, т.к. смотри “коммерция провайдеров”. И вы работаете через 3/4/5G/LTE, а там своя сеть, в которой IP сеть инкапсулируется. Для специального доступа без фич, там есть специальные “каналы” (обычно платные), которые выбираются по APN (https://ru.wikipedia.org/wiki/APN).

Это вкратце, без технических точностей, иначе надо писать статьи…
 

pvvx

Активный участник сообщества
Но в итоге, обычно, для нормального статического ip через GSM, необходимо купить специальный APN.
 

alfik777

Member
Это вкратце, без технических точностей, иначе надо писать статьи…
Мда... Чем глубже - тем дело темнее:)...

должен поддерживаться не менее TIME_WAIT после разъединения. Это по нормативу 120 сек, но все его сокращают, вопреки документации.
Да, с обрывами нужно разбираться конечно... Но на первом этапе хотелось бы чтобы просто задышало.. Ведь получается что реально совсем невозможно достучаться до сервера...



...
 

pvvx

Активный участник сообщества
Т.Е. статический IP -корень зла? Я могу проверить и динамическом.. почему-то уверен, что будет тоже самое.
Естественно - представьте как это происходит в сети, не ip, а провайдера. Он же не шлет все ip пакеты всем :)
Разгребает их по всем признакам и ему надо знать что куда и зачем.
А у вас пакеты от ESP с нарушениями TCP. И никаких дополнительных сервисов ваш роутер не обслуживает...
Ну, собственно сначала и пробовал "локально", т.е. подключаясь ESP к домашнему роутеру.
Подключаясь чем? Тестовой системой, к примеру apache-jmeter?
 

pvvx

Активный участник сообщества
И не стоит забывать: у прова - коммерция это главное. Один битик в номерке APN или типа и у вас снимаются ограничения на 5G и о чудо – трафик шкалит за пол гега в сек (может и больше, если связь хорошая). А если как у всех – до 50..100 мбит на 4/5G роутере с последней версией категории (CAT).
Т.е. очень многое зависит от тарифа и карточки на роутере...
 

pvvx

Активный участник сообщества
Для домашнего, бытовушного варианта, я сам использую статический ip в обычной опто-проводной сети. Там морок с этим у провов меньше. А все SGM соединяются по VPN с этим роутером в опто-проводной сети… И там как вам будет удобнее – все в одну частную сеть или раздельные. У меня стыкуются раздельные местные сети со своими локальными зонами ip.

И как показала практика – за 2 года VPN соединение дача-город очень стабильно, кроме собственных отключений-переключений и одни раз при обновлении городского роутера с дачи из-за кривости ПО на Android от ASUS. Пришлось ехать в город и передергивать питание… Но это 1 раз за 2 года, что можно считать, что работает изумительно...
При этом основные компоненты "Умного дома" работают на даче, а в городе практически только точка общей связи.
 
Сверху Снизу