【Ethernet】車載ネットワーク その63【lwIP+npcap⑨】

【Ethernet】車載ネットワーク その63【lwIP+npcap⑨】車載ネットワーク

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-network-backnumber/

スポンサーリンク

はじめに

npcapのフィルタ文字列コンパイルAPIについて

スポンサーリンク

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

スポンサーリンク

npcapのフィルタ文字列コンパイルAPI

太郎くん
太郎くん

今回はnpcapのフィルタ文字列コンパイルAPIについて。

  • pcap_datalink:デバイスのリンクタイプ取得
  • pcap_compile:フィルタ文字列をコンパイルしてbpf_program構造体を取得 ← これ
  • pcap_setfilter:bpf_program構造体を元にパケットフィルタ有効化
  • pcap_loop:キャプチャ処理
フクさん
フクさん

これはまた毛色の違いが大きそうなAPIだね!

太郎くん
太郎くん

うん。
サンプルプログラムのudpdumpの中では
“ip and udp”
という文字列を渡しているね。
たぶん、udpだけとフィルタしてキャプチャしてるんだと思う。

スポンサーリンク

pcap_compileに渡すフィルタ文字列の仕様

フクさん
フクさん

ところで、このフィルタ文字列はどういった仕様になるの?

太郎くん
太郎くん

どうやら、tcpdumpの仕様に準拠するらしいんだよねー。
tcpdumpはUnix系で良く使われるコマンドラインのパケットキャプチャらしい。

tcpdumpとは、コマンドライン上で利用する一般的な計算機ネットワーク調査ツールである。 tcpdumpにより、利用者はコマンドを実行した計算機がつながっているネットワーク上を流れるTCP/IPなどのパケットを横取って、表示させることが出来る。 このプログラムは開発当時にローレンス・バークリー研究所ネットワーク研究グループに所属していたバン・ジェイコブソン、Craig Leres、Steven McCanneによって書かれた。

Wikipediaより
フクさん
フクさん

なるほど。

フクさん
フクさん

で、肝心の文字列の仕様は?

太郎くん
太郎くん

tcpdumpのmanを読めとあったんだけど・・・。

man tcpdump

Man page of TCPDUMP
太郎くん
太郎くん

まぁこれ読んでもイマイチわからないんだよねー。

スポンサーリンク

tcpdumpのフィルタ書式

フクさん
フクさん

じゃー、ここは私が解説しよう。

太郎くん
太郎くん

おー!久々だね。
最近はずっと「ほー!」「なとほど」とかしか言ってなかったのに!

フクさん
フクさん

太郎くんの頑張りを見守ってたんだよー!

フクさん
フクさん

とりあえず、全部覚えるってのは一旦諦めて、
以下のパターンだけ覚える。

  • 特定のMACアドレスだけフィルタ
  • 特定のIPアドレスだけをフィルタ
  • 特定のIPアドレス且つ特定のポートをフィルタ
太郎くん
太郎くん

この3つに絞った理由は?

フクさん
フクさん

lwIP上で動作確認する際に使いそうなフィルタだね。
まぁ今回はWiresharkで見ると思うから使わないと思うけど、
目的を絞って説明しないと終わりが決められない

太郎くん
太郎くん

まぁいろんな書き方があるみたいだもんねー。

特定のMACアドレスだけフィルタ
ether host aa:bb:cc:11:22:33

特定のIPアドレスだけをフィルタ
ip host 192.168.40.100

特定のIPアドレス且つ特定のポートをフィルタ
ip host 192.168.40.100 and port 80

太郎くん
太郎くん

とりあえず、今回はここまでかな。

スポンサーリンク

まとめ

フクさん
フクさん

まとめだよ。

  • npcapのフィルタ文字列コンパイルAPIについて説明。
  • フィルタ文字列仕様はtcpdumpのフィルタ書式と一緒。
  • tcpdumpのフィルタ書式はかなり数が多いため、良く使用しそうなものに限定。
    • MACアドレスフィルタ。
    • IPアドレスフィルタ。
    • IPアドレとポートをフィルタ。
太郎くん
太郎くん

(久々のフクさんのまとめ・・・。)

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました