nftablesで複数のインターフェイスを1つのインターフェイスにコピーする方法

nftablesで複数のインターフェイスを1つのインターフェイスにコピーする方法

私のホームルーターには、異なるサブネットに2つの内部インターフェイスがあり、Comcastモデムに接続する外部インターフェイスがあります。各パケットをコピーしたい。入力する各インターフェイスは、Zeekを直接使用できる仮想インターフェイスに接続します。私考えるこれにより、Zeekが各インターフェイスを個別に監視するときなど、冗長ログなしでネットワークトラフィックを包括的に調べることができます。

これはトラフィックを「dummy0」にコピーしています。

nft add table netdev filter
nft add chain netdev filter ingress { \
type filter hook ingress device eth0 priority 0\; }
nft add rule netdev filter ingress dup to dummy0

他のイーサネットデバイスにも接続するように拡張できないようです。このようなことのためのnftables文書は非常にまれであることがわかったので、提案していただきありがとうございます。

ベストアンサー1

以前のnftables /カーネルの場合:netdevデフォルトチェーンは1つのネットワークデバイスにのみ登録されます。複数のインターフェイスのトラフィックを複製する必要がある場合は、同じルールを使用してプライマリチェーンを再作成して別のインターフェイスに登録します。

nft add table netdev filter
nft add chain netdev filter ingress0 '{ type filter hook ingress device eth0 priority 0; }'
nft add chain netdev filter ingress1 '{ type filter hook ingress device eth1 priority 0; }'
nft add rule netdev filter ingress0 dup to dummy0
nft add rule netdev filter ingress1 dup to dummy0

nftableで>= 0.9.3そしてカーネル>= 5.5:重複を避けるために、同じnetdev基本チェーンを複数のデバイスに登録できます。

nft add table netdev filter
nft add chain netdev filter ingress '{ type filter hook ingress devices = { eth0, eth1 } priority 0; }'
nft add rule netdev filter ingress dup to dummy0

おすすめ記事