pf/IPS/WAFと通信制御 雑感

最近、会社の仕事として、うちの会社のお客様限定で安価なWAFサービスを作った。 安価と言っても、一応ちゃんとしたWAFとhttp cache機能をもたせているので、理想的な状態(通信が十分にcacheされており、伝送遅延が少ないことが仮定できる状態)であれば、ピークで約2Gbps程度の通信性能を叩き出すことができた(ただし、検査対象の通信は400Mbps程度)。このシステムは全て仮想環境で組んだのだが、これだけの性能が出せる近年のハードウェアの性能には驚くばかりだ。

一般に、pf/IPS/WAFは、検査項目の量に応じて転送性能が落ちる・CPUやメモリーを食うわけで、検査対象の通信量は少ないに越したことはない。

従って、検査対象外の通信をいかにして検査しないかが大変重要になる。 例えば、WAFにhttp以外の通信を食わせても仕方がないように、「通信検査対象外」の通信を検査システムに流し込むことは、単純に伝送遅延の増加とマシンリソースの無駄使いが発生するばかりで、いいことが何一つない。

以上から、個人的には、以下のような通信制御を行うのが良いのではないかと思っている。

こんな事は「論理的には」自明なのだが、実装を考えるとなかなか難しい。初段の通信分離がどうしても「面倒」なのだ。なぜなら、

ここまで考えると、やっぱり少し高くてもオーバースペックな機器を入れて、全部見させる方が楽なのかもしれないとも思い始めてしまうわけで、まだまだネットワーク設計はちょっと踏み込むと罠があるなぁと思う。