@infra_taka (Watanabe Taka)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

同一IPアドレスを解決するNAT環境の構築

同一IPアドレスを解決するNAT環境の構築方法

image.png

Server01とServer02が同一のローカルIPを持つ場合に
NAT1,2にDNAT,SNATの設定を入れて通信できる環境にしたいと考えていますが、
うまくいかず教えていただきたいです。

環境

●Server01
 OS:Windows server 2022
 VLAN110:192.168.1.1/28
●Server02
 OS:Windows server 2022
 VLAN120:192.168.1.1/28
●NAT01
 OS:RHEL8.4
 VLAN100:192.168.1.40/28
 VLAN110:192.168.1.10/28
●NAT02
 OS:RHEL8.4
 VLAN100:192.168.1.41/28
 VLAN120:192.168.1.11/28

設定する際に参考にしたサイト

以下のサイトを参考にして、問題解決を試みた。
https://start-nw.com/netwrok/nat/

サイトを基に今回の構成で実施したいこと

①Server01から送信されたパケットは、NAT01にてSrc IPを変換する。
②NAT02にてDst IPを変換する。
③Server02からの帰りの通信は、NAT02でSrc IPを変換する。
④NAT01にてDst IPを変換する。

image.png

設定した内容

●Server01に入れた設定
 デフォゲをNAT01に設定。

●Server02に入れた設定
 デフォゲをNAT02に設定。

●NAT01に入れた設定
 ・①SNATの設定
   iptables -t nat -A POSTROUTING -s 192.168.1.1 -j SNAT --to-source 192.168.1.42
 ・④DNATの設定
   iptables -t nat -A PREROUTING -d 192.168.1.42 -j DNAT --to-destination 192.168.1.1
 ・ルーティング設定(3.3.3.3宛ての通信が来たら、NAT02へ投げる設定)
   ip route add 3.3.3.3 via 192.168.1.41

●NAT02に入れた設定
 ・②DNATの設定
   iptables -t nat -A PREROUTING -d 3.3.3.3 -j DNAT --to-destination 192.168.1.1
 ・③SNATの設定
   iptables -t nat -A POSTROUTING -s 192.168.1.1 -j SNAT --to-source 3.3.3.3
 ・ルーティング設定(3.3.3.3宛ての通信が来たら、Server02へ投げる設定)
   ip route add 3.3.3.3 via 192.168.1.1

NAT01,02はIPフォワーディング設定は、有効化しています。

最後に

上記でServer01から3.3.3.3宛てにpingを通しても通らず、いろいろ試したがダメでした。
何か前提条件が間違っていることや、設定がそもそも足りないなどあれば教えていただきたいです。

よろしくお願いいたします。

0 likes

2Answer

設定内容にそって見ていくと今はこんな感じになっているはずです。
NAT対象になるアドレスや現在取り扱っているパケットの source/destination address を意識しなおせば修正できると思います。

Server01                NAT01                  NAT02                   Server02
192.168.1.1 -> 3.3.3.3
                    192.168.1.1 -> 3.3.3.3
                    PREROUTING 宛先が 192.168.1.1 は該当なし
                    POSTROUTING 送信元が 192.168.1.42 は該当なし
                    つまり NATは無効。
                        source      = 192.168.1.1
                        destination = 3.3.3.3
                    192.168.1.1 -> 3.3.3.3
                                          192.168.1.1 -> 3.3.3.3
                                          PREROUTING 宛先が 192.168.1.1 は該当なし
                                          POSTROUTING 送信元が 3.3.3.3 は該当なし
                                          ここでも NATは無効
                                           192.168.1.1 -> 3.3.3.3
                                                                       192.168.1.1 -> 3.3.3.3
                                                                       3.3.3.3は自身でないのでRSTを返す

通常はこんなふうになるように NAT を組み立てていくと思います。

192.168.1.1 -> 3.3.3.3
                    3.3.3.1 -> 3.3.3.3 SNATで送信元を書き換え
                                          3.3.3.1 -> 192.168.1.1 DNATで宛先書き換え
                                                                       3.3.3.1 -> 192.168.1.1
                                                                       3.3.3.1 <- 192.168.1.1
                                          3.3.3.1 <- 192.168.1.1
                    3.3.3.1 <- 3.3.3.3
192.168.1.1 <- 3.3.3.3
0Like

Comments

  1. @infra_taka

    Questioner

    回答いただきありがとうございます。
    一点確認なのですが、NAT01に入れた①の以下の設定はSRCアドレス192.168.1.1からのパケットがあれば、SRCアドレスを192.168.1.42へ変換するものだと思っていました。
    いただいた回答だとSRCアドレス192.168.1.42からぼパケットがあれば、192.168.1.1へ変換する設定になっていると言うことでしょうか?

    ●NAT01に入れた設定
     ・①SNATの設定
       iptables -t nat -A POSTROUTING -s 192.168.1.1 -j SNAT --to-source 192.168.1.42

ああ、失礼しました。 192.168.1.42 というのがネットワーク上には存在しない Server01 の source (と NAT02及びServer02が考える)なのですね。
というか、私が書いたのは間違った考えに憑りつかれていますね。

私の書いたことは全部嘘ですので一旦リセットしてください。

192.168.1.1 -> 3.3.3.3 に必要なNATは
〇1と〇2の二つ。確かにおっしゃる通り正しいNATです。

足りないのは NAT02 から 192.168.1.42 への経路(=NAT01)ということでしょうか。

0Like

Your answer might help someone💌