ネットワークトラフィックの流れ–はじめに
Gideon T.Rasmussen-CISSP,CFSO,CFSA,SCSA
問題をトラブルシューティングするには、通常の状況でネットワー この記事では、Webブラウザーを使用してWebサイトにアクセスするとどうなるかについて説明します。
Webサイト名をWebブラウザに入力すると、さまざまなプロトコルを介して一連の通信が行われます。 次の表は、ネットワークトラフィックの流れを示しています:
ライン:
|
プロトコル:
|
ソース:
|
目的地:
|
データ:
|
1
|
ARP
|
10.0.1.13
|
放送
|
誰が10.0.1.1を持っていますか? 教えて10.0.1.13
|
2
|
ARP
|
10.0.1.1
|
10.0.1.13
|
10.0.1.1 00:80:c8:57:d3:aaです
|
3
|
DNS
|
10.0.1.13
|
10.0.1.1
|
標準クエリA www.cyberguard.com
|
4
|
DNS
|
10.0.1.1
|
10.0.1.13
|
標準クエリ応答CNAME cyberguard.com A64.94.50.88
|
5
|
TCP
|
10.0.1.13
|
64.94.50.88
|
1939 > http
|
6
|
TCP
|
64.94.50.88
|
10.0.1.13
|
http > 1939
|
7
|
TCP
|
10.0.1.13
|
64.94.50.88
|
1939 > http
|
8
|
HTTP
|
10.0.1.13
|
64.94.50.88
|
GET / HTTP/1.1
|
9
|
HTTP
|
64.94.50.88
|
10.0.1.13
|
HTTP/1.1 200 OK
|
10
|
HTTP
|
64.94.50.88
|
10.0.1.13
|
HTTP Continuation
|
11
|
TCP
|
10.0.1.13
|
64.94.50.88
|
2577 > http Seq=388864 Ack=37076821 Win=8241 Len=0
|
12
|
TCP
|
10.0.1.13
|
64.94.50.88
|
2577 > http Seq=388864Ack=37077089Win=0Len=0
|
ARPプロトコル
システムが通信できるようにするには、互いのハードウェアアドレスを知る必要があります。 アドレス解決プロトコル(ARP)は、この目的のために使用されます。 その構成から、ワークステーションはDNSサーバーのIPアドレスを知っています。
行# 1
プロトコル: | ソース: | 宛先: | データ: |
ARP | 10.0.1.13 | 放送 | 誰が10.0.1.1を持っていますか? 教えて10.0.1.13 |
ワークステーションは、ネットワーク上のデバイスに、通信する必要があるIPアドレスを”誰が持っているか”を尋ねる要求をブロードキャストします。
行# 2
プロトコル: | ソース: | 宛先: | データ: |
ARP | 10.0.1.1 | 10.0.1.13 | 10.0.1.1 00:80:c8:57:d3:aaです |
リモートシステムは、ハードウェアアドレスを提供して応答します。 ワークステーションはリモートシステムのハードウェアアドレスを知っているので、リモートシステムと通信できます。
DNSプロトコル
ドメインネームシステム(DNS)プロトコルは、システム名をIPアドレスに解決するために使用されます。 Webサイト名がブラウザに入力されると、ワークステーションはサイトをホストするWebサーバーに到達するために対応するIPアドレスを知る必要があ
行# 3
プロトコル: | ソース: | 宛先: | データ: |
DNS | 10.0.1.13 | 10.0.1.1 | 標準クエリa www.サイバーガードcom(コムコム) |
ワークステーションは、DNSサーバーにホストしているWebサーバーのIPアドレスを提供するように要求しますwww.cyberguard.com.
行# 4
プロトコル: | ソース: | 宛先: | データ: |
DNS | 10.0.1.1 | 10.0.1.13 | 標準クエリ応答CNAME cyberguard.com A64.94.50.88 |
DNSサーバーは、次のIPアドレスで応答します。www.cyberguard.com…..
TCPプロトコル
Transmission Control Protocol(TCP)プロトコルは、データを転送するために使用されます。 次の3行は、TCPの3方向ハンドシェイク:
行を構成します。# 5
プロトコル: | ソース: | 宛先: | データ: |
TCP | 10.0.1.13 | 64.94.50.88 | 1939 > http |
ワークステーションは、Webサーバー(SYN)への接続を開始します。 SYNは「synchronize」の略です。”
行# 6
プロトコル: | ソース: | 宛先: | データ: |
TCP | 64.94.50.88 | 10.0.1.13 | http> 1939 |
Webサーバーは、送信の準備ができていることを示す応答を返します(SYN ACK)。 SYN ACKは「synchronize acknowledgement」の略です。”
行# 7
プロトコル: | ソース: | 宛先: | データ: |
DNS | 10.0.1.13 | 64.94.50.88 | 1939 > http |
ワークステーションは、トラフィック(ACK)の送信を開始していることを示すWebサーバーに送信します。 この確認応答は、TCP接続が確立され、トラフィックが流れ始めることができることを示します。
HTTPプロトコル
ハイパーテキスト転送プロトコル(HTTP)は、Webページを提供するために使用されます。 この証拠は、ブラウザのウェブサイトのアドレス(http://www.cyberguard.com)から見ることができます。
行# 8
プロトコル: | ソース: | 宛先: | データ: |
HTTP | 10.0.1.13 | 64.94.50.88 | GET/HTTP/1.1 |
ブラウザは、Webサーバーへの接続を開きます。
行# 9
プロトコル: | ソース: | 宛先: | データ: |
HTTP | 64.94.50.88 | 10.0.1.13 | HTTP/1.1 200OK |
Webサーバーは接続を受け入れます。
行# 10
プロトコル: | ソース: | 宛先: | データ: |
HTTP | 64.94.50.88 | 10.0.1.13 | HTTPの継続 |
HTTP継続行は、htmlページの内容が送信される場所を表します。 テキスト、リンクなどが含まれます。TCPプロトコル
の行に戻る# 11
プロトコル: | ソース: | 宛先: | データ: |
TCP | 10.0.1.13 | 64.94.50.88 | 2577 > http Seq=388864Ack=37076821Win=8241Len=0 |
この行は実際には4回繰り返されます。 ワークステーションは最後のパケットを確認しています。
12行目(RST)
プロトコル: | ソース: | 宛先: | データ: |
TCP | 10.0.1.13 | 64.94.50.88 | 2577 > http Seq=388864Ack=37077089Win=0Len=0 |
ワークステーションはリセットを送信し、効果的にTCP接続を切断します。
TcpdumpとEthereal
tcpdumpはネットワーク上のどこで実行されているかによって異なる詳細を提供することに注意することが重要です。 この例では、tcpdumpは、直接接続されたワークステーションとファイアウォールの内部インターフェイス上で実行されました。 外部インターフェイスで同じトラフィックフローを監視するためにtcpdumpを使用した場合、動的ネットワークアドレス変換(DNAT)が設定されていれば、送信元IPアド プロキシトラフィックがどのように流れるかを観察するには、プロキシが送信元と宛先の間の仲介者として機能するため、内部インターフェイスと外部インターフェイスの両方でtcpdumpを実行することが理にかなっています。
テーブルのソースは、Etherealを介して表示されたtcpdumpファイルでした。 使用された正確な構文は次のとおりです。”tcpdump-vvpni dec1-s1514-w/archive2/dec1。dmpホスト10.0.1.13″。 Tcpdumpコマンドには、非常に特定のトラフィックフロー(送信元/宛先、ポート、ブール式など)を記録するための広範なオプションがあります。 詳細については、コマンドラインに”man tcpdump”と入力します。 Windows版はWindump(http://windump.polito.it)である。
Etherealはtcpdumpファイルを表示するのに適したツールです。 http://www.ethereal.comから自由に入手できます。
tcpdumpに存在するポートのいくつかは、あなたに慣れていないかもしれません。 ポート番号の最新のリストはhttp://www.iana.org/assignments/port-numbers(RFC3232による)にあります。