キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
2015
閲覧回数
10
いいね!
1
コメント
xingj
Level 1
Level 1

 

概要 

 
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 設定の変更や、削除のそのタイミングでは、当設定と関連する通信に影響する恐れがあります。その為、可能であれば業務に影響が少ない時間帯や、通信量が少ない時間帯に作業を行ってください。

 

参考情報

 

 

コメント
Taisuke Nakamura
Cisco Employee
Cisco Employee

ASAバージョン 9.3(1)以降より、以下の機能拡張により、シスログから どのXlate変換が競合しているのかが解るようになりました。'LU allocate xlate failed'が短時間に多発する環境の場合、かつ発生時の調査を容易にされたい場合は、9.3(1)以降へのアップグレードも ご検討ください。

CSCsw79856 'LU allocate xlate failed' syslog should include more data

 
Allocateに失敗した競合するXlateエントリ確認後は、当ドキュメントに記載の NAT設定チューニング(=Twice[Manual] NAT利用時は、Static NAT→Dynamic NATの順番で設定する)や、多発するNATエントリ(多くがDynamic PAT)に追加PAT IPの割当(=単一IP利用による混雑・競合を発生し辛くする)の実施で、改善が期待できます。

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします