Help us understand the problem. What is going on with this article?

手持ちのRaspberryPiをサクッとmDNSに対応させる

More than 1 year has passed since last update.

mDNSとは

mDNS(multicast DNS) は、ローカルセグメント内の端末を、 マルチキャストを利用して自動的に探索するための仕組みです。

mDNSは、Appleが策定した仕様でRFC6762で定義されています。

Apple的には当初はRendezvous(ランデブー)と呼ばれていましたが、Mac OS X v10.4からBonjourという名前で呼ばれています。
iTunesやAirDropなどApple製品で幅広く使われています。

IETFでは、Zero Configuration Networkingとして標準化されています。

DNSではユニキャストで名前解決を図りますが、
mDNSではマルチキャストアドレス 224.0.0.251 の UDP 5353 ポートに DNS クエリを投げることにより、
multicast groupにJOINしている端末が応答します。
mDNSのTLDは.localとなります。

どういうときに使うと便利なの?

組み込み機器やRaspberryPiなどモニタレスのものは、DHCPなどで動的にIPが配布されるとIPを調べるのが大変です。
ですので、動的に名前解決する仕組みがあることで、一意に端末を指定することができ大変便利です。

avahi-daemonの導入

mDNSに対応するためにavahi-daemonのインストールが必要です。avahiはアバヒと読むらしいです。

command
% pi@raspberrypi:~ $ sudo apt-get install avahi-daemon

ホスト名を設定する

command
% sudo vi /etc/hostname

今回はraspberrypiにしました。

/etc/hostname
raspberrypi

avahiの設定

SSHサービスを登録します。

command
% sudo vi /etc/avahi/services/ssh.service
/etc/avahi/services/ssh.service
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>
  <name replace-wildcards="yes">%h</name>

  <service>
    <type>_ssh._tcp</type>
    <port>22</port>
  </service>
</service-group>

デーモンの再起動

command
% sudo /etc/init.d/avahi-daemon restart

動作確認

mDNS multicast groupにJOINしていることが確認できます。

command
% pi@raspberrypi:~ $ sudo /etc/init.d/avahi-daemon status

● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
   Loaded: loaded (/lib/systemd/system/avahi-daemon.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-04-19 10:01:06 JST; 4min 16s ago
 Main PID: 345 (avahi-daemon)
   Status: "avahi-daemon 0.6.32 starting up."
   CGroup: /system.slice/avahi-daemon.service
           ├─345 avahi-daemon: running [raspberrypi.local]
           └─365 avahi-daemon: chroot helper

 4月 19 10:01:06 raspberrypi systemd[1]: Started Avahi mDNS/DNS-SD Stack.
 4月 19 10:01:06 raspberrypi avahi-daemon[345]: Network interface enumeration completed.
 4月 19 10:01:06 raspberrypi avahi-daemon[345]: Server startup complete. Host name is raspberrypi.local. Local service cookie is 4258905342.
 4月 19 10:01:06 raspberrypi avahi-daemon[345]: Service "raspberrypi" (/services/ssh.service) successfully established.
 4月 19 10:01:09 raspberrypi avahi-daemon[345]: Joining mDNS multicast group on interface wlan0.IPv6 with address fe80::741d:fe06:5e95:b3ab.
 4月 19 10:01:09 raspberrypi avahi-daemon[345]: New relevant interface wlan0.IPv6 for mDNS.
 4月 19 10:01:09 raspberrypi avahi-daemon[345]: Registering new address record for fe80::741d:fe06:5e95:b3ab on wlan0.*.
 4月 19 10:01:13 raspberrypi avahi-daemon[345]: Joining mDNS multicast group on interface wlan0.IPv4 with address 10.1.20.30.
 4月 19 10:01:13 raspberrypi avahi-daemon[345]: New relevant interface wlan0.IPv4 for mDNS.
 4月 19 10:01:13 raspberrypi avahi-daemon[345]: Registering new address record for 10.1.20.30 on wlan0.IPv4.

PCから疎通確認

名前で疎通確認をしてみます。
※ ルーターがマルチキャストルータに対応していれば別ですが、サブネットは越せないので同一セグメントじゃないと探索できません

mac_terminal
% ping raspberrypi.local

PING raspberrypi.local (10.1.20.30): 56 data bytes
64 bytes from 10.1.20.30: icmp_seq=0 ttl=64 time=227.991 ms

SSHでアクセス

名前でアクセスできることを確認できました。

mac_terminal
% ssh raspberrypi.local -l username

pi@raspberrypi.local's password:
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l

smartdrive
SmartDriveのデータプラットフォームが外部のさまざまなデータやサービスと連携し、新しい移動体験やモビリティサービスの提供など、移動の未来の到来を後押しします。
https://smartdrive.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした