Поддержка mDNS для WebRTC в Google Chrome M74

#webrtc #mdns #chrome-canary

#webrtc #mdns #chrome-canary

Вопрос:

Google Chrome запланировал к выпуску M74, что поддержка mDNS для локальных кандидатов ICE будет включена в браузер для повышения конфиденциальности. Эта функция контролируется с помощью флага функции -включить-webrtc-скрыть-локальные-ip-адреса-с-mdns ;

флаг chrome

Я пытаюсь протестировать эффект поддержки mDNS для пользователей WebRTC в Google Chrome. Я тестирую с помощью своего пользовательского приложения WebRTC и выполняю приведенные ниже тестовые шаги перед выполнением вызова;

1. Клиенты WebRTC входят в систему с использованием идентичных широковещательных доменов mDNS,

2-MDNS в Google Chrome Canary включен с помощью флага -enable-webrtc-hide-local-ips-with-mdns для обеих сторон,

После того, как вызов был сгенерирован, я увидел, что агенты WebRTC заменяют свои частные IP-адреса на анонимные локальные IP-адреса, за которыми следует «.local»;

mDNS IP-адреса

Также я обнаруживаю, что генерируется сигнализация вызова и медиапоток выполняется успешно, но кандидаты ICE выбираются из кандидатов на ретрансляцию (используемый сервер TURN), а не из кандидатов на хост;

внутренние компоненты webrtc

Я думаю, что стороны не могут разрешить свои анонимные IP-адреса и выбрать установление связи на существующем сервере TURN (используйте кандидатов на ретрансляцию).

Я уверен, что клиенты находятся в одной подсети, но почему они не могут разрешить анонимные IP-адреса друг друга? Я знаю, что узлы транслируют свои анонимные IP-адреса через порт 5353 mDNS, и я ожидал, что они легко разрешат IP-адреса. Есть ли что-нибудь, что я пропустил во время тестирования?

Мы будем высоко признательны за вашу помощь. Большое спасибо

Комментарии:

1. похоже, что у вас, возможно, заблокирован UDP — кандидатов srflx нет, а кандидатами на ретрансляцию, похоже, являются TURN / TLS (приоритет кандидата 7935 >> 24 равен 0)

2. также, похоже, были проблемы в Chrome, см. bugs.chromium.org/p/chromium/issues/detail?id=937992#c3

3. Привет, @PhilippHancke, спасибо за руководство. Я думаю, что это было бы ошибкой. Я использовал Chrome Canary для тестирования во время сценария ошибки. Затем я попробовал это с Chrome M73, и вызов успешно установлен через хост-кандидатов. Затем я попробовал это, чтобы понять, почему Canary выставил use relay, но он также успешно установился, и я уверен, что я ничего не менял в конфигурации. Я подозревал, что кэши обоих одноранговых узлов обновляются во время успешного запуска Google Chrome M73, а затем Canary использует эти кэшированные значения для разрешения IP-адресов.