情報科学を学ぶ大学生がプログラミング(C言語,Javaなど)、ネットワーク、資格試験(情報処理技術者試験,CCNA)などに関する記事を書いています。
WiresharkでARPのパケットをキャプチャして、それをARPのパケットフォーマットと対照しながら観察します。記事が長くなったので2分割し、最初の記事ではARP要求パケットを、次の記事ではARP応答パケットについて観察します。
ARPのパケットをWiresharkで見ると次のようになっています(横に長かったので分割しました)
今回はこの中のARP要求パケット(No.1)について観察します。
まず、ARPの概要を記します。ARPは宛先IPアドレスを元にして、次にパケットを送るべきホストのMACアドレスを調べるためのプロトコルです。
次に、ARPのパケットフォーマットを確認しておきます。この表は横を32bitとして整理してあります。
ハードウェアタイプ | プロトコルタイプ | ||
HLEN(*2) | PLEN(*3) | オペレーション | |
送信元のMACアドレス | |||
送信元のMACアドレス | 送信元のIPアドレス | ||
送信元のIPアドレス | 探索するMACアドレス | ||
探索するMACアドレス | |||
探索するIPアドレス |
では、ARP要求パケットを見てみましょう。
ARPパケットにはデータリンク(イーサネット)のヘッダがつきます。
ff ff ff ff ff ff 00 0b 97 ** ** ** 08 06
ARP要求パケットをどのホストへ送ればよいのかわからないので、ブロードキャストをして同じセグメント内のすべてのホストに送ります。
ARP要求パケットを送信したホスト(私のコンピュータ)のNICにつけられているMACアドレスです。ベンダ識別子"Matsuhi(00:0b:97)"はNICが松下電器(Panasonic)で作られたことを表しています。MACアドレスの後半24bit(ベンダ内の識別子)もWiresharkで表示されますが、ここでは*印で隠しました。
ARPであることを表す"0x0806"が入っています。
00 01 08 00 06 04 00 01 00 0b 97 ** ** ** c0 a8 00 04 00 00 00 00 00 00 c0 a8 00 01
データリンクにイーサネットを用いているので、Ethernetのハードウェアタイプ"0x0001"が入っています。
IPのプロトコルタイプ"0x0800"が入っています。
MACアドレスのサイズは6オクテット(48bit)ですので、'6'が入っています。
現在使われているIPv4のサイズは4オクテット(32bit)ですので、'4'が入っています。
ARP要求パケットのオペレーション'1'が入っています。
ARP要求パケットを送信したホスト(私のコンピュータ)のNICにつけられているMACアドレスです。ベンダ識別子"Matsuhi(00:0b:97)"はNICが松下電器(Panasonic)で作られたことを表しています。MACアドレスの後半24bit(ベンダ内の識別子)もWiresharkで表示されますが、ここでは*印で隠しました。
ARP要求パケットを送信したホスト(私のコンピュータ)の持つIPアドレスです。
探索するMACアドレスはまだわからないので、'0'で埋められています。
このIPアドレスを持つホスト(私のルーター)のMACアドレスを要求します。
以上がARP要求パケットです。実際のパケットがフォーマット通りになっているのが観察できました。次回はARP応答パケットを見てみます。
この記事には後編があります。
実践 パケット解析 ―Wiresharkを使ったトラブルシューティング | |
![]() | Chris Sanders 園田 道夫 一瀬 小夜 オライリー・ジャパン 2008-01-25 売り上げランキング : 5124 Amazonで詳しく見る by G-Tools |
マスタリングTCP/IP 入門編 第4版 | |
![]() | 竹下 隆史 村山 公保 荒井 透 オーム社 2007-02-24 売り上げランキング : 1689 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools |
*1:マスタリングTCP/IP 入門編 第4版を参考にしました。
*2:Hardware Length(MACアドレスの長さ)
Author:TBVector
私のサイト
ブックマークとRSS
友達のサイト
あわせて読みたい
はてなリング