Використання Avahi на DreamPlug Ubuntu з iPad


17

У мене є наступна дуже своєрідна проблема використання Avahi на DreamPlug (який є плагінним комп'ютером під керуванням Ubuntu Jaunty).

Провівши дні на це, я думаю, що мені вдалося звузити проблему.

DreamPlug виступає в якості точки доступу Wi-Fi і має ім'я хоста plugта IP-адресу 192.168.1.1(яка встановлена ​​в обох /etc/hostsі /etc/hostname) і працює lighttpd.

Тепер мій Mac працює відразу з доступом http://plug.localдо Chrome, однак якщо спробувати завантажити http://plug.localiPad, він не працює. Тобто це не працює, поки я не завантажу сторінку на робочий стіл.

Чомусь iPad ніколи не може вирішити ім'я хоста, поки ім'я хоста вперше не вирішено на Mac ..., що дивно, оскільки між iPad та Mac немає ніякого зв’язку, крім того, що вони підключені до та ж точка доступу (DreamPlug).

Отже, щоб ще раз уточнити: Safari на iPad буде висіти (поки він не повідомить, що перегляд не вдався) під час доступу, http://plug.localякщо я не отримаю доступ http://plug.localна Mac, не запускаю ping plug.local, не роблю ssh root@plug.localабо в основному нічого іншого, що вирішує ім'я хоста, і в цей момент iPad миттєво вирішує ім'я хоста і воно почне працювати належним чином.

Якщо я розумію правильно, під час підключення iPad вони надсилають запит на дозвіл plug.local. З будь-якої причини DreamPlug цей запит ігнорує (або він ніколи не отримується). Однак Mac все ж вдається транслювати свій запит. Він передає запит на дозвіл і DreamPlug передає результат plug.local-> 192.168.1.1. Потім iPad отримує цей результат (який справді призначений для Mac), і тоді вони можуть успішно вирішити.

Буду радий надати мої avahi-daemon.confабо інші конфігураційні файли за запитом.

Оновлення. Зараз мені вдалося використовувати Wireshark і з'ясував, що iPad дійсно передає запит у мережу.

Я захопив як пакет, що DID спричинив відповідь від Avahi, так і той, який НЕ.

Вони обидва видаються абсолютно однаковими, різниця лише в тому, що той, який не вдався, вказав додатковий RR типу OPT... Я поняття не маю, що таке OPTзапис. Можливо, Avahi OPTчомусь не любить запити DNS із доданими RR?

Ось два скріншоти, зняті з Wireshark. Перший показує "хороший" mDNS-запит, який надсилається з настільного комп'ютера (у цьому випадку пристрій викликається runway.local). Цей запит працює нормально, і сервер (at 192.168.1.1) відповідає відразу:

Запит mDNS, який працює

Ось приклад відповіді, яка повертається з runway.local:

введіть тут опис зображення

Тим часом, тут є другий DNS - запит , який був відправлений з Статкевич ж ім'я хоста, runway.local. У цьому випадку запит, як видається, просто ігнорується (у будь-якому випадку, відповідь на цей запит DNS ніколи не надходить):

введіть тут опис зображення

Намагаючись відстежити, що саме в запиті iPad викликає проблему, виявляється, що два пакети майже однакові. Єдина відмінність між запитами mDNS, що надсилаються з робочого столу (на базі ОС X) та iPad, полягає в тому, що iPad додає запис OPTресурсу в нижній частині запиту DNS.

Питання полягає в тому, яке значення запису ресурсів - і чи це це - чи це щось інше - це відповідальність за ігнорування цього запиту DNS від Avahi.

ОНОВЛЕННЯ Це міг бути проривом, який я шукав:

Я запускав avahi-демон з прапором --debug, і я помітив багато "Недійсний пакет запитів". повідомлення. Це призвело мене до цієї сторінки: http://avahi.org/ticket/284, яка здається, що це відома проблема (хоч та, яка повинна бути вирішена).

Конкретно:

Tcpdump змушує мене вважати, що це пов'язано з Mac OS 10.6, що використовує RFC2671 для додавання інформації в додатковий розділ даних запитів DNS. Зокрема, він надає "розмір корисної навантаження UDP" (в моєму випадку 1440) як підказку для максимального розміру пакетів відповідей. [...] Avahi вважає запити з непустими додатковими розділами даних недійсними, де перевіряє, що AVAHI_DNS_FIELD_ARCOUNT! = 0 перед тим, як генерувати недійсне повідомлення пакета запитів.


Я повинен додати, що якщо я ввійду в DreamPlug ака plugчерез SSH і виконую команду, ping 224.0.0.251яка є адресою багатоадресної передачі mDNS, я отримую результат connect: Network is unreachable- не впевнений, чи це має відбуватися, але може бути корисним для всіх, хто може допомогти.
jon

Оновлення: я запускав avahi-daemon з прапором --debug, і я помітив багато "Недійсний пакет запитів". повідомлення. Це призвело мене до цієї сторінки: avahi.org/ticket/284, яка здається, що це відома проблема (хоч та, яка повинна бути вирішена). Зокрема: tcpdump змушує мене вважати, що це пов'язано з Mac OS 10.6, що використовує RFC2671 для додавання інформації в додатковий розділ даних запитів DNS. Зокрема, він надає "розмір корисної навантаження UDP" (в моєму випадку 1440) як підказку для максимального розміру пакетів відповідей.
jon

Схоже, у вас там відповідь. Чи можете ви оновити свій Avahi на DreamPlug?
Білл Вайс

3
А як із використанням справжнього сервера DNS крім Avahi? Щось на зразок прив’язувати / називати. Ви пробували робити тис?
jap1968

2
Фантастичне запитання з великою кількістю деталей! Якщо ви це зрозумієте, напишіть власну відповідь і позначте її відміткою - це допомагає іншим і навіть може дати вам бали реп.
Май

Відповіді:


1

Я не часто зустрічаю СФ так часто, але я можу помітити, що це питання привернуло неабияку увагу, тому дозвольте мені просто узагальнити свої висновки тут і, сподіваюся, запропонувати щось рішення тим, хто відчуває ту саму проблему: -

Здається, що це помилка з версією Avahi, яка постачається з Ubuntu Jaunty ( http://avahi.org/ticket/284 ), пов'язаною з подачею розміру корисної навантаження UDP, що, ймовірно, призведе до більш змінної зміни на Специфікація mDNS (хоча я сама цього не читала). Як я пояснював у коментарях до оригінального питання, я намагався оновити свою версію Avahi, але мої навички Linux - це не те, якими повинні бути, і мені не вдалося змусити її працювати. (Так чи інакше, запуск 3-річної непідтримуваної ОС дійсно все ж не рекомендується ...)

Врешті-решт я взяв занурення, витер SD-карту DreamPlug та встановив на ньому Debian Squeeze, який спрацював чудово (хоча і лише з iOS 5.0+). Дискусія про те, як змінити ОС DreamPlug, виходить за рамки цього питання, але до чого це все зводиться наприкінці дня - це застаріла версія Avahi. Використовуйте новішу версію, і вам слід добре!

Удачі!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.