1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ネットワーク】ARP (Address Resolution Protocol)

Posted at

はじめに

こんにちは。アメリカに住みながら、独学でエンジニアを目指しているTairaです。
今回は、コンピュータネットワークの基礎として欠かせない「ARP(Address Resolution Protocol)」について解説します。

ARPとは?

ARPとは、「IPアドレスからMACアドレスを取得するためのプロトコル」です。
通信相手のIPアドレスは分かっていても、実際にイーサネットなどのデータリンク層で通信を行うには、MACアドレスが必要です。
そのため、ARPを使って「このIPアドレスを持っている機器のMACアドレスは何か?」を調べます。


ARPの仕組み

1. ARPリクエストの送信

送信元の機器が「このIPアドレスのMACアドレスを教えてください」とネットワーク上にブロードキャスト(LAN内の全員に)を送信します。

2. ARPリプライの受信

該当するIPアドレスを持つ機器が、自分のMACアドレスを送信元に返します(ユニキャスト)。

3. ARPキャッシュへの保存

得られたIPとMACの対応情報はARPテーブル(キャッシュ)に一時保存され、次回以降の通信ではARPリクエストなしで通信できます。


ARPが使用される範囲:LAN内

ARPは主に同じLAN(ローカルエリアネットワーク)内で使用されます。
なぜなら、MACアドレスはLAN内でのみ意味を持つ情報だからです。

● 同じLAN内の通信例

  • PC(192.168.1.2) → プリンタ(192.168.1.10)
  • スマホ → NAS(ネットワークストレージ)

● LAN外との通信では?

LAN外の機器に通信する場合(例:インターネット)は、まずルーターのMACアドレスをARPで取得し、そのルーターにデータを中継してもらいます。宛先が外部でも、**ARPの対象は“次の機器(ルーター)”**です。


ARPで使われるのはプライベートIPアドレス

ARPでやり取りされるIPアドレスは、プライベートIPアドレスです。
家庭やオフィスのLAN内では、以下のようなプライベートIPが使われます。

  • 192.168.0.0 ~ 192.168.255.255
  • 10.0.0.0 ~ 10.255.255.255
  • 172.16.0.0 ~ 172.31.255.255

これらのアドレス空間でMACアドレスを解決するためにARPが使われます。


ARPの使用例:Linux/macOSでの確認

ターミナルで以下のコマンドを実行すると、現在のARPテーブルを確認できます。

arp -a

補足:ARPと他のプロトコルとの関係

  • DHCP:IPアドレスを自動で割り振る仕組み(ARPとは役割が異なる)
  • NAPT:複数の機器のプライベートIPを1つのグローバルIPに変換(ARPはLAN内の通信の準備)
  • mDNS:LAN内で名前(host.localなど)をIPアドレスに解決する仕組み(ARPはIP→MAC)

まとめ

  • ARPは「IPアドレスからMACアドレスを取得する」ためのプロトコル。
  • 主にLAN内で使用され、プライベートIPに対してMACアドレスを解決する。
  • 実際の通信はMACアドレスを使って行われるため、ARPによる事前解決が必須。
  • LAN外との通信でも、ルーターのMACアドレスを調べるためにARPは使われる。
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?