nao_pcapの日記

2011-01-08

ARPフォーマット


イーサネットではMACアドレスを用いて通信をし、

ARPIPアドレスからそのMACアドレスを調べるためのプロトコル

IPと同じネットワーク層で動作する。


フォーマット

f:id:nao_pcap:20110108220716p:image

Hardware Type

ハードウェアの種別。


0x0001 Ethernet

0x000F Frame Relay

0x0011 HDLC

0x0012 Fibre Channel


Protocol Type

プロトコルの種別。


0x0800 IP

0x809B Appletalk


Hardware Length

ハードウェアアドレス長。(バイト)


Protocol Length

プロトコルアドレス長。(バイト)


Opcode

ARPオペレーションコード。


0x0001 リクエスト

0x0002 リプライ

0x0003 RARPリクエスト

0x0004 RARPリプライ


Sender Hardware Address

送信元のハードウェアアドレス。

(イーサネットの場合は48ビット、6オクテット)


Sender Protocol Address

送信元のプロトコルアドレス。

(IPの場合は32ビット、8オクテット)


Target Hardware Address

ターゲットとなるハードウェアアドレス

(イーサネットの場合は48ビット、6オクテット)

リクエストの場合は00:00:00:00:00:00が入る。


Target Protocol Address

ターゲットとなるプロトコルアドレス。

(IPの場合は32ビット、8オクテット)

この値が自分のものであった場合、受信したノードはリプライを返す。


例)ARPリクエスト

  • PC1

IPアドレス:10.0.0.100

MACアドレス:08:00:27:11:22:33

  • PC2

IPアドレス:10.0.0.200

MACアドレス:??:??:??:??:??:??



PC1がPC2のMACアドレスを知りたい場合は

イーサネットフレームを先頭につけて、

FFFFFFFFFFFF
080027112233 
0806

0001
0800
06
04
0001
080027112233
0a000064
000000000000
0a0000c8

となる。


rawframeを使用して実際に送信してみたもの。

PC2(10.0.0.200)から08:00:27:aa:bb:ccが返ってきている。


f:id:nao_pcap:20110108220715p:image

参考

RFC826(An Ethernet Address Resolution Protocol)

RFC1700(ASSIGNED NUMBERS)

トラックバック - http://d.hatena.ne.jp/nao_pcap/20110108/1294494226