groundbreakingfox 0 November 10, 2025 Posted November 10, 2025 · Report post Доброго времени! Каким образом устройства пром. автоматики при прямом подключении патчкордом к ПК определяют, что нужно перейти в режим DHCP сервера? Обычно так сделано для удобной первоначальной конфигурации устройств. Quote Share this post Link to post Share on other sites More sharing options...
Stepanov 50 November 10, 2025 Posted November 10, 2025 · Report post Чтобы не копировать много букв ибо правильного ответа в двух словах на этот вопрос нет - вот тут можно получить достаточно развернутый ответ https://lmarena.ai Quote Share this post Link to post Share on other sites More sharing options...
kpv 20 November 10, 2025 Posted November 10, 2025 · Report post 1 hour ago, groundbreakingfox said: для удобной первоначальной конфигурации устройств. может потому что они в таком режиме (или при сбросе в default) отгружаются от производителя? Quote Share this post Link to post Share on other sites More sharing options...
Stepanov 50 November 10, 2025 Posted November 10, 2025 · Report post (изменено) LwIP по умолчанию реализован механизм автоопределения линка (link-local autoconfiguration) через протокол APIPA (Automatic Private IP Addressing). Вот как это работает: При старте интерфейса LwIP пытается получить адрес по DHCP Если DHCP-сервер не отвечает (что происходит при прямом подключении патч-кордом к ПК), включается режим AUTOIP В этом режиме устройство случайным образом выбирает адрес из диапазона 169.254.1.0/16 Одновременно с этим запускается протокол ARP-зондирования, чтобы убедиться в уникальности выбранного адреса После успешного назначения адреса устройство может быть доступно по этому адресу Этот механизм реализован в файле autoip.c стека LwIP и включается при определении макроса LWIP_AUTOIP (обычно по умолчанию включен). Quote Share this post Link to post Share on other sites More sharing options...
kpv 20 November 10, 2025 Posted November 10, 2025 · Report post 2 minutes ago, Stepanov said: ибо правильного ответа в двух словах на этот вопрос нет да почему же нет? там простой и понятный алгоритм, а не в стиле чатгпт "ой, извините, вы действительно правы, что операцию на аппендицит надо делать с правой стороны, а не с левой. Я сейчас всё переделаю". Не получили dhcp ответ - берём фиксированный ip, описанный в документации. Или два ip из двух разных сетей. ещё один вариант - multihoming когда на интерфейсе несколько ip адресов и один из них получаем по dhpc Если устройство уже было настроено, но штатно не работает, то по истечении таймаута обмена также может быть иницирован протокол входа в инициализацию (dhcp или автоконфигурирование). p.s. надо только иметь в виду, что если это не промышленный интернет, а общедоступная сеть (какой-нибудь конвертор для проброса протокола через IP) - такое поведение чревато. Обязательно найдётся ленивый инженер, который не прочитав документацию воткнёт голой жопой такой контроллер, а там пароль admin/admin или уже настроенный контроллер штатно известной последовательностью можно переконфигурировать на новые настройки и получить полный доступ. Quote Share this post Link to post Share on other sites More sharing options...
Stepanov 50 November 10, 2025 Posted November 10, 2025 · Report post 22 minutes ago, kpv said: там простой и понятный алгоритм, Вы описываете устройство как DHCP‑клиента, а на самом деле устройство действует как DHCP‑сервер при первоначальной конфигурации. Quote Share this post Link to post Share on other sites More sharing options...
kpv 20 November 10, 2025 Posted November 10, 2025 · Report post а, ну если патчкордом, то да, надо ещё компу адрес выдать, чтобы можно было обмен сразу начать, но дальше алгоритмы точно такие же. DHCP - это обычная служба, её можно выключать и включать. Но включать надо ОЧЕНЬ аккауратно. если два DHCP сервера окажутся в одной сети - искать "глючащее" устройство сложновато будет. после поднятия линка надо сразу ловить dhcp discover запрос на адрес. если dhcp discover запрос не пришёл - dhcp сервер выключать. если же запрос пришёл, но на него никто не ответил, то ответить самим спустя самый длительный интервал, который возможен. Потом желательно проверить широковещательным ARP запросом нет ли в сети ещё кого, а также мониторить чужие dhcpoffer и сразу же выключать свой dhcp server в таких случаях Quote Share this post Link to post Share on other sites More sharing options...
kpv 20 November 10, 2025 Posted November 10, 2025 · Report post 1 hour ago, Stepanov said: При старте интерфейса LwIP пытается получить адрес по DHCP Если DHCP-сервер не отвечает (что происходит при прямом подключении патч-кордом к ПК), включается режим AUTOIP комп будет ждать, пока ему ответит устройство, а устройство будет ждать, пока ему комп выдаст адрес. оба отвалятся по таймауту. Quote Share this post Link to post Share on other sites More sharing options...
Stepanov 50 November 10, 2025 Posted November 10, 2025 · Report post Верно. Вот наверное о таких моментах ТС и интересуется. Quote Share this post Link to post Share on other sites More sharing options...
groundbreakingfox 0 November 11, 2025 Posted November 11, 2025 (edited) · Report post 7 hours ago, Stepanov said: Верно. Вот наверное о таких моментах ТС и интересуется. 8 hours ago, kpv said: комп будет ждать, пока ему ответит устройство, а устройство будет ждать, пока ему комп выдаст адрес. оба отвалятся по таймауту. Спасибо! Я думал, что есть способ без таймаутов, т.к. самый очевидный. Пока сделал переключение на DHCP сервер по удержанию кнопки непродолжительное время. Если клиента нет - переход на текущие сетевые настройки. По таймауту - есть риск что два DHCP в одной сети окажутся. Edited November 11, 2025 by groundbreakingfox Дополнил Quote Share this post Link to post Share on other sites More sharing options...