OpenWRT IPv6 ファイアウォール リダイレクト ポート

OpenWRT IPv6 ファイアウォール リダイレクト ポート

OpenWRT で IPv6 アドレスの着信ポートを別のポートにリダイレクトする方法を知っている人はいますか?

NAT は使用されず、通常のグローバル IPv6 アドレスのみが使用されます。

私がやろうとしているのは、複数のサーバーの SSH ポートを変更し、任意のポート番号を内部的に 22 にリダイレクトすることです。ローカル ネットワークのポートは 22 のままです。

例: [2345::1]:5000 -> OpenWRT -> [2345::1]:22

同等の IPv4 NAT を使用する場合、ポートはポート転送で簡単に構成できるため、この構成は非常に簡単です。

どうもありがとう

答え1

Linux ip6tablesでも、同じDNATベースのポート転送を使用することができます。主な違いは、変化宛先アドレスは必要ですが、マッチ既存のアドレスに。

-t nat -I PREROUTING -d 2345::1 -p tcp --dport 5000 -j DNAT --to-destination [2345::1]:22

もちろん、IPv6 では SNAT ベースのマスカレードは必要ありませんが、これはそもそも完全に別のファイアウォール ルールなので、省略することができます。

これが OpenWRT にどのように変換されるかはわかりませんが (パッケージが必要になる可能性はありますがkmod-ipt-nat6)、次のようなものだと思います。

config redirect
    option family ipv6
    option src wan6
    option src_dip 2345::1
    option proto tcp
    option src_dport 5000
    option target DNAT
    option dest_ip 2345::1
    option dest_port 22

答え2

現時点では、OpenWRT のファイアウォール 3 で IPv6 の「config redirect」を使用することはできないようです。

ただし、次のルールを使用して手動で実現することができました。

ip6tables -t nat -I PREROUTING -d IPV6_ADDRESS_HERE -p tcp --dport 5000 -j DNAT --to-destination [IPV6_ADDRESS_HERE]:22 ip6tables -A zone_wan_input -m conntrack --ctstate DNAT -j ACCEPT ip6tables -A zone_wan_forward -m conntrack --ctstate DNAT -j zone_(ZONE_NAME)_dest_ACCEPT

関連情報