UTM / NAT


基本設定
ダイナミックENAT(IPマスカレード)
スタティックENAT(ポートフォワーディング)
スタティックNAT
ダブルNAT
サブネットベースNAT
ルールの処理順序
設定と状態の確認
ログ


NAT機能はIPアドレス・TCP/UDPポートを変換する機能の総称です。
本製品はルーティング用インターフェースにおいて、下記のNAT機能をサポートしています。
Note
NAT機能の対象はIPv4パケットだけです。IPv6には対応していません。
Note
本製品のNAT機能は、IPsec、PPTP、L2TPのパススルーに対応しているため、配下の装置から外部に対して、これらのプロトコルを使用したVPN接続が可能です。

Note
NATルールの適用タイミングは、NATアクションによって次のように異なります。

設定によっては、同一のトラフィックに対して2つのNATアクションが適用される場合がありますので、不要なNATルールが適用されないようエンティティー定義を考慮してください。
また、各NATルールの処理順序については、「ルールの処理順序」もご覧ください。

NAT機能の具体的な使用例については、「設定例集」をご覧ください。

基本設定

NAT機能の設定は、NATモード(natコマンド)で行います。
NATルールの設定はruleコマンドで、NAT機能の有効化はenableコマンドで行います。

Note
以下のコマンド例では、外部ゾーン「public」と内部ゾーン「private」を定義するコマンドは、各ゾーンにおいて他の設定が必要な場合を除き省略しています。「エンティティー」定義の詳細については、「UTM」/「エンティティー定義」をご覧ください。

ダイナミックENAT(IPマスカレード)

ダイナミックENAT(IPマスカレード)は、パケットの始点IPアドレスとTCP/UDPポート番号を動的に変換することで、限られたグローバルアドレスを複数のホストで共用させる機能です。

■ ダイナミックENATルールを設定するには、ruleコマンドでmasqアクションを指定し、適用対象のアプリケーションと送信元・宛先エンティティー定義を指定します。

たとえば、ゾーン「private」から「public」へのすべてのトラフィックに対し、始点IPアドレスを本製品の出力インターフェースのIPアドレスに変換するダイナミックENATルールを設定するには次のようにします。
awplus(config)# nat
awplus(config-nat)# rule masq any from private to public
awplus(config-nat)# enable
この例において、
を表します。

■ ダイナミックENATルールで変換後のIPアドレスを明示的に指定したいときは、変換後のIPアドレスを表すホストエンティティーを定義し、ruleコマンドの「with src」パラメーターで該当ホスト定義名を指定します。

たとえば、ISPからグローバルIPアドレスを複数割り当てられており、WAN側インターフェースをUnnumberedで運用しているような場合、割り当てられたアドレスの中から特定の1つをダイナミックENATの変換後アドレスとして使いたい場合は、まず次のようにして変換後のアドレスを表すホストエンティティー(ここでは「public.wan.enat」と命名)を定義します。
ここでは、ISPから割り当てられたアドレスが10.0.0.0/29(10.0.0.0~10.0.0.7)であり、この中から変換後アドレスとして10.0.0.1を使うものとします。
awplus(config)# zone public
awplus(config-zone)# network wan
awplus(config-network)# ip subnet 0.0.0.0/0 interface ppp0
awplus(config-network)# host enat
awplus(config-host)# ip address 10.0.0.1
awplus(config-host)# exit
awplus(config-network)# exit
awplus(config-zone)# exit

その後、ruleコマンドでNATルールを作成するときに「with src」で該当ホスト定義名を指定します。
awplus(config)# nat
awplus(config-nat)# rule masq any from private to public with src public.wan.enat
awplus(config-nat)# enable
この例において、
を表します。
Note
「with src」で指定するホスト定義にはIPv4アドレス(ip address)を1つだけ関連付けるようにしてください。「with src」は変換後のIPアドレスです。

「アプリケーション」と「エンティティー」の詳細は、「UTM」/「アプリケーション定義」「UTM」/「エンティティー定義」をご覧ください。

なお、ファイアウォール機能を併用している場合は、ダイナミックENATの対象トラフィックがファイアウォールで破棄されないよう、ファイアウォールモードのruleで、次のようなファイアウォールルールを設定する必要があります。
awplus(config)# firewall
awplus(config-firewall)# rule permit any from private to public

スタティックENAT(ポートフォワーディング)

スタティックENAT(ポートフォワーディング)は、本製品宛てに送信されたパケットの終点IPアドレスを変換することで、該当パケットをあらかじめ指定したホストに転送する機能です。TCP/UDPパケットの場合は、転送時にTCP/UDPポート番号を変換することもできます。この機能を利用すると、たとえばグローバルアドレスが1つしかない環境でも、複数のサーバー(サービス)を外部に公開することができます。

Note
スタティックENATルールにおいて転送後(変換後)のTCP/UDPポートを指定しない場合、ポート番号は変更しません。また、ICMPなどTCP/UDP以外のパケットに対しても、終点IPアドレスの書き換え(指定ホストへの転送)を行います。

■ スタティックENATルールを設定するには、ruleコマンドでportfwdアクションを指定し、適用対象のアプリケーションと送信元・転送先エンティティー定義を指定します。

たとえば、ゾーン「public」から本製品に宛てられたHTTP通信のパケットを、ゾーン「dmz」内のネットワーク「servernet」上にあるホスト「web」に転送するポートフォワーディングルールを設定するには次のようにします。
awplus(config)# nat
awplus(config-nat)# rule portfwd http from public with dst dmz.servernet.web
awplus(config-nat)# enable
この例において、
を表します。
Note
「with dst」で指定するホスト定義にはIPv4アドレス(ip address)を1つだけ関連付けるようにしてください。「with dst」は転送先(変換後)のIPアドレスです。

■ スタティックENATルールで転送先のTCP/UDPポート番号を明示的に指定したい(TCP/UDPポート番号も変更したい)ときは、ruleコマンドでNATルールを作成するときに、転送先エンティティーの後に「dport」パラメーターで転送先(変換後)のポート番号を指定します。

たとえば、ゾーン「public」から本製品に宛てられたHTTP通信のパケットを、ゾーン「dmz」内のネットワーク「servernet」上にあるホスト「web」のポート8080番に転送するポートフォワーディングルールを設定するには次のようにします。
awplus(config)# nat
awplus(config-nat)# rule portfwd http from public with dst dmz.servernet.web dport 8080
awplus(config-nat)# enable
この例において、
を表します。
Note
「with dst」で指定するホスト定義にはIPv4アドレス(ip address)を1つだけ関連付けるようにしてください。「with dst」は転送先(変換後)のIPアドレスです。

「アプリケーション」と「エンティティー」の詳細は、「UTM」/「アプリケーション定義」「UTM」/「エンティティー定義」をご覧ください。

なお、ファイアウォール機能を併用している場合は、ダイナミックENATの対象トラフィックがファイアウォールで破棄されないよう、ファイアウォールモードのruleで、次のようなファイアウォールルールを設定する必要があります。
awplus(config)# application http-8080
awplus(config-application)# protocol tcp
awplus(config-application)# dport 8080
awplus(config-application)# exit
awplus(config)# firewall
awplus(config-firewall)# rule permit http-8080 from public to dmz.servernet.web

スタティックNAT

スタティックNATは、パケットのIPアドレスを1対1で固定的に変換する機能です。
おもに、複数のグローバルIPアドレスを使用できる環境において、サーバーにはプライベートIPアドレスを設定しておき、外部からは各サーバー専用のグローバルIPアドレスでアクセスさせるようなケースで利用します。

スタティックNATルールは、外部から通信を始める場合(終点アドレスを変換する場合)と、内部から通信を始める場合(始点アドレスを変換する場合)で設定が異なります。

■ 「外 → 内」方向のスタティックNATルールを設定するには、ruleコマンドでportfwdアクションを指定し、適用対象のアプリケーションと送信元・宛先(変換前のグローバルIPアドレス)・転送先(変換後のプライベートIPアドレス)をそれぞれエンティティー定義で指定します。

たとえば、ゾーン「public」からグローバルIPアドレス「public.ip8.addr2」に宛てられたすべてのIPパケットを、ゾーン「private」内のネットワーク「lan」上にあるホスト「server2」に転送する「外 → 内」方向のスタティックNATルールを設定するには、まず次のようにして、外部から見た宛先(変換前のグローバルIPアドレス)を表すホストエンティティー(ここでは「global.ip8.addr2」と命名)と、転送先(変換後のプライベートIPアドレス)を表すホストエンティティー(ここでは「private.lan.server2」と命名)を定義します。
ここでは、ISPから割り当てられたグローバルIPアドレスが10.0.0.0/29(10.0.0.0~10.0.0.7)であり、この中からスタティックNAT専用のアドレスとして10.0.0.2を使うものとします。
awplus(config)# zone global
awplus(config-zone)# network ip8
awplus(config-network)# ip subnet 10.0.0.0/29
awplus(config-network)# host addr2
awplus(config-host)# ip address 10.0.0.2
awplus(config-host)# exit
awplus(config-network)# exit
awplus(config-zone)# exit

awplus(config)# zone private
awplus(config-zone)# network lan
awplus(config-network)# ip subnet 192.168.10.0/24
awplus(config-network)# host server2
awplus(config-host)# ip address 192.168.10.2
awplus(config-host)# exit
awplus(config-network)# exit
awplus(config-zone)# exit

その後、ruleコマンドでNATルールを作成するときに各エンティティー定義名を指定します。
awplus(config)# nat
awplus(config-nat)# rule portfwd any from public to global.ip8.addr2 with dst private.lan.server2
awplus(config-nat)# enable
この例において、
を表します。
Note
「to」、「with dst」で指定するホスト定義にはIPv4アドレス(ip address)を1つだけ関連付けるようにしてください。「to」は外部に見える変換前のグローバルIPアドレス、「with dst」は内部でしか見えない変換後のプライベートIPアドレスです。
Note
外側のEthernetインターフェースに直接IPアドレスを割り当てた構成において、「宛先エンティティー(変換前のグローバルIPアドレス)(ホスト)」にインターフェースのIPアドレスと異なるIPアドレスを使用する場合は、プロキシーARPの設定が必須です。

なお、ファイアウォール機能を併用している場合は、スタティックNATの対象トラフィックがファイアウォールで破棄されないよう、ファイアウォールモードのruleで、次のようなファイアウォールルールを設定する必要があります。
awplus(config)# firewall
awplus(config-firewall)# rule permit any from public to private.lan.server2

■ 「内 → 外」方向のスタティックNATルールを設定するには、ruleコマンドでmasqアクションを指定し、適用対象のアプリケーションと送信元(変換前のプライベートIPアドレス)・宛先・変換後のグローバルアドレスをそれぞれエンティティー定義で指定します。

たとえば、ゾーン「private」内のネットワーク「lan」上にあるホスト「server2」からゾーン「public」へのすべてのトラフィックに対し、始点IPアドレスを「public.ip8.addr」が表すグローバルIPアドレスに変換するには、まず次のようにして、変換後のグローバルIPアドレスを表すホストエンティティー(ここでは「global.ip8.addr2」と命名)と、送信元(変換前のプライベートIPアドレス)を表すホストエンティティー(ここでは「private.lan.server2」と命名)を定義します。
ここでは、ISPから割り当てられたグローバルIPアドレスが10.0.0.0/29(10.0.0.0~10.0.0.7)であり、この中からスタティックNAT専用のアドレスとして10.0.0.2を使うものとします。
awplus(config)# zone global
awplus(config-zone)# network ip8
awplus(config-network)# ip subnet 10.0.0.0/29
awplus(config-network)# host addr2
awplus(config-host)# ip address 10.0.0.2
awplus(config-host)# exit
awplus(config-network)# exit
awplus(config-zone)# exit

awplus(config)# zone private
awplus(config-zone)# network lan
awplus(config-network)# ip subnet 192.168.10.0/24
awplus(config-network)# host server2
awplus(config-host)# ip address 192.168.10.2
awplus(config-host)# exit
awplus(config-network)# exit
awplus(config-zone)# exit

その後、ruleコマンドでNATルールを作成するときに各エンティティー定義名を指定します。
awplus(config)# nat
awplus(config-nat)# rule masq any from private.lan.server2 to public with src global.ip8.addr2
awplus(config-nat)# enable
この例において、
を表します。
Note
「from」、「with src」で指定するホスト定義にはIPv4アドレス(ip address)を1つだけ関連付けるようにしてください。「from」は内部でしか見えない変換前のプライベートIPアドレス、「with src」は外部から見える変換後のグローバルIPアドレスです。
Note
外側のEthernetインターフェースに直接IPアドレスを割り当てた構成において、「変換後のグローバルIPアドレス(ホスト)」にインターフェースのIPアドレスと異なるIPアドレスを使用する場合は、プロキシーARPの設定が必須です。

なお、ファイアウォール機能を併用している場合は、スタティックNATの対象トラフィックがファイアウォールで破棄されないよう、ファイアウォールモードのruleで、次のようなファイアウォールルールを設定する必要があります。
awplus(config)# firewall
awplus(config-firewall)# rule permit any from private.lan.server2 to public
ただし、内部から外部への通信に対しては通常次のようなルールを設定するため、このようなルールが存在しており、なおかつ、前記のルールを包含しているのであれば、前記のルールは不要です。
awplus(config-firewall)# rule permit any from private to public

「アプリケーション」と「エンティティー」の詳細は、「UTM」/「アプリケーション定義」「UTM」/「エンティティー定義」をご覧ください。

ダブルNAT

ダブルNATはスタティックNATの一種で、始点IPアドレスと終点IPアドレスの両方を書き換えます。

本製品では、2つのNATルールを使い、portfwdアクション+with dstで終点IPアドレスを、masqアクション+with srcで始点IPアドレスを書き換えるよう設定することにより、ダブルNATが可能です。

ダブルNATを設定するには、ruleコマンドでportfwdアクションとmasqアクションの2つのルールを作成します。

■ まず、「外 → 内」方向のダブルNATを考えます。たとえば、ホスト「public.wan.srcA」からホスト「public.wan.dstA」へのトラフィックについて、終点IPアドレスを「private.lan.dstB」に、始点IPアドレスを「private.lan.srcB」に変換するダブルNATを設定するには、まず次のようにして、変換前の終点IPアドレスと始点IPアドレス、変換後の終点IPアドレスと始点IPアドレスを表すホストエンティティーを定義します(ここでは「public.wan.dstA」、「public.wan.srcA」、「private.lan.dstB」、「private.lan.srcB」)。
awplus(config)# zone private
awplus(config-zone)# network lan
awplus(config-network)# ip subnet 192.168.10.0/24
awplus(config-network)# host srcB
awplus(config-host)# ip address 192.168.10.2
awplus(config-host)# exit
awplus(config-network)# host dstB
awplus(config-host)# ip address 192.168.10.100
awplus(config-host)# exit
awplus(config-network)# exit
awplus(config-zone)# exit

awplus(config)# zone public
awplus(config-zone)# network wan
awplus(config-network)# ip subnet 0.0.0.0/0 interface ppp0
awplus(config-network)# host srcA
awplus(config-host)# ip address 10.100.100.100
awplus(config-host)# exit
awplus(config-network)# host dstA
awplus(config-host)# ip address 10.10.10.1
awplus(config-host)# exit
awplus(config-network)# exit
awplus(config-zone)# exit

その後、ruleコマンドでNATルールを作成するときに各エンティティー定義名を指定します。
awplus(config)# nat
awplus(config-nat)# rule portfwd any from public.wan.srcA to public.wan.dstA with dst private.lan.dstB
awplus(config-nat)# rule masq any from public.wan.srcA to private.lan.dstB with src private.lan.srcB
awplus(config-nat)# enable
この例において、
を表します。
Note
「with dst」、「with src」で指定するホスト定義にはIPv4アドレス(ip address)を1つだけ関連付けるようにしてください。「with dst」は変換後の終点IPアドレス、「with src」は変換後の始点IPアドレスです。
Note
外側・内側のEthernetインターフェースに直接IPアドレスを割り当てた構成において、「変換後の始点IPアドレス(ホスト)」にインターフェースのIPアドレスと異なるIPアドレスを使用する場合は、プロキシーARPの設定が必須です。

なお、ファイアウォール機能を併用している場合は、masqアクションの対象トラフィックがファイアウォールで破棄されないよう、ファイアウォールモードのruleで、次のようなファイアウォールルールを設定する必要があります。
awplus(config)# firewall
awplus(config-firewall)# rule permit any from public.wan.srcA to private.lan.dstB

■ 次に「内 → 外」方向のダブルNATを考えます。たとえば、ホスト「private.lan.srcA」からホスト「private.lan.dstA」へのトラフィックについて、終点IPアドレスを「public.wan.dstB」に、始点IPアドレスを「public.wan.srcB」に変換するダブルNATを設定するには、まず次のようにして、変換前の終点IPアドレスと始点IPアドレス、変換後の終点IPアドレスと始点IPアドレスを表すホストエンティティーを定義します(ここでは「private.lan.dstA」、「private.lan.srcA」、「public.wan.dstB」、「public.wan.srcB」)を定義します。
awplus(config)# zone private
awplus(config-zone)# network lan
awplus(config-network)# ip subnet 192.168.10.0/24
awplus(config-network)# host srcA
awplus(config-host)# ip address 192.168.10.100
awplus(config-host)# exit
awplus(config-network)# host dstA
awplus(config-host)# ip address 192.168.10.2
awplus(config-host)# exit
awplus(config-network)# exit
awplus(config-zone)# exit

awplus(config)# zone public
awplus(config-zone)# network wan
awplus(config-network)# ip subnet 0.0.0.0/0 interface ppp0
awplus(config-network)# host srcB
awplus(config-host)# ip address 10.10.10.1
awplus(config-host)# exit
awplus(config-network)# host dstB
awplus(config-host)# ip address 10.100.100.100
awplus(config-host)# exit
awplus(config-network)# exit
awplus(config-zone)# exit

その後、ruleコマンドでNATルールを作成するときに各エンティティー定義名を指定します。
awplus(config)# nat
awplus(config-nat)# rule portfwd any from private.lan.srcA to private.lan.dstA with dst public.wan.dstB
awplus(config-nat)# rule masq any from private.lan.srcA to public.wan.dstB with src public.wan.srcB
awplus(config-nat)# enable
この例において、
を表します。
Note
「with dst」、「with src」で指定するホスト定義にはIPv4アドレス(ip address)を1つだけ関連付けるようにしてください。「with dst」は変換後の終点IPアドレス、「with src」は変換後の始点IPアドレスです。
Note
外側・内側のEthernetインターフェースに直接IPアドレスを割り当てた構成において、「変換後の始点IPアドレス(ホスト)」にインターフェースのIPアドレスと異なるIPアドレスを使用する場合は、プロキシーARPの設定が必須です。

なお、ファイアウォール機能を併用している場合は、masqアクションの対象トラフィックがファイアウォールで破棄されないよう、ファイアウォールモードのruleで、次のようなファイアウォールルールを設定する必要があります。
awplus(config)# firewall
awplus(config-firewall)# rule permit any from private.lan.srcA to public.wan.dstB
ただし、内部から外部への通信に対しては通常次のようなルールを設定するため、このようなルールが存在しており、なおかつ、前記のルールを包含しているのであれば、前記のルールは不要です。
awplus(config-firewall)# rule permit any from private to public

「アプリケーション」と「エンティティー」の詳細は、「UTM」/「アプリケーション定義」「UTM」/「エンティティー定義」をご覧ください。

サブネットベースNAT

サブネットベースNATはスタティックNATの一種で、IPアドレスのサブネット部だけを別のサブネットアドレスに書き換え、ホスト部はそのままにします。
サブネットベースNATでは、設定により始点IPアドレスか終点IPアドレスのどちらか一方を書き換えることができます。

サブネットベースNATルールを設定するには、ruleコマンドでnetmapアクションを指定し、適用対象のアプリケーション、変換前の始点IPアドレス、終点IPアドレスと、変換後のサブネットアドレスをそれぞれエンティティー定義で指定します。また、変換後のサブネットアドレスを指定するときには、始点、終点のどちらを書き換えるかも指定します。

■ ネットワーク「private.netA1」から「private.netB2」へのトラフィックについて、始点IPアドレスのサブネット部だけを「private.netA1」のアドレスから「private.netB1」のアドレスに変換するサブネットベースNATルールを追加するには、まず次のようにして、変換前の終点IPアドレスと始点IPアドレス、変換後の始点IPアドレスを表すホストエンティティーを定義します(ここでは「private.netA1」、「private.netB2」、「private.netB1」)。
awplus(config)# zone private
awplus(config-zone)# network netA1
awplus(config-network)# ip subnet 192.168.10.0/24
awplus(config-network)# exit
awplus(config-zone)# network netB2
awplus(config-network)# ip subnet 172.16.20.0/24
awplus(config-network)# exit
awplus(config-zone)# network netB1
awplus(config-network)# ip subnet 172.16.10.0/24
awplus(config-network)# exit
awplus(config-zone)# exit

その後、ruleコマンドでNATルールを作成するときに各エンティティー定義名を指定します。
awplus(config)# nat
awplus(config-nat)# rule netmap any from private.netA1 to private.netB2 with src private.netB1
awplus(config-nat)# enable
この例において、
を表します。
Note
「with dst」、「with src」で指定するホスト定義にはIPv4アドレス(ip address)を1つだけ関連付けるようにしてください。「with dst」は変換後の終点IPアドレス、「with src」は変換後の始点IPアドレスです。
Note
外側・内側のEthernetインターフェースに直接IPアドレスを割り当てた構成において、「変換後の始点IPアドレス(ホスト)」にインターフェースのIPアドレスと異なるIPアドレスを使用する場合は、プロキシーARPの設定が必須です。

「アプリケーション」と「エンティティー」の詳細は、「UTM」/「アプリケーション定義」「UTM」/「エンティティー定義」をご覧ください。

ルールの処理順序

NATルール(rule)は次の順序で新しく開始されたセッションを処理します。
Note
すでに確立済みのセッションはセッションテーブルに登録された情報を元にパケットを転送します。

■ portfwd および netmap with dst アクションのNATルールは、下記の順序でファイアウォールルールの処理前に適用されます。

■ masq および netmap with src アクションのNATルールは、下記の順序でファイアウォールルールの処理後に適用されます。

設定と状態の確認

■ NAT機能の有効・無効はshow natコマンドで確認できます。
awplus# show nat
NAT is enabled

■ NATルールの情報はshow nat ruleコマンドで確認できます。
awplus# show nat rule

[* = Rule is not valid - see "show nat rule config-check"]
  ID     Action  App        From          To            With          Hits
--------------------------------------------------------------------------------
  10     masq    any        private       public        -             0
  20     portfw  http       public        -             private.lan.webhost
                                                                      0

■ NATルールが有効かどうかをチェックするには、show nat rule config-checkコマンドを使います。

NATルールの作成時にはエンティティーとアプリケーションの両定義を使用しますが、これらの定義が不完全な場合(指定したアプリケーションやエンティティーが未定義である、アプリケーション定義でIPプロトコルが未指定、など)、該当ルールは有効にならず無視されてしまいます。

このような事態を避けるには、ルール作成後にshow nat rule config-checkコマンドを実行してルールが有効かどうかをチェックしてください。
awplus# show nat rule config-check
Rule 30:
  "dst" entity must exist, and have exactly one IPv4 address
同コマンドでは、無効なルールがある場合、それが理由とともに示されます。

この例では、次の理由によりルール「30」が無効であることが示されています。

また、次の例では、すべてのルールが有効であることが示されています。
awplus# show nat rule config-check
All rules are valid

ログ

■ 初期設定ではNATセッションのログは出力されません。
NATセッションの開始と終了をログに記録するには、connection-log eventsコマンドで有効化してください。
また、セッション開始と終了のログは local5ファシリティーで出力されるため、log(filter)で同ファシリティーのメッセージを出力する設定も追加してください。
awplus(config)# connection-log events all
awplus(config)# log buffered level informational facility local5


(C) 2016 - 2019 アライドテレシスホールディングス株式会社

PN: 613-002311 Rev.S