
サーバーからのすべての着信トラフィックを一致させたいのですが、同じインターフェイスにあります。
MAC 88:7e:25:d3:90:0b > ens19 > table 147
nftables
だから私はこのルールを作りました。
table ip filter { # handle 3
chain input { # handle 1
type filter hook input priority filter; policy accept;
iif "ens19" ether saddr 88:7e:25:d3:90:0b meta mark set 0x00000093 # handle 2
iif "ens19" ether saddr 08:05:e2:04:ce:b3 meta mark set 0x00003417 # handle 3
}
}
そして、ルーティングテーブルのIPルールを指定します。
ip rule add from all fwmark 0x93 lookup 147
ip rule add from all fwmark 13335 lookup 147
ip -6 rule add from all fwmark 0x93 lookup 147
ip -6 rule add from all fwmark 13335 lookup 147
しかし、私はtshark
それが動作していることを確認するためにそれを使用し、着信パケットが表示されず、アドレスをpingできませんでした。したがって、収益の流れを一致させることが問題になります。
私が使うなら
from all iif ens19 lookup 147
変える
ip -6 rule add from all fwmark 0x93 lookup 147
ip -6 rule add from all fwmark 13335 lookup 147
nftables
うまくいくので、私のルールに問題があるようです。
理由を知っている人はいますか?
答え1
hook input
localhostが最終宛先であるパケット用に特別に設計されています。後ろにルーティングの決定はすでに行われています。これは、netfilterが「フック入力」チェーンを介して処理されるパケットと「フック転送」チェーンを介して処理されるパケットを知る方法であるためです。したがって、その時点では、ポリシールールはもはや重要ではありません。
代わりに、私はあなたがそう思いますhook prerouting
(おそらくpriority raw
?)。