httpにアクセスする場合をパケットキャプチャーしてみよう。(DNSとHTTP)

Linuxサーバからwww.yahoo.co.jpにアクセスする

LinuxサーバのDNS設定:8.8.8.8

実行コマンド:curl --head http://yahoo.co.jp

 

パケット取得コマンド:tcpdump port 53 or port 80


それではパケットを見ていきましょう

listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

①まず初めに、Linuxサーバがwww.yahoo.co.jpをDNSサーバへ問い合わせをおこなっています。
 そもそもですが、DNSUDP通信のため、フラグ等がありません。

20:33:18.374781 IP 192.168.3.150.33342 > google-public-dns-a.google.com.domain: 35479+ A? yahoo.co.jp. (29)

②次はDNSサーバの逆引きドメインをもらっている。。なぜ???
  そもそもですが、DNSUDP通信のため、フラグ等がありません。

20:33:18.375520 IP 192.168.3.150.34257 > google-public-dns-a.google.com.domain: 7657+ PTR? 8.8.8.8.in-addr.arpa. (38)

IPV6用も聞いています。なぜ????IPv6のモジュールをONにしているからかな。。
  そもそもですが、DNSUDP通信のため、フラグ等がありません。

20:33:18.375568 IP 192.168.3.150.33342 > google-public-dns-a.google.com.domain: 30346+ AAAA? yahoo.co.jp. (29)

GoogleDNSさんから回答。Aレコードは2tあるよと

20:33:18.401404 IP google-public-dns-a.google.com.domain > 192.168.3.150.33342: 35479 2/0/0 A 183.79.135.206, A 182.22.59.229 (61)

⑤1回のやりとりでは返せなかったのかな??再度GoogleDNSとやりとり

20:33:18.404026 IP google-public-dns-a.google.com.domain > 192.168.3.150.33342: 30346 0/1/0 (76)

⑥CDNか何か使っているんですかね??直接yahoo.co.jpにはいけないようですね。ここからTCPの通信が始まります。
 SYNパッケージをこちらからyahoo.co.jpらしき人に送っています。
 
20:33:18.404391 IP 192.168.3.150.53223 > f1.top.vip.kks.yahoo.co.jp.http: Flags [S], seq 592186689, win 14600, options [mss 1460,sackOK,TS val 10715166 ecr 0,nop,wscale 7], length 0

⑦yahoo.co.jpの代打の人から+1したackが返ってきました。ありがとうございます。
20:33:18.443536 IP f1.top.vip.kks.yahoo.co.jp.http > 192.168.3.150.53223: Flags [S.], seq 3051888169, ack 592186690, win 14480, options [mss 1460,sackOK,TS val 279445400 ecr 10715166,nop,wscale 9], length 0

⑧ではackを見やすいようtcpdumpさんが「1」にしました。ここから通信開始です。
20:33:18.443575 IP 192.168.3.150.53223 > f1.top.vip.kks.yahoo.co.jp.http: Flags [.], ack 1, win 115, options [nop,nop,TS val 10715205 ecr 279445400], length 0

⑨私からデータを送ります。
20:33:18.443689 IP 192.168.3.150.53223 > f1.top.vip.kks.yahoo.co.jp.http: Flags [P.], seq 1:168, ack 1, win 115, options [nop,nop,TS val 10715205 ecr 279445400], length 167

⑩ここでグーグルDNSさんから逆引き情報が届きました。。UDPで。
20:33:18.448094 IP google-public-dns-a.google.com.domain > 192.168.3.150.34257: 7657 1/0/0 PTR google-public-dns-a.google.com. (82)

⑪了解ですとGoogleさんのDNSに返事。
20:33:18.448371 IP 192.168.3.150.33395 > google-public-dns-a.google.com.domain: 41759+ PTR? 150.3.168.192.in-addr.arpa. (44)

⑫またGoogleさんとやりとり。次はNXdomain情報。??
20:33:18.475236 IP google-public-dns-a.google.com.domain > 192.168.3.150.33395: 41759 NXDomain 0/0/0 (44)


20:33:18.475554 IP 192.168.3.150.37687 > google-public-dns-a.google.com.domain: 60830+ PTR? 206.135.79.183.in-addr.arpa. (45)

⑭以下のように続いていきます。。。

DNS通信が終わってhttpに通信に行くタイミングでもDNSとはちょくちょく会話するんですね。。。。


20:33:18.486560 IP f1.top.vip.kks.yahoo.co.jp.http > 192.168.3.150.53223: Flags [.], ack 168, win 31, options [nop,nop,TS val 279445443 ecr 10715205], length 0
20:33:18.489822 IP f1.top.vip.kks.yahoo.co.jp.http > 192.168.3.150.53223: Flags [P.], seq 1:557, ack 168, win 31, options [nop,nop,TS val 279445444 ecr 10715205], length 556
20:33:18.489837 IP 192.168.3.150.53223 > f1.top.vip.kks.yahoo.co.jp.http: Flags [.], ack 557, win 123, options [nop,nop,TS val 10715251 ecr 279445444], length 0
20:33:18.490051 IP 192.168.3.150.53223 > f1.top.vip.kks.yahoo.co.jp.http: Flags [F.], seq 168, ack 557, win 123, options [nop,nop,TS val 10715251 ecr 279445444], length 0
20:33:18.490128 IP f1.top.vip.kks.yahoo.co.jp.http > 192.168.3.150.53223: Flags [F.], seq 557, ack 168, win 31, options [nop,nop,TS val 279445444 ecr 10715205], length 0
20:33:18.490134 IP 192.168.3.150.53223 > f1.top.vip.kks.yahoo.co.jp.http: Flags [.], ack 558, win 123, options [nop,nop,TS val 10715251 ecr 279445444], length 0
20:33:18.529480 IP f1.top.vip.kks.yahoo.co.jp.http > 192.168.3.150.53223: Flags [.], ack 169, win 31, options [nop,nop,TS val 279445487 ecr 10715251], length 0
20:33:18.533594 IP google-public-dns-a.google.com.domain > 192.168.3.150.37687: 60830 1/0/0 PTR f1.top.vip.kks.yahoo.co.jp. (85)