セッションのハッシュの衝突エラーによりセッションのセットアップが失敗する

セッションのハッシュの衝突エラーによりセッションのセットアップが失敗する

65722
Created On 09/25/18 19:22 PM - Last Modified 03/26/21 16:47 PM


Symptom


  • 受信接続がときどき失敗する
  • firewallは IP NAT policy 、発信トラフィックの動的およびポート 送信元で設定されます。
  • policyは、着信トラフィック firewall の静的宛先 NAT で構成されます 

 



Environment


  • PAN-OS
  • NAT


Cause


パロアルトネットワークスでは firewall 、セッションは、送信元アドレス、宛先アドレス、送信元ポート、宛先ポート、宛先ポート、プロトコル、およびセキュリティゾーンの2つの単方向フローによって定義されます

A firewall 。 この場合、 firewall は着信パケットをドロップし、 session_hash_insert_duplicateと呼ばれるグローバル カウンタをインクリメントします。

次の 2 つのダイアグラムでは、2 つの SIP 呼び出しでこのセッションの衝突動作を確認できます。 各図には、ローカルの電話 firewall 、、リモート電話が含まれています。さらに、クライアント/サーバー フローのネットワーク レッグと IP UDP 、各パケットのアドレスとポート情報を列挙しました。

70539-1.1. png
 
  1. ローカル電話(192.168.1.2)は SIP 、5060 の送信元および宛先ポートを使用してリモート電話(10.10.10.10)へのコール UDP を開始します。
  2. 発信トラフィックは、ソースを NAT policy firewall IP 10.10.10.1 に変換し、送信元ポートを 56611 に変換する 上のソースと一致します。 firewall次に、2 つの単方向フローを持つセッションを作成します。ここでは、 によって作成された最初のセッションのセッションの詳細を見ることができます SIP firewall 。
    > show session id 27954
    
    Session 27954
    
    c2s flow:
    source: 192.168.1.2 [l3-trust]
    dst: 10.10.10.10
    proto: 17
    sport: 5060 dport: 5060
    state: ACTIVE type: FLOW
    src user: unknown
    dst user: unknown
    
    s2c flow:
    source: 10.10.10.10 [l3-untrust]
    dst: 10.10.10.1
    proto: 17
    sport: 5060 dport: 56611
    state: ACTIVE type: FLOW
    src user: unknown
    dst user: unknown
  3. A 2 番目の接続は、その直後にリモート電話によって試行されます。 この接続は firewall IP 、10.10.10.1 のアドレスを宛先とします。 firewall NAT policy 内部電話の IP アドレス 192.168.1.2 に対して設定された着信先があります。この呼び出しは決して確立されていませんが、なぜですか?

70539-2.1. png


フィルタリングされたパケットキャプチャを実行した後、10.10.10.10 firewall からのパケットがドロップされていることがわかります SIP INVITE 。
グローバル カウンタは、セッションの作成時にドロップが発生し、セッション ハッシュの競合が原因であることを示します。
> show counter global filter delta yes packet-filter yes


Global counters:
Elapsed time since last sampling: 9.170 seconds

name value rate severity category aspect description
--------------------------------------------------------------------------------
session_allocated 1 0 info session resource Sessions allocated
session_freed 1 0 info session resource Sessions freed
session_install_error 1 0 warn session pktproc Sessions installation error
session_install_error_s2c 1 0 warn session pktproc Sessions installation error s2c
session_hash_insert_duplicate 1 0 warn session pktproc Session setup: hash insert failure due to duplicate entry


firewall10.10.10.10 からの着信宛先とのコールと一致 NAT policy し IP 、10.10.10.1 から 192.168.1.2 に宛先アドレスを変換します。 セッションを firewall 作成しようとすると、セッションハッシュが既存のc2sまたはs2cフローと一致するかどうかを確認します。

最初のセッションの c2s フローと、失敗したセッションの予想される s2c フローを比較すると、次のようになります。
c2s フロー:
ソース: 192.168.1.2 [l3-trust]
dst: 10.10.10.10
プロト: 17
スポーツ: 5060 dport: 5060
状態: ACTIVE srcFLOW
ユーザー: 不明 dst
ユーザー: 不明
s2c フロー:
ソース: 192.168.1.2 [l3-trust]
dst: 10.10.10.10
プロト: 17
スポーツ: 5060 dport: 5060
状態: ACTIVE srcFLOW
ユーザー: 不明 dst
ユーザー: 不明

この2つのフローは同じであることに注意してください。 2 firewall 番目のセッションを作成した場合、一致するパケットに使用するフローを特定できません。firewallこの競合により、2 番目のセッションは作成されません。
 


Resolution


この動作は、実装に応じて独自の方法でマニフェストできます。 このシナリオでは、ユーザーはソースを NAT [動的] IP および [ポート] から [静的 NAT] に再構成できます。 これにより、2 番目の呼び出しは、 によって新しいセッションを作成する代わりに、初期 s2c フローと一致します firewall 。

グローバル カウンタでsession_hash_insert_duplicateが表示される場合、 NAT ポリシーが既存のフローに一致する新しいセッションに与える影響を考慮してください。



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClWrCAK&lang=ja&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language