INPUTレベルでのポート転送

INPUTレベルでのポート転送

INPUT レベルで IPv6 パケットの宛先ポートを変更したい。

そこで、入力レベルでnatを使用してip6tablesを使用しようとしました

しかし、このコマンドは機能しないようです

# ip6tables -t nat -I INPUT ! -i br0 -p TCP --dport 8080 -j REDIRECT --to-ports 80
ip6tables v1.2.7a: Unknown arg `--to-ports'
Try `ip6tables -h' or 'ip6tables --help' for more information.

iptable によって返されるエラーの他に、nat が INPUT レベルで動作していないのではないかと思います。

では、INPUT レベルで IPv6 パケットの宛先ポートを変更する解決策はあるのでしょうか?

転送される IPv6 パケットを変更したくないので、PREROUTING レベルで変更したくありません (ローカルプロセス用ではありません)

答え1

次のようなことを試してみてください:

ip6tables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80

パケットは nat テーブルの INPUT チェーンにヒットしません。着信パケットは次のように iptables を通過します。

ワイヤー上 -> raw:PREROUTING-> mangle:PREROUTING- nat:PREROUTING> - routing decision> -> mangle:INPUT-> filter:INPUT->デーモン

関連情報