Fedora 資料一覧
2008/8/27更新
対応バージョン: 9
FedoraでZeroconf(Zero Configuration Networking)を利用するにはAvahiを使用する。Appleでの実装はBonjourである。
まずZeroconfで必要な要素とAvahiにおける実装の対応を示す。
Addressing
AutoIP(*)によってIPアドレスの付与を行う仕組み。
(*) MicrosoftではAPIPA(Automatic Private IP Addressing)と呼ぶ。
Naming
mDNS(Multicast DNS)によってサービスの名前割当を行う仕組み。
名前は以下のような命名規約によって割り当てられる。
<ホスト名>.<サービス名>.<プロトコル名>.<ドメイン名>
(*) サービス名とプロトコル名は先頭が「_」で始まる。
(*) サービス名にはIANAが管理しているWELL KNOWN PORT NUMBERSが使われる(http、sshなど)。
(*) ドメイン名は特に指定しなければデフォルトで「local」が使われる。
例) ネットワークプリンタの場合
prt01._ipp._tcp.local
avahiではavahi-daemonがこの機能を提供する。
Browsing
DNS-SD(DNS Service Discovery)によってネットワーク上のサービスを検出する仕組み。
avahiではavahi-dnsconfdがこの機能を提供する。
サービス追加
avahiで新たにサービスを追加するには/etc/avahi/services配下に「<サービス名>.service」というファイルを作成して設定をXMLで記述する。
例えばWebサーバをサービスとして追加する場合、記述内容は以下のようになる。
% hostname fedora % sudo vi /etc/avahi/services/http.service <?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">%h</name> <service> <type>_http._tcp</type> <port>80</port> </service> </service-group>
以下、必要最低限のタグについて説明する。それ以外はavahi.serviceのmanを参照のこと。
service-group
サービスの定義
一つの
name replace-wildcards="yes|no"
ネットワーク上に通知されるサービス名
replace-wildcards属性が"yes"の場合、値に"%h"と記述しておくと自ホスト名に置換される。デフォルトは"no"。
service protocol="ipv4|ipv6|any"
サービスの詳細定義
protocol属性によってサポートするネットワークプロトコルを指定する。デフォルトは"any"(IPv4とIPv6双方をサポート)。
type
サービスタイプ
サービス名とサービスプロトコル名を一緒に定義する(例:_http._tcp)。
port
サービス提供ポート
このファイルを作成し終わると自動的にネットワーク上にサービスの通知が行われ(*)、例えばMac OS X上のSafariでブックマークバーのBonjourメニューにWebサーバが表示される。
尚、SafariのブックマークバーにBonjourメニューを表示するにはあらかじめ環境設定で以下のように指定しておく必要がある。
(*) サービスの自動通知が行われるためにはあらかじめavahi-daemonが起動している必要がある。Fedoraではデフォルトで起動する設定になっている。
% chkconfig --list avahi-daemon avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off % ps ax|grep avahi 2282 ? Ss 0:00 avahi-daemon: running [fedora.local] 2283 ? Ss 0:00 avahi-daemon: chroot helper
関連資料・記事