Многоадресный DNS через SoftAP на IoT в Win10

634
Etan

Когда я подключаю свою плату Win10 IoT к WiFi, я могу подключиться к ее веб-интерфейсу через macOS через http://minwinpc.local:8080. Разрешение имени хоста происходит через многоадресную DNS, что можно наблюдать при запуске dns-sd -q minwinpc.local..

Такое же поведение можно наблюдать при подключении к плате Win10 IoT. В этом режиме точка доступа, подобная AJ_SoftAPSsidобъявленной на доске. После подключения к нему, еще раз, dns-sd -q minwinpc.local.разрешается его IP, и доступ к http://minwinpc.local:8080работе нормально из MacOS.

Однако все становится интересным, когда я вручную устанавливаю плату IoT для Win10 в режим SoftAP, например, с помощью пользовательского приложения UWP (в Powershell я не нашел способа использовать hostednetwork напрямую, кажется, что он поддерживает только WiFi Direct).

WiFiDirectAdvertisementPublisher^ p; p = ref new WiFiDirectAdvertisementPublisher(); p->Advertisement->ListenStateDiscoverability =  WiFiDirectAdvertisementListenStateDiscoverability::Intensive; p->Advertisement->IsAutonomousGroupOwnerEnabled = true; p->Advertisement->LegacySettings->IsEnabled = true; p->Advertisement->LegacySettings->Ssid = L"My-SSID"; PasswordCredential^ password = ref new PasswordCredential(); password->Password = L"123456789"; p->Advertisement->LegacySettings->Passphrase = password; p->Start(); 

Затем я добавляю приложение в автозапуск ( iotstartup add headless) и перезагружаюсь.

Когда я получаю доступ к устройству через обычный WiFi, все по-прежнему ведет себя как прежде. Однако, когда я подключаюсь к пользовательской SoftAP, я больше не могу разрешить адрес, так как многоадресный DNS больше не рекламирует. Интересно, что если я использую выделенный клиент Windows (не виртуальную машину на Mac), я все равно могу получить доступ и к, http://minwinpc.local:8080и к http://minwinpc:8080. В соответствии со статьей MSDN, указанной в https://stackoverflow.com/a/45619667, это ожидаемое поведение ( [...] Кроме того, SoftAP не обеспечивает разрешение DNS. [...] )

Один из способов обойти разрешение DNS - включить ICS. Когда я делаю это из IoT Windows Device Portal, перезагружаюсь и присоединяюсь к SoftAP с macOS, действительно я получаю 192.168.137.1 (плату IoT) в качестве DNS-сервера. Я также получаю поисковый домен mshome.net.

С включенным ICS поведение меняется двумя способами:

• Во-первых, Unicast DNS, похоже, теперь работает (Unicast DNS раньше не работал ни на начальном AJ_SoftAPSsidWiFi, ни на обычном WiFi).

dig minwinpc.local. @192.168.137.1

;; QUESTION SECTION: ;minwinpc.local. IN A  ;; ANSWER SECTION: minwinpc. 0 IN A 192.168.137.1 minwinpc. 0 IN A 172.20.10.7 

Кроме того, minwinpc.mshome.net.также рекламируется.

;; QUESTION SECTION: ;minwinpc.mshome.net. IN A  ;; ANSWER SECTION: minwinpc.mshome.net. 0 IN A 192.168.137.1 

Это означает, что теперь я могу получить доступ http://minwinpc.mshome.net:8080из macOS. Это также означает, что я могу получить доступ http://minwinpc.local:8080из Windows в VMware. Для обеих платформ я могу даже использовать, http://minwinpc:8080потому что поисковый домен автоматически перенаправляет его на http://minwinpc.mshome.net:8080.

Тем не менее, большая проблема здесь заключается в том, http://minwinpc.local:8080что не работает с macOS, причина в том, что .localдомен обрабатывается через многоадресный DNS.

• Второе изменение с включенной ICS касается многоадресной DNS. Действительно, dns-sd -q minwinpc.mshome.net.разрешается с ICS, но dns-sd -q minwinpc.local.все равно не работает вообще.

Однако, когда я регистрирую свой собственный сервис в DnssdServiceInstance, он рекламируется в домене local., когда просматривается dns-sd -B _mycustom._tcpвместо mshome.net..

Когда я решаю имя, назначенное на службу, используя dns-sd -L myname _mycustom._tcp, однако, я получаю minwinpc.local.домен, хотя ^ _ ^: myname._mycustom._tcp.local. can be reached at minwinpc.local.:12345 (interface 5).

Что является проблематичным, потому что minwinpc.local.не объявляется должным образом в многоадресном DNS ( minwinpc.mshome.net.вместо этого), и одноадресный DNS не сопровождается macOS для local.домена.


В конечном итоге все сводится к этому вопросу:

  • Как я могу получить локальный многоадресный DNS, работающий на интерфейсе SoftAP?

Многоадресный DNS отлично работает в начальной AJ_SoftAPSsidподключенной сети и работает нормально, если я подключаю плату к тому же WiFi, что и мой MacBook. Это не работает вообще над SoftAP без ICS. С ICS он размещает рекламу в другом домене, отличном от local.


Отказ от ответственности: Пожалуйста, обратите внимание, что все эти шаги являются неэффективными с текущей Win10 IoT. Требуется много терпения и перезагрузки. Кроме того, MacBook не должен быть подключен через Ethernet в дополнение к WiFi, чтобы избежать путаницы с процессом разрешения.

1
Спасибо за хорошо изученный и хорошо задокументированный вопрос. Вы пытались добавить .local к одноадресным DNS-доменам поиска в macOS? Похоже, ваша плата IoT для Win10 не рекламирует minwinpc.local через mDNS, но когда она действует как одноадресный DNS-сервер, она отвечает на minwinpc.local с правильной записью A. Добавление .local к поисковым доменам Mac должно привести к тому, что Mac попытается найти .local через одноадресный DNS в дополнение к стандартному mDNS. Spiff 6 лет назад 1
Есть ли у вас источник, который документирует, что добавление .local в качестве домена поиска приводит к одноадресному DNS? Я добавил его вручную, переопределяя mshome.net, но он все еще пытается подключиться через mDNS, что не удается. Etan 6 лет назад 0
RFC 6762, который был написан инженерами Apple Bonjour, предполагает, что добавление .local к поисковым доменам будет работать следующим образом, в нижней части страницы 5 (в середине раздела 3). Spiff 6 лет назад 1
Похоже, что необходимы дополнительные шаги: См. «Включение одноадресного разрешения .local на клиентском компьютере» на https://technet.microsoft.com/en-us/library/cc708087(v=ws.10).aspx (« Подключение клиентов Macintosh OS X 10.3 и более поздних версий к сети Windows Small Business Server 2003 ». Я не могу настроить параметры клиента здесь, так как я не контролирую все клиенты, и та же проблема существует для клиентов iOS. Я задаюсь вопросом: почему все отлично работает в первоначальной «AJ» при загрузке SoftAP, но начинает ломаться в моей собственной SoftAP? Windows явно имеет функциональность mDNS через SoftAP ... Etan 6 лет назад 0

0 ответов на вопрос

Похожие вопросы