MPCを搭載したMX960を用いたFlowSpec実装の評価の結果について述べます。JUNOSは12.3リリース版となります。release.今回の試験内容は次の通りです。VRF)リダイレクションかつリミテーション及びは全て良好に動作しました。本稿ではFlowSpecがRE/PFEのレベルでどのように実装されているかも紹介します。VRFを用いたリダイレクションの手法についても述べます。"Remaking"の機能については今回試験していません。FlowSpecはRFC5575で定義されています。表す(フロースペック拡張のための)NLRIが示されています。FlowSpecはIPv4をサポートしています。フロー情報とアクション/ルール情報を運ぶために2つのBGPの"コンテナ"を用います。associated.実装として、Flow情報情報はMP_REACH_NLRIとMP_UNREACH_NLRIの属性で伝達されます。アクションと結びついたルールは拡張コミュニティとして伝達されます。attribute.MP_REACH_NLRIに書かれるフロー情報はいくつかのコンポーネントのセットで成り立っています。各コンポートネントはAND条件で評価されてフローを識別します。本文中でいくつかのフローの例となるコンポーネントを示します。RFC5575ではNext-Hopの長さと値は"0"にセットされていなければなりません。Next-Hopを用いたリダイレクションの時には0以外の値となります。バリデーションチェックをすべきです。少なくとも、RFC5575ではNext-Hopの値は0のためバリデーションチェックには考慮しません。他の値に関してはチェックを行ったのちにLOC-RIBにインストールしなければなりません。フロー情報のオリジネータがフロー情報に埋め込まれた宛先プレフィックス向けの(best-matchする)ユニキャスト経路のオリジネータと一致するかをチェックします。他のASからよりベストなパスとなる他のユニキャストルートが存在しないこと。a).RFCで述べられているバリデーションは他の連携システムのからFlowSprec経路をインストールしようとする際の障壁となります。このため、実際にはバリデーションチェック機能は無効にされることがあります。フロー情報のコンポーネントは条件の順序が厳密でないとならりません。これから述べるタイプはすべて指定しなければならないわけではありません。そのタイプの値は他のものより前に配置されないとなりません。このビットがオプションあるいは値の間にある場合、これをANDでつなぐ。これがないのであればORでつなぐ。最初のオプションとして指定してはならない。0である場合、次の値は1byteとして解釈される。1である場合、次の値は2byteとして解釈される。このビットがオプションあるいは値の間にある場合、これをANDでつなぐ。これがないのであればORでつなぐ。最初のオプションとして指定してはならない。0である場合、次の値は1byteとして解釈される。1である場合、次の値は2byteとして解釈される。component)フロー定義のあと、アクション(ルール)が拡張コミュニティ(RFC4360)が続きます。4360)拡張コミュニティのTYPEフィールドに入れる値により4つのアクションが定義されています。以下に現在有効なアクションを示します。action)このアクションはトラフィックの破棄あるいは帯域制御に用いられます。破棄は帯域制御のレートを0にします。4オクテットのレート情報はIEEEの浮動小数点フォーマットにより指定します。http://www.h-schmidt.net/FloatConverter/IEEE754.htmlTraffic-action特定のフロー時を受け取った際の処理を定義します。現在は6バイト(48ビット)中、2ビットのアクションだけが定義されています。トラフィックフィルタリングエンジンはそれに従った処理を行います。これがセットされていない場合、このルールが適応された処理をそのトラフィックフィルタは行いません。トラフィックのサンプリングとロギングを行います。Target情報を含みます。action)マッチするフローのDSCP値を書き換えます。JUNOSJUNOSは2つの種類のフロー経路をサポートします。1)静的なフロー経路は以下のように書きます。inetflow.0)を伝達するには以下のように設定します。この際、バリデーションチェックの無効化をpolicy-statementに記載できます。}}BGPから受信したフロー経路あるいは静的に定義したフロー経路はinetflow.0にインストールされます。traffic-rate:0:1875前述のとおり、Next-Hopは常にFictitiousとなります(0がセットされるから)。フローはn個のタプルで成り立つフロー定義と拡張コミュニティのルールでなっています。上の例では、ルールは帯域制御であり、この値としてrate=0(つまり破棄)となっています。firewall-filter(__FlowSpec_default_inet__)にプッシュします。このフィルタは各PFEにおいてIn/Out方向にインストールされます。“__FlowSpec_default_inet__”.これはhidden属性フィルタではないのでコマンドで確認することができます。Firewallフィルタにおける動的なフロー定義とアクションです。termのfromとして定義されたフローがthenとして定義されたアクションを行うルールとして表示されます。term.FlowSpecファイアウォールフィルタはもっとも最初に適応されるファイアウォールフィルタです。定義した別のフィルタをin/out毎にこれより前に適応することもできます。[input|input-list|output|output-list]を使います。filter.※__FlowSpec_default_inet__をバイパスすることはできません。PFEレベルではinput方向で適応されることに注意してください。level.PFE上の__FlowSpec_default_inet__は以下のコマンドで見ることができます。1次のアクションはリダイレクトです。JUNOSでは、VRFを特定のリダイレクトを実現するためにこのコミュニティを用います。リダイレクトはIDPと連携した帯域軽減に非常に有用です。81.253.192.94JUNOSにおける唯一の制限は、トラフィックを軽減/調査するリダイレクト先のサーバが"同じルータ"に接続されていてはならないことです。JUNOSの実装において、リダイレクトは全てのPFEに対してインストールされます。ルータに戻ってくると、(PFEによって再度トラフィックはサーバに戻っていき)トラフィックはloopしてしまいます。loop.以下の図にこの様子と2つの設計的な回避策を示します。