私は、古いLinuxoidのように、Ubuntuを最初にインストールして、なじみのない単語
avahiを見たとき、もちろんすぐに
googleを見ました。 いくつかのリンクにつまずき、
zeroconf 、
multicast dns 、
bonjourなどの他のあいまいな単語を見ました。 私はすぐに、これがAppleの泥だらけのテクノロジーの一種であり、必要ないことを知りました。
しかし、私のアパート内のローカルネットワークの成長に伴い、
zeroconfが私の生活を楽にするためにどのように適応できるのか不思議に思うだろう。
用語を扱いましょう:
- Zeroconfは、Appleが開発したプロトコルであり、次の問題を解決するように設計されています。
- デバイスのネットワークアドレスを選択します
- 名前でコンピューターを見つける;
- プリンターなどのサービスの発見。
- Avahiは、zeroconfプロトコルのオープンで無料の実装です。
- Bonjourは、Appleのzeroconfプロトコルのオープンソース実装です。
IPアドレスをデバイスに割り当てるために、zeroconfは
RFC 3927を使用し
ます 。 標準では、範囲
169.254.0.0/16
からのいわゆる
リンクローカルアドレスの割り当てについて説明しています。 このテクノロジーは、
IPv4 Link-Localまたは
IPv4LLと呼ばれ
ます 。
名前の解決(名前解決)には、
マルチキャストDNSプロトコルまたは短縮
mDNSが使用されます。 これにより、デバイスは
.localゾーンの名前を選択できます。 通常のDNSとほとんど同じように機能しますが、微妙な違いがあります。 各コンピューターは、そのゾーン(
A
、
MX
、
SRV
)のレコードを保存し、それ自体が要求を処理します。 コンピュータがゾーンレコードを知りたい場合、たとえば、名前でIPアドレスを決定する(特定のゾーンの
A
レコードを取得する)と、マルチキャストアドレス
224.0.0.251
アドレス指定します。 したがって、要求はローカルネットワーク上のすべてのコンピューターで受信され、関心のある名前のゾーンを格納しているコンピューターが応答します。
サービスを検索および検出するために、プロトコルは
DNSベースのサービス検出または
DNS-SDに 基づいています 。 デバイス上で利用可能なサービスをアドバタイズするために、
SRV
、
TXT
、
PTR
などのDNSレコード
PTR
ます。
これをすべてLinuxで動作させるにはどうすればよいですか? 思ったよりずっと簡単です。 手順を見てみましょう。
- パッケージ
avahi-daemon
、 avahi-autoipd
、 libnss-mdns
avahi-daemon
ます。 Ubuntuを使用している場合、これらのパッケージはすでにインストールされている可能性があります。 - IPv4LLを有効にします。 この手順は完全にオプションです。 ローカルネットワークで通常ルーティングされるIPアドレスがある場合、IPv4LLを使用する必要はなく、有害でさえあります。標準では、ルーターはリンクローカルアドレス(
169.254.*
)でパケットを転送すべきではないためです。 つまり、ほとんどの場合、NATを介してインターネットを転送することはできません(成功しませんでした)。 ただし、既に決心している場合は、ローカルネットワークのネットワークインターフェースが/etc/network/interfaces
ipv4ll
タイプを入力するだけで十分ipv4ll
。 このようなもの:
iface eth0 inet ipv4ll
次に、 sudo invoke-rc.d networking restart
またはさらにリブートを行うことができます( avahi-autoipd
はアドレス169.254.*
設定しません169.254.*
どこにも消えません)。 - ファイアウォールで、ローカルネットワークを見ているインターフェイス上のアドレス
224.0.0.251
ポート5353
(mDNSが適切に機能するために必要です)を介したUDPパケットの通過を許可します。
この設定では、完了と見なすことができます。 その後、どんなボーナスがもらえますか? リスト:すべてのコンピューターは、* .localドメインで名前を受け取りますが、ユーザーの不必要なジェスチャーはありません。
Gajimまたは
Empathyの jabberクライアントは、ローカルネットワーク内のすべての対話者を表示します。
Rhythmboxはすべての音楽を共有します。
Ekigaを使用すると、LANで実行している全員を検索して呼び出すことができます。
PulseAudioは、ネットワーク上で公開されているすべてのオーディオデバイスを見つけることができます。 まあ、はるかに、はるかに。
avahiをサポートする
プログラムのリストを見つけることができます。
いくつかのコメント。
avahi-browse --all
コマンドを使用して、ネットワーク上の発表されたサービスを表示できます。 また、これらのサービスの接続と切断もリアルタイムで表示されます。- ファイアウォールがある場合、サービスは相互に認識できますが、それらに必要なポートが閉じている場合は通信できません。
avahi-dnsconfd
を使用して、ローカルネットワーク上のすべてのコンピューターに/etc/resolv.conf
クローンを作成できます。- GnomeでNFS + Zeroconfバンドルを実装するというアイデアに必ず投票してください。