0

通常の dhcp 環境にいるとします。

次のような IP アドレスが取得されます。

  • セグメント A の linuxpc1.localdomain の場合は 192.168.0.101
  • セグメント B の linuxpc2.localdomain の場合は 192.168.1.102

ホスト名が設定されたlinuxpcにavahiをインストールするだけでそれらを調べたいです。

したがって、192.168.2.103 linuxpc3.localdomain で実行中

ping linuxpc1.local

動作します。

DHCPサーバーの設定に影響を与えずにこれを実現する最も簡単な方法は何ですか?

または、これが難しい場合は、少なくとも linuxpc3.localdomain ホストからスクリプトを実行している名前の IP アドレスを知りたいと思います。

getipbyname-avahi.py linuxpc1.local
-> returns 192.168.0.101

NIS も LDAP も SQL もセットアップしたくありません... dhcped の IP アドレスを解決する avahi 機能を再利用することから始めるのがよいと思いました。

4

2 に答える 2

2

DHCP で DNS 更新を有効にしてみませんか?

何かのようなもの

ddns-updates                on;
ddns-update-style           interim;
ddns-domainname             "network.athome.";
ddns-rev-domainname         "in-addr.arpa.";

dhcpd.conf で (ISC を使用していると仮定しています)、DNS を更新します。

dhcp 構成を変更できない場合は、おそらくクライアント スクリプト フックでnsupdateを使用できます。

于 2011-03-10T05:22:31.957 に答える
0

考えられる解決策(または私が言うべき恨み)。
これを達成するために私が見ることができる唯一の方法は、すべてのlinuxpcボックスのネットワークマスクを255.255.0.0(クラスBネットワークマスク)に拡張することです。
ただし、DHCPサーバーでは、linuxpc1eth0macアドレスにIPアドレス192.168.0.101が割り当てられるように構成するのと同じ方法でこれを行う必要があります。
これは、すべてのクラスCプライベートサブネットワークを単一のクラスBチャンクにマージすることを意味します。

詳細
それ以外の場合、avahiをそのまま使用してそれを行うことはできないと思います。これが理由です。

AvahiはmDNSを使用してホスト名を公開します。

詳細には、次のように機能し
ます。処理ロジックの一部として、linuxpc3のavahiデーモンはIPアドレス224.0.0.51のポート5353(?)でDNSUDPデータグラムを送信します。
このアドレスは、zeroconf用に予約されているマルチキャストアドレスの1つです(ianaマルチキャストアドレスを参照)。

linuxpc3アドレスが192.168.2.103(命名規則に従う)であり、255.255.255.0の標準クラスCネットワークマスクを想定すると、アドレスが192.168.2.1から192.168.2.254の間のボックスのみが、対応するDNS A更新レコードを受け取ります(つまり、これらのボックスで実行されている他のavahi / bonjourデーモンを意味します)。

その結果、linuxpc1もlinuxpc2もlinuxpc3.localホスト名/アドレスのペアを認識しません。

代わりに、これらすべてのボックスのネットワークマスクが255.255.0.0に拡張されると、ブロードキャスト範囲が拡張され、192.168/16ネットワーク内のすべてのアドレスが含まれるようになります。

RFC1918 、プライベートネットワークの標準では、192.168.0.0ブロックを単一のクラスBサブネットワークとして明示的に構成できます。


あなたのコメントを見た更新。

最初の結論。Avahiには、要件の組み合わせに対するソリューションはありません。
Avahiはサブネットワークブロードキャストに依存しています。

avahiも適用できない同様のコンテキストで、私はかつて、接続イベントの変更を検出することで/ etc/hostsファイルとDNSレコードの更新を自動化することに頼りました。

すべてのPCはインターネットを見ることができ、接続の変更を検出していました(NetworkManagerディスパッチャーフックのLinux-システムイベント通知サービスへのサブスクリプションによるWindows )。

すべてのマシンは、www.dropbox.comのメッセージを介して接続ステータスとIPアドレスを報告し、それぞれのローカルドロップボックスフォルダーから更新を取得していました。

代わりにこれを実装したい場合、または同様のソリューションを使用したい場合は、これはかなりの作業になることを警告する必要があります。

于 2011-03-09T07:51:38.637 に答える