目次
ARPフォーマット
ARPのメッセージはイーサネットヘッダで直接カプセル化して転送されます。イーサネットヘッダのタイプコード0x0806でデータ部分がARPメッセージであることを表します。
フィールド名 | サイズ | 内容 |
---|---|---|
Hardware Type | 16ビット | イーサネットの場合、0x0001で固定 |
Protocol Type | 16ビット | IPv4の場合、0x0800で固定 |
Hardware Size | 8ビット | MACアドレスのサイズ(バイト)。0x06 |
Protocol Size | 8ビット | IPアドレスのサイズ(バイト)。0x04 |
Opcode | 16ビット | ARPリクエスト:0x0001 ARPリプライ:0x0002 |
Sender MAC address | 48ビット | 送信元MACアドレス |
Sender IP address | 32ビット | 送信元IPアドレス |
Target MAC address | 48ビット | ターゲットMACアドレス |
Target IP address | 32ビット | ターゲットIPアドレス |
このフォーマットは、イーサネット上でTCP/IPの通信を行う場合です。
ARPメッセージの例
以下の簡単なネットワーク構成でARPリクエストとARPリプライの実際のメッセージの内容を詳しく見てみましょう。
R1とR2のMACアドレスはわかりやすい値に設定しています。
ここで紹介しているARPリクエスト/リプライのキャプチャファイルは以下よりダウンロードできます。
「arp_capture.pcapng」をダウンロード
ARPリクエスト
R1からR2(192.168.12.2)へPingを行うと、自動的にARPの処理が行われます。R1は192.168.12.2のMACアドレスを求めるためにARPリクエストをブロードキャストします。そのARPリクエストをキャプチャすると、次のような内容です。
フィールド名 | サイズ | 内容 |
Hardware Type | 16ビット | 0x0001 |
Protocol Type | 16ビット | 0x0800 |
Hardware Size | 8ビット | 0x06 |
Protocol Size | 8ビット | 0x04 |
Opcode | 16ビット | 0x0001(ARPリクエスト) |
Sender MAC address | 48ビット | 0x0000.0000.1111(R1のMACアドレス) |
Sender IP address | 32ビット | 192.168.12.1(R1のIPアドレス) |
Target MAC address | 48ビット | 0x0000.0000.0000 |
Target IP address | 32ビット | 192.168.12.2(R2のIPアドレス) |
MACアドレスの表記は2バイト区切りの表記にしています。
ARPリプライ
R1からのARPリクエストに対して、Target IP addressを持つR2がARPリプライを返して、MACアドレスを通知します。そのARPリプライをキャプチャすると、以下のようになっています。
フィールド名 | サイズ | 内容 |
Hardware Type | 16ビット | 0x0001 |
Protocol Type | 16ビット | 0x0800 |
Hardware Size | 8ビット | 0x06 |
Protocol Size | 8ビット | 0x04 |
Opcode | 16ビット | 0x0002(ARPリプライ) |
Sender MAC address | 48ビット | 0x0000.0000.2222(R2のMACアドレス) |
Sender IP address | 32ビット | 192.168.12.2(R2のIPアドレス) |
Target MAC address | 48ビット | 0x0000.0000.1111(R1のMACアドレス) |
Target IP address | 32ビット | 192.168.12.1(R1のIPアドレス) |
TCP/IP
- TCP/IPの階層
- IP(Internet Protocol) ~データを送り届ける~
- ICMP ~きちんとIPで転送できますか?~
- Ping ~きちんとデータは届きますか?~
- Windows OSのPingコマンド
- トレースルート ~データはどのルータを通っていますか?~
- tracertコマンド(Windows OS)
- ICMPリダイレクト
- トラブルはどこ? ~Pingとトレースルート~
- ARP ~IPアドレスとMACアドレスを対応付け~
- ARPフォーマット
- Gratuitous ARP(GARP)
- ポート番号 ~どのアプリケーションのデータなの?
- TCPの概要
- TCPの動作
- UDPの概要
- アプリケーションのデータが届くまでのまとめ
- DNS ~宛先IPアドレスを求める~
- nslookupコマンド ~DNSの名前解決の確認~
- DHCP ~IPアドレスを自動割り当て~
- Cisco IOS DHCPサーバの設定と確認コマンド
- Ciscoルータ DHCPサーバの設定例
- DHCPリレーエージェント
- DHCPリレーエージェントの設定例[Cisco]
- DHCPサーバ配置のまとめ
- TCP/IPの設定のまとめ
- ipconfigコマンド ~Windows OSのTCP/IP設定を確認~
- Linux(Ubuntu)でのTCP/IP設定の確認コマンド
- Webサイト
- HTMLとCSS ~Webページを作る~
- URL ~Webサイト(Webページ)のアドレス~
- HTTP ~HTMLファイルを転送する~
- Webアプリケーション ~Webブラウザだけあればいい~
- HTTP Cookie
- Webアプリケーションのセッション管理
- Webプロキシサーバ ~Webアクセスを代わりに~
- Webアクセスのまとめ
- 電子メール
- SMTP ~電子メール送信用プロトコル~
- POP3 ~メール受信用プロトコル~
- IMAP4 ~メールサーバ上でメールを管理~
- 電子メールのまとめ
- FTP ~代表的なファイル転送プロトコル~
- TFTP ~簡易的なファイル転送プロトコル~
- Windows10/11のTFTPクライアント
- ネットワークのトラブルの切り分け手順