「ARP」って言葉を始めて見た時は読み方すら分かりませんでした。しかし、ARPは現在のネットワーク技術としては欠かせない仕組みです。今回はARPの仕組みとIPアドレスとMACアドレスの関係を調べてみました!
ARPとは?
では、早速ARPのお話です。
ARPは「アープ」と読みます。「Address Resolution Protocol」の略でして、アドレスを解決する(知る)ためのプロトコルとなります。
もう少し簡単に言うと、近所内(同一セグメント)の通信はL2、町を超えて(別セグメント)の通信はL3で行う、ということです。
L3のネットワークにおいて送信側の端末(ホスト)は先ず一番近くのルータ(L3スイッチ)に対してパケットを送ることになります。一番近くのルータ(L3スイッチ)は送信側端末と同一のセグメントに存在しますから、この時はイーサネットレイヤー(L2)の通信となります。イーサネットレイヤーの通信ということはMACアドレスを使っての通信となります。
では、一番近くのルータのMACアドレスはどのようにして知ることができるのでしょうか?そうです、そのための仕組みがARPなのです!
ARPプロトコルでMACアドレスを知るためには宛先ルータのIPアドレスを使います。宛先ルータは送信側端末のルーティングテーブルに記載されているため、ルーティングテーブルを参照してIPアドレスを知ります。
ARPの流れ
ARPによってMACアドレスを知るための流れですが、それほど複雑なやり取りではありません。ステップとしては次の2ステップです。
①ARP要求(リクエスト側送信)
ネットワーク上で「○○さん(IPアドレス)のMACアドレス教えて下さい」と問い合わせを行います。その際、データはブロードキャストで、全ての端末へ送信されます。このため、同じセグメントにいる全ての機器にARP要求のパケットは届くことになります。
②ARP応答(リプライ側送信)
ARP要求のIPアドレスに合致する該当者が問い合わせ先に自分のMACアドレスを返します。該当しない端末はARP要求に対しては無視します。ARP応答を受け取った問合せ元の端末はそのMACアドレスを使って、目的のルータへデータを送ります。
また、問い合わせたMACアドレスは自分のARPテーブルの中に登録し、以降の通信時にはARP要求を無くすことで、余計なブロードキャストを減らしてます。
以下にARPの仕組みを概要図として載せておきます。
MACアドレステーブルとは?
ARPテーブルとは別に「MACアドレステーブル」というものがあります。
これはARP要求を受けとったスイッチが要求元の機器のMACアドレスを覚えておくテーブルとなります。このMACアドレステーブルにより、スイッチに届いたデータをどのポートに転送すれば良いか分かり、無駄なブロードキャストをする必要が無くなります。ポートとMACアドレスの対応表ですね。
ARPテーブルと混ざって覚えないよう気を付けましょう。
RARPとは?
RARPとは「Reverse Address Resolution Protocol」の略で、読んで字のごとく、ARPの逆のことで、MACアドレスからIPアドレスを知るためのプロトコルです。
どんな時に必要かと言うと、組み込み機器などで、IPアドレスを保持しておくようなメモリ(ハードディスク)が無い場合などに、自分のIPアドレスを知るために使われます。
RARPサーバを用意しておき、そのサーバが機器のMACアドレスをIPアドレスの対応表を登録しておくことで、組み込み機器などの電源が入ったタイミングでMACアドレスからIPアドレスを取得することができます。
まとめ
今回はARPの仕組みに関して調べてみました。
単純な仕組みではあるのですが、L2ネットワークをするためのMACアドレスを知るためには必要不可欠な仕組みとなります。
また、MACアドレステーブルやRARPの仕組みも覚えておくと、ネットワークの仕組みがより深く理解できますね。
以上です!