次世代ファイアウォールの最大同時セッション数についての考察

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
L3 Networker
評価なし

 皆さんもよくご存じの通り市場で販売されている次世代ファイアウォール製品はほぼすべてがステートフルファイアウォールであり、TCP/UDPのセッションを識別し、内部でセッションテーブルが管理され、生成されたセッションの戻りパケットを自動的に通過させる仕組みで動作します。そのため、次世代ファイアウォールの製品選定するときに必ず確認すべきは「同時最大セッション数」です。同時最大セッション数とは、セッションテーブルの大きさであり、同時に処理できる最大セッション数であり、同時最大セッション数を超えると通信が不安定になったり、通信不可になることもあります。なので、最大同時セッション数は重要なのです。

 

 では、このセッションテーブルの管理はどのようにされているか皆さんご存じでしょうか?

TCPやUDP、さらにICMPなどの通信で許可されている新しいセッションのパケットが最初に流れると、セッションテーブルに新しいエントリが生成されます。生成されてばかりだと、いつかセッションテーブルが一杯になりますが、これらのエントリは、そのセッションが継続している間は保持されますが、セッションが終了した場合に削除されます。そうしてセッションテーブルは管理されています。

 ここで重要なのは、各セッションがどれぐらい保持されるかです。TCPの場合、TCPのメッセージの中でセッションを終了するためのFIN-CLOSEという手順があり、TCPセッションの終了が次世代ファイアウォールでも検知でき、FIN-CLOSEにてセッションテーブルからセッションを破棄できます。しかし、TCP通信でも昨今はWiFi環境での利用が増え、またWebブラウザを終了するなどの操作で、FIN-CLOSEしないTCPセッションがかなり発生します。それらのTCPセッションはセッションタイマー制御で通信がなくなってからタイムアウトするまで保持されます。一般的にTCPのセッションタイマーは3,600秒です。つまり実際の通信では例えば30秒しか使わないセッションだったとしても、FIN-CLOSEされなければ不要なTCPセッションは3,600秒保持されてしまいます。

 また、UDPの場合、TCPと違いプロトコル的に通信を終了するという手順がありません。従いまして、UDPはすべてセッションタイムアウトでエントリが破棄されます。一般的にUDPのセッションタイマーは180秒や300秒ぐらいが多いです。つまり、例えばDNSによる名前解決で数秒程度の通信が行われても、そのセッションエントリは180秒や300秒ほど保持されます。

 

 ここまで読んで、既にお気づきの方もおられると思いますが、セッションテーブルにて保持されるセッションエントリでは、FIN-CLOSEされないTCPセッションや、UDPセッションの多くは既に不要になっているものが多く含まれるということです。昨今のクラウド利用で次世代ファイアウォールを通過するセッション数が増加するので、最大同時セッション数の多い上位機種の製品が必要と思われているケースもあると思いますが、実はこれらの不要なセッションのために同時セッション数が増加し、悩まれている可能性があります。

 

 この不要なセッションエントリを減らすために工夫がパロアルトネットワークスの次世代ファイアウォールでは実装されています。具体的な実装としては以下の2つです。

  1. アプリケーション単位でのセッションタイマー
    パロアルトネットワークス次世代ファイアウォールでもTCPのセッションタイマーは3,600秒です。しかし、パロアルトネットワークスの次世代ファイアウォールはデフォルト設定のままでも通過するすべての通信のアプリケーション識別が行われ、実は識別されたアプリケーション毎にセッションタイマーが定義されています。例えば以下です。
     - google-base: TCP/60秒
     - youtube-base: TCP/60秒
     - instagram-base: TCP/60秒
     - facebook-base: TCP/60秒、UDP/30秒
     - zoom-base: TCP/60秒、UDP/300秒
     - ms-onedrive-base: TCP/60秒
     - gmail-base: TCP/1800秒
    つまり、単純にTCPセッションとしてセッション管理されるわけではなく、各アプリケーションの通信特性を考慮し、無駄にセッションが保持されないようになっています。尚、アプリケーション毎のセッションタイマーの設定がないものやアプリケーション識別できないTCP通信については、TCPセッションのセッションタイムアウトである3,600秒が経過してからセッションテーブルが破棄されます。

  2. セッション保持時間短縮(Accelerated Aging)機能
    パロアルトネットワークス次世代ファイアウォールでは、デフォルト設定でセッションテーブルの利用率が80%を超えた場合、このセッション保持時間短縮機能が自動的に動作し、セッションタイマーを半分にすることで、不要となっているセッションエントリを破棄する動作を行います。上述したようにTCPセッションでアイドルタイマーが1,800秒を超えているTCPセッションのほとんどが不要なセッションです。セッション保持時間短縮機能が動作した場合、TCPセッションタイムアウトは3,600秒から1,800秒に短縮されます。すると、アイドル時間が1,800秒を超えているセッションは破棄され、セッションテーブルの利用率を抑制します。この制御で不要であるセッションエントリを破棄することで、セッションテーブルが満杯になり、新規セッションエントリができなくなり通信が不安定になることを防いでいます。

 他社ファイアウォールからパロアルトネットワークスの次世代ファイアウォールへ変更する場合や、他社次世代ファイアウォールと比較検討されるときに、最大同時セッション数の比較は行われますが、パロアルトネットワークス次世代ファイアウォールでは上述したようなセッションテーブルリソースを最適に利用する機能があることで、同じネットワーク環境でもセッションテーブルの消費が他社とは異なり低く抑えられます。過去に実環境での実測した結果では半分程度のセッション数になったという結果もあります。

 他社製品で安価で最大同時セッション数が多いことをアピールしている製品もありますが、逆に無駄なリソースを消費しているだけとも言えますので、本当に必要なリソースがどれぐらいであるかを見極め、また、他社ファイアウォールでの同時セッション数とパロアルトネットワークスの場合の同時セッション数が異なるということをご理解いただき、適切なモデル選定をしていただければと思います。

 

 尚、パロアルトネットワークス次世代ファイアウォールでの、同時セッション数は、リアルタイムであればGUIやCLIにて確認ができますが、過去の傾向についてはPAシリーズ本体では確認できません。過去の同時セッション数を確認する方法としては、以下の方法があります。

今後の次世代ファイアウォールの検討時に参考になれば幸いです。

この記事を評価:
  • 6598 閲覧回数
  • 0 コメント
  • 0 賞賛
Register or Sign-in
寄稿者
記事ダッシュボード
バージョン履歴
最終更新日:
‎04-03-2024 09:01 PM
更新者: