Windows 7 не принимает трансляции с IP-адреса 0.0.0.1 - PullRequest
0 голосов
/ 01 февраля 2011

у нас мало сетевых устройств, которые поставляются с IP-адресом от 0.0.0.1 до , гарантируют , что они никогда не столкнутся ни с каким другим устройством в своей новой среде (таким образом, ни одно из 10.xxx, 172.16.xx или192.168.xx диапазоны) до конфигурации.DHCP не является решением, поскольку в поле может отсутствовать DHCP-сервер.

Устройства будут прослушивать широковещательные рассылки UDP и отвечать широковещательными рассылками, пока им не будет присвоен новый IP-адрес.

Этоработал нормально с Windows XP - но отстой с Windows 7: программа config не получает пакеты ответов от устройств, которые все еще имеют 0.0.0.1.Wireshark видит пакеты, затем они сбрасываются системой.

Вопрос: Есть ли причина (RFC?), Которая на самом деле запрещает использовать этот адрес в локальномсреда?Или просто MS был слишком осторожен? Где я могу прочитать, почему они считают этот адрес "недействительным"?Какие диапазоны действительно тоже недействительны сейчас?

Есть идеи об обходе ПК (Win 7)?

Я знаю, что это не рекомендуетсяиспользовать адреса 0.xxx для рабочих мест , но по этой самой причине - имея неиспользуемый адрес - он отлично работает.

Редактировать: есть устройство под названием "Netburner""которые могли столкнуться с подобной проблемой, согласно их форуму.См .: http://forum.embeddedethernet.com/viewtopic.php?f=5&t=612&p=2198 Кто-нибудь, по стечению обстоятельств, знает некоторую справочную информацию?

Ответы [ 2 ]

1 голос
/ 01 февраля 2011

Звучит так, как будто ваше приложение для настройки прослушивает широковещательные пакеты на всех сетевых интерфейсах и ожидает получения пакетов из внешних подсетей.

Это должно не работать - ОС должна передавать только широковещательные пакеты из подсетей, в которых включен каждый сетевой интерфейс, а не из всех подсетей в одном физическом (например, Ethernet) сегменте. Я вполне уверен, что в противном случае нарушается поведение протокола WRT.

Есть два способа справиться с этим:

  • Убедитесь, что ваш сетевой интерфейс имеет IP-адрес в целевой подсети. Вы можете иметь более одного IP-адреса для каждой сетевой карты, чтобы не мешать нормальной работе сети.

  • Сконфигурируйте или измените ваше приложение для использования необработанных сокетов, таких как Wireshark. Имейте в виду, однако, что это отменяет все обычные проверки и противовесы, и его следует избегать, так как это может привести к поведению, которое почти невозможно диагностировать - вот почему его осуждают администраторы сетевых сетей.

0 голосов
/ 01 февраля 2011

Можете ли вы легко добавить новые записи таблицы маршрутизации на машины Windows?Windows должна знать, какой интерфейс использовать при маршрутизации широковещательного пакета в сеть 0.0.0.x.

На компьютерах Unix, с которыми я знаком, есть таблица маршрутизации, которая отображает записи сетевой / сетевой маски либо на шлюзы, либо на интерфейсы (если сеть является локальной сетью).Локальная сеть (192.168.0.0/16 для моей домашней сети) отправляется на интерфейс eth0.Все остальное 0.0.0.0/0 отправляется на определенный компьютер шлюза 192.168.0.1.

Если моя машина отправила широковещательное UDP-сообщение в сеть 0.0.0.0/24 (другими словами, широковещательная UDP-передача отправлена ​​0.0.0.255, тогда моймашина будет пересылать пакет на машину шлюза (которую он может найти через arp). Коммутаторы в середине не будут передавать пакет другим сетевым устройствам, потому что установлен MAC-адрес.

Если мойУ машины была еще одна запись маршрутизации для 0.0.0.0/24 на локальный интерфейс, затем моя машина отправляла пакет по проводной сети с использованием широковещательной группы Ethernet, а коммутаторы пересылали пакет на все соединения. (Да! Так же, как концентраторы в 90-х годах!:)

Итак, я полагаю, вам нужно добавить запись маршрутизации для 0.0.0.0/24 на ваши клиентские машины, чтобы они могли правильно адресовать широковещательный пакет.

...