ネットワーク・コーナ ご購入はこちら ダウンロード・データあります パケットづくりではじめる ネットワーク入門 第 20 回 次世代パケット・フォーマット PcapNG フォーマットを読み込む 元の pcapファイル arp.pcap PcapNG ファイルに変換 定番ネットワーク 解析ソフトウェア Wireshark 元のpcapファイル 逆コンバータで と比較 変換した pcapファイル PcapNG ファイル arp.pcapng 坂井 弘亮 パケット・ライブラリ libpkt.a PcapNG→pcap 逆変換プログラム (pcapng2pcap) arp2.pcap 図 1 今回すること…次世代パケット・フォーマット PcapNG を読み込む pcap フォーマットに戻して正しいか確認する 本連載はネットワーク上を流れるパケットを直接扱 うようなツールを自作しつつ,ネットワークの仕組み を勉強していきます.テーマは「自作」 , 「現物ベース」 , 「動く感動」の 3 つです.ネットワークにはイーサネッ トと IP を想定しています. ● 前回したこと…次世代パケット・フォーマット PcapNG の出力 前回(第 19 回,2017 年 2 月号)は,ネットワーク・ パケットを保存するための次世代フォーマットである PcapNGフォーマットと,その出力方法の具体例につい て説明しました.従来の pcap フォーマットを PcapNG に変換するコンバータを作成しました. ● 今回すること…PcapNG の読み込み(入力) 今回は,PcapNG からの入力について説明し,Pcap NG から pcap フォーマットに戻す逆コンバータを作成 します(図 1) PcapNG フォーマット読み込み時の 注意点 前回説明した PcapNG フォーマットのファイルを読 む際には幾つかの注意点があります. ● その 1…エンディアンを考慮しないといけない PcapNG のブロック中のフィールド値は,生成した 環境のネイティブなエンディアンで格納されます.つ まりリトル・エンディアンとビッグ・エンディアンの 142 両方があり得ます. このため PcapNG を読み込む際は,本来ならば両エ ンディアンに対応する必要があります.エンディアン は, セ ク シ ョ ン 先 頭 の SHB(Section Header Block) のマジック・ナンバを見て判断します.エンディアン の判断を行わない場合,自身の環境で生成したPcapNG ファイルは読み込めても,エンディアンの異なる他環 境で生成された PcapNG ファイルは正常に読み込めな いといった問題が発生します. なおエンディアン変換の処理は 16/32 ビットだけで なく,64 ビットのものも必要です.これは SHB のセ クション長が,64 ビット値で格納されているためで す. ● その 2…不明なブロックをスキップするように しておく PcapNG はブロック単位で情報を保持しています. 各ブロックの定義は以下にあります. http://pcapng.com/ 上記サイトの「Pcap-NG specification」が PcapNG の 仕様です.各ブロックの定義は 3 章にあります. 現状では,7 種類のブロックが定義されていますが, そ の う ち の 1 つ(Packet Block)は 廃 止 と な り,EPB (Enhanced Packet Block)を使うことが推奨されてい ます.つまり,現状で主に利用されるブロックは 6 種 類となります.しかし,今後,PcapNG フォーマット がバージョンアップした際には,ブロック種別が追加 される可能性があります. 本連載のプログラムのソースコードは以下の筆者のホームページからダウンロードすることが できます.ライセンスは KL-01 というもので, 組込み機器などでも自由に利用することができます. http://kozos.jp/books/interface/ethernet2/ 2017 年 3 月号
© Copyright 2024 ExpyDoc