アドレス解決プロトコルについて詳しく解説

プロトコルスタック
7応用
6プレゼンテーション
5セッション
4交通機関
3ネットワーク
2データバインディング
1物理的な
OSIモデル

アドレス解決プロトコル( ARP ) は、ネットワーク層プロトコルアドレス(通常は IPv4 アドレス) からイーサネットアドレス (通常は MAC アドレス) へ、またはボンド層マテリアルからの変換を実行するプロトコルです。

これは、RFC 826 :イーサネット アドレス解決プロトコルで定義されました。

IPv4 が動作するには必要ですが、 IPv6 が動作するには不要のようです。 IPv6 では、ARP は廃止され、 Internet Control Message Protocol V6 に置き換えられます。

この記事の残りの部分では、 IP アドレスという用語はIPv4 アドレスについて説明するために使用されます。

ARP を使用する一般的なシナリオ

コンピュータ ネットワークに接続されているコンピュータは、 IP アドレスを知っている別のコンピュータにイーサネットフレームを送信したいと考えています。

ARP キャッシュにクエリを実行して、ターゲット マシンの IP アドレスに一致するエントリを探します。次の 2 つのケースが考えられます。

  1. IP アドレスは送信機のキャッシュに存在し、対応するMAC アドレスを読み取るだけでイーサネット フレームが送信されます。この場合、ARP の使用はここで停止します。
  2. IP アドレスが送信機のキャッシュにありません。この場合、このコンピュータはブロードキャストを保留し、ブロードキャストARP要求を作成します。このリクエストは、「IP アドレスIPaddressに対応する MAC アドレスは何ですか? MACaddressへの返信」というタイプのものです。

これはブロードキャストであるため、物理メディアに接続されているすべてのコンピュータがリクエストを受信します。その内容を観察することで、どの IP アドレスが検索されているかを判断できます。この IP アドレスを持つマシンは、送信マシンに ARP 応答を送信することによって応答する唯一のマシンになります (少なくとも、それが唯一のマシンである場合は、どのネットワークでもそうであるはずですが…)。 「私はIPaddressです。私の MAC アドレスはMACaddressです。」と入力します。この応答を正しいコンピュータに送信するために、受信した ARP 要求に含まれるデータから ARP キャッシュにエントリを作成します。

ARP 要求を発信したマシンは応答を受信し、ARP キャッシュを更新するため、キューに入れておいたメッセージを関係するコンピュータに送信できます。

したがって、ブロードキャストとユニキャストだけで 2 台のコンピュータの ARP キャッシュにエントリを作成できます。

アドレス解決プロトコルについて詳しく解説

ARPセキュリティ

ARP プロトコルは、主に 1 つ以上のコンピュータに誤った ARP メッセージを送信することによるローカル攻撃に対して脆弱です。これらは「ARP キャッシュ ポイズニング」という名前でグループ化されています。 ARP キャッシュ汚染に対するコンピュータの脆弱性は、オペレーティング システムの ARP プロトコルの実装によって決まります。

通常、この種の攻撃には、「arp who-has」パケットがアリスのマシンに送信されることが含まれます。この特別に偽造されたパケットには、送信元 IP アドレスとして、なりすまし (IP アドレス スプーフィング) の対象となるボブのマシンの IP アドレスと、マロリー マシンのネットワーク カードの MAC アドレスが含まれます。したがって、アリスのマシンは、MAC アドレスをボブのマシンの IP アドレスに関連付けるエントリを作成します。 「arp who-has」の受信者であるアリスは、パケットを使用して MAC テーブルにエントリを作成します。アリスが IP レベルでボブと通信したい場合、私たちの MAC アドレスがボブのステーションの IP に相当するものとしてアリスのポイズニングされたキャッシュに記録されているため、アリスのフレームを受信するのは私たちのステーションです。これは ARP 実装の既知の弱点であり、リモート ARP キャッシュが破損しやすくなります。

これらの攻撃は、2 台のマシン間の通信の盗聴(MIM または中間者)、接続の盗難、コンピュータネットワークの構造として機能するスイッチの過負荷、またはサービス妨害 (MIM タイプの攻撃を実行してパケットを拒否するだけ) を引き起こす可能性があります。 )。

このタイプの攻撃に対抗するには、次のことが可能です。

  • ネットワーク上の各マシンの ARP キャッシュに静的エントリをセットアップするには ( arp -sコマンド)。これは、昼も夜もそこで過ごすことを望まない限り、少数のマシン (サーバーやゲートウェイなどの最も重要なマシンを優先) にのみ適用されます (ただし、XP バージョンより前のMicrosoft オペレーティング システム Windowsでは、静的なマシンであることに注意してください)エントリは更新できますが、唯一の違いは有効期限がないことです 😉
  • スイッチの各ポートのMACアドレス(静的情報)を許可する場合に制限する(ポートセキュリティ機能)。たとえば、レイヤー 3 スイッチは、静的なポート/MAC/IP の関連付けを構成する機能を提供します。しかし、これにより公園の維持管理が明らかに困難になります。
  • ARPwatch などの監視ツールを使用して、コンピュータ ネットワーク上を循環する ARP メッセージを監視します (ネットワーク研究グループ (NRG)、情報およびコンピューティング科学部門(ICSD)、ローレンス バークレー国立研究所(LBNL) のツール: http://www- nrg.ee.lbl.gov/ )、Arpalert: http://www.arpalert.net/ 、または IDS (侵入検知システム)
  • 各エントリには有効期間があることを知っておく必要があります (これには、攻撃者が被害者のキャッシュを定期的に破壊する必要もあります)。 Solaris などの一部のオペレーティング システムでは、この有効期限の値を変更できます (ndd コマンド)。値を短くすると、破損がより簡単に確認できます。
アドレス解決プロトコルについて詳しく解説

ARPヘッダー

+ビット0~7 8~15 16~31
0ハードウェアの種類プロトコルの種類
32ハードウェアアドレスの長さプロトコルアドレスの長さ手術
64送信者のハードウェアアドレス
?送信者プロトコルアドレス
?ターゲットハードウェアアドレス
?ターゲットプロトコルアドレス

と :

  • ハードウェアの種類
    • 01 – イーサネット (10Mb) [JBP]
    • 02 – 実験用イーサネット (3Mb) [JBP]
    • 03 – アマチュア無線 AX.25 [PXK]
    • 04 – プロテオン ProNET トークンリング [ドリア]
    • 05 – カオス【GXP】
    • 06 – IEEE 802ネットワーク [JBP]
    • 07 – アークネット [JBP]
    • 08 – ハイパーチャンネル [JBP]
    • 09 – ランスター[TU]
    • 10 – オートネットショートアドレス [MXB1]
    • 11 –ローカルトーク[JKR1]
    • 12 – LocalNet (IBM PCNet または SYTEK LocalNET) [JXM]
    • 13 –ウルトラリンク[RXD2]
    • 14 – SMDS [GXC1]
    • 15 – フレームリレー [AGM]
    • 16 – 非同期送信モード (ATM) [JXB2]
    • 17 – HDLC [JBP]
    • 18 –ファイバーチャネル[ヤコフ・レクテル]
    • 19 – 非同期送信モード (ATM) [RFC2225]
    • 20 – シリアルライン[JBP]
    • 21 – 非同期送信モード (ATM) [MXB1]
    • 22 – MIL-STD-188-220 [ジェンセン]
    • 23 – メトリコム[石]
    • 24 – IEEE 1394.1995 [ハッティグ]
    • 25. MAPOS【丸山】
    • 26 – ツインアキシャル [ピッツ]
    • 27 – EUI-64【藤沢】
    • 28 – ヒパルプ [JMP]
    • 29 – ISO 7816-3 上の IP および ARP [Guthery]
    • 30 – ARPSec [エティエンヌ]
    • 31 – IPsecトンネル[RFC3456]
    • 32 – インフィニバンド (TM) [カシャップ]
    • 33 – TIA-102 プロジェクト 25 共通エアインターフェイス(CAI) [アンダーソン]
  • プロトコルの種類
    • 0x0800 – IP

このフィールドは、 Arp が使用するレイヤー 3 (OSI) プロトコルのタイプを示します。

  • ハードウェアアドレスの長さ
    • 01 – トークンリング
    • 06 – イーサネット

このフィールドは物理アドレスの長さに対応します。長さはバイト単位で指定する必要があります。

  • プロトコルアドレス長論理アドレス長
    • 04 – IPv4
    • 06 – IPv6

このフィールドはネットワーク アドレスの長さに対応します。長さはバイト単位で指定する必要があります。

  • 手術
    • 01 – リクエスト [ RFC 826 ]リクエスト
    • 02 – 返信 [ RFC 826 ]応答

このフィールドを使用すると、メッセージの機能、つまりその目的を知ることができます。

  • 送信者のハードウェアアドレス

イーサネットの一部としての送信元 Mac アドレス。

TCP/IP の一部としての送信元 IP アドレス

  • ターゲットハードウェアアドレス

イーサネットのコンテキストにおける宛先 Mac アドレス。 Arp リクエストの場合、このアドレスは不明なので、フィールドは1に設定されます (これはレベル 2 ブロードキャストです)。

  • ターゲットのインターネットアドレス

TCP/IP での宛先 IP アドレス

アドレス解決プロトコルについて詳しく解説
  1. Address Resolution Protocol – aragonais
  2. بروتوكول اقتران العناوين – arabe
  3. Address Resolution Protocol – bulgare
  4. Address Resolution Protocol – bosniaque
  5. Address Resolution Protocol – catalan
  6. Address Resolution Protocol – tchèque

アドレス解決プロトコルについて詳しく解説・関連動画

サイエンス・ハブ

知識の扉を開け、世界を変える。