TCP/IPではIPアドレスで通信相手を特定し、パケットを送信する。
通信相手が同一ネットワーク上に存在するなら直接パケットを送信する。
通信相手が異なるネットワークの場合は、ルータ(ゲートウェイ)に送信する。
Ethernetではイーサネットフレームに宛先MACアドレスを設定する必要がある為
宛先のMACアドレスを知る必要がある。
ただし、MACアドレスは通常意識する必要はなく、ARPによって自動で取得できる。
IPアドレスとMACアドレスの対応表(ARPテーブル)が必要になる。
・ARPフォーマット
イーサネットフレームを利用する。データ部分にARPに関する情報が入る。
ARPの動作
① ARP要求の送信(ブロードキャスト)
② ARP応答の送信(ユニキャスト)
③ IPアドレスとMACアドレスの対応表(ARPテーブル)に登録される
GARPの動作
① 自分自身に設定するIPアドレスが重複していないかどうかを検出
② 同一セグメントのネットワーク機器上のARPキャッシュを更新させる
ARPキャッシュ
保持時間
対象 | 保持時間 |
---|---|
Windows | 2分 |
Cisco IOS | 4時間(240分) |
CiscoルータのARPキャッシュの保持時間 | ITStudy
ARP に関する FAQ: 一部のダイナミックな ARP エントリが、それぞれの ARP タイムアウトの期限が切れた後も ARP テーブル内に存在する理由 - Cisco
確認方法
Windows
レジストリ エントリ
ArpCacheLife
ArpCacheMinReferencedLife
<参考>
アドレス解決プロトコル (キャッシュ動作の Windows Vista の TCP/IP 実装で ARP)
http://support.microsoft.com/kb/949589/ja
マイクロソフトドキュメント「TCP/IP Implementation Details」※MSサイト内を検索
# ndd /dev/arp arp_cleanup_interval
単位:ミリsec
以下のファイルの「locktime」の値を確認
/proc/sys/net/ipv4/neigh/eth0
locktime…ARP エントリをキャッシュに保存する時間の最小値
<ソース>
Manpage of ARP
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/arp.7.html
Cisco MACアドレステーブル キャッシュ
既定値:300秒
下記のコマンドで確認できる
show mac address-table aging-time ASR1k#show interfaces gi0/0/2 | include ARP Encapsulation ARPA, loopback not set ARP type: ARPA, ARP Timeout 04:00:00
参考
ASCII.jp:Ethernetのフレーム構造を理解しよう (3/3)
EOF