セッションのハッシュの衝突エラーによりセッションのセットアップが失敗する
65722
Created On 09/25/18 19:22 PM - Last Modified 03/26/21 16:47 PM
Symptom
Environment
- PAN-OS
- NAT
Cause
パロアルトネットワークスでは firewall 、セッションは、送信元アドレス、宛先アドレス、送信元ポート、宛先ポート、宛先ポート、プロトコル、およびセキュリティゾーンの2つの単方向フローによって定義されます
A firewall 。 この場合、 firewall は着信パケットをドロップし、 session_hash_insert_duplicateと呼ばれるグローバル カウンタをインクリメントします。
次の 2 つのダイアグラムでは、2 つの SIP 呼び出しでこのセッションの衝突動作を確認できます。 各図には、ローカルの電話 firewall 、、リモート電話が含まれています。さらに、クライアント/サーバー フローのネットワーク レッグと IP UDP 、各パケットのアドレスとポート情報を列挙しました。
- ローカル電話(192.168.1.2)は SIP 、5060 の送信元および宛先ポートを使用してリモート電話(10.10.10.10)へのコール UDP を開始します。
- 発信トラフィックは、ソースを 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
- A 2 番目の接続は、その直後にリモート電話によって試行されます。 この接続は firewall IP 、10.10.10.1 のアドレスを宛先とします。 firewall NAT policy 内部電話の IP アドレス 192.168.1.2 に対して設定された着信先があります。この呼び出しは決して確立されていませんが、なぜですか?
フィルタリングされたパケットキャプチャを実行した後、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 ポリシーが既存のフローに一致する新しいセッションに与える影響を考慮してください。