この記事は Rust Advent Calendar 2018 の3日目の記事です。 本記事では、タイトルの通り、Rustでマルチインターフェースパケットキャプチャを実装します。 今回の記事で達成したい目標は以下2点です。 Rustでネットワークプログラミングをしたい マルチインターフェースにすることでマルチスレッド対応したい どうやって低レイヤを扱うか Rustでネットワークプログラミングを行うには、libpnetが便利なので、今回はこちらを利用します。libpnetを使えるようCargo.tomlには以下を記載しておきます。 [dependencies] serde = "1.0" serde_derive = "1.0" [dependencies.pnet] version = "0.21.0" アーキテクチャ 今回実装するパケットキャプチャのアーキテクチャは以下です。 I/F1か