11.05.2012

YAMAHA ファストパスについて


YAMAHAルータを実装するにあたり、注意しておかなければならないのは、ファストパスの考え方についてです。

ファストパスが適用されるルータと、その通信、利点と欠点について押さえておかないと、いろんなトラブルに巻き込まれます。



詳細な解説はYAMAHA公式ページを見るのが間違いないと思いますが、備忘録として書いておこうと思います。

http://www.rtpro.yamaha.co.jp/RT/docs/fastpath/


ファストパスの対義語はノーマルパス(スローパス)で、どちらもパケットの転送の仕組みのことを言っています。

ファストパスではパケット処理を高速にするため、フローテーブルを保持しています。ここまでは、CiscoのCEFみたいなもので分かりやすいですし、まぁ早くなりそうなもんだよねと思えますが、問題は、YAMAHAルータが何をフローと呼んでいるかです。

RTX2000とそれ以外で微妙に違いますが、根本的には一緒です。
YAMAHAルータでは、
・Src DstのIPアドレス
・プロトコル
・Src Dstのポート番号(TCP/UDP)
・Identifier(Ping)
を識別して、一つのフローとして分類します。

フローの一発目のパケットについては、フローテーブルが完成されていないので、当然ノーマルパスで処理されます。ルータはノーマルパスで処理したときに、そのパケットの処理方法をフローテーブルに記録しておきます。

例えば、NATであればどのようにアドレス変換するか、フィルタであれば落とすかどうかなどです。

そして、二発目以降のパケットについては、先ほど作ったフローテーブルに基づいて処理を行いますので、いちいちルータのCPUを使う必要がなくなり、処理が高速化されるという仕組みです。

一見すると、すごくよさそうなパスフォワーディングの仕組みですが、いくつか注意点があります。

まず、忘れがちなのがフローテーブルが有限であるという点です。

フローテーブルのサイズは最小で16384、最大で65536セッションということになります。
一般によく出回っているであろうRTX1100は16384に分類され、RTX1200やそれ以上の機種は65536に分類されます。

テーブルサイズは双方向で1ずつ消費しますから、実際のテーブルサイズは、RTX1100で言うと、16384の半分の8192ということになってしまいます。

つまり8192セッション以内に収まるような通信要件程度のネットワークであれば、RTX1100でファストパスを使用していた方が速いし効率もよいということになります。
が、あふれた通信は全てノーマルパスで処理されることになりますので、速度差が大きく出てしまう可能性が高いでしょう。

どんな通信がフローに適用されるかについては、幾つかパターンがありますので、通信要件にあわせて都度確認しておく必要があるでしょう。

次に注意しなければならないのは、ファストパスで処理しているパケットはpass-logに引っかからないということです。

YAMAHAルータはdebugの機能が貧弱なので、よく使う手として、pass-logに引っ掛けてパケットの入出を見るというのがあります。

ファストパスで処理されているパケットにこの手は使えないことになりますので、切り分けに困ってしまうことがあります。
さらに面倒なのか、ありがた迷惑なのかはアレですが(どちらにしろ悪い)、セッションの最初の1パケット目はノーマルパスで処理されてしまうので、pass-logに引っかかってくれます。

つまり、ファストパスとノーマルパスの処理の仕方と、pass-logの適用のされ方についての知識がないと、切り分けの最中なんかの余裕のないときに、「さっきまでpass-logに引っかかってたのに・・・なんでだよ・・・」と無駄なブラックホールにはまることになります。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...