2013-11-14

DHCP が有効な Raspberry Pi へ簡単に接続するには

DHCP が有効になっている Raspberry Pi は、とりあえずイーサーネットケーブルで繋げば動き始めるという素晴らしい利点がありますが、ディスプレイを繋がないと IP アドレスが分からないのはリモートから操作する際に大変不便です。そこで、マルチキャスト DNS (や類似する NBT: NetBIOS over TCP/IP の名前解決) を使えばこの状況を著しく改善でき、アドレスをどこにもハードコードすることなく名前で機器を管理できるようになりとても良いと思います。

例えば Raspberry Pi のホスト名が raspberrypi のとき、Raspbian を使っているなら、sudo apt-get install avahi-daemon するだけで自動的に avahi-daemon が動き始め、他の初期設定は全く無しで Mac や Linux (名前解決で mDNS クライアント機能が有効)、Windows (Bonjour 導入済み) から、raspberrypi.local を名前解決できるようになります。

また、sudo apt-get install samba すれば、自動的に nmbd が動き始め、Windows から raspberrypi で名前解決できるようになります。

注意点として、同一ネットワークの全ての機器に対する名前解決の問い合わせが OS のセキュリティ保護機構によりブロックされないよう、ネットワーク種別はプライベートネットワークなどに設定する必要があります。

動作例

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users\Hideki>ping raspberrypi.local

raspberrypi.local [192.168.0.3]に ping を送信しています 32 バイトのデータ:
192.168.0.3 からの応答: バイト数 =32 時間 =2ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 =2ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 =2ms TTL=64

192.168.0.3 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 1ms、最大 = 2ms、平均 = 1ms

C:\Users\Hideki>ping raspberrypi

raspberrypi [192.168.0.3]に ping を送信しています 32 バイトのデータ:
192.168.0.3 からの応答: バイト数 =32 時間 =5ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 =2ms TTL=64

192.168.0.3 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 1ms、最大 = 5ms、平均 = 2ms

リンク
JANOG26: 家庭環境における名前解決手法を考える IPv6普及・高度化推進協議会 金沢大学総合メディア基盤センター 北口善明 2010.7.5
Bonjour - Wikipedia