Назад | Перейти на главную страницу

Какие настройки использует Windows для определения сетевого расположения?

В Windows существует концепция определения местоположения в сети (NLA), что означает, что вы можете настроить сеть как «общедоступную» (т.е. домашнюю / рабочую), «частную» и т. Д.

Какую информацию он использует для «отпечатка пальца» сети с этой целью?

Источник: http://msdn.microsoft.com/en-us/library/ms740558%28VS.85%29.aspx

Осведомленность о сетевом местоположении (NLA) поставщик услуг жизненно важен для компьютеров или устройств, которые могут перемещаться между разными сетями, а также для выбора оптимальных конфигураций, когда доступно более одной. Например, беспроводной компьютер, перемещающийся между физическими сетями, может использовать NLA для определения правильной конфигурации на основе информации о доступном сетевом соединении. NLA также оказывается полезным, когда многосетевой компьютер физически подключен к одной сети, а также подключен к другой сети через коммутируемое соединение или туннель.

В прошлом разработчикам приходилось получать информацию о логическом сетевом интерфейсе и, следовательно, принимать решения о подключении к сети на основе множества разрозненных сетевых данных. В этих обстоятельствах разработчики должны были выбрать соответствующий сетевой интерфейс на основе IP-адреса, подсети интерфейса, имени системы доменных имен (DNS), связанного с интерфейсом, MAC-адреса сетевой карты, имени беспроводной сети или другая сетевая информация. NLA решает эту проблему, предоставляя стандартный интерфейс для перечисления информации о подключении к логической сети, сопоставления ее с информацией о физическом сетевом интерфейсе и последующего уведомления, когда ранее возвращенная информация становится недействительной.

NLA предоставляет следующую информацию о сетевом местоположении:

  • Логическая сетевая идентификация

    NLA сначала пытается идентифицировать логическую сеть по ее доменному имени DNS. Если логическая сеть не имеет доменного имени, NLA идентифицирует сеть по настраиваемой статической информации, хранящейся в реестре, и, наконец, по адресу своей подсети.

  • Логические сетевые интерфейсы

    Для каждой сети, к которой подключен компьютер, NLA предоставляет имя адаптера, которое однозначно идентифицирует физический интерфейс, такой как сетевая карта, или логический интерфейс, такой как соединение RAS. Затем AdapterName можно использовать с функциями, доступными в IP Helper API, для получения дополнительных характеристик интерфейса.

NLA реализует логическую сеть как класс обслуживания со связанным идентификатором GUID и свойствами. Каждая логическая сеть, для которой NLA возвращает информацию, является экземпляром этого класса обслуживания.

На основе недавних экспериментов (с Server 2012, но я подозреваю, что более ранние версии аналогичны) в статически настроенных сетях, не являющихся доменом, служба NLA использует адрес канального уровня (MAC) шлюза по умолчанию для идентификации сети.

Детали неясны, хотя полагаю, что их можно проработать с помощью сетевого анализатора. Если настроенный шлюз по умолчанию не отвечает, NLA не распознает сеть, поэтому определенно выполняет какой-то запрос. (То есть вы не можете просто ввести фиктивный адрес шлюза или даже фиктивный адрес шлюза плюс статическую запись arp; MAC-адрес шлюза, связанный с конкретной сетью, должен фактически ответить, чтобы NLA решило, что адаптер подключен в эту сеть.)

Смотрите также моя запись в блоге как обмануть Windows 2012 в назначении адаптера для уникальной сети.

Если адаптеру адрес назначается DHCP, логика может быть другой. Я еще не изучал это. Логика доменной сети задокументирована в соответствии с существующими ответами.