Linux/iptables - 重複するサブネット間の NAT

Linux/iptables - 重複するサブネット間の NAT

プライベートサブネットを維持しながら、あるWireguardインターフェイスから別のインターフェイスにNATを試みています。これが私の設定です。ここで重要なのは、インターフェイスにサブネットが重なることです。

私のVPNサーバーには3つのインターフェースがあります。パブリックens3プライベートWireguard wg0(172.16.1.1/24)およびVPNサービスWireguard wg1(172.28.112.173/12)

ens3インターネットにアクセスできるルーティング可能なパブリックIPv4アドレスを持つパブリックインターフェイス。

wg0172.16.1.0/24 ネットワーク上のすべてのデバイスへの Wireguard インターフェイスです。私のすべてのデバイスはこのインターフェイスに接続され、互いに通信でき、現在NATを使用していますens3

wg1172.16.0.0/12 ネットワークの VPN プロバイダーへの Wireguard トンネル。 VPN プロバイダは IP アドレスを割り当て、パブリック インターネットへのルータのインターフェイスは 172.16.0.1 にあります。

iptablesをNATに設定すると、ens3すべてが期待どおりに機能します。 172.16.1.0/24のデバイスは、パブリックインターフェイスを使用して互いに通信し、ens3インターネットにアクセスできます。

iptablesをNATに設定すると、デバイスはパブリックwg1インターフェイスを使用してインターネットにアクセスできなくなります。wg1実際、tcpdumpは、ボックスがルーターからwg0ルーターにパケットを転送していることを示していますが、これはens3明らかに正しく機能しません。

wg0私の究極の目標は、クライアントがNATを介してアクティブでwg1wg0割り当てwg1または変更できないサブネットにアクセスできるようにすることです。ポリシーベースのルーティングではこれを行うことができるようですが、数日間にわたってさまざまな設定を試しても機能しません。誰でも私に洞察力を与えることができたら、非常に感謝します!


iptablesダンプ:

# Generated by xtables-save v1.8.2 on Sat Jun 19 03:43:54 2021
*nat
:PREROUTING ACCEPT [15677:1866069]
:INPUT ACCEPT [10279:816931]
:POSTROUTING ACCEPT [5314:492688]
:OUTPUT ACCEPT [4806:467393]
-A PREROUTING -i ens3 -p udp -m udp --dport 1701 -m comment --comment "Also allow 1701/udp for WireGuard" -j REDIRECT --to-ports 500
-A PREROUTING -i ens3 -p udp -m udp --dport 443 -m comment --comment "Also allow 443/udp for WireGuard" -j REDIRECT --to-ports 500
-A POSTROUTING -o ens3 -j MASQUERADE
COMMIT
# Completed on Sat Jun 19 03:43:54 2021
# Generated by xtables-save v1.8.2 on Sat Jun 19 03:43:54 2021
*filter
:INPUT DROP [2775:810347]
:FORWARD ACCEPT [1048627:1182856653]
:OUTPUT ACCEPT [14961117:11097488012]
-A INPUT -m state --state RELATED,ESTABLISHED -m comment --comment "Allow ALL RELATED, ESTABLISHED" -j ACCEPT
-A INPUT -i lo -m state --state NEW -m comment --comment "Allow ALL from lo" -j ACCEPT
-A INPUT -p icmp -m state --state NEW -m comment --comment "Allow ICMP" -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m multiport --dports 22 -m comment --comment "Allow SSH" -j ACCEPT
-A INPUT -i wg0 -m state --state NEW -m comment --comment "Allow ALL from wg0" -j ACCEPT
-A INPUT -p udp -m state --state NEW -m multiport --dports 500 -m comment --comment "Allow WireGuard" -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m comment --comment "Clamp MSS to PMTU" -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Sat Jun 19 03:43:54 2021

ルーティングテーブルダンプ:

default via 161.129.xxx.xxx dev ens3
161.129.xxx.xxx/24 dev ens3 proto kernel scope link src 161.129.xxx.xxx
172.16.1.0/24 dev wg0 proto kernel scope link src 172.16.1.1

ベストアンサー1

おすすめ記事