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

Linuxにリンクローカルアドレスをアサインして DNS-SD/SSDPを使ってガサる

DHCPが無い環境で リンクローカルアドレス(IPv4)で自動的に上がってくるようなデバイスの
自動構成をしたくて Ubuntu/Debianで APIPAをふる方法と discoverのやりかた

準備

必要なパッケージのインストール

APIPAをふるだけなら avahi-autoipdがあれば目的としては達成できます

sudo apt-get install -y avahi-autoipd

名前やサービスの解決させたりもあるので 関連ツールとして avahi-daemon と avahi-utils、
さらに SSDPで検出したい場合なんかに gupnp-toolsも入れておく。

sudo apt-get install -y avahi-utils gupnp-tools

設定

eth2で使いたい場合、/etc/network/interfaces に以下を追加する。
この設定で eth2:avahi インターフェースに APIPAがふられる

/etc/network/interfaces
auto eth2
iface eth2 inet manual
  up /usr/sbin/avahi-autoipd -D --force-bind eth2
  down /usr/sbin/avahi-autoipd -k eth2

利用

interface を upするだけ

sudo ifup eth2

確認

root@buster:~# ip -4 a
...
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 169.254.5.253/16 brd 169.254.255.255 scope link eth2:avahi
       valid_lft forever preferred_lft forever

名前がわかっている物のIPを解決する

名前がわかっていれば mDNSで .local ドメインで名前解決する。
例えば fsというマシンを解決したければ ping fs.local

DNS-SDで サービス一覧を表示してみる

avahi-browse -al

実行するとこんな感じ

root@buster:~# avahi-browse -al
+   eth1 IPv4 amzn.dmgr:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxx:##### _amzn-wplay._tcp     local
+   eth1 IPv4 fs - SSH                                      SSH Remote Terminal  local
+   eth1 IPv4 fs - SMB/CIFS                                 Microsoft Windows Network local
+   eth1 IPv4 fs - NFS - home                               Network File System  local
+   eth1 IPv4 Google-Home-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  _googlecast._tcp     local
+   eth1 IPv4 Chromecast-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   _googlecast._tcp     local

オプションにrをつけるとさらにIPやポートまで解決して表示してくれる

SSDPでデバイス一覧を表示してみる

インターフェースを指定して gssdp-discoverで行う

gssdp-discover -i eth2:avahi

root@buster:~# gssdp-discover -i eth2:avahi --timeout=3
Using network interface eth2:avahi
Scanning for all resources
Showing "available" messages
resource available
  USN:      uuid:1a78e91b-d86d-11ea-8157-080027e8f737::upnp:rootdevice
  Location: http://169.254.86.237:1900/ddd.xml
yasuoohno
こちらに書いている内容は、私個人の意見や調査に基づくものであり、所属する会社とは一切関係がありません。
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