LoginSignup
6
7

More than 5 years have passed since last update.

Google HomeのIPアドレスがmDNS(avahi)で取れなかったときのメモ

Posted at

背景

Google Home (Mini)はmDNSで名前解決を行うことが出来るはずなのに、うまくいかないと思ったときの作業。トラブルシュート手順としてメモしておきます。

WiFiアクセスポイントの設定確認

自分でも忘れてましたが、マルチキャストとかいらないだろうと、使用しない設定にしていました。mDNSはマルチキャストを使用するので、設定をやりなおす。

avahi-utilsのインストール

sudo apt-get -y install avahi-utils

avahi-browseで一覧を表示してみる

pi@raspberrypi:~ $ avahi-browse -at
+   eth0 IPv6 ReadyNAS104                                   _nut._tcp            local
+   eth0 IPv4 ReadyNAS104                                   _nut._tcp            local
+   eth0 IPv6 ReadyNAS Administration on ReadyNAS104        Web Site             local
+   eth0 IPv4 ReadyNAS Administration on ReadyNAS104        Web Site             local
+   eth0 IPv6 ReadyNAS104 (SMB)                             Microsoft Windows Network local
+   eth0 IPv4 ReadyNAS104 (SMB)                             Microsoft Windows Network local
+   eth0 IPv6 ReadyNAS104 [28:c6:XX:XX:XX:XX]               Workstation          local
+   eth0 IPv4 ReadyNAS104 [28:c6:XX:XX:XX:XX]               Workstation          local
+   eth0 IPv4 amzn.dmgr:91BXXXXXXXXXXXXXXXXXXXXXXXXXXXX8:rZDHJ+sCFo:370062 _amzn-wplay._tcp     local
+   eth0 IPv4 Google-Home-Mini-543XXXXXXXXe2e5a50XXXXXXXX27d9 _googlecast._tcp     local
+   eth0 IPv4 543XXXXX-120e-Xe5a-50XX-d4XXXXXX27d9          _googlezone._tcp     local
+   eth0 IPv4 c0XXXXXXXXXXXf0c-0                            _spotify-connect._tcp local

サービス名が_google*のものが見つかる。ということでちゃんと認識はしている。

pingしてみる

pi@raspberrypi:~ $ ping Google-Home-Mini-543XXXXXXXXe2e5a50XXXXXXXX27d9.local
ping: Google-Home-Mini-543XXXXXXXXe2e5a50XXXXXXXX27d9.local: Name or service not known

失敗する。なんで?

pi@raspberrypi:~ $ ping ReadyNAS104.local
PING ReadyNAS104.local (192.168.X.XX) 56(84) bytes of data.
64 bytes from 192.168.X.XX (192.168.X.XX): icmp_seq=1 ttl=64 time=60.7 ms

NASのほうは問題なく応答する。

avahiではなく、libnss側を疑ってみる

  • libnss-mdnsの確認
pi@raspberrypi:~ $ dpkg -l | grep mdns
ii  libnss-mdns:armhf                     0.10-8                               armhf        NSS module for Multicast DNS name resolution

ちゃんと入ってる。

  • nsswitch.confの確認
pi@raspberrypi:~ $ cat /etc/nsswitch.conf
:
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

ちゃんと、mDNSの名前解決設定が入ってる。
ちなみに、mdns4_minimalとmdns4の違いはなんだろうと思ったら、minimalはlocalドメインの名前解決しかしないらしい。minimalだけで十分かも。

avahi-resolveで名前解決試してみる

pi@raspberrypi:~ $ avahi-resolve -nv 'Google-Home-Mini-543XXXXXXXXe2e5a50XXXXXXXX27d9.local'
Server version: avahi 0.6.32; Host name: raspberrypi.local
Failed to resolve host name 'Google-Home-Mini-543XXXXXXXXe2e5a50XXXXXXXX27d9.local': Timeout reached

やっぱりだめ。

avahi-browseでサービス名指定のブラウズをしてみる

pi@raspberrypi:~ $ avahi-browse -rk _googlecast._tcp
+   eth0 IPv4 Google-Home-Mini-543XXXXXXXXe2e5a50XXXXXXXX27d9 _googlecast._tcp     local
=   eth0 IPv4 Google-Home-Mini-543XXXXXXXXe2e5a50XXXXXXXX27d9 _googlecast._tcp     local
   hostname = [543XXXXX-120e-Xe5a-50XX-d4XXXXXX27d9.local]
   address = [192.168.X.XX]
   port = [8009]
   txt = ["rs=" "nf=1" "bs=FA8FCA8D6433" "st=0" "ca=2052" "fn=ダイニング ルーム" "ic=/setup/icon.png" "md=Google Home Mini" "ve=05" "rm=" "cd=85XXXXXXXXXXXXXXE4" "id=543XXXXXXXXe2e5a50XXXXXXXX27d9"]

やっと、IPアドレスを見ることが出来た。

上の、avahi-browse -rkの結果では、ホスト名は'Google-Home-Mini~'ではなく、'543XXXXX-120e-Xe5a-50XX-d4XXXXXX27d9.local'になる模様。それを使って、もう一度avahi-resolveしてみた

pi@raspberrypi:~ $ avahi-resolve -n 543XXXXX-120e-Xe5a-50XX-d4XXXXXX27d9.local
543XXXXX-120e-Xe5a-50XX-d4XXXXXX27d9.local      192.168.1.5

今度はちゃんと結果が返った。

pi@raspberrypi:~ $ ping 543XXXXX-120e-Xe5a-50XX-d4XXXXXX27d9.local
PING 543XXXXX-120e-Xe5a-50XX-d4XXXXXX27d9.local (192.168.1.5) 56(84) bytes of data.
64 bytes from 192.168.1.5 (192.168.1.5): icmp_seq=1 ttl=64 time=2.13 ms

pingも普通に動作する。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7