コードリーディング:ping 三日目
これまでのあらすじ~ 放射氏は知らなかった。部下の中の人がICMPプロトコルについてそもそも知らないという事実を~
ICMP
- 作者: 竹下隆史,村山公保,荒井透,苅田幸雄
- 出版社/メーカー: オーム社
- 発売日: 2012/02/25
- メディア: 単行本(ソフトカバー)
- 購入: 4人 クリック: 34回
- この商品を含むブログ (35件) を見る
パケットキャプチャ
コードを読みながら、変えながら、実際のパケットも見てみたいかと思います。windowsでのパケットキャプチャリングは煩雑なので(1分ぐらい調べてブラウザを閉じた)、linux上でキャプチャします。ほら、読むpingのコードもcentos7のですし。ぬるいプログラマは時としてwindowsを嫌うこともある。
インストール
yum install tcpdump
実行
細かいオプションは丁寧に解説して下さっているサイトがたくさんありますので、そちらに譲りたいと思います。
[root@localhost ~]# tcpdump icmp -X
実行結果
localから外部へping
21:15:41.752059 IP localhost.localdomain > 192.168.1.5: ICMP echo request, id 11918, seq 1, length 64 0x0000: 4500 0054 44ae 4000 4001 71dd c0a8 01c8 E..TD.@.@.q..... 0x0010: c0a8 0105 0800 6146 2e8e 0001 6d88 9255 ......aF....m..U 0x0020: 0000 0000 9e79 0b00 0000 0000 1011 1213 .....y.......... 0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 .............!"# 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&'()*+,-./0123 0x0050: 3435 3637 4567 21:15:41.752343 IP 192.168.1.5 > localhost.localdomain: ICMP echo reply, id 11918, seq 1, length 64 0x0000: 4500 0054 3d05 0000 8001 7986 c0a8 0105 E..T=.....y..... 0x0010: c0a8 01c8 0000 6946 2e8e 0001 6d88 9255 ......iF....m..U 0x0020: 0000 0000 9e79 0b00 0000 0000 1011 1213 .....y.......... 0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 .............!"# 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&'()*+,-./0123 0x0050: 3435 3637
外部からlocalにping
21:16:26.210471 IP 192.168.1.5 > localhost.localdomain: ICMP echo request, id 1, seq 25, length 40 0x0000: 4500 003c 3d30 0000 8001 7973 c0a8 0105 E..<=0....ys.... 0x0010: c0a8 01c8 0800 4d42 0001 0019 6162 6364 ......MB....abcd 0x0020: 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst 0x0030: 7576 7761 6263 6465 6667 6869 uvwabcdefghi 21:16:26.210527 IP localhost.localdomain > 192.168.1.5: ICMP echo reply, id 1, seq 25, length 40 0x0000: 4500 003c 44b3 0000 4001 b1f0 c0a8 01c8 E..<D...@....... 0x0010: c0a8 0105 0000 5542 0001 0019 6162 6364 ......UB....abcd 0x0020: 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst 0x0030: 7576 7761 6263 6465 6667 6869 uvwabcdefghi
というわけで、これを見て強く生きてほしい。
ほかの素晴らしい参考書
基礎からわかるTCP/IP アナライザ作成とパケット解析―Linux/FreeBSD対応
- 作者: 小高知宏
- 出版社/メーカー: オーム社
- 発売日: 2004/10
- メディア: 単行本
- 購入: 2人 クリック: 21回
- この商品を含むブログ (2件) を見る
かなりの良書ですので、一読の価値、というか一通り読みながら自分で実装してみる価値はあると思います。ちなみについ先日自宅の本棚から発掘されたため、私はまだやっていません。今度やります。
しかしまあ
なかなかソースコードリーディングそのものまでたどりつきませんね! でもこうやって枝を辿っていくのも勉強になります。