ARPについて復習
ARPってなんだ?専門卒の新卒インフラエンジニアが基礎から調べてみた
専門学校ではITインフラを学びましたが、正直、知識の多くがふわっとしか残っていません……。
ということで、今回は 「ARP(Address Resolution Protocol)」 について、改めて調べてみて、初心者目線でまとめてみました!
ARPってなに?
ARPとは、IPアドレスからMACアドレスを調べるためのプロトコルです。
例えば、PCが「192.168.1.1」というIPアドレスの機器にデータを送りたいとき、実際に送信するにはその相手の MACアドレス(ネットワークインターフェースに付いている物理アドレス)が必要になります。
でも、IPアドレスしか知らない……。
そこで「このIPのMACアドレスってなに〜?」ってネットワークに問いかけるのがARPです。
ARPの仕組み(ざっくり)
-
ARPリクエストを送る
「192.168.1.1さん、あなたのMACアドレスを教えてください!」というメッセージがネットワーク内にブロードキャストされます。 -
ARPリプライが返ってくる
対象の機器(192.168.1.1)が「私のMACアドレスは xx:xx:xx:xx:xx:xx ですよー」と返事をします。 -
ARPテーブルに保存する
受け取ったMACアドレスは一定時間、PCの「ARPテーブル」に保存されます(毎回聞かなくて済むように)。
ARPテーブルを見てみた
実際に自分のPCでARPテーブルを見てみました。
コマンドは以下です(Windowsの場合):
arp -a
すると、こんな感じで表示されます:
インターフェース: 192.168.1.10 --- 0x6
インターネット アドレス 物理アドレス 種類
192.168.1.1 xx-xx-xx-xx-xx-xx 動的
IPアドレスとMACアドレスの対応関係が記録されてる
ARPが使われる場面
ARPは、ローカルネットワーク内でデバイス同士が通信するときによく使われます。
ルーターや他のPCにアクセスするときに、毎回ARPでMACアドレスを調べてから通信してるんですね。
ARPに関するトラブルの例
- ARPテーブルが古くて通信できない
- ARPスプーフィングという攻撃(セキュリティの話)
まとめ
「ARP」って一見難しそうだけど、「IPアドレスからMACアドレスを調べる仕組み」って考えると、意外とシンプルでした。
僕のように「専門学校で習ったけど忘れちゃった……」って人や、「実務で初めて聞いた」って人の参考になれば
Discussion