nftablesおよびipv6 MACベースのルーティングを使用する

nftablesおよびipv6 MACベースのルーティングを使用する

サーバーからのすべての着信トラフィックを一致させたいのですが、同じインターフェイスにあります。

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 inputlocalhostが最終宛先であるパケット用に特別に設計されています。後ろにルーティングの決定はすでに行われています。これは、netfilterが「フック入力」チェーンを介して処理されるパケットと「フック転送」チェーンを介して処理されるパケットを知る方法であるためです。したがって、その時点では、ポリシールールはもはや重要ではありません。

代わりに、私はあなたがそう思いますhook prerouting(おそらくpriority raw?)。

おすすめ記事