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
->デーモン