rule
- モード
- NATモード
- カテゴリー
- UTM / NAT
構文
(config-nat)# rule [<1-65535>] masq {APPNAME|any} from SRC_ENTITY to DST_ENTITY [with src ADDR_ENTITY]
(config-nat)# rule [<1-65535>] netmap {APPNAME|any} from SRC_ENTITY to DST_ENTITY with {dst|src} NET_ENTITY
(config-nat)# rule [<1-65535>] portfwd {APPNAME|any} from SRC_ENTITY [to DST_ENTITY] with dst ADDR_ENTITY [dport <1-65535>]
(config-nat)# no rule {<1-65535>|all}
コマンド説明
NATルールを追加する。no形式で実行した場合は指定したルールを削除する。
ルールの指定にはエンティティーとアプリケーションの両定義を使用するが、これらの定義が不完全な場合(指定したアプリケーションやエンティティーが未定義である、アプリケーション定義でIPプロトコルが未指定、など)、該当ルールは有効にならないので注意。ルールが有効化どうかは、show nat rule config-checkコマンドでチェックできる。
なお、ルールの順番はmove ruleコマンドで変更可能。
パラメーター
<1-65535>- ルール番号。省略時はリストの最後尾に新規ルールが追加される。このときのルール番号決定方法については「注意・補足事項」を参照
masq- NATアクションとしてダイナミックENAT(IPマスカレード)または「内 → 外」方向のスタティックNATを指定する。「SRC_ENTITY」が単一アドレスを表しており、なおかつ「with src ADDR_ENTITY」で本ルール専用の(他で使われていない)変換後アドレスが指定されている場合は、「SRC_ENTITY」から「DST_ENTITY」に宛てられた「APPNAME」トラフィックの始点IPアドレスだけを「ADDR_ENTITY」に変換するスタティックNATの動作となる。それ以外の場合は、「SRC_ENTITY」から「DST_ENTITY」に宛てられた「APPNAME」トラフィックの始点IPアドレスとポート番号を動的に変換するダイナミックENATの動作となる(ポート番号の変換は必要なときだけ行われる)。変換後のIPアドレスは、「with src ADDR_ENTITY」が指定されている場合はADDR_ENTITYに関連付けられたホストアドレス、そうでないときは、該当パケットの出力インターフェースのIPアドレスとなる
netmap- NATアクションとしてサブネットベースNATを指定する。サブネットベースNATでは、「SRC_ENTITY」から「DST_ENTITY」に宛てられた「APPNAME」トラフィックにおいて、「with dst NET_ENTITY」が指定されている場合は終点アドレスのサブネット部だけを「NET_ENTITY」で指定されたものに、「with src NET_ENTITY」が指定されている場合は始点アドレスのサブネット部だけを「NET_ENTITY」で指定されたものに変換する。サブネットベースNATでは、アドレスのホスト部は変換されない
portfwd- NATアクションとしてスタティックENAT(ポートフォワーディング)または「外 → 内」方向のスタティックNATを指定する。「DST_ENTITY」で本ルール専用の変換前アドレス(グローバル側アドレス)が指定されており、ポート変換の指定(dport)がない場合は、「SRC_ENTITY」から「DST_ENTITY」に宛てられた「APPNAME」トラフィックの終点IPアドレスだけを「ADDR_ENTITY」に変換するスタティックNATの動作となる。それ以外の場合は「SRC_ENTITY」から本製品に宛てられた「APPNAME」トラフィックの終点IPアドレスを「ADDR_ENTITY」のIPアドレスに変換して転送するスタティックENATの動作となる。このとき、ポート変換の指定(dport)があればTCP/UDPポート番号も変換する。スタティックENATは本製品宛てのIPv4パケットに対してのみ作用する
APPNAME- 制御対象のアプリケーション名。指定可能なアプリケーションはshow application detailで確認可能(ただし、DPIアプリケーションは指定できない)。詳細は解説編を参照
any- すべてのトラフィックをNAT対象にする
from SRC_ENTITY- NAT対象トラフィックの送信元エンティティー名(show entityで一覧表示可能)
to DST_ENTITY- NAT対象トラフィックの宛先エンティティー名(show entityで一覧表示可能)
with src ADDR_ENTITY- ダイナミックENATおよび「内 → 外」方向のスタティックNATにおいて変換後のIPアドレスを表すエンティティー名(show entityで一覧表示可能)。「ゾーン.ネットワーク.ホスト」形式のホスト定義名で指定する。該当ホスト定義にはIPv4アドレス(ip address)を1つだけ関連付けること。アクションがmasqのときだけ有効。なお、本パラメーター省略時は、該当パケットの出力インターフェースのIPアドレスが変換後の始点アドレスとなる
with {dst|src} NET_ENTITY- サブネットベースNATルールにおける変換後のサブネットアドレスを表すエンティティー名(show entityで一覧表示可能)。「ゾーン.ネットワーク」形式のネットワーク定義名で指定する。該当ネットワーク定義にはIPv4サブネット(ip subnet)を1つだけ関連付けること。「with dst」の場合は終点アドレスのサブネット部、「with src」の場合は始点アドレスのサブネット部が NET_ENTITY で指定したサブネットアドレスに変換される。アクションがnetmapのときだけ有効
with dst ADDR_ENTITY- スタティックENATおよび「外 → 内」方向のスタティックNATにおける転送先ホスト(変換後アドレス)のエンティティー名(show entityで一覧表示可能)。「ゾーン.ネットワーク.ホスト」形式のホスト定義名で指定する。該当ホスト定義にはIPv4アドレス(ip address)を1つだけ関連付けること。アクションがportfwdのときだけ有効
dport <1-65535>- スタティックENATにおいて、終点TCP/UDPポートを書き換えたい場合に変換後のポート番号を指定する。未指定時は終点TCP/UDPポートの書き換えは行わない
all- no形式ですべてのNATルールを削除するときに指定する
使用例
ゾーン「private」から「public」へのトラフィックにダイナミックENATを適用するNATルールを追加する。awplus(config-nat)# rule masq any from private to public
ネットワーク「private.netA1」から「private.netB2」へのトラフィックについて、始点アドレスのサブネット部だけを「private.netA1」のアドレスから「private.netB1」のアドレスに変換するサブネットベースNATルールを追加する。
awplus(config-nat)# rule netmap any from private.netA1 to private.netB2 with src private.netB1
ゾーン「public」から本製品に宛てられたHTTPトラフィックをゾーン「private」内ネットワーク「wired」上のホスト「webhost」に転送するポートフォワーディングルールを追加する。
awplus(config-nat)# rule portfwd http from public with dst private.wired.webhost
ホスト「private.lan.srcA」から「private.lan.dstA」へのトラフィックについて、終点アドレスを「public.wan.dstA」に、始点アドレスを「public.wan.srcA」に変換するダブルNATを設定する。
awplus(config-nat)# rule portfwd any from private.lan.srcA to private.lan.dstA with dst public.wan.dstA awplus(config-nat)# rule masq any from private.lan.srcA to public.wan.dstA with src public.wan.srcA
NATルール「20」を削除する。ルール番号はshow nat ruleコマンドで確認すること。
awplus(config-nat)# no nat rule 20
注意・補足事項
ルールの処理順序については解説編を参照。本コマンドでルール番号を指定しなかったときはリストの最後尾に新規ルールが追加される。このときのルール番号は次のようにして決まる。
- (1) 原則:既存の最後尾ルールより大きい直近の10の倍数になる
- ルールが存在しない状態でルール番号を省略して作成したルールの番号は10(有効範囲内にある最小の10の倍数)
- 最後尾のルール番号が10~18の状態でルール番号を省略して作成したルールの番号は20
- ルールが存在しない状態でルール番号を省略して作成したルールの番号は10(有効範囲内にある最小の10の倍数)
- (2) 例外:既存の最後尾ルール番号の一の位が9のときは、「+11」した値(直近ではなくその次の10の倍数)になる
- 最後尾のルール番号が19の状態でルール番号を省略して作成したルールの番号は20ではなく30(=19+11)
※この動作は、既存の最後尾ルールと新規に追加したルールの間に、後から別のルールを挿入する余地を残すため。
- 最後尾のルール番号が19の状態でルール番号を省略して作成したルールの番号は20ではなく30(=19+11)
- その他:前述の仕様 (1) (2) により、最後尾のルール番号が65529以上の時は、ルール番号を省略して新規ルールを追加することはできない(65529 + 11 = 65540となりルール番号の最大値 65535 を超えてしまうため)。その場合はルール番号を明示的に指定して追加すること。
ポートフォワーディングでは、dportパラメーターを指定したときだけTCP/UDPのポート番号の変換を行う。dportパラメーター未指定時は変換せず、またICMPなどTCP/UDP以外のパケットに対しても終点IPアドレスの書き換え(指定ホストへの転送)を行う。
NAT機能の対象はIPv4アドレスのみ。IPv6アドレスには対応していない。
NATルールでは、アプリケーションコントロール(DPI)によって判別されたアプリケーションは指定できない。APPNAMEパラメーターでNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションかapplicationコマンドで定義したカスタムアプリケーションを指定すること。あるいは、すべてのトラフィックを意味する「any」キーワードを指定すること。
既存のルールを変更したときに、変更前のルールに該当するセッション情報がすでに登録されている場合は、clear firewall connectionsコマンドで古いセッション情報を削除すること。
NATルールの適用タイミングは、NATアクションによって次のように異なる。
- portfwd, netmap with dst - ファイアウォールルールの前に適用
- masq, netmap with src - ファイアウォールルールの後に適用
サブネットベースNAT(netmapアクション)は以下の機能と併用できない。