【ネットワーク層】ARP/RARP

基礎

データリンク層とネットワーク層での連携において、必要になる技術がARP/RARPです。

ネットワーク層ではIPアドレスで通信されるが、実際の通信はMACアドレスによって実現されているため、IPアドレスとMACアドレスを紐付けることが必要になります。

ARP

基本的な知識

ARPとは、IPアドレスに紐づくMACアドレスを問い合わせるためのプロトコルです。

ARPを実施する前の状態としては、IPアドレスはわかっていて、MACアドレスがわからない、という状態です。
RARPは逆で、MACアドレスがわかっていて、IPアドレスがわからないときに使われます。
混同しないように覚えておきましょう。

ARPの動作は、以下のような流れになります。
①MACアドレスを問い合わせたい機器のIPアドレスをターゲットIPアドレスに設定し、ターゲットMA Cアドレスを0にして、ARP要求をネットワーク上にブローキャストします。
②ARP要求を受けた機器は、ARPパケットのセンダIPアドレスに自分のIPアドレス、センダMACアドレスに自分のMACアドレスを設定し、問い合わせ元の機器にARP応答をします。
③ARP応答を受けた機器は、宛先MACアドレスにARP応答の情報(MACアドレス)を設定し、確認のためにフレームを送信します。

問い合わせたい機器が異なるネットワークに存在するときは、デフォルトゲートウェイとして設定されているルータが代わりに応答します。

各ホストは、ARPによって収集した情報をARPテーブルとして一定時間保持します。
一定時間保持する理由は、頻繁に何度もARPすることを防ぐためです。キャッシュのようなイメージですね。

ネットワーク構成に変化があった場合は、ARPテーブルを破棄します。

これが、ARPの一連の動作になります。

プロキシARP

プロキシARPとは、中継装置に実装される代理でARP応答をする機能です。

これにより、ホストはどの機器に対してARPしたい場合でも、プロキシARP宛てにARP要求を送信することになります。

GARP

GARPは、ターゲットIPアドレスに自分のIPアドレスを設定したARPです。
(GARP:Gratuitous ARP)

これは、IPアドレスの重複検出や、同一セグメントに属するすべてのホストのARPテーブルを同時に更新したい場合に使われます。

RARP

RARPとは、MACアドレスに紐づくIPアドレスを問い合わせるためのプロトコルです。

RARPを実施する前の状態としては、MACアドレスがわかっていて、IPアドレスがわからない、という状態です。

IPアドレスを持たないホストが、自分のMACアドレスに紐づくIPアドレスを取得するために、RARPサーバに問い合わせるという流れです。

しかし、現在はDHCPが主流であるため、RARPでIPアドレスを取得する方法はあまり使われていません。

コメント

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