はじめに
本ドキュメントでは、ASA 9.0.1 以降に新しく追加されている Per-session PAT 機能の設定例と動作確認例を紹介します。
本ドキュメントは ASAバージョン 9.4(4)29 を用いて確認、作成しております。
構成例
本ドキュメントでは、以下の構成で、動作確認例を紹介します。
設定例
ASA 9.0.1 以降では、Per-session PAT 機能がデフォルトで有効になりますので、手動での設定は不要です。
しかし、ASA 9.0.1 より前のバージョンから ASA 9.0.1 以降のバージョンにアップグレードした場合、アップグレード前のバージョンでの動作と合わせるために、Per-session PAT 機能がデフォルトで無効にされます。何らかの理由でper-session PATを有効にしたい場合は、下記コマンドによる有効化が必要です。
no xlate per-session deny tcp any4 any4
no xlate per-session deny tcp any4 any6
no xlate per-session deny tcp any6 any4
no xlate per-session deny tcp any6 any6
no xlate per-session deny udp any4 any4 eq domain
no xlate per-session deny udp any4 any6 eq domain
no xlate per-session deny udp any6 any4 eq domain
no xlate per-session deny udp any6 any6 eq domain
Per-session PAT機能と 以前の機能の違いについて
Per-session PAT 機能の有効化により、Per-session PAT セッションの終了時に、即座に ASAの 該当xlate 情報が削除されます。
逆に、Per-session PAT機能が導入される前のバージョン(8.x系)を利用時や、per-session PAT利用を無効時は、PATセッションが終了した後に、xlate 情報がデフォルトで 30 秒保持され 終了したばかりのセッションのPort番号は その間 再利用できません。
動作確認例
以下は、実際の HTTPS 通信とパケットトレーサユーティリティを実行した場合の、簡易動作確認例です。
動作確認のため、本例では pat-xlate の timeout 値(デフォルト 30 秒)を 2 分に設定します。
※以下のNAT設定を前提とします。
object-group network Client-Object
network-object 192.168.195.0 255.255.255.0
object-group network Server-Object
network-object host 137.153.140.144
nat (inside,outside) source dynamic Client-Object Server-Object
1. Client -> HTTP Server のHTTPS通信を実施します。
2. [1.] で生成されたコネクション (show conn long) と PAT(show xlate) の状況を確認します。以下のコマンドの実行結果例ではinside:192.168.195.15/6092 → outside:137.153.140.144/6092 の xlate 情報を確認できます。
fw(config)# show conn long
1 in use, 3 most used
......
TCP outside: 137.153.140.15/443 (137.153.140.15/443) inside: 192.168.195.15/6092 (137.153.140.144/6092), flags UxIO , idle 3s, uptime 6s, timeout 1h0m, bytes 190728
fw(config)# show xlate
2 in use, 7 most used
NAT from outside:0.0.0.0/0 to inside:0.0.0.0/0
flags sIT idle 5:48:11 timeout 0:00:00
......
TCP PAT from inside:192.168.195.15/6092 to outside:137.153.140.144/6092 flags ri idle 0:00:09 timeout 0:02:00
3. [1.] のHTTPS通信を Client で切断します。
4. コネクション (show conn long) と PAT(show xlate) の状況を確認します。以下のコマンドの実行結果例ではinside:192.168.195.15/6092 → outside:137.153.140.144/6092 のコネクションがクリアされたタイミングで、pat-xlate のセッション情報も即座に ASA のメモリ上で削除されたことを確認できます。
fw(config)# show conn long
0 in use, 3 most used
fw(config)# show xlate
1 in use, 7 most used
Flags: D - DNS, e - extended, I - identity, i - dynamic, r - portmap,
s - static, T - twice, N - net-to-net
NAT from outside:0.0.0.0/0 to inside:0.0.0.0/0
flags sIT idle 5:48:39 timeout 0:00:00
5. [1.] で生成された PAT xlate セッションが削除されてから、PAT xlate の timeout(2分)を過ぎるまで、ASA の packet-tracer で、 [1.] で生成されたコネクションと同じトラフィック( source IP, source port, destination IP, destination port )を流します。以下のパケットトレーサの実行結果では PAT xlate の timeout(2分)を過ぎていないにも関わらず、[5.] のトラフィックが [1.] のトラフィックと同じ IP/Port に変換されたことを確認できます。
fw(config)# packet-tracer input inside tcp 192.168.195.15 6092 137.153.140.15 443
Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list
Phase: 2
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list
Phase: 3
Type: ROUTE-LOOKUP
Subtype: Resolve Egress Interface
Result: ALLOW
Config:
Additional Information:
found next-hop 137.153.140.15 using egress ifc outside
Phase: 4
Type: NAT
Subtype:
Result: ALLOW
Config:
nat (inside,outside) source dynamic Client-Object Server-Object
Additional Information:
Dynamic translate 192.168.195.15/6092 to 137.153.140.144/6092 ←PATタイムアウトを使用せず、同じ IP/Port に変換された
Phase: 5
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 6
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 7
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
nat (inside,outside) source dynamic Client-Object Server-Object
Additional Information:
Phase: 8
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 9
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 10
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 61, packet dispatched to next module
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
参考情報
Release Notes for the Cisco ASA Series, 9.0(x)
https://www.cisco.com/c/en/us/td/docs/security/asa/asa90/release/notes/asarn90.html#pgfId-684764
Cisco ASA シリーズ コマンド リファレンス、T ~ Z コマンドおよび ASASM の IOS コマンド
https://www.cisco.com/c/ja_jp/td/docs/security/asa/asa-command-reference/T-Z/cmdref4/wz.html
ファイアウォール トラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161736
Firepower System and FTDトラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161733