ARPについて勉強した

目次

ARPの概要

IPアドレスMACアドレスに解決します。

ARPを含むフレーム

ARPパケットは以下のようなイーサネットフレームに含まれます。

  • ARP要求パケットはブロードキャスト送信されるため、宛先アドレスはff:ff:ff:ff:ff:ffとなる。
  • フレームによりTrailerが付加されることがある。付加される理由は不明。

ARP要求パケット

ARP応答パケット

ARPキャッシュ

通信にはバースト特性があり、同じノードとろ連続して通信が行われる可能性が高い
そこで、連続する通信の際に毎回ARP要求を行わないよう、MACアドレスのキャッシュを行う。

バースト特性の要因

バースト特性は、IPパケットとイーサネットフレームのMTUが異なることが要因です。
IPパケットのMTUや約65,000オクテット、イーサネットフレームのMTUは1500オクテットです。そのため、1パケットは最大43個のフレームに分割して送信されます。その結果、同じノードへの43個の連続したフレーム送信が起こる。

ARPコマンド(Windows)

ARPテーブルの表示
arp -a
ARPエントリの追加
arp -s 192.168.1.3 00-16-6f-c1-81-90
ARPエントリの削除
arp -d 192.168.1.3
ARPテーブルの例
Interface: 192.168.1.18 --- 0x2
  Internet Address      Physical Address      Type
  192.168.1.1           00-0a-79-6c-6d-36     dynamic
  192.168.1.3           00-16-6f-c1-81-90     static
ARPエントリのType
  • dynamicは通常のエントリで、自動的に追加されます。一定時間(2分間)経つと削除されます。
  • staticは永続的なエントリで、arpコマンドで追加します。マシンをりブートすると削除されます。

ARPコマンド(Linux)

ARPテーブルの表示
arp
ARPエントリの追加

※root権限が必要

arp -s 192.168.1.3 00:16:6f:c1:81:90
ARPエントリをファイルから追加

※root権限が必要

arp -f アドレス定義ファイル (省略時は/etc/ethers)
ARPエントリの削除

※root権限が必要

arp -d 192.168.1.3
ARPテーブルの例
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.1.3              ether   00:16:6f:c1:81:90   CM                    eth0
192.168.1.18             ether   00:16:6f:c1:81:90   C                     eth0

Type

  • Cは通常のエントリで、自動的に追加されます。一定時間経つと削除されます。
  • Mは永続的なエントリで、arpコマンドで追加します。マシンをりブートすると削除されます。
  • PはProxy ARP用のエントリ。

アドレス定義ファイルの例

00:16:6f:c1:81:90 192.168.1.3
00:16:6f:c1:81:90 192.168.1.18

ARPコマンド(Solaris10)

ARPテーブルの表示
arp -a
ARPエントリの追加

※root権限が必要

arp -s 192.168.1.3 00:16:6f:c1:81:90
ARPエントリをファイルから追加

※root権限が必要

arp -f アドレス定義ファイル ※省略不可
ARPエントリの削除

※root権限が必要

arp -d 192.168.1.3
ARPテーブルの例
Net to Media Table: IPv4
Device   IP Address               Mask      Flags      Phys Addr
------ -------------------- --------------- -------- ---------------
eri0   192.168.1.1          255.255.255.255 o        00:0a:79:6c:6d:36
eri0   192.168.1.18         255.255.255.255 o        00:16:6f:c1:81:90
eri0   blade                255.255.255.255 SPLA     00:03:ba:08:42:23
eri0   192.168.1.3          255.255.255.255 S        00:16:6f:c1:81:90
eri0   192.168.1.19         255.255.255.255 o        00:0a:79:a6:8e:59
eri0   192.168.1.21         255.255.255.255 o        00:13:d3:d4:cf:c2
eri0   BASE-ADDRESS.MCAST.NET 240.0.0.0       SM       01:00:5e:00:00:00

Flags

  • Pは公開エントリで、マシンはこのエントリのアドレスに対するARP要求に応答します。
  • Sは静的エントリで、自動的に変更されることはありません。
  • Lはローカルエントリで、ローカルマシンのアドレスのエントリです。
  • Uは未解決エントリで、対応するMACアドレスが不明です。
  • Mはマッピングエントリで、マルチキャストアドレスのエントリです。
  • Aは権威エントリで、他のマシンからの通知により変更されることはありません。

アドレス定義ファイルの例

192.168.1.5 00:16:6f:c1:81:90
192.168.1.7 00:16:6f:c1:33:90