ソースベースのDNATデリバリー

ソースベースのDNATデリバリー

2つの異なるGoogle Cloud VPNゲートウェイGW_IP_1GW_IP_22つのNATポストルーターを使用してR12つのIPSecトンネルを設定したいと思いますR2。このような:

GW_IP_1 ---\                                    /--- R1
            |-- my_main_router_NAT_firewall ---|
GW_IP_2 ---/                                    \--- R2

問題:ゲートウェイ(and)の送信元IPアドレスに基づいて特定のルータ(and)にUDPポートを転送します500R1R2GW_IP_1GW_IP_2

奇妙な状況が発生しました。トンネルが機能し、パケットが正しく一致して転送されましたが、パケットは機能しませんでした。2番目のルータR2の場合一致するものはありません。どこかから消えたようです。

ネイティブNATtingルーターでDNATルールを作成しました。

-t nat -A PREROUTING -p udp -s GW_IP_1 --dport 500 -j DNAT --to R1:500
-t nat -A PREROUTING -p udp -s GW_IP_2 --dport 500 -j DNAT --to R2:500

走りtcpdump続けています。パケットが受信され、トンネルが開きます。R1R2R1しかし、R2は500個のパケットを見ませんでした。。その後、両方のパケットtcpdumpmain_routerパケットを実行し、期待GW_IP_1どおりにGW_IP_2到着しました。

私は数日間ルーター(Ubiquiti ER-X)などと相談しました。これがファームウェアのバグであるか、このタイプのルーターに固有の問題だと思いました。しかし、最初から2つのインターフェイス、転送、およびすべてのルールを使用して単純なLinuxルータを設定し、結果は同じでした。 1つのトンネルは機能していましたが(パケットは正しく配信されました)、2番目のルーターは機能しませんでした。パケットなし受信されます。

iptablesしたがって、これはおそらく/kernelのもう少し基本的なものです。誰かがこれを説明できますか?

ベストアンサー1

おすすめ記事