1. Есть устройство, которое подключается в сеть и имеет какой-нибудь статический адрес.
2. Есть прога от производителя устройства, которая помогает винде обнаружить его. Она узнает IP адрес и что-то подстраивает в винде.
Адрес постоянный и уже после первого обнаружения он конечно известен, однако каждый раз после перезагрузки системы её необходимо запускать чтобы с устройством можно было соединиться.
Хочу реализовать её функционал в своей программе. Выяснил, что она шлет broadcast пакет по определенному порту, устройство отвечает ей пакетом, в котором сообщает свой MAC адрес явным образом. Таким образом она узнает IP адрес и MAC адрес. Далее она добавляет запись в ARP таблицу.
Сделал у себя тоже самое. Однако после работы моей проги в Wireshark видно, что пакеты уходят на MAC адрес шлюза и конечно связь с устройством не устанавливается. При этом после её работы пакеты уходят на правильный MAC адрес. Получается, она делает что-то ещё. Но что???
3S>Хочу реализовать её функционал в своей программе. Выяснил, что она шлет broadcast пакет по определенному порту, устройство отвечает ей пакетом, в котором сообщает свой MAC адрес явным образом. Таким образом она узнает IP адрес и MAC адрес. Далее она добавляет запись в ARP таблицу.
Не она. ARP автоматически пополняется.
3S>Сделал у себя тоже самое. Однако после работы моей проги в Wireshark видно, что пакеты уходят на MAC адрес шлюза и
А ты точно broadcast шлешь? А почему оно в шлюз уходит?
Покажи wireshark дамп работы этой проги и для сравнения wireshark дамп работы твоей проги.
Здравствуйте, Stanislaw K, Вы писали:
SK>Не она. ARP автоматически пополняется.
Думаю, ARP автоматически пополняется динамическими записями, а новая запись статическая.
SK>А ты точно broadcast шлешь? А почему оно в шлюз уходит?
Разумеется не broadcast в шлюз уходит и разумеется я broadcast посылаю, ведь мне устройство отвечает.
В том и дело, что broadcast пакеты до него доходят, а адресованные именно ему пакеты уходят в шлюз.
Лог Wireshark на работе остался, завтра могу показать.
3S>1. Есть устройство, которое подключается в сеть и имеет какой-нибудь статический адрес.
Адрес-то принадлежит текущей сети? Понятное дело, что при использовании DHCP или RA это было бы так. А этот статический откуда берётся? Задан производителем и никем никогда не менялся?
3S> Однако после работы моей проги в Wireshark видно, что пакеты уходят на MAC адрес шлюза
Ну значит так сказано в таблице маршрутизации. Что опять же возможно, если адрес устройства не принадлежит текущей сети, а следовательно должен маршрутизироваться.
Проверяй таблицу. И если это подтвердится (и нет возможности настроить нормальный IP-адрес на устройстве), то добавляй в таблицу link-local запись для данного IP.
Здравствуйте, 3m-soft, Вы писали:
3S>Здравствуйте, Stanislaw K, Вы писали:
SK>>Не она. ARP автоматически пополняется.
3S>Думаю, ARP автоматически пополняется динамическими записями, а новая запись статическая.
SK>>А ты точно broadcast шлешь? А почему оно в шлюз уходит?
3S>Разумеется не broadcast в шлюз уходит и разумеется я broadcast посылаю, ведь мне устройство отвечает. 3S>В том и дело, что broadcast пакеты до него доходят, а адресованные именно ему пакеты уходят в шлюз. 3S>Лог Wireshark на работе остался, завтра могу показать.
Здравствуйте, watchmaker, Вы писали:
W>Адрес-то принадлежит текущей сети? Понятное дело, что при использовании DHCP или RA это было бы так. А этот статический откуда берётся? Задан производителем и никем никогда не менялся?
Адрес НЕ принадлежит текущей сети, отсюда и проблемы. Адрес задан производителем. Технически я его изменить могу, потому что я обладаю необходимой квалификацией, но мне им не пользоваться. Пользоваться им будут те, кто ТОЧНО его настроить не смогут. Поверьте мне на слово — ТОЧНО НЕ СМОГУТ!!! Производитель, видимо, тоже это понимает, потому и выпустил поисковую утилиту.
W>Ну значит так сказано в таблице маршрутизации. Что опять же возможно, если адрес устройства не принадлежит текущей сети, а следовательно должен маршрутизироваться. W>Проверяй таблицу. И если это подтвердится (и нет возможности настроить нормальный IP-адрес на устройстве), то добавляй в таблицу link-local запись для данного IP.
Об этом можно поподробнее, пожалуйста. Возможно, прога производителя это и делает.
Здравствуйте, watchmaker, Вы писали:
W>Ну значит так сказано в таблице маршрутизации. Что опять же возможно, если адрес устройства не принадлежит текущей сети, а следовательно должен маршрутизироваться. W>Проверяй таблицу. И если это подтвердится (и нет возможности настроить нормальный IP-адрес на устройстве), то добавляй в таблицу link-local запись для данного IP.
Всё. Ларчик то просто открывался. Просто добавь воды маршрут. Спасибо большое.