概要
ASA の Failover 構成を利用時、NAT 用の変換テーブルである xlate エントリが、Active 機から Standby 機に正しく同期できなかった場合に、Standby 機側にて以下の Syslog が出力される事があります。
Syslogメッセージ例:
%ASA-3-210007: LU allocate xlate failed
当事象は、xlate の同期の失敗であり、特に Active 機側の通信などに影響しません。 但し、Failover が発生した場合、同期に失敗した xlate に該当する通信に影響が発生する可能性があります。
なお、稀にしか当ログメッセージが出力されない場合は、通常 大きな問題にはなりません。 常に xlate は作り替えられているためです。 仮に当ログメッセージが短時間に大量に出る場合は、Failover が発生時の通信影響が発生するリスクが上がりますので、以下のトラブルシューティングの実施を検討してください。
トラブルシューティング方法
当事象の分析には、以下の順に切り分けを行います。
1. Active 機と Standby 機で同時のログ取得
どの xlate エントリが同期できていないかの比較情報の取得のため、Active 機と Standby 機にて以下のログを複数回取得します。 なお、xlate エントリは常に作成・解放を繰り返しているため、%ASA-3-210007 のログメッセージが出力する"前"と"後"で、Active 機と Standby 機で"同時"に、"複数回"取得することが重要です。 また、大量の xlate が出力される環境では、Telnet や SSH など高速な CLI で取得をしてください。
show xlate show nat detail show clock |
2.Active 機と Standby 機の show xlate 比較
どの xlate エントリが正しく同期できていないか比較し、Standby 機側で欠けている差分を特定します。
3. 競合する NAT ルールの有無の確認
正しく同期できていない xlate エントリを どの NAT ルールが生成したか、及び 他の NAT ルールと Overlap していないか確認します。
Overlap の NAT の設定例:
object network DMZ_NETWORK network 172.16.1.0 255.255.255.0 object network ASA_PAT host 192.168.1.1
object network DMZ_HOST host 172.16.1.100 object network DMZ_HOST_NAT host 192.168.1.100
nat (dmz,outside) source dynamic DMZ_NETWORK ASA_PAT nat (dmz,outside) source static DMZ_HOST DMZ_HOST_NAT |
上記の設定の場合、DMZ_HOST の IP アドレスが、DMZ_NETWORK のアドレス範囲のアドレスと Overlap しています。 上記 NAT (TwiceNAT) の場合、上から順にチェック、適用されるため、より範囲の広い dynamic の NAT 設定が static より先にチェックする Overlap の設定が存在した場合、Standby がうまく同期できなくなる事象が発生する可能性があります。
上記設定例の場合は、Overlap している NAT 設定の順番を、よりアドレス範囲が狭いStatic が dynamic より先にチェックするように、NAT の並び順を変えることで改善できる事があります。 もしくは、競合する NAT ルールのどちらかが不要な場合は、そのNATルールを削除してください。
4. Failover 構成のバージョンアップ
特に古いバージョンを利用の場合、既知の不具合による影響を受けている可能性があります。 ご利用バージョンが古い場合は、利用中のトレインの最新バージョンにアップグレードし、事象が改善するかも確認してください。バージョンアップの手順につきましては、ASA: ASDMを用いた、同じトレイン内の 最新バージョンへのアップグレード方法 をご参照ください。
5. 競合する NAT ルールが無い場合、かつ 最新バージョンでも発生する場合
問題解決には詳細な切り分け(デバッグ含む)が必要になります。具体的には 以下3つの情報です。以下は show log コマンドで情報を収集するコマンドですが、シスログサーバを利用時は シスログ側でのログ取得でも構いません。
なお、デバッグは Standby 機側で有効化するため、Active 機側への負荷や通信影響はありません。
5.1. Active 機にて以下のコマンドを事前有効化
logging standby ---------------------->Standby機のログ出力を有効化 logging debug-trace ------------------>デバックログをsyslogとして出力する設定 ! logging buffer-size 1048576 ----------->デバッグ出力量が多いため、バッファーのサイズを大きくする logging timestamp -------------------->ロギングメッセージにタイムスタンプを付与 logging message 711001 level alert ---->解りやすくするため、DebugメッセージをAlertレベルに変更 logging buffered informational----------> show log出力をinformationalに変更 (もしくは任意Sevレベルを選択) |
5.2. Standby 機にて以下のデバックログを有効化
debug fover fail debug nat 5 |
上記実施後、Standby 機側で show log コマンドを実行し、期待のログや デバッグメッセージ (%ASA-1-711001 で出力) があることを確認します。
5.3. %ASA-3-210007 出力"前"と"後"で、Standby 機側のログ取得
なお、冗長構成での Standby 機側のデバッグ取得方法について詳しくは、ASA: logging debug-traceを活用したトラブルシューティング も参考にしてください。
デバックログの確認例
Syslog に %ASA-3-210007 が出力されたタイミングにて、以下のようなデバックログが繰り返して記録される場合があります。
Syslog: Dec 12 14:35:10: %ASA-3-202010: NAT/PAT pool exhausted. Unable to create connection. Dec 12 14:35:10: %ASA-3-210007: LU allocate xlate failed Dec 12 14:35:11: %ASA-3-202010: NAT/PAT pool exhausted. Unable to create connection. Dec 12 14:35:11: %ASA-3-210007: LU allocate xlate failed
debug log: [Mon Dec 12 14:35:10] nat: rewriting real DMZ:192.168.10.1/443, hint 100.100.10.4/6413, dest OUTSIDE:200.200.20.2/34128 (rdip 200.200.20.2)-----再度書き込みを試みる [Mon Dec 12 14:35:10] nat: WARNING - alloc socket in pool 501004 failed, prot 5/0, DMZ:192.168.10.1/443 to OUTSIDE------------------------Socket失敗 [Mon Dec 12 14:35:10] nat: no xlate found; ecode DYNAMIC_POOL_EXHAUSTED [Mon Dec 12 14:35:10] Failed to rep un_xlate for np/port/id/5/3100 200.200.20.2/34128 - np/port/id/3/20 100.100.10.4/6413 flg: 1043 3014005---------同期失敗 |
上記のデバックログに出力した内容にて NAT 設定を確認すると、以下のように Overlap された設定が確認できます。
object network source-real host 192.168.10.1 object network source-map host 100.100.10.4 ! nat (DMZ,OUTSIDE) source dynamic any interface--------dynamicのTwice NAT ! object network source-real nat (DMZ,OUTSIDE) static source-map service tcp https 6413--------Auto NAT
|
上記事象の場合、after-auto オプションにて dynamic の Twice NAT の処理順番を static の Auto NAT より下にすることで、事象の解決を期待できます。after-auto オプション付きの設定については、 NAT構成例と、NATルールタイプ別の設定例の「全セクションを利用時」 をご参考ください。
また、after-auto オプションにて順番がうまく変えられない場合があります。その場合は、上記の dynamic の Twice NAT の設定を一回削除後に、再度 after-auto オプション付きの dynamic の Twice NAT を追加してください。
尚、NAT 設定の変更や、削除のそのタイミングでは、当設定と関連する通信に影響する恐れがあります。その為、可能であれば業務に影響が少ない時間帯や、通信量が少ない時間帯に作業を行ってください。
参考情報