More Related Content Similar to Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう (20) More from Panda Yamaki (6) Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう4. 今日の進め方
• 「実践パケット解析 第6章 一般的なプロトコル」
の内容をベースに進めます。本書をお持ちの方
は演習に合わせて参照してください。
• スライドには各プロトコルの概要のみ記載して
います。実際のパケットがこのとおりの動きをし
ているか確認していきましょう。
• 気付いた点やわからない点があれば自由に
ディスカッションしましょう。
4
6. ARP (Address Resolution Protocol)
• サンプルファイル : arp.pcap
• RFC 826
• レイヤ3のアドレス(IPアドレス)をレイヤ2のアド
レス(MACアドレス)に変換するプロトコル。
• 送信元のノードはARPリクエストをレイヤ2ブロー
ドキャストアドレス(ff:ff:ff:ff:ff:ff)へ送信し、そ
れを受け取ったノードは自分のIPアドレスと合致
した場合、自分のMACアドレスをレスポンスとし
て返す。
6
8. DHCP (Dynamic Host Configuration Protocol)
• サンプルファイル : dhcp.pcap
• RFC2131
• ネットワーク情報(IPアドレス、コンピュータ名
等)を提供するプロトコル。
• クライアントはDHCP Discoverパケット(DHCPサーバを
探すためのパケット)をブロードキャストアドレス
(255.255.255.255)へ送信し、DHCPサーバがこのアド
レスを受け取るとクライアントにDHCP Offerパケット(ク
ライアントに提供するネットワーク情報)を送信する。
8
9. DHCP (Dynamic Host Configuration Protocol)
• 次に、クライアントはDHCPサーバの提示したアドレス
に問題がなければDHCP Requestパケットを送信し、正
式にIPアドレスを要求する。
• 最後に、クライアントがDHCP Ackメッセージを受信する
と、その内容に従いIPアドレス設定を行う。
9
10. TCP/IP と HTTP
• サンプルファイル : http.pcap
• TCP (Transmission Control Protocol) : RFC793
- レイヤ4のプロトコル。透過的で信頼性が高く、欠損
パケット再送などのエラー訂正機能を持つ。
• IP (Internet Protocol) : RFC791
- レイヤ3のプロトコル。通信を可能とするためのアド
レッシングを行うコネクションレス型のプロトコル。
• HTTP (Hypertext Transfer Protocol) : RFC2616
- Webページを転送するためのプロトコル。
10
11. パケットヘッダ と Ethernet フレーム
パケットヘッダの階層構造
Ethernet Header (IP Header) (TCP Header) Data
Ethernet ではデータ
IP Header (TCP Header) Data
IP ではデータ
TCP Header Data
Ethernetフレームフォーマット
Destination Source
MAC Address MAC Address Type Data FCS
(6byte) (6byte) (2byte) (46~1500byte) (4byte)
11
12. IPv4 ヘッダフォーマット
0 34 78 15 16 31(bit)
Version IHL Type of Service Total Length
(バージョン) (ヘッダ長) (サービスタイプ) (パケット長)
Identification Flags Flagment Offset
(識別子) (フラグ) (フラグメントオフセット)
Time To Live Protocol Header Checksum
(生存時間) (プロトコル番号) (ヘッダチェックサム)
Source IP Address
(送信元IPアドレス)
Destination IP Address
(宛先IPアドレス)
Option + Padding
(オプション + パディング)
Data
(TCP,UDP,ICMPなどのプロトコルのヘッダとデータ)
12
13. TCP ヘッダフォーマット
0 34 9 10 15 16 31(bit)
Source Port Destination Port
(送信元ポート番号) (宛先ポート番号)
Sequence Number
(シーケンス番号)
Acknowledgement Number
(確認応答番号)
Data Reserved U A P R S F
Window Size
R C S S Y I
Offset (予約領域) (ウィンドウサイズ)
G K H T N N
Checksum Urgent Pointer
(チェックサム) Code bit (緊急ポインタ)
Option + Padding
(オプション + パディング)
Data (データ部)
13
14. TCP コネクション管理
SYN (コネクション確立要求)
ACK (SYNに対する確認応答)
SYN (コネクション確立要求) コネクション確立
(3 -Way Handshake)
ACK (SYNに対する確認応答)
コネクション確立後 データデータ転送開始
FIN/ACK (コネクション切断要求)
ACK (FINに対する確認応答)
FIN/ACK (コネクション切断要求) コネクション切断
ACK (FINに対する確認応答)
14
15. TCP ヘッダ Codebit
Codebit 説明
URG このビットが1の場合、緊急処理すべきデータが含まれることを意味する。
(Urgent)
ACK このビットが1の場合、確認応答番号のフィールドが有効であることを意
(Acknowledgement) 味する。コネクション確立時の最初のSYNセグメント以外は必ず1である必
要がある。
PSH このビットが1の場合、受信したデータをすぐに上位のアプリケーションに
(Push) 渡す。0の場合はバッファリングを許す。
RST このビットが1の場合、コネクションが強制的に切断される。
(Reset) 何らかの異常を検出した場合に送信される。
SYN このビットが1の場合、コネクション確立の意思表示を表す。また、シーケ
(Synchronize) ンス番号のフィールドに格納されている番号でシーケンス番号の初期化
が行われる。
FIN このビットが1の場合、今後送信するデータがないことを意味する。それぞ
(Fin) れのFINに対して確認応答されるとコネクションが切断される。
15
16. サンプル HTTP ファイル
• 4番目のパケットがGETリクエスト
- Follow TCP Stream を使うと一連の通信の流れを特
定しやすい。
16
18. DNS (Domain Name System)
• サンプルファイル : dns.pcap
• RFC1034
• ドメイン名(www.google.comなど)をIPアドレス
に変換する。
• たいていの場合、DNSサーバへの名前解決要
求→応答 という2つのパケットで事足りる。
18
19. DNS (Domain Name System)
• 実際にキャプチャしてみると1つのWebページ
で複数のDNSパケットが流れていたり、レスポン
スにCNAME(別名に対する正規名)が含まれて
いることがわかる。
19
20. FTP (File Transfer Protocol)
• サンプルファイル : ftp.pcap
• RFC959
• クライアント/サーバ間のデータ転送のためのプロトコル。
• 21番ポートを 制御コネクションとして使用し、選択した
モードに従いデータ転送コネクションを確立する。
- ACTIVEモード : 20番ポートを使用し、サーバ側から
データ転送コネクションを確立する。
- PASSIVEモード : 任意のポートを使用し、クライアント
側からデータ転送コネクションを確立する。
20
22. TELNET
• サンプルファイル : telnet.pcap
• RFC854
• コンピュータ、ネットワーク機器などをリモートか
ら操作するためのプロトコル。
• 転送レートやデータ転送モードを指定するオプ
ションを指定し、通信を始める前にそれらを同
期する必要がある。
22
25. ICMP (Internet Control Message Protocol)
• サンプルファイル : icmp.pcap
• RFC792
• IPのエラーメッセージや制御メッセージを転送す
るプロトコル。
• ICMPパケットには必ず数字で表わされるタイプ
が含まれており、その数字によって送信先コン
ピュータでの処理方法が変わる。
25
26. ICMP タイプの例
タイプ 説明
0 エコー応答 (Echo Reply)
3 宛先到達不能 (Destination Unreachable)
4 発信元抑制 (Source Quench)
5 リダイレクト (Redirect)
8 エコー要求 (Echo Request)
9 ルータアドバタイズ (Router Advertisement)
10 ルータ選択 (Router Selection)
11 時間超過 (Time Exceeded)
12 パラメータ問題 (Parameter Problem)
26
27. タイプ 3 (宛先到達不能)のコード
コード 説明 コード 説明
0 Netwrok Unreachable 8 Source Host Isolated
1 Host Unreachable 9 Network Administartively
Prohibited
2 Protocol Unreachable 10 Destinantion Host
Administartively Prohibited
3 Port Unreachable 11 Network Unreachable For TOS
4 Fragmentation Needed and 12 Host Unreachable For TOS
DF (Don't Fragment) set
5 Source Route Failed 13 Communication Administratively
Prohibited
6 Destination Network Unknown 14 Host Precedence Violation
7 Destination Host Unknown 15 Precedence Cutoff in Effect
27
30. 参考資料
• 実践パケット解析 - Wiresharkを使ったトラブ
ルシューティング
- http://www.oreilly.co.jp/books/9784873113517
- ISBN978-4-87311-351-7
• RFC Editor (RFCの公開および管理機関)
- http://www.rfc-editor.org
• RFC 日本語版リスト (原文へのリンクもあり)
- http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
30