下記の構成で外部端末(WAN-Client)から内部サーバ(LAN-Server)へping疎通を行います。
中継するFortigateでNAT変換を行います。
構成図
DNAT
外部端末(192.168.99.1)から内部サーバ(192.168.9.1)へアクセスする場合、UTMで内部サーバIPを192.168.9.1から192.168.99.10に変換します。
これは宛先の内部サーバIPを変換するDNATになります。
DNAT+SNAT
DNATに加えて、外部端末(192.168.99.1)を外部端末の内部IP(192.168.9.254)へ変換して内部サーバ(192.168.9.1)にアクセスするパターンもあります。この場合は送信元の外部端末IPを変換するのでSNATになります。
クライアントからは192.168.99.10へアクセスするのでいずれにしてもDNATは必要です。
DNAT変換と同時にSNAT変換を行います。
FortigateのDNAT/SNAT設定
Fortigateの設定として、DNATはVIP、SNATはFirewallPolicyとFirewallIPpoolの組み合わせで設定します。
VIPはDNAT専用の設定で、SNATは設定不可です。
DNAT
config firewall vip
edit "WebServer-VIP"
set extip 192.168.99.10
set extintf "wan1"
set mappedip 192.168.9.1
next
end
SNAT
config firewall policy
edit 2
set name "Allow_WAN_to_LAN"
set srcintf "wan1"
set dstintf "internal"
set srcaddr "all"
set dstaddr "WebServer-VIP" # VIP を指定
set action accept
set schedule "always"
set service "ALL"
set nat enable # SNAT を有効化
set ippool enable
set poolname "SNAT-POOL"
next
end
config firewall ippool
edit "SNAT-POOL"
set startip 192.168.9.254 # SNAT で変換する送信元IP
set endip 192.168.9.254
next
end
DNATのみを使用する場合と、DNAT+SNATを使用する場合の使い分け
DNATのみの場合
まずDNATのみを使用する場合を考えます。
外部端末(192.168.99.1)から内部サーバのWAN-IP(192.168.99.10)にアクセスする場合、内部サーバのLAN-IP(192.168.9.1)をUTMでDNATして内部サーバのWAN-IP(192.168.99.10)にすることで同セグメントでIPリーチャブルになります。
その場合、内部サーバから見ると、送信元が外部端末(192.168.99.1)なので、正確に送信元を把握できます。
戻りの通信の場合は、別セグメントである外部端末(192.168.99.1)を宛先にするので、UTMをDefaultGatewayにする必要があります。
別のDGWを設定している場合は外部端末へルーティングされないためです。
メリット:送信元を把握できる
デメリット:ルーティングを適切に設定する必要あり
DNAT+SNATを使用する場合
DNATのみの場合に、UTMをDefaultGatewayにできない場合は別途SNATが必要になります。
戻りの通信をUTMへ通すためです。
送信元の外部端末のWAN-IP(192.168.99.1)をUTMで外部端末のLAN-IP(192.168.9.254)へ変換します。
そうすることで、内部サーバのLAN-IP(192.168.9.1)の返信先が外部端末のLAN-IP(192.168.9.254)となり、無事にUTMを通って外部端末へ返答されます。
この場合は内部サーバから見える送信元が192.168.9.254になってしまうというデメリットもあります。
メリット:ルーティングを適切に設定しなくていい
デメリット:送信元を把握できない