SPDYパケットをキャプチャする

プロトコルの勉強はドキュメントだけ読んでても分かりにくいもので,実際に動いてる様子を見たくなるものです.
なのでSPDYパケットをキャプチャしてみます.

CentOS 6.3上で試してます.

必要なもの

apache + mod_spdyのインストール

apache + mod_spdyのインストールについては,前記事参照

spdysharkのインストール

spdyshark公式ドキュメントを参照しながら,やれば割りと入る.

ただし,ココらへんが入ってないとダメ

yum install git gtk2 gtk2-devel bison flex gnutls-devel libpcap-devel openssl-devel libtool autoconfig automake

あと,ドキュメントのwiresharkwget先がリンク切れしてるのでここからダウンロード

wget http://www.wireshark.org/download/src/all-versions/wireshark-1.7.1.tar.bz2

chromeの設定

chromeは --use-spdy=nosslオプションを使用すると,非SSLでSPDY通信をするのでパケットキャプチャしやすくなる(サーバ側の設定必要)
chromeへのpathはchrome:versionのコマンドラインの項目に書いてあるので,それに対して --use-spdy=nosslオプションを設定して起動すれば良い.(http://hoge/へのアクセスに対してSPDYで接続しに行くので,一般サイトには繋がらなくなる)

mod_spdyの設定

サーバ側ので設定は/etc/httpd/conf.d/spdy.confを以下のように追記すればよい

LoadModule spdy_module/usr/lib64/httpd/modules/mod_spdy.so
<IfModule>
  …
  SpdyDebugUseSpdyForNonSslConnections 2
  …
</IfModule>

あとは,chromeからサーバにアクセスし,パケットをキャプチャすれば良い.
80番ポートへの接続をHTTPとして解釈し表示するので,右クリックしdecode asからspdyを選択しなければならない.


これだけで簡単にSPDYのパケットがキャプチャ出来る