タグ付けされた質問 「mdns」

3
Bonjourの使用方法は?
最初に、Bonjourは正確に何をしますか(以下に書かれた私の推測を読んでください)? ここで、Bonjourを使用すると、IPネットワーク上のコンピューター、デバイス、およびサービスを自動検出できることがわかりました。しかし、「IPネットワーク上のデバイスを検出する」だけでなく、Bonjourが実行されているデバイスにIPアドレスを割り当ててIPネットワークを作成することも考えました。私は正しいですか? そして、私はまだ本質を見逃しています。次のように機能しますか?まず、デバイス(ラップトップなど)を物理的に接続し、潜在的に相互に通信できるようにします。次に、Bonjourを実行しているラップトップでは、その結果、これらのラップトップがIPアドレスを自動的に割り当てます。そのため、ラップトップ(Bonjourが実行されている場所)がIPネットワークを構築します。このように機能しますか? または、Bonjourを実行しているコンピューターがサービスとは見なされず、Bonjourがこのコンピューターで実行されているからといって、それ自体をブロードキャストしません。つまり、コンピューターで実行されているアプリケーションは、Bonjourを使用して自分自身をブロードキャストする必要があるということです。そのため、(コンピュータではなく)自分自身をブロードキャストするアプリケーションであり、自動的には実行されません(アプリケーションは自分で明示的にブロードキャストする必要があります)。正しいですか? アプリケーションはどのくらい正確にブロードキャストできますか?コマンドラインを使用してサービスを登録できます(Bonjourを使用するすべてのアプリケーションが新しいサービスが登場したことを認識できるように)。 さらに、Bonjourによって作成されたIPネットワークを使用するアプリケーションが必要です。そのために、アプリケーションはネットワークに存在するデバイス/サービスを知る必要があります。より詳細には、アプリケーションにサービスのリストが必要です。リスト内の各サービスには、名前、サービスが実行されているIPアドレス、およびアプリケーションが使用するポートが必要です。Bonjourは何らかの方法でこの情報を提供できますか?その場合、どのように正確に機能するか。私のプログラムはどのようにしてBonjourからこの情報を取得できますか?私のプログラムは、Bonjourによって作成され、上記の情報を含むファイルを読み取ることができますか?この情報を取得するためにコマンドラインでいくつかのコマンドを使用できますか? ファイル、環境変数、またはコマンドラインのコマンドからサービスに関する情報にアクセスすることに特に興味があります。私には、これらのオプションが最も簡単なようです!これらの場合、特定のプログラミング言語からBonjourと通信するために追加のライブラリを使用する必要はありません。 PS Pleasは私の質問で何かはっきりしないことがあれば質問します。私は質問をより明確な方法で定式化しようとします。 PPS Windows 7を使用しています。 追加:PHPでアプリケーションを作成する予定です。すべてのコンピューターでApache Webサーバーを実行する必要があります。また、Bonjourを使用して、コンピューターがお互いを検出できるようにします(コンピューターはローカルネットワークで動作しています)。

1
iPadでのDreamPlug UbuntuでのAvahiの使用
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)はすぐに応答します。 から返される応答の例を次に示し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をチェックする、空でない追加データセクションを持つクエリを無効と見なします。

4
マルチキャストDNSを介してIPからマシン名を取得するにはどうすればよいですか?
ネットワーク上のIPアドレスのリストがあり、それらのほとんどがマルチキャストDNSをサポートしています。IPアドレスだけでなく、サーバー名を解決できるようにしたいです。 ping computer.local 64 bytes from 192.168.0.52: icmp_seq=1 ttl=64 time=5.510 ms 64 bytes from 192.168.0.52: icmp_seq=2 ttl=64 time=5.396 ms 64 bytes from 192.168.0.52: icmp_seq=3 ttl=64 time=5.273 ms 動作しますが、IPからその名前を判別できるようにしたいと思います。また、デバイスは必ずしもサービスをブロードキャストするわけではありませんが、mDNSブロードキャストをサポートしています。そのため、サービスを調べても機能しません。
17 mdns 

1
LANに「エニーキャスト名前解決」を実装するようにAvahiを設定する方法はありますか?
まず、いくつかの背景:分離されたLAN上で実行される少数の専用Linuxサーバーを含むラボがあります。すべてのサーバーは同じOS(Debian Linux)と同じ専用サーバーソフトウェアを実行し、サーバープロセスは互いに通信してデータの同期を保ちます。つまり、クライアントに関する限り、クライアントがどのサーバーに接続するかは関係ありません。どのサーバーも他のサーバーと同じデータを返します。 これらのLinuxサーバーはすべてavahi-daemonを実行してmDNSホスト名を公開します。つまり、クライアントは「http://linux-server-1.local」と入力できます。彼のWebブラウザーに接続し、Linuxサーバー#1に接続します。 これは、クライアントマシン(通常、BonjourがインストールされているMacまたはWindowsラップトップ)に座っているユーザーが現在オンラインになっているLinuxサーバーを認識(または把握)する必要があり、彼がそれらのいずれかに接続していることを確認してください。たとえば、サーバー#2が今日オフラインで、クライアントが「http://linux-server-2.local」と入力したとします。彼のURLバーに、彼は応答を取得するつもりはありません。もちろん、それは世界の終わりではありませんが、すべてが「正常に動作する」ことを期待する初心者ユーザーにとっては迷惑です。また、堅牢なクライアント側スクリプトの開発がより複雑になります(クライアント側スクリプトのため、オフラインサーバーを明示的に処理する方法を知る必要があります)。 それを念頭に置いて、私の質問はこれです:エニーキャストスタイルのmDNSホスト名エイリアスを公開するようにAvahiを構成することは可能ですか?目標は、だれでも自分のラップトップに座ることができるようにすることです。「http://any-linux-server.local」と入力してください。(または同様)、現在オンラインになっているサーバーの1つに接続します(ここでも、どちらのサーバーでもかまいません)。 これはクライアントラップトップの特別な構成なしで機能する必要があることに注意してください。これは、それらを制御できないためです(Bonjourがインストールされているという要件以外)。 また、個別のネームサーバーまたはプロキシボックスの存在、または特定のLinuxサーバーの存在に依存することはできないことに注意してください。これにより、単一障害点が発生し、回避しようとしています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.