Raspberry Piの使い方として、普段は家庭の有線LANネットワークに参加させている人が多いと思います。しかし、家の外にRaspberry Piを持ち出すような場合や家の中で一時的に移動して使う場合など、有線LANでネットワーク参加できない状況が稀にあるかと思います。
そうした状況では、たとえば作業機のMacBookとRaspberry PiをLANケーブルで直結するような運用が考えられますが、そこでいちいちネットワーク設定を書き換えるのは面倒すぎますよね。本稿では、家で使っているのと同じノリで家の外でも使えるような設定を紹介します。ざっくり言うと、家の外ではLANケーブル直結でIPv4LLネットワークを構成してBonjourで名前解決するという案です。
ネットワーク設定
今回の内容は、Raspberry Piのネットワーク設定がDHCPになっている前提です。
/etc/network/interfaces
を確認して次のような設定になっているかを確認してください。
iface eth0 inet dhcp
固定IPで運用している場合は検証していませんが、後述するIPv4LLの設定が期待通りに動かないと思います。
avahi-daemonのインストール
次に、Raspberry PiがBonjour(Zeroconf)で名前解決できるようにします。Bonjourは同一ネットワーク内でのみ使える名前解決のプロトコルで、Linuxではavahiというデーモンが提供しています。
$ sudo apt-get install avahi-daemon
$ sudo insserv avahi-daemon
これで、Macから<ホスト名>.local
というホスト名でアクセスできるようになったはずです。デフォルトではraspberrypi.local
になっています。
$ ssh pi@raspberrypi.local
注意点ですが、Bonjourは自分で名前を名乗るようなシステムなので、同一ネットワーク内で名前が衝突してはいけません。Raspberry Piが複数台あるような環境では/etc/hostname
ファイルを書き換えてホスト名を変更してください。
avahi-autoipdのインストール
ようやく今回の本題です。上のようにavahiを設定すればどんなネットワークでも名前解決ができますので、あとはLANケーブル直結でネットワークを組む設定にするだけです。
そこで一番お手軽なのがIPv4LLでアドホックなネットワークを作ってしまうことでしょう。WindowsやMacなどでネットワーク設定に失敗した際、なぜか勝手に設定されている169.254.*.*
というIPアドレスを見たことがあると思います。あれがIPv4LLです。
ところで、WindowsやMacと違ってLinux系OSではIPv4LLは勝手には設定されません。IPv4LLを使うにはavahi-autoipdをインストールするのがお手軽です。
$ sudo apt-get install avahi-autoipd
これでMacとRaspberry PiをLANケーブルで直結してしばらく待てば、Bonjourのホスト名を使ってRaspberry Piにsshできるはずです。
まとめ
これでスタバでドヤリングしながらLチカできるぜ!