iPadでのDreamPlug UbuntuでのAvahiの使用


17

DreamPlug(Ubuntu Jauntyを実行しているプラ​​グコンピューター)でAvahiを使用すると、次の非常に特殊な問題が発生します。

これに何日も費やした後、問題を絞り込むことができたと思います

DreamPlugはWiFiアクセスポイントとして機能し、ホスト名plugとIPアドレス192.168.1.1(との両方/etc/hostsで設定/etc/hostname)を持ち、lighttpdを実行します。

現在、私のMac http://plug.localはChrome でアクセスするとすぐに動作しますhttp://plug.localが、iPadにロードしようとしても動作しません。つまり、デスクトップにページをロードするまで機能しません

何らかの理由で、ホスト名が最初にMacで解決されるまで、iPadはホスト名を解決できません... iPadとMacの間に接続されているという事実以外に接続がないため、これは奇妙です同じアクセスポイント(DreamPlug)。

だからもう一度明確にするために:iPad上のSafariは、Macでhttp://plug.localアクセスhttp://plug.localするか、実行ping plug.localするssh root@plug.localか、基本的にホスト名を解決する他の何かを実行しない限り、アクセスするとハングします(ブラウジングが失敗したと報告されるまで)。ホスト名およびそれはきちんとはたらき始めます。

私の理解が正しければ、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、何らかの理由でRRが添付されたDNSクエリを好まない可能性がありますか?

以下は、Wiresharkから取得した2つのスクリーンショットです。最初の例は、デスクトップコンピューターから送信された「良好な」mDNS要求を示しています(この場合、デバイスが呼び出されますrunway.local)。このクエリは正常に機能し、サーバー(192.168.1.1)はすぐに応答します。

動作するmDNSクエリ

から返される応答の例を次に示しrunway.localます。

ここに画像の説明を入力してください

一方、これは同じホスト名に対してiPadから送信された2番目のDNSクエリrunway.localです。この場合、要求は単純に無視されるようです(いずれにしても、このDNSクエリに対する応答は受信されません)。

ここに画像の説明を入力してください

問題の原因となっているiPadリクエストの内容を追跡しようとすると、2つのパケットはほとんど同一であるように見えます。デスクトップ(OS Xを実行)とiPadから送信されるmDNSクエリの唯一の違いは、iPadが追加することですOPTDNS要求の下にリソースレコード。

質問は次のとおりです。リソースレコードの重要性は何ですか(これはこれですか?)、またはそれは別のものですか?このDNS要求がAvahiによって無視される原因となります。

更新これは私が探していたブレークスルーかもしれません:

--debugフラグを使用してavahi-daemonを実行していると、多くの「無効なクエリパケット」に気付きました。メッセージ。これにより、次のページに移動しました:http : //avahi.org/ticket/284これは既知の問題であると思われます(ただし、解決されるはずです)。

具体的には:

tcpdumpは、これがMac OS 10.6がRFC2671を使用してDNSクエリの追加データセクションに情報を追加することによるものだと信じさせます。具体的には、応答パケットの最大サイズのヒントとして「UDPペイロードサイズ」(私の場合は1440)を提供しています。[...] Avahiは、無効なクエリパケットメッセージを生成する直前にAVAHI_DNS_FIELD_ARCOUNT!= 0をチェックする、空でない追加データセクションを持つクエリを無効と見なします。


plugSSH 経由でDreamPlugにログインしping 224.0.0.251、mDNSマルチキャストアドレスであるコマンドを実行すると、結果が得られることを追加する必要connect: Network is unreachableがあります。
ジョン

更新:--debugフラグを使用してavahi-daemonを実行していると、多くの「無効なクエリパケット」に気付きました。メッセージ。これが私をこのページに導きました:avahi.org/ticket/284これは既知の問題であると思われます(ただし、解決されるはずです)。具体的に:tcpdumpは、これがDNSクエリの追加データセクションに情報を追加するためにRFC2671を使用するMac OS 10.6によるものだと信じさせます。具体的には、応答パケットの最大サイズのヒントとして「UDPペイロードサイズ」(私の場合は1440)を提供しています。
ジョン

答えがあるようです。DreamPlugでAvahiをアップグレードできますか?
ビルヴァイス

3
Avahiとは別に実際のDNSサーバーを使用するのはどうですか?bind / namedのようなもの。tisをやってみましたか?
jap1968

2
多くの詳細を含む素晴らしい質問!あなたがそれを理解したら、あなた自身の答えを書いて、チェックマークでそれをマークしてください-これは他の人を助けて、あなたに代表ポイントを与えるかもしれません。
メイ

回答:


1

私はそれほど頻繁にSFに出かけることはありませんが、この質問がかなりの注目を集めていることがわかります。そこで、ここで私の発見を要約し、同じ問題を経験している人たちに何らかの解決策を提供したいと思います。

これは、Ubuntu Jaunty(http://avahi.org/ticket/284)に同梱されているAvahiのバージョンのバグであるようです。 mDNS仕様(私は自分で読んでいませんが)。元の質問へのコメントで説明したように、Avahiのバージョンをアップグレードしようとしましたが、Linuxのスキルは本来あるべきものではなく、機能させることができませんでした。(いずれにしても、3年前のサポートされていないOSを実行することは、とにかくお勧めしません...)

最後に、思い切ってDreamPlugのSDカードを消去し、Debian Squeezeをインストールしました。これは正常に機能しました(iOS 5.0以降のみ)。DreamPlug OSを変更する方法についての議論はこの質問の範囲外ですが、結局のところ、Avahiの古いバージョンです。新しいバージョンを使用すれば大丈夫です!

幸運を!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.