Zeroconf についての備忘録です.きちんと現資料等あたっていないし,ざっと調べただけなので,ところどころ間違っている可能性大です.お気を付けください.
Zeroconf って何?
Wikipedia によると,
- ネットワークデバイスへのネットワークアドレスの割り当て
- コンピュータのホスト名の自動解決と自動配布
- プリンターなどのネットワークデバイスの位置を自動的に特定
を実現する技法を総称して Zeroconf って呼ぶらしい.
ネットワークアドレスの自動割り当て
自動的に割り当てられるアドレスはリンクローカルアドレス(IPv4LL: 169.254.0.0/16,IPv6LL: fe80::/10)で,IPv6 の場合は,初めから対応してる.IPv4 の場合は,
- Windows ⇒ Windows98 の頃から対応.APIPA(IPAC)と略称
- Linux or FreeBSD ⇒ Avahi で実現
ということらしい.Mac はどうなんだろう???.
コンピュータのホスト名の自動解決と自動配布
方式としては,mDNS(Apple による)と LLMNR(Microsoft による)の2種類があるらしい.
- mDNS: ****.local というドメイン名になる.DNS-SD(下記) と互換性あり
- LLMNR: 任意のドメイン名が選択できる.DNS-SD と互換性なし
ネットワークデバイス位置の特定(サービス発見)
これも,Apple と Microsoft による方式があるみたい.
- Apple ⇒ mDNS/DNS-SD
IPv4: 224.0.0.251, IPv6: ff02::fb にマルチキャストで問い合わせて DNS の SRV/TXT/PTR で応答がある. - Microsoft ⇒ UPnP SSDP
HTTPの通知機能をつかって,URI と USN を通知
そして,mDNS/DNS-SD 方式の実装として利用できるのが,
- Apple Bonjour ⇒ mDNS/DNS-SD
- Avahi ⇒ IPv4LL/mDNS/DNS-SD (nss-mdsn: glibc plugin providing host name resolution via mDNS と連動させる)
の2つなんですね.
と言うことで,Zeroconf の概要は分かったような気がするので,次回は Zeroconf を調べる元々の動機付けである Avahi についての備忘録を追加したいと思います.
Avahi 備忘録
Avahi の備忘録です. の続きですね. avahi-browse まずは,自分のネットワークがどのようになっているのかを調べます.その為に使えるコマンドは,avahi-browse の様です.今回は Raspbian Jessie 環境...