しかし、私のアパート内のローカルネットワークの成長に伴い、 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をサポートするプログラムのリストを見つけることができます。
いくつかのコメント。