[index] AT-AR4000S-Cloud リファレンスマニュアル 5.5.5

# UTM / NAT

NAT機能はIPアドレス・TCP/UDPポートを変換する機能の総称です。
本製品はルーティング用インターフェースにおいて、下記のNAT機能をサポートしています。

- ダイナミックENAT（IPマスカレード）
- スタティックENAT（ポートフォワーディング）
- スタティックNAT
- ダブルNAT
- サブネットベースNAT

> Note

> > ブリッジングパケットは初期設定では本機能の適用対象外ですが、ソフトウェアブリッジに l3-filtering enableを設定している場合は、該当ソフトウェアブリッジでブリッジされるL3トラフィックに対して本機能が適用されるようになります。

> Note

> > NAT機能の対象はIPv4パケットだけです。IPv6には対応していません。

> Note

> > 本製品のNAT機能は、IPsec、PPTP、L2TPのパススルーに対応しているため、配下の装置から外部に対して、これらのプロトコルを使用したVPN接続が可能です。

> Note

> > NATルールの適用タイミングは、NATアクションによって次のように異なります。
> > - portfwd, netmap with dst - ファイアウォールルールの前に適用
> > - masq, netmap with src - ファイアウォールルールの後に適用
> > 設定によっては、同一のトラフィックに対して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 ↓

この例において、

- 「any」はアプリケーション（ただし、ここではすべてのトラフィックを意味するキーワード「any」を指定している）
- 「from private」は送信元エンティティー（ゾーン、ネットワーク、ホスト）
- 「to public」は宛先エンティティー（ゾーン、ネットワーク、ホスト）

を表します。

> Note

> > NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

■ ダイナミック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 ↓

この例において、

- 「any」はアプリケーション（ただし、ここではすべてのトラフィックを意味するキーワード「any」を指定している）
- 「from private」は送信元エンティティー（ゾーン、ネットワーク、ホスト）
- 「to public」は宛先エンティティー（ゾーン、ネットワーク、ホスト）
- 「with src public.wan.enat」は変換後のIPアドレス（ホスト）

を表します。

> Note

> > NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

> 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 ↓

この例において、

- 「http」はアプリケーション
- 「from public」は送信元エンティティー（ゾーン、ネットワーク、ホスト）
- 「with dst dmz.servernet.web」は転送先エンティティー（ホスト）

を表します。

> Note

> > NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

> 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 ↓

この例において、

- 「http」はアプリケーション
- 「from public」は送信元エンティティー（ゾーン、ネットワーク、ホスト）
- 「with dst dmz.servernet.web」は転送先エンティティー（ホスト）
- 「dport 8080」は転送先（変換後）のポート番号

を表します。

> Note

> > NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

> 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 ↓

この例において、

- 「any」はアプリケーション（ただし、ここではすべてのトラフィックを意味するキーワード「any」を指定している）
- 「from public」は送信元エンティティー（ゾーン、ネットワーク、ホスト）
- 「to global.ip8.addr2」は宛先エンティティー（変換前のグローバルIPアドレス）（ホスト）
- 「with dst private.lan.server2」は転送先エンティティー（変換後のプライベートIPアドレス）（ホスト）

を表します。

> Note

> > NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

> 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 ↓

この例において、

- 「any」はアプリケーション（ただし、ここではすべてのトラフィックを意味するキーワード「any」を指定している）
- 「from private.lan.server2」は送信元エンティティー（変換前のプライベートIPアドレス）（ホスト）
- 「to public」は宛先エンティティー（ゾーン、ネットワーク、ホスト）
- 「with src global.ip8.addr2」は変換後のグローバルIPアドレス（ホスト）

を表します。

> Note

> > NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

> 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つのルールを作成します。

- portfwdアクションでは、適用対象のアプリケーションと送信元（変換前の始点IPアドレス）・宛先（変換前の終点IPアドレス）・変換後の終点IPアドレスをそれぞれエンティティー定義で指定します。
- masqアクションでは、適用対象のアプリケーションと送信元（変換前の始点IPアドレス）・宛先（portfwdで変換された終点IPアドレス）・変換後の始点IPアドレスをそれぞれエンティティー定義で指定します。

以下では次のエンティティーを設定していると仮定して、「外 → 内」、「内 → 外」のダブルNATの設定について説明します。

    awplus(config)# zone private ↓
    awplus(config-zone)# network lan ↓
    awplus(config-network)# ip subnet 192.168.10.0/24 ↓
    awplus(config-network)# host vlan10-ip ↓
    awplus(config-host)# ip address 192.168.10.2 ↓
    awplus(config-host)# exit ↓
    awplus(config-network)# host hostA ↓
    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 hostA ↓
    awplus(config-host)# ip address 10.100.100.100 ↓
    awplus(config-host)# exit  ↓
    awplus(config-network)# host ppp0-ip ↓
    awplus(config-host)# ip address 10.10.10.1 ↓
    awplus(config-host)# exit ↓
    awplus(config-network)# exit ↓
    awplus(config-zone)# exit ↓

    awplus(config)# zone nat ↓
    awplus(config-zone)# network lan ↓
    awplus(config-network)# ip subnet 192.168.20.0/24 ↓
    awplus(config-network)# host hostA ↓
    awplus(config-host)# ip address 192.168.20.2 ↓
    awplus(config-host)# exit  ↓
    awplus(config-network)# exit ↓
    awplus(config-zone)# exit ↓

■ まず、「外 → 内」方向のダブルNATを考えます。たとえば、ホスト「public.wan.hostA」からホスト「public.wan.ppp0-ip」のトラフィックについて、終点IPアドレスを「private.lan.hostA」に、始点IPアドレスを「private.lan.vlan10-ip」に変換するダブルNATを設定するためには、まず上記設定のように、変換前の終点IPアドレスと始点IPアドレス、変換後の終点IPアドレスと始点IPアドレスを表すホストエンティティーを定義します（ここでは「public.wan.ppp0-ip」、「public.wan.hostA」、「private.lan.hostA」、「private.lan.vlan10-ip」）。
その後、ruleコマンドでNATルールを作成するときに各エンティティー定義名を指定します。

    awplus(config)# nat ↓
    awplus(config-nat)# rule portfwd any from public.wan.hostA to public.wan.ppp0-ip with dst private.lan.hostA ↓
    awplus(config-nat)# rule masq any from public.wan.hostA to private.lan.hostA with src private.lan.vlan10-ip ↓
    awplus(config-nat)# enable ↓

この例において、

- portfwdアクション
  - 「any」はアプリケーション（ただし、ここではすべてのトラフィックを意味するキーワード「any」を指定している）
  - 「from public.wan.hostA」は変換前の始点IPアドレス（ホスト）
  - 「to public.wan.ppp0-ip」は変換前の終点IPアドレス（ホスト）
  - 「with dst private.lan.hostA」は変換後の終点IPアドレス（ホスト）
- masqアクション
  - 「any」はアプリケーション（ただし、ここではすべてのトラフィックを意味するキーワード「any」を指定している）
  - 「from public.wan.hostA」は変換前の始点IPアドレス（ホスト）
  - 「to private.lan.hostA」はportfwdアクションによって変換された後の終点IPアドレス（ホスト）
  - 「with src private.lan.vlan10-ip」は変換後の始点アドレス（ホスト）

を表します。
なお、ファイアウォール機能を併用している場合は、masqアクションの対象トラフィックがファイアウォールで破棄されないよう、ファイアウォールモードのruleで、次のようなファイアウォールルールを設定する必要があります。

    awplus(config)# firewall ↓
    awplus(config-firewall)# rule permit any from public.wan.hostA to private.lan.hostA ↓

■ 次に「内 → 外」方向のダブルNATを考えます。たとえば、ホスト「private.lan.hostA」からホスト「nat.lan.hostA」へのトラフィックについて、終点IPアドレスを「public.wan.hostA」に、始点IPアドレスを「public.wan.ppp0-ip」に変換するダブルNATを設定するためには、まず上記設定のように、変換前の終点IPアドレスと始点IPアドレス、変換後の終点IPアドレスと始点IPアドレスを表すホストエンティティーを定義します（ここでは「nat.lan.hostA」、「private.lan.hostA」、「public.wan.hostA」、「public.wan.ppp0-ip」）。
その後、ruleコマンドでNATルールを作成するときに各エンティティー定義名を指定します。

    awplus(config)# nat ↓
    awplus(config-nat)# rule portfwd any from private.lan.hostA to nat.lan.hostA with dst public.wan.hostA ↓
    awplus(config-nat)# rule masq any from private.lan.hostA to public.wan.hostA with src public.wan.ppp0-ip ↓
    awplus(config-nat)# enable ↓

この例において、

- portfwdアクション
  - 「any」はアプリケーション（ただし、ここではすべてのトラフィックを意味するキーワード「any」を指定している）
  - 「from private.lan.hostA」は変換前の始点IPアドレス（ホスト）
  - 「to nat.lan.hostA」は変換前の終点IPアドレス（ホスト）
  - 「with dst public.wan.hostA」は変換後の終点IPアドレス（ホスト）
- masqアクション
  - 「any」はアプリケーション（ただし、ここではすべてのトラフィックを意味するキーワード「any」を指定している）
  - 「from private.lan.hostA」は変換前の始点IPアドレス（ホスト）
  - 「to public.wan.hostA」はportfwdアクションによって変換された後の終点IPアドレス（ホスト）
  - 「with src public.wan.ppp0-ip」は変換後の始点アドレス（ホスト）

を表します。
なお、ファイアウォール機能を併用している場合は、masqアクションの対象トラフィックがファイアウォールで破棄されないよう、ファイアウォールモードのruleで、次のようなファイアウォールルールを設定する必要があります。

    awplus(config)# firewall ↓
    awplus(config-firewall)# rule permit any from private.lan.hostA to public.wan.hostA ↓

ただし、内部から外部への通信に対しては通常次のようなルールを設定するため、このようなルールが存在しており、なおかつ、前記のルールを包含しているのであれば、前記のルールは不要です。

    awplus(config-firewall)# rule permit any from private to public ↓

> Note

> > NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

> 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

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

> Note

> > サブネットベースNAT（netmapアクション）は以下の機能と併用できません。
> > - Webコントロール
> > - Webリダイレクト

サブネットベース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 ↓

この例において、

- 「any」はアプリケーション（ただし、ここではすべてのトラフィックを意味するキーワード「any」を指定している）
- 「from private.netA1」は変換前の始点IPアドレス（ネットワーク）
- 「to private.netB2」は変換前の終点IPアドレス（ネットワーク）
- 「with src private.netB1」は変換後の始点IPアドレス（ネットワーク）

を表します。

> Note

> > NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

> 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ルールは、下記の順序でファイアウォールルールの処理前に適用されます。

- portfwd および netmap with dst ルールをルール番号順にチェック。
- マッチしたルールでアクションを実行して portfwd および netmap with dst ルールのチェック終了。
- どのルールにもマッチしなかった場合は何もせずに終了。

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

- masq および netmap with src ルールをルール番号順にチェック。
- マッチしたルールでアクションを実行して masq および netmap with src ルールのチェック終了。
- どのルールにもマッチしなかった場合は何もせずに終了。

## 設定と状態の確認

■ 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」が無効であることが示されています。

- ルール内で指定した転送先ホストの定義が存在しない、あるいは、転送先ホスト定義に複数のIPv4/IPv6アドレスが関連付けられている。

また、次の例では、すべてのルールが有効であることが示されています。

    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) 2022 - 2025 アライドテレシスホールディングス株式会社

PN: 613-003066 Rev.Q