今回は、OS XおよびiOSデバイスを対象に、自宅LANにおけるIPアドレス管理術を紹介したい。PCにスマートフォン、タブレットのみならずテレビやBDレコーダーなど、年々増えるネットワーク対応機器もこれでスマートに管理できるはずだ。
あのデバイスのIPアドレス、なんだっけ?
光ファイバーやADSL、CATVなど固定回線経由でインターネットに接続している家庭では、おそらく「ルータ」を設置しているはず。無線LANアクセスポイントやDHCPサーバを兼ねるルータも多く、ブロードバンド環境における必須アイテムと言っていい。
しかし、ルータは初期設定を終えたら放置モードに入ることが多い。"外界への門"であると同時に"IPアドレス管理人"という、インフラにおけるとても重要な役割を担うが、管理ログのチェックはおろか管理画面に1度もログインすることなく数年経過、というユーザは少なくないはず。PCやスマートフォン、テレビやBDレコーダ、ゲームコンソールなどネットワーク機能を必要とする機器はさらに増加しているが、どのデバイスにどのIPアドレスが割り当てているかはルータに任せきり、という現実がある。
では、1台のルータに10台以上のデバイスがぶら下がっているとき、どのようにしてデバイスに割り当てられたIPアドレスを調べればいいだろうか。デバイスのネットワーク設定画面を見る、ルータの管理画面にアクセスしDHCPのリース情報を見る……といった方法が思い浮かぶが、もっとスマートな方法はないのか?
というのも、nasneの管理画面にOS Xからアクセスしようとしたとき、IPアドレスを思い出せず、iOSアプリ「S-Entrance」(nasneの検索機能がある)に頼ってしまったからだ。Bonjour対応機器はIPアドレスの代わりにホスト名を指定すればいいとして、それ以外はなんらかの方法でIPアドレスを探さなければならない。DHCPサーバから割り当てを受けていないデバイスを探すことも、なかなか面倒だ。前置きが長くなったが、そのスマートな方法を紹介することが今回の趣旨だ。
古典的な調査方法
Ethernetデバイスの1つ1つは、「MACアドレス」と呼ばれる固有の認識番号を持つ。そしてTCP/IPネットワークでは、Ethernet上にパケットを送出するとき宛先のMACアドレスを把握していなければならないため、多くのOSではARP(Address Resolution Protocol)と呼ばれるプロトコルにより、IPアドレスとMACアドレスの対応状況をデータベース化している(ARPテーブル)。
そのARPテーブルを調査するコマンドが「arp」だ。ARPテーブルを見れば、DHCPサーバがクライアントにIPアドレスを貸し出している状況をチェックできる。指定するオプションは「-a」、つまり「arp -a」とだけ実行すれば、同じLANにある通信機器(ノード)がわかる。
$ arp -a
ところで、ARPプロトコルの動作原理はとてもシンプル。探したいIPアドレスをセットし、Ethernetヘッダに含める宛先MACアドレスをブロードキャストアドレス(ff:ff:ff:ff:ff:ff)にして送信すると、同じLANにあるすべてのノードがそれを受信、一致した場合はそのノードのMACアドレスを返す、という仕組みを利用したもの。
いまどきのラクな方法
ARPプロトコルとarpコマンドの存在は知っておいて損はないが、出力された情報がわかりやすいかと聞かれれば答えは否だ。ひと目で理解できる、かつ扱いやすいツールを利用するほうが現実的だろう。
OS Xで使うのならば、Mac App Storeで公開中の無料アプリ「LanScan」がおススメだ。使い方は単純そのもの、起動して「Lan your Scan」ボタンをクリックすればOK。数秒ほど待つと、同じLANに存在する通信デバイスとそのMACアドレスが一覧される。デバイスによってはホスト名も表示される(LanScanを起動したMac以外は有償のPRO版がなければ一部しか表示されない)ので、目当てのデバイスのIPアドレスを割り出すとき役立つはずだ。
iPhone/iPadでは「Fing」がおススメだ。アプリを起動するだけで、「arp -a」に相当する情報プラスホスト名を一覧できる。アプリを実行しているiOSデバイスには「You」と表示されているので、iOSデバイス自身のIPアドレスを調べたいときにも役立つ。ポートスキャンやWake On Lanにも使えるので、このアプリ1つあれば自宅LANの状況をしっかり把握できるだろう。