L2とL3の架け橋 「ARPの掟!」

Layer3:IP

IPアドレスだけが解っている宛先に対して、実際にどうやってパケットを届けることができるのか?仕組みを見てみましょう。

ARPテーブル

IPで通信する機器は、通常「ARPテーブル」というものを内部に持ち、都度更新しながら維持しています。

「ARP」とは「Address Resolution Protocol」のことで、 RFC 826として定義されました。
ARPテーブルとは、IPアドレスと、そのIPアドレスを持つ機器のMACアドレスを紐づけたデータベースです。IPプロトコルスタックが作成したIPパケットの宛先IPアドレスを基にARPテーブルを参照し、対応する宛先MACアドレスを決定してL2フレームのMACアドレスフィールドにセットし送信します。

ARPプロトコル

ARPテーブル内に宛先IPアドレスのエントリがない場合、該当IPアドレスのセグメントにつながっているポートからARPプロトコルを使って、該当IPアドレスを持っている機器にMACアドレスを教えるよう依頼し、もらった返事を使ってARPテーブルを更新します。

ARPプロトコルでは、以下の手順で宛先機器のMACアドレスを入手します。

  1. 「ARPリクエスト」フレームをブロードキャストします
  2. 該当のIPアドレスを持った機器は、この「ARPリクエスト」に対して、リクエスト元MACアドレス宛のユニキャストで「ARPリプライ」で自身のMACアドレスを通知します。

宛先IPアドレスが自身のIPセグメントと異なる場合には、自身が持っているルーティングテーブルを参照し、該当IPアドレスを含むセグメント宛に転送してくれるゲートウェイ(ルータ)のIPアドレスについてのARPリクエストを送信してゲートウェイのMACアドレスを得ます。

コメント

タイトルとURLをコピーしました