CentOSサーバ内でIPv6のポート間転送を行う必要が生じたのだが、普通にfirewall-cmdでadd-forward-portの設定
firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8443
を行ってもIPv4への適用となりIPv6には適用されない。
ネットで検索してもIPv6用の設定方法がなかなか見つからず、そのためかネット上の情報からそれっぽい回答を生成するChatGPTでもデタラメな回答が返ってくる始末。
実直にmanコマンドで調べてみると
For IPv6 forward ports, please use the rich language.
と書いてあるだけで詳細不明なため、firewalldのドキュメントを読んでようやく設定方法が判明した。
次のようにrich languageを用いruleを指定して設定すれば良い。
firewall-cmd --add-rich-rule='rule family="ipv6" forward-port port="443" protocol="tcp" to-port="8443"'