🔰

ARPについて復習

に公開

ARPってなんだ?専門卒の新卒インフラエンジニアが基礎から調べてみた

専門学校ではITインフラを学びましたが、正直、知識の多くがふわっとしか残っていません……。
ということで、今回は 「ARP(Address Resolution Protocol)」 について、改めて調べてみて、初心者目線でまとめてみました!


ARPってなに?

ARPとは、IPアドレスからMACアドレスを調べるためのプロトコルです。

例えば、PCが「192.168.1.1」というIPアドレスの機器にデータを送りたいとき、実際に送信するにはその相手の MACアドレス(ネットワークインターフェースに付いている物理アドレス)が必要になります。

でも、IPアドレスしか知らない……。
そこで「このIPのMACアドレスってなに〜?」ってネットワークに問いかけるのがARPです。


ARPの仕組み(ざっくり)

  1. ARPリクエストを送る
    「192.168.1.1さん、あなたのMACアドレスを教えてください!」というメッセージがネットワーク内にブロードキャストされます。

  2. ARPリプライが返ってくる
    対象の機器(192.168.1.1)が「私のMACアドレスは xx:xx:xx:xx:xx:xx ですよー」と返事をします。

  3. 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