Sler系SEの技術ブログ
マルチキャストDNS(mDNS)の活用 #RaspberryPi #Avahi #Mac #Bonjour
kght6123
IPアドレス、DNSサーバ管理を止めて、マルチキャストDNS(mDNS)を使うようにしました。
毎回、RaspberryPiを増やす度に、192.168.0.xxは1号機とか、192.168.0.yyは2号機とか、
192.168.0.zzはTinkerboard、、、、非常にめんどくさくなりました。
さらに、最近、RaspberryPi3 Model B+も増えましたし、、、
毎回、Macアドレスを調べて、ルータのDNSサーバに設定するのもめんどくさい、、、、
RaspberryPiにDNSサーバ入れるのも、めんどくさい、、、
なので、半自動的にDNSっぽい動きをしてくれる、mDNSを活用してみる事にしました!
以下、設定の方法です。
まず、Macでコマンドを実行してraspberrypiのIPを探します
(別のraspberrypiがあると複数該当するので注意)
# 初期のraspberrypiホスト名のIPを検索
% dns-sd -q raspberrypi.local
DATE: ---Sat 16 Jun 2018---
15:19:44.773 ...STARTING...
Timestamp A/R Flags if Name Type Class Rdata
15:19:44.940 Add 2 12 raspberrypi.local. Addr IN 192.168.10.106
% rm ~/.ssh/known_hosts # 過去の認証ファイルを削除(稀に問題が出る)
# とりあえず、検索したIPまたはホスト名でログイン
% ssh [email protected]
次にhostnameとhostsファイルを開いて、ホスト名をraspberrypi
からpi3j
など、任意****のホスト名に置き換えます。
ホスト名は短くて区別がつく方が色々と便利なので、私はそうしてます。
$ sudo vi /etc/hostname # raspberrypi から 任意のホスト名に変更
$ sudo vi /etc/hosts # raspberrypi から 任意のホスト名に変更
$ sudo reboot # 再起動
もう一度、SSHで接続して、avahi-daemonをインストールし、起動します。
# 必要モジュールのインストール
$ sudo apt-get install git make g++
$ sudo apt-get install libavahi-compat-libdnssd-dev
$ sudo apt-get install avahi-daemon avahi-discover libnss-mdns
# avahiのインストール
$ sudo service dbus start
$ sudo service avahi-daemon start
ってすると、次からこんな感じで、sshログインできます。
% hostname # 事前にMacのホスト名を調べる
macbook.local
# 他の端末からMacへSSH
$ ssh [email protected]
Macには、標準でマルチキャストDNS(Bonjour)がインストールされており、
こんな感じの名前で、他の端末からアクセスできます。
(IP探す時に、Bonjour使ってます)
% ssh [email protected] # 末尾に.localをつける
簡単です!
これで、めんどくさいIPとDNSから解放されます。