
ネットワーク内の特定のポイントを通過するトラフィックをログに記録して監視したいと考えています。つまり、最終的には、ブリッジを通過するすべてのトラフィックを、そこに送信されるトラフィックをリッスンしている別のシステムの IP アドレスにミラーリングしたいと考えています。
私の現在の設定はおおよそ次のとおりです。
- プロミスキャスモードで監視インターフェースが設定された監視/ログサーバー
- 監視したいネットワークのポイントにあるLinuxブリッジ
- 代替ゲートウェイへのトラフィックをミラーリングするための iptables ルール
iptables -t mangle -A PREROUTING -j TEE --gateway <monitoring ip>
iptables -t mangle -A POSTROUTING -j TEE --gateway <monitoring ip>
しかし、これまでのところ、直接 ping を実行しない限り、監視 IP へのインターフェイスを介してトラフィックが流れているのを確認できません (その後、ブリッジと監視ポートの両方でトラフィックを確認できます)。
注目すべき別の問題があります。何らかの理由で、常に管理ポートの MAC がアドレスとして設定されるため、監視ポートの ARP 解決に静的ルートを設定する必要がありました。ネットワーク上の他のクライアントが管理 IP を取得していないのに、ブリッジが監視 IP に対して管理 MAC アドレスを取得する理由がわかりません。
アドバイスをいただければ幸いです。十分な詳細を提供できなかった場合は申し訳ありません。
答え1
デフォルトでは、スイッチされたフレームは iptables ルールを通過しません。この動作を変更するには、ブリッジ インターフェイスで nf_call_iptables オプションを有効にする必要があります (ip コマンドまたは /proc ファイルシステム経由)
ip link set dev br0 type bridge nf_call_iptables 1
監視トラフィックを制限するには、iptables ルールで --phys-dev マッチを使用します。