FortiGateの「双方向NAT(Bi-directional NAT)」は、内部ネットワークと外部ネットワークの間で双方向にアドレス変換を行う機能です。
これは、通常の「SNAT(送信元NAT)」や「DNAT(宛先NAT)」とは異なり、一つの設定で双方向の通信が成り立つようにアドレスとポートを変換する仕組みです。
FortiGateで双方向NATを実現するには、Virtual IP(VIP)オブジェクトとポリシーの適切な組み合わせが重要になります。
たとえば、以下のような通信が必要な場合を考えてみましょう。
このような要件では、DNATとSNATの両方を設定する必要があります。
FortiGateでは、VIPオブジェクトでDNATを設定し、SNATはポリシー内のオプションで実現します。
以下は、具体的な設定手順です。
項目 | 内容 |
---|---|
Name | vip_web_server など任意の名前 |
Interface | 外部向けインターフェース(例:wan1 ) |
External IP Address | 公開IPアドレス(例:203.0.113.10 ) |
Mapped IP Address | 内部サーバーのIP(例:192.168.1.100 ) |
Port Forwarding | 必要に応じて有効に(例えばHTTPだけなら80番ポートを指定) |
これにより、外部 → 内部への通信(DNAT)が成立します。
「WANからLANへ」のポリシーを作成
「LANからWANへ」のポリシーを作成
192.168.1.100
)項目 | 内容 |
---|---|
Name | ip_pool_webserver など |
Type | One-to-One(1対1) |
External IP Range | 203.0.113.10 (公開IP) |
Internal IP Range | 192.168.1.100 (内部IP) |
203.0.113.10
へHTTPでアクセス → FortiGateがDNATで192.168.1.100
へ変換203.0.113.10
へ変換CLIでも同様の設定が可能です。
例えば
config firewall vip
edit "vip_web_server"
set extip 203.0.113.10
set mappedip 192.168.1.100
set extintf "wan1"
next
end
config firewall ippool
edit "ip_pool_webserver"
set startip 203.0.113.10
set endip 203.0.113.10
set type one-to-one
next
end
config firewall policy
edit 1
set name "Allow_inbound"
set srcintf "wan1"
set dstintf "lan"
set srcaddr "all"
set dstaddr "vip_web_server"
set action accept
set schedule "always"
set service "HTTP"
set nat disable
next
edit 2
set name "Allow_outbound"
set srcintf "lan"
set dstintf "wan1"
set srcaddr "192.168.1.100"
set dstaddr "all"
set action accept
set schedule "always"
set service "HTTP"
set nat enable
set ippool enable
set poolname "ip_pool_webserver"
next
end
項目 | 内容 |
---|---|
実現すること | 同一グローバルIPを使った内部・外部通信の双方向変換 |
使う機能 | VIP(Virtual IP) + IP Pool + 2つのポリシー |
メリット | NAT変換が対称で、トラブルが少ない。ポート単位の制御も可能 |
注意点 | ポリシーの順序、IP Poolの設定ミスに注意 |
もし特定のプロトコル(SSH、SMTPなど)や複数の内部サーバーで同様の設定をしたい場合、ポートフォワーディングやポリシーテンプレートの工夫が必要になります。
以上、FortiGateの双方向natについてでした。
最後までお読みいただき、ありがとうございました。