nKB

nKB

シンプルにいこうよ

ARP・MACアドレス

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 VistaTCP/IP 実装で ARP)
http://support.microsoft.com/kb/949589/ja

マイクロソフトドキュメント「TCP/IP Implementation Details」※MSサイト内を検索

Solaris

# ndd /dev/arp arp_cleanup_interval  

単位:ミリsec


Linux

以下のファイルの「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

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