【FortiGate】NAPT・PAT・IPマスカレードを設定する方法【IPプール】

FortiGate
スポンサーリンク

FortiGateでNAPT・PAT・IPマスカレードを設定する方法をご紹介します。
画像をクリックすると拡大表示ができますので、画像が見にくい場合は是非ご活用ください。

FortiGateでNAPT(IPマスカレード)を設定する方法

NAPT・PAT・IPマスカレードとはという説明はここでは省略させて頂きます。
ネットワーク機器メーカや人によって言い方は違えど、
NAPT・PAT・IPマスカレードはすべて同じ意味です。
個人的にはNAPTと呼ぶことが多いので、以降ではNAPTを使用させて頂きます。

FortiGateでNAPTを設定する場所はIPv4ポリシー内で設定します。
設定する場所は少し独特ですが、
設定方法は非常に簡単でGUIとCLIの両方で設定を行うことができます。

GUIでNAPTを設定する方法

GUIでNAPTを設定する場合は、
IPv4ポリシー内の『NAT』を有効にすることでNAPTが有効になります。

CLIでNAPTを設定する方法

CLIでNAPTを設定する場合は、対象のIPv4ポリシーにて、
『set nat enable』を設定することでNAPTが有効になります。

config firewall policy
    edit 1
        set srcintf "port1"
        set dstintf "port4"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set logtraffic all
        set fsso disable
        set nat enable
    next
end

NAPTの確認方法

本当にNAPTが動作しているかを確認していきます。
今回はNAPTを有効にしただけですが、NAPTをただ有効にしただけの場合は、
出力インタフェースのIPアドレスに送信元IPアドレスが変換されます。

CLIでは『get system session list』コマンドで、
NAPTが動作しているかを確認することができます。

『SOURCE-NAT』欄から、
出力インタフェースのIPアドレスに変換されていることがわかります。

FortiGate # get system session list
PROTO   EXPIRE SOURCE           SOURCE-NAT       DESTINATION      DESTINATION-NAT           
icmp    57     10.0.0.1:57365   192.168.11.8:57365 8.8.8.8:8        -           
icmp    58     10.0.0.1:57621   192.168.11.8:57621 8.8.8.8:8        -           
icmp    59     10.0.0.1:57877   192.168.11.8:57877 8.8.8.8:8        -           

GUIで確認する場合は、トラフィックログで確認することが可能です。


トラフィックログを表示させる方法についてはこちらをご覧ください。

念の為、パケットキャプチャでも確認します。

変換前
port1(入力インタフェース)で取得したパケットキャプチャです。
送信元IPアドレスが『10.0.0.1』になっています。

変換後
port4(出力インタフェース)で取得したパケットキャプチャです。
送信元IPアドレスが『192.168.11.8』に変換されていることがわかります。

【応用】グローバルIP8個など複数の場合

Office365(Microsoft365)やGoogle Workplace(Gsuite)のような、
OfficeソフトのSaaSサービスは1ユーザあたり30~40以上のセッション、
多いユーザでは50以上のセッションを使用すると言われています。

ポート番号は1-65535までと約6万5千ポートで、ウェルノウンポートは使用されないため、
NAPTで使用することができるポートは約6万4千ポートとなります。
セッションが多いユーザで計算をすると、
『64,000ポート÷50セッション≒1,300ユーザ』
NAPTで用いられる1つのグローバルIPアドレスで、
約1,300ユーザまで対応することができる計算となります。

1,300ユーザと言われると結構余裕だと思うかもしれませんが、
社用PCに加えて、社用携帯でもOutlookやGmailにアクセスする場合などを考えると、
具体的な計算は難しいのですが、もっと対応できるユーザ数は少なくなるかと思います。

このような場合に用いる設計として、
NAPTに用いるグローバルIPアドレスの数を増やすことが挙げられます。
2つグローバルIPがあれば、単純計算で2,600ユーザまで対応可能となります。

ということで、
複数のIPアドレスを用いてNAPTをする設定をご紹介します。

複数のIPアドレスを用いてNAPTを設定する方法

複数のIPアドレスを用いてNAPTを設定する方法は、
GUIとCLIの両方で設定することができます。

設定の流れとしては、

  1. IPプールを作成
  2. IPv4ポリシーに適用

GUIで複数のIPアドレスを用いてNAPTを設定する方法

GUIで複数のIPアドレスを用いてNAPTを設定する際は、
『ポリシー&オブジェクト』→『IPプール』で『新規作成』を押下します。

各値を入力したものがこちらになります。


各値を詳しく見ていきます。

【必須】名前

任意の名前を入力してください。
日本語入力をすることも可能ですが、
2byte文字は表示系のエラーを引き起こしやすいため、
半角英数字で入力することを強く推奨します。

【任意】コメント

必要があればコメントを入力してください。
『名前』と同様の理由で、
入力する際は半角英数字で入力することを強く推奨します。

【必須】タイプ

今回のようにNAPTで使用する複数のIPを指定する場合は、
『オーバーロード』を選択してください。

CiscoルータでNAPTを設定する際にも『overload』を使用するので、
こちらのイメージがあるとわかりやすいかと思います。

【必須】外部IPアドレス/範囲

変換に使用するIPアドレスを設定します。
今回は『192.168.11.100-192.168.11.104』の5つを設定しています。
範囲で指定する場合は、開始と終了を『-(ハイホン)』で繋げて記載します。
『-(ハイホン)』とIPアドレスには空白は不要で、
空白を入れてしまうとエラーとなってしまいます。

【必須】ARPリプライ

ARPリプライは基本的に必ず有効にしてください。
無効にするとFortiGate自身が設定したIPアドレスに対するARPに応答しなくなりますので、
対向のスイッチやルータなどで、
固定MACアドレスを登録するなどをしない限り通信できなくなってしまいます。

各値を入力したら『OK』を押下します。
IPプール一覧に戻りますので、
先程作成したIPプールが作成されたことを確認してください。

IPプールをIPv4ポリシーへ割当

作成したIPプールをIPv4ポリシーへ割当します。
『ダイナミックIPプールを使用』を選択し、先程作成したIPプールを選択します。

『送信元ポートの保持』は基本的に無効でよいです。
通信先のサーバやアプリケーションなどで、送信元ポートで制限を行っている場合など、
NAPTで任意のポートに変換されると通信できなくなってしまう場合に有効にします。

IPプールは複数選択することも可能なので、
今回は連番のIPアドレスを設定しましたが、
連番でなく、飛び飛びのIPアドレスを使用する場合は、
複数のIPプールを作成し、それらを割り当てることで設定することができます。

CLIで複数のIPアドレスを用いてNAPTを設定する方法

CLIで複数のIPアドレスを用いてNAPTを設定する際も、
IPプールを作成して、IPv4ポリシーに割り当てるという流れになります。

config firewall ippool
    edit "Global-IP"
        set startip 192.168.11.100
        set endip 192.168.11.104
    next
end

設定するIPv4ポリシー内で、
『set ippool enable』、『set poolname “Global-IP”』の設定を行い、
IPプールを適用します。

config firewall policy
    edit 1
        set srcintf "port1"
        set dstintf "port4"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set logtraffic all
        set ippool enable
        set poolname "Global-IP"
        set fsso disable
        set nat enable
    next
end

さいごに

Office365(Microsoft365)やGoogleAppsを利用することが、
一般的になりつつありますし、
それ以外のSaaSサービスは増え続けていきますので、
ますますセッションを気にしならないといけない状況になりつつあります。

数百人規模の会社やオフィスやゲスト用Wi-Fiなどでは、
グローバルIPアドレス1つで足らない状況になりつつあるのではないでしょうか。
通信ができない・遅いなどの症状に悩まされている場合は、
セッション数を疑ってみるとよいかもしれません。

その他の設定についてはこちら

FortiOS5.2系に関する本はこちら

FortiGate6.0系に関する本はこちら

タイトルとURLをコピーしました