アドレス解決プロトコル

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

アドレス解決プロトコルARP)は、特定インターネット層アドレス(通常はIPv4アドレス)に関連付けられたMACアドレスなどのリンク層アドレスを検出するために使用される通信プロトコルです。このマッピングは、インターネットプロトコルスイートの重要な機能です。 ARPは、インターネット標準STD37であるRFC826 [2]によって1982年定義まし 

ARPは、 IPv4ChaosnetDECnetIEEE802標準を使用するXeroxPARCユニバーサルパケット(PUP) 、 FDDIX.25フレームリレー非同期転送モード(ATM)など、ネットワークとデータリンク層のテクノロジーの多くの組み合わせで実装されています。

インターネットプロトコルバージョン6 (IPv6)ネットワークでは、ARPの機能は近隣探索プロトコル(NDP)によって提供されます。

動作範囲

アドレス解決プロトコルは、メッセージがリンク層プロトコルによってカプセル化されている要求/応答プロトコルです。単一のネットワークの境界内で通信され、インターネットワーキングノード間でルーティングされることはありません。このプロパティは、ARPをインターネットプロトコルスイートのリンク層に配置します[3] [失敗した検証] [4] [失敗した検証]

パケット構造

アドレス解決プロトコルは、1つのアドレス解決要求または応答を含む単純なメッセージ形式を使用します。 ARPメッセージのサイズは、リンク層とネットワーク層のアドレスサイズによって異なります。メッセージヘッダーは、各レイヤーで使用されているネットワークのタイプと、各レイヤーのアドレスのサイズを指定します。メッセージヘッダーには、要求(1)と応答(2)のオペコードが含まれています。パケットのペイロードは、送信者ホストと受信者ホストのハードウェアアドレスとプロトコルアドレスの4つのアドレスで構成されます。

ARPパケットの主なパケット構造を次の表に示します。これは、イーサネットで実行されているIPv4ネットワークの場合を示しています。このシナリオでは、パケットには、送信側ハードウェアアドレス(SHA)とターゲットハードウェアアドレス(THA)用の48ビットフィールドと、対応する送信側およびターゲットプロトコルアドレス(SPAとTPA)用の32ビットフィールドがあります。この場合のARPパケットサイズは28バイトです。

イーサネットARPパケットを介したインターネットプロトコル(IPv4)
オクテットオフセット 0 1
0 ハードウェアタイプ(HTYPE)
2 プロトコルタイプ(PTYPE)
4 ハードウェアアドレスの長さ(HLEN) プロトコルアドレス長(PLEN)
6 操作(OPER)
8 送信者ハードウェアアドレス(SHA)(最初の2バイト)
10 (次の2バイト)
12 (最後の2バイト)
14 送信者プロトコルアドレス(SPA)(最初の2バイト)
16 (最後の2バイト)
18 ターゲットハードウェアアドレス(THA)(最初の2バイト)
20 (次の2バイト)
22 (最後の2バイト)
24 ターゲットプロトコルアドレス(TPA)(最初の2バイト)
26 (最後の2バイト)
ハードウェアタイプ(HTYPE)
このフィールドは、ネットワークリンクプロトコルタイプを指定します。例:イーサネットは1です。
プロトコルタイプ(PTYPE)
このフィールドは、ARP要求の対象となるインターネットワークプロトコルを指定します。IPv4の場合、これの値は0x0800です。許可されたPTYPE値は、EtherTypeの番号スペースと番号付けスペースを共有します。[5] [6] [7]
ハードウェアの長さ(HLEN)
ハードウェアアドレスの長さ(オクテット単位)。イーサネットアドレスの長さは6です。
プロトコルの長さ(PLEN)
インターネットワークアドレスの長さ(オクテット単位)。インターネットワークプロトコルはPTYPEで指定されます。例:IPv4アドレスの長さは4です。
手術
送信者が実行している操作を指定します。1は要求用、2は応答用です。
送信者ハードウェアアドレス(SHA)
送信者のメディアアドレス。ARP要求では、このフィールドは、要求を送信するホストのアドレスを示すために使用されます。ARP応答では、このフィールドは、要求が探していたホストのアドレスを示すために使用されます。
送信者プロトコルアドレス(SPA)
送信者のインターネットワークアドレス。
ターゲットハードウェアアドレス(THA)
目的の受信者のメディアアドレス。ARP要求では、このフィールドは無視されます。ARP応答では、このフィールドは、ARP要求を発信したホストのアドレスを示すために使用されます。
ターゲットプロトコルアドレス(TPA)
目的の受信者のインターネットワークアドレス。

ARPプロトコルパラメータ値は標準化されており、Internet Assigned Numbers Authority(IANA)によって維持されています。[8]

ARPEtherTypeは0x0806です。これは、ペイロードがARPパケットであり、このカプセル化されたARPパケット内に表示されるPTYPEと混同しないようにイーサネットフレームヘッダーに表示されます。

オフィス内の2台のコンピューター(コンピューター1とコンピューター2)はイーサネットケーブルとネットワークスイッチによってローカルエリアネットワークで相互に接続されており、ゲートウェイルーターは介在していませんコンピュータ1は、を介してコンピュータ2に送信するパケットがあるDNSを、それがコンピュータ2は、IPアドレス192.168.0.55を持っていることを決定します。

メッセージを送信するには、コンピュータ2のMACアドレスも必要です。まず、コンピューター1はキャッシュされたARPテーブルを使用して、コンピューター2のMACアドレス(00:eb:24:b2:05:ac)の既存のレコードを192.168.0.55で検索します。MACアドレスが見つかると、IPパケットを含む宛先アドレス00:eb:24:b2:05:acのイーサネットフレームがリンクに送信されます。キャッシュが192.168.0.55の結果を生成しなかった場合、コンピューター1はブロードキャストARP要求メッセージ(宛先FF:FF:FF:FF:FF:FF MACアドレス)を送信する必要があります。これは、ローカルネットワーク上のすべてのコンピューターによって受け入れられます。 、192.168.0.55の回答を要求します。

コンピュータ2は、MACアドレスとIPアドレスを含むARP応答メッセージで応答します。要求の処理の一部として、コンピューター2は、将来使用するためにコンピューター1のエントリをARPテーブルに挿入する場合があります。

コンピューター1は、応答情報を受信して​​ARPテーブルにキャッシュし、パケットを送信できるようになります。[9]

ARPプローブ

アンARPプローブは、すべてゼロのSPAで構成ARP要求です。IPv4アドレスの使用を開始する前に(手動構成、DHCP、またはその他の手段から受信したかどうかに関係なく)、この仕様を実装するホストは、ARPプローブパケットをブロードキャストして、アドレスがすでに使用されているかどうかをテストする必要があります。[10]

ARPアナウンス

ARPは、単純なアナウンスプロトコルとしても使用できます。これは、送信者のIPアドレスまたはMACアドレスが変更されたときに、他のホストのハードウェアアドレスのマッピングを更新する場合に役立ちます。このようなアナウンスは、Gratuitous ARP(GARP)メッセージとも呼ばれ、通常、ターゲットフィールド(TPA = SPA)にSPAを含み、THAをゼロに設定したARP要求としてブロードキャストされます。別の方法は、送信者のSHAとSPAがターゲットフィールド(TPA = SPA、THA = SHA)に複製さ れたARP応答をブロードキャストすることです。

ARP要求ARP応答アナウンスはどちらも標準ベースの方法ですが[11] [12]ARP要求方法が推奨されます。[13]一部のデバイスは、これら2つのタイプのアナウンスのいずれかを使用するように構成されている場合があります。[14]

ARPアナウンスは、返信を求めることを目的としたものではありません。代わりに、パケットを受信する他のホストのARPテーブルにキャッシュされているエントリを更新します。アナウンスの操作コードは、要求または応答のいずれかです。ARP標準では、アドレスフィールドからARPテーブルが更新された後にのみオペコードが処理されるように指定されています。[15] [16] [17]

多くのオペレーティングシステムは、起動時にARPアナウンスを発行します。これは、たとえば、ネットワークカードが最近変更され(IPアドレスからMACアドレスへのマッピングを変更)、他のホストのARPキャッシュに古いマッピングが残っている 場合に発生する問題を解決するのに役立ちます。

ARPアナウンスは、着信トラフィックのロードバランシングを提供するために一部のネットワークインターフェイスでも使用されます。ネットワークカードのチームでは、着信パケットを受信する必要があるチーム内の別のMACアドレスをアナウンスするために使用されます。

ZeroconfプロトコルでARPアナウンスを使用すると、他のIPアドレス構成が利用できないインターフェイスにリンクローカルIPアドレスを自動的に割り当てることができます。アナウンスは、ホストによって選択されたアドレスがネットワークリンク上の他のホストによって使用されていないことを確認するために使用されます。[18]

攻撃者はサブネットの他のホストに関する情報を取得して、攻撃者のMACがデフォルトのIPなどに関連付けられているエントリをARPキャッシュ( ARPスプーフィング)に保存できるため、この機能はサイバーセキュリティの観点から危険な場合があります。ゲートウェイ、したがって、彼は外部ネットワークへのすべてのトラフィックを 傍受することができます。

ARP調停

ARPメディエーションとは、接続された回線で異なる解決プロトコルが使用されている場合に、仮想プライベートワイヤサービス(VPWS)を介してレイヤ2アドレスを解決するプロセスを指します。たとえば、一方の端にイーサネット、もう一方の端にフレームリレーがあります。IPv4では、各プロバイダーエッジ(PE)デバイスがローカルに接続されたカスタマーエッジ(CE)デバイスのIPアドレスを検出し、そのIPアドレスを対応するリモートPEデバイスに配布します。次に、各PEデバイスは、リモートCEデバイスのIPアドレスとローカルPEデバイスのハードウェアアドレスを使用して、ローカルARP要求に応答します。 IPv6の場合、各PEデバイスはローカルとリモートの両方のCEデバイスのIPアドレスを検出し、ローカルの近隣探索(ND )パケットと逆近隣探索(IND)パケットを傍受して、リモートPEデバイスに転送します。[19]

逆ARPおよび逆ARP

Inverse Address Resolution ProtocolInverse ARPまたはInARP )は、データリンク層(レイヤー2)アドレスから他のノードのネットワークレイヤーアドレス(たとえば、IPアドレス)を取得するために使用されます。 ARPはレイヤ3アドレスをレイヤ2アドレスに変換するため、InARPはその逆であると説明できます。さらに、InARPはARPのプロトコル拡張として実装されています。ARPと同じパケット形式を使用しますが、動作コードが異なります。

InARPは、主にフレームリレーDLCI)およびATMネットワークで使用されます。これらのネットワークでは、仮想回線のレイヤ2アドレスがレイヤ2シグナリングから取得されることがあり、これらの仮想回線を使用する前に、対応するレイヤ3アドレスが使用可能である必要があります。[20]

InARPと同様に、Reverse Address Resolution Protocol(Reverse ARPまたはRARP)は、レイヤ2アドレスをレイヤ3アドレスに変換します。ただし、InARPでは、要求ステーションは別のノードのレイヤー3アドレスを照会しますが、RARPは、アドレス構成の目的で要求ステーション自体のレイヤー3アドレスを取得するために使用されます。RARPは廃止されました。これはBOOTPに置き換えられ、後で動的ホスト構成プロトコル(DHCP)に置き換えられました。[21]

ARPスプーフィングとプロキシARP

ARPスプーフィング攻撃が成功すると、攻撃者は中間者攻撃を実行できます

ARPはネットワーク上でARP応答を認証する方法を提供しないため、ARP応答は、必要なレイヤ2アドレスを持つシステム以外のシステムから送信される可能性があります。 ARPプロキシは、通常はダイヤルアップインターネットサービスなどのネットワーク設計の一部として、トラフィックを転送する別のシステムに代わってARP要求に応答するシステムです。対照的に、ARPスプーフィングでは、応答システムまたはスプーフィングは、そのシステムにバインドされたデータを傍受することを目的として、別のシステムのアドレスの要求に応答します。悪意のあるユーザーがARPスプーフィングを使用して、man-in-the-middleまたはサービス拒否を実行する可能性がありますネットワーク上の他のユーザーへの攻撃。ARPスプーフィング攻撃を検出して実行するためのさまざまなソフトウェアが存在しますが、ARP自体はそのような攻撃からの保護方法を提供していません。[22]

代替案

IPv6は、ARPではなく 、近隣探索プロトコルとその拡張機能( Secure Neighbor Discoveryなど)を使用します。

コンピューターは、アクティブなプロトコルを使用するのではなく、既知のアドレスのリストを維持できます。このモデルでは、各コンピューターは、レイヤー3アドレス(IPアドレスなど)からレイヤー2アドレス(イーサネット MACアドレスなど)へのマッピングのデータベースを維持します。このデータは、主にローカルネットワークリンクからのARPパケットを解釈することによって維持されます。したがって、ARPキャッシュと呼ばれることがよくあります。少なくとも1980年代以降、[23]ネットワーク化されたコンピュータには、このデータベースに問い合わせたり操作したりするためのarpと呼ばれるユーティリティがあります。 [24] [25] [26]

歴史的に、静的構成ファイル[27]や一元的に維持されるリスト など、他の方法がアドレス間のマッピングを維持するために使用されていました。

ARPスタッフィング

ネットワークカメラ[28]やネットワーク配電デバイス[29]など、ユーザーインターフェイスがない組み込みシステムでは、いわゆるARPスタッフィングを使用して初期ネットワーク接続を確立できますが、ARPが関与していないため、これは誤った呼び方です。

ARPスタッフィングは次のように実行されます。

  1. ユーザーのコンピューターのアドレステーブルに手動でIPアドレスが入力れています(通常は、デバイスのラベルから取得したMACアドレスを使用したarpコマンドを使用します)。
  2. コンピューターは、特別なパケット、通常はデフォルト以外のサイズのpingパケットをデバイスに送信します。
  3. 次に、デバイスはこのIPアドレスを採用します
  4. 次に、ユーザーはTelnetまたはWebプロトコルを使用して通信し、構成を完了します。

このようなデバイスには通常、デバイスが正常に動作しているときにこのプロセスを無効にする方法があります。これは、この機能によってデバイスが攻撃に対して脆弱になる可能性があるためです。

標準文書

  • RFC  826-イーサネットアドレス解決プロトコル、インターネット標準STD37。
  • RFC  903 -Reverse Address Resolution Protocol、インターネット標準STD38。
  • RFC  2390 -Inverse Address Resolution Protocol、ドラフト標準
  • RFC  5227 -IPv4アドレス競合検出、提案された標準

も参照してください

参考文献

  1. ^ W. Richard Stevens、 TCP / IP Illustrated、Volume 1:The Protocols、Addison Wesley、1994、ISBN0-201-63346-9。
  2. ^ David C. Plummer(1982年11月)。「RFC826、イーサネットアドレス解決プロトコル-または-イーサネットハードウェアで送信するためにネットワークプロトコルアドレスを48ビットイーサネットアドレスに変換する」インターネットエンジニアリングタスクフォース、ネットワークワーキンググループ。 引用ジャーナルには|journal=ヘルプ)が必要です
  3. ^ RFC 1122 
  4. ^ W. Richard Stevens、 TCP / IP Illustrated、Volume 1:The Protocols、Addison Wesley、1994、ISBN0-201-63346-9。
  5. ^ 「IANAARP-プロトコルタイプ」
  6. ^ 「IANA-Ethertype値」
  7. ^ RFC 5342 
  8. ^ 「アドレス解決プロトコル(ARP)パラメータ」www.iana.org 2018年10月16日取得
  9. ^ Chappell、Laura A。; エドティッテル(2007)。TCP / IPガイド(第3版)。トムソンコーステクノロジー。pp。115–116。ISBN 9781418837556
  10. ^ Cheshire、S。(2008年7月)。IPv4アドレスの競合の検出インターネットエンジニアリングタスクフォース。土井10.17487 / RFC5227RFC5227_
  11. ^ Perkins、C。(2010年11月)。「RFC5944-IPv4のIPモビリティサポート、改訂」インターネットエンジニアリングタスクフォース。Gratuitous ARPは、ARP要求またはARP応答パケットのいずれかを使用できます。[...] ARPパケット(要求または応答)を受信するノードは、ローカルARPキャッシュをARPパケットの送信者プロトコルとハードウェアアドレスで更新する必要があります[...] 引用ジャーナルには|journal=ヘルプ)が必要です
  12. ^ Perkins、C。(1996年10月)。「RFC2002-IPモビリティサポート」インターネットエンジニアリングタスクフォース。 引用ジャーナルには|journal=ヘルプ)が必要です
  13. ^ Cheshire、S。(2008年7月)。「RFC5227-IPv4アドレスの競合の検出」インターネットエンジニアリングタスクフォース。ARPアナウンスがARP応答パケットではなくARP要求パケットを使用して実行されるのはなぜですか? 引用ジャーナルには|journal=ヘルプ)が必要です
  14. ^ 「FAQ:ファイアウォールはアドレス解決プロトコルテーブルを更新しません」Citrix2015-01-16。[...] garpReply enabled [...]は、[...]がREQUESTではなくOPCODEタイプのREPLYであるARPパケットを生成します。
  15. ^ 「DHCPとIPv4ACDドラフトのGratuitousARP」2007年10月12日にオリジナルからアーカイブされました。
  16. ^ パーキンス、チャールズE.(1996年10月)。「RFC2002セクション4.6」 引用ジャーナルには|journal=ヘルプ)が必要です
  17. ^ Droms、ラルフ(1997年3月)。「RFC2131DHCP –セクション4.4.1の最後の行」 引用ジャーナルには|journal=ヘルプ)が必要です
  18. ^ RFC 3927 
  19. ^ Shah、H。; etal。(2012年6月)。レイヤ2VPNのIPインターワーキングのためのアドレス解決プロトコル(ARP)メディエーションインターネットエンジニアリングタスクフォース。土井10.17487 / RFC6575RFC6575_
  20. ^ T。ブラッドリー; etal。(1998年9月)。「RFC2390-逆アドレス解決プロトコル」インターネットエンジニアリングタスクフォース。 引用ジャーナルには|journal=ヘルプ)が必要です
  21. ^ フィンレイソン; マン; モーグル; Theimer(1984年6月)。逆アドレス解決プロトコルインターネットエンジニアリングタスクフォース。土井10.17487 / RFC0903RFC903_
  22. ^ スティーブギブソン(2005-12-11)。「ARPキャッシュポイズニング」GRC
  23. ^ カリフォルニア大学バークレー校。「arp(8C)コマンドのBSDマニュアルページ」2011年9月28日取得
  24. ^ カノニカル。「arp(8)コマンドのUbuntuマニュアルページ」2012年3月16日にオリジナルからアーカイブされました。2011年9月28日取得
  25. ^ アップルコンピュータ。「arp(8)コマンドのMac OSXマニュアルページ」2011年9月28日取得
  26. ^ マイクロソフト。「arpコマンドのWindowsヘルプ」2011年9月28日取得
  27. ^ サンマイクロシステムズ。「ethers(5)ファイルのSunOSマニュアルページ」2011年9月28日取得
  28. ^ アクシスコミュニケーションズ。「AxisP13ネットワークカメラシリーズインストールガイド」(PDF)2011年9月28日取得
  29. ^ アメリカンパワーコーポレーション。「スイッチドラック配電ユニットの設置およびクイックスタートマニュアル」(PDF)2011年11月25日にオリジナル(PDF)からアーカイブされました2011年9月28日取得

外部リンク