
外部 IP に送信されるトラフィックを傍受し、ローカルホストに再ルーティングする必要があります。iptables を使用すると非常に簡単ですが、nft を介して動作させる方法がわかりませんでした。nft 内にテーブルとチェーンを作成しましたが、ルールを作成できず、nft は操作がサポートされていないと表示します。
テーブル
sudo /usr/sbin/nft list ruleset
table ip filter {
chain OUTPUT {
type filter hook output priority filter; policy accept;
}
}
ルール
sudo /usr/sbin/nft add rule ip filter OUTPUT ip daddr $EXTERNAL_ADDRESS counter dnat to 127.0.0.1
Error: Could not process rule: Operation not supported
カーネルモジュール
lsmod | grep nf_tables
nf_tables 360448 1 nft_nat
libcrc32c 12288 3 nf_conntrack,nf_nat,nf_tables
nfnetlink 20480 1 nf_tables
私のルールの何が問題なのでしょうか、それとももっと簡単にできるのでしょうか?
答え1
ホストに IP アドレスを割り当てます。すべてのトラフィックをルーティングするのは転送テーブルの役割であり、ファイアウォールで実行できますが、多くの場合は必要ありません。
たとえば、Linux 上のループバックに作成した IP アドレスを割り当てるには、次のようにします。
ip a add 2001:db8:114:6402::1020 dev lo
1 つのホスト ルートであるため、通常はインターネット上の他の場所に存在していても優先されます。ループバック インターフェイスでは、他のホストはそれを認識せず、同じホストから「出る」トラフィックによってのみ到達可能です。
ホストがルータである場合は、これを他のルータにアドバタイズするかどうかを決定します。
読者のための演習: これを IPAM と DNS に登録します。ディストリビューションのネットワーク マネージャーで永続化します。