IP ルーティング

パフォーマンス ルーティングと設定例

ソリューション概要





パフォーマンス ルーティングと設定例



もくじ

  1. パフォーマンス ルーティングとは
  2. パフォーマンス ルーティングの構成要素
  3. パフォーマンス ルーティングの設定
    1) BR の設定
    2) MC の設定
  4. ステータスと設定の確認
    1) トラフィック クラスのステータス遷移を確認する
    2) 設定内容を確認する
  5. オプション設定
    1) ポリシーの記述方法
    2) 計測方法を変更する
    3) ポリシーを変更する
    4) 経路切り替えのモードを変更する
    5) 特定トラフィックのみを制御する
  6. パフォーマンス ルーティングの管理
  7. 設計時の注意点
  8. サンプル コンフィグ
  9. パフォーマンス ルーティングをサポートする製品群と IOS
  10. よくある質問と回答
  11. 参考資料

1. パフォーマンス ルーティングとは

クラウド サービスの利用などにより、データセンターとオフィスの間の通信が増加しています。また、最近のビジネスでは音声やビデオを使ったアプリケーションが不可欠となっており、このような遅延に敏感なアプリケーションのパフォーマンスの低下がビジネスに大きく影響する可能性もあります。

以前は、通信のボトルネックと言えば通信機器に起因することが大半でしたが、ルータが高速化した昨今では、WAN回線の内部で発生する輻輳がボトルネックとなるケースも増えています。回線速度を保証するタイプの高額なサービスを契約すれば輻輳は発生しませんが、回線コストを考慮してベストエフォート型の回線を選択した場合、WAN回線の内部で発生する輻輳をエンドユーザが知ることはできないため、実効速度はこの程度なのだと納得しつつ利用するしかありませんでした。

WAN の網内で発生する輻輳を直接見つけて対処することはできません。しかし、複数の回線を契約しておき、宛先までの通信時間を計測することで、輻輳が少なくパフォーマンスの良い方の回線を選択する手段があります。それがシスコのパフォーマンス ルーティング(PfR)です。

従来からのルータの経路選択には、ルーティングテーブルに基づくものや、 HSRP/VRRP/GLBP に代表されるようなデフォルト ゲートウェイの冗長化プロトコルを使用するものがあります。しかし、これらの方法では、使用中の経路が完全に切断された場合の代替経路への切り替えはできますが、実際の通信状態を把握して、宛先まで一番早く到達できる回線を動的に選択することはできません。パフォーマンス ルーティングは、今までよりもさらに一歩進んだ経路選択を可能にする画期的な技術です。


2. パフォーマンス ルーティングの構成要素

パフォーマンス ルーティングは 2 つの要素から構成されており、実際に動作させるためには、マスター コントローラ(MC)と呼ばれる機能と、ボーダー ルータ(BR)と呼ばれる機能の両方が必要となります。この 2 つの機能は同一ルータ上で動作させても、個別のルータで動作させても構いません。

BR は WAN 回線に接続しているルータで、MC の指示に従って動作します。MC からの「経路の切り替えをしろ」「計測を開始しろ」といった命令を実行します。一方  BR に命令を出す MC は、情報を収集・解析し、経路選択の判断を行い、BRに指示を出します。パフォーマンス ルーティングの頭脳として機能する MC は BR としか通信せず、ルーティングも実行しません。そのため MC は、プライベートアドレスのみで運用することができます。


3. パフォーマンス ルーティングの設定

パフォーマンス ルーティングの実際の設定方法を見てみましょう。前項で書いたとおり、MC と BR という 2 つの役割が必要となりますが、それぞれで設定する内容が異なります。BR は MC の指示に従って経路を選択するため、通信すべき MC がどこにあり、どうやって通信するのかという情報の設定が必要です。また MC には、回線の切り替えポリシーなどの細かい設定が必要になります。

 ここでは MC と BR が別々のルータである場合を想定して設定を紹介します。MC と BR が同一のルータに同居する場合の設定も、ループバック アドレスを使用する部分を除き、ここで紹介する例と同じです。同居する場合のコンフィグレーションは最後に掲載していますので、詳細はそちらをご覧ください。

 なお、パフォーマンス ルーティングの設定を開始する前に、インターフェイス、WAN回線、トンネリング、ルーティングプロトコルなどの設定を、すべて完了しておいてください。パフォーマンス ルーティングを設定していない状態でも正常に通信が確立していることを確認した上で、パフォーマンス ルーティングの設定に入ります。ルーティング プロトコルは EIGRP/OSPF/BGP のいずれかが動作している必要があります。

1) BR の設定
BR の設定では、最初に MC と通信する際に使用する認証情報を設定し、次に MC の情報を指定します。

1-1) MC との認証情報の設定
認証情報は、以下の key コマンドで設定を開始します(この中の Key ID と Key の組み合わせは、MC 側でも同じものを設定する必要があります)。

Router_BR(config)# key chain pfr <= Key chain 名の指定
Router_BR(config-keychain)# key 0 <= Key ID の指定
Router_BR(config-keychain-key)# key-string cisco <= Key(認証に使用する文字列)の指定

1-2) MC 情報の設定
oer border コマンドで BR としての設定を開始します。local コマンドで、MC との通信に使用するソース インターフェイスを指定します。master コマンドで、MC の IP アドレスと先に設定した認証情報を指定します。logging コマンドで、syslog に対して BR のプロセスのロギングを許可します。1 台のルータで MC と BR を動作させる場合は、local コマンドで指定するインターフェイスにループバック インターフェイスを使用します。

Router_BR(config)# oer border <= このルータを BR として設定開始
Router_BR(config-oer-br)# local ethernet 1/0 <= MC との通信で使用するソース I/F
Router_BR(config-oer-br)# master 10.10.10.10 key-chain pfr <= MC の IP アドレスと認証に使用する key-chain の指定
Router_BR(config-oer-br)# logging <= BR に関するプロセスの syslog へのロギングを許可

2) MC の設定
続いて MC を設定します。まず BR との認証情報と BR 情報を設定し、次にトラフィックの学習方法を指定したあと、最後に計測結果に基づいた経路変更を設定します。

2-1) BR との認証情報の設定
先ほど BR 側で設定した認証情報と同じ設定を行います。

Router_MC(config)# key chain pfr <= Key chain 名の指定
Router_MC(config-keychain)# key 0 <= Key ID の指定
Router_MC(config-keychain-key)# key-string cisco <= Key(認証に使用する文字列)の指定

2-2) BR 情報の設定
oer master コマンドで MC としての設定を開始します。logging コマンドで、syslog に対して MC のプロセスのロギングを許可します。border コマンドで BR の IP アドレスと先に設定した認証情報を指定します。

BR 側での設定と異なるのは、ここで BR のインターフェイスを指定する点です。BR の LAN 側インターフェイスを internal、WAN 側インターフェイスを external として宣言します。トラフィックの計測は、この 2 つのインターフェイス間の通信に対して行われます。

Router_MC(config)# oer master <= このルータを MC として設定開始
Router_MC(config-oer-mc)# logging <= MC に関するプロセスの syslog へのロギングを許可
Router_MC(config-oer-mc)# border 10.10.10.1 key-chain pfr <= BR の IP アドレスと認証に使用する key-chain を指定
Router_MC(config-oer-mc-br)# interface ethernet 0/0 external
<= BR の I/F を指定(External I/F はモニタ する側の I/F)
Router_MC(config-oer-mc-br)# interface ethernet 1/0 internal

ここまで設定すると、MC と BR の間の通信が確立され、以下のようなメッセージが表示されます。

(MC 側)
Router_MC#
*Jun 16 17:08:44.467: %OER_MC-5-NOTICE: BR 10.10.10.1 UP
*Jun 16 17:08:44.479: %OER_MC-5-NOTICE: BR 10.10.10.1 IF Et1/0 UP
*Jun 16 17:08:44.519: %OER_MC-5-NOTICE: BR 10.10.10.1 IF Et0/0 UP
*Jun 16 17:08:44.519: %OER_MC-5-NOTICE: BR 10.10.10.1 Active

(BR 側)
Router_BR#
*Jun 16 17:08:44.411: %OER_BR-5-NOTICE: MC 10.10.10.10 UP

2-3) トラフィックの学習方法の指定
次に、実際にどの宛先へのトラフィックが発生しているのか、その中でパフォーマンスが最も悪く、制御する必要があるのはどのトラフィックなのかを学習する方法を指定します。パフォーマンスルーティングはここで指定された方法で学習した宛先の通信を計測対象とし、経路制御を行います。

oer master コマンドにより、MC としての詳細設定を開始します。learn と宣言することで、実際に流れるトラフィックを学習するように指定します。学習する内容は throughput と delay の値となり、この値に基づいてデフォルトでパフォーマンスの悪いワースト 100 の通信トラフィックを見つけ出します。ここでは、トラフィックの学習を 1 分間行い(monitor-period)、休憩を挟まずにすぐに次の計測を開始する(periodic-interval)設定を行います。流れているトラフィックを学習するのではなく、特定のアプリケーション トラフィックだけを対象とすることも可能です。「5. オプション設定」で説明しています。

 ここで計測された内容は、経路制御の判断には使用されません。あくまでも全体のトラフィックの中でパフォーマンスの悪いワースト 100 を見つけ出すためだけのものです。経路制御には、別のパフォーマンスの計測方法を使用します。

Router_MC(config)# oer master <=MC としての詳細設定開始
Router_MC(config-oer-mc)# learn <= 流れるトラフィックの学習を宣言
Router_MC(config-oer-mc-learn)# throughput <=スループットを学習
Router_MC(config-oer-mc-learn)# delay <=遅延を学習
Router_MC(config-oer-mc-learn)# monitor-period 1 <=1 分間学習
Router_MC(config-oer-mc-learn)# periodic-interval 0 <=学習の後 0 分間休憩(休憩しない)

2-4) 経路制御の指示
既存の経路のパフォーマンスが低下した(デフォルトでは遅延が悪化した)場合に、経路を切り替えるよう指示します。

Router_MC(config)# oer master <=MC としての詳細設定開始
Router_MC(config-oer-mc)# mode route control <=パフォーマンス ルーティングが経路制御を行う

これで設定は終了です。ルータにおいて、以下のデフォルトの設定に基づきパフォーマンス ルーティングが動作を開始しています。

パフォーマンス ルーティングのデフォルトの設定
計測方法 Both モード(実際に流れる TCP セッションのパフォーマンスを計測し、その後そのアドレスに対して計測用トラフィックを生成します)
経路切り替えのモード good モード(既存の経路がポリシーに合致している限り、より性能の良い経路があっても経路の切り替えを行いません)
ポリシー
  • 直近 5 分間の遅延が、直近 60 分間の遅延と比較して 50% 増加するとポリシー違反とみなします
  • External の回線利用率が 75% 以上で経路を変更します

デフォルト以外の計測や判断が必要な場合はオプション設定を行います。


4. ステータスと設定の確認

オプション設定の前に、パフォーマンス ルーティングのステータスや設定の確認方法を説明しておきます。

1) トラフィック クラスのステータス遷移を確認する
トラフィック クラスのステータスは以下の例で赤枠部分が示すように CLI で確認することができます。

トラフィック クラスのステータス遷移を確認する

トラフィック クラスには、次の種類があります。

  • Default
    最初はこのステータスから開始します。測定が開始される前など、パフォーマンス ルーティングによるプレフィックスのコントロールが実行されていない状態です。すべての出口が Out of policy になった場合も、パフォーマンス ルーティングによるコントロールから外れ、このステータスになります。この状態のときは、IP ルーティング テーブルでのみトラフィックが制御されます。最初にこのステータスになると、Initial Timer が作動し、Initial Timer が Expire した時点で出口の再評価が実施され、最初の出口パス選択が行われます。
  • Choose Exit
    最適な出口を選定している段階で一時的に遷移するステータスです。瞬間的なステータスのため、CLI でこのステータスを確認するのはほぼ不可能です。
  • Holddown
    プレフィックスがパフォーマンス ルーティングのコントロール配下になる際、最初にこのステータスになり、一定時間(holddown 時間)保持されます。頻繁に経路が変更されてフラップするのを防ぐためにあります。
  • In policy
    ポリシーに合致し、パフォーマンス ルーティングにより制御されている状態です。
  • Out of policy (OOP)
    ポリシーに合致した出口がない場合に遷移するステータスです。このステータスになると Backoff タイマーが作動し、タイマーの時間が経過すると他のステータスへと変化します。Backoff タイマーは、このステータスになるたびに値が増えて時間が長くなり、In policy ステータスになるとクリアされて元の値に戻ります。

その他:(*)
ステータスに * が付いて表示される場合があります。これは、OER で状況を把握しているものの、親ルートのコントロール配下にあることを示します。

その他

2) 設定内容を確認する
次に、設定内容の確認のために使用される show コマンドの一部を紹介します。この他にも show コマンドでは、様々な情報を調べることができます。詳しくはマニュアルで確認してください。

  • PBR やアクセス リストを確認する
    EIGRP/OSPF を使用している場合や、アプリケーション単位で制御している場合には、自動的に PBR が作成されます。この自動的に作成された PBR やアクセス リストは、以下のコマンドで確認できます。
PBR やアクセス リストを確認する

  • アクティブ プローブの確認
    自動的に作成されるアクティブ プローブも CLI の show コマンドを使って確認できます。
アクティブ プローブの確認

  • 測定値の詳細の確認
    測定値の詳細は、以下のコマンドで確認できます。
測定値の詳細の確認


5. オプション設定

 経路のパフォーマンスの判断基準や制御方法をデフォルトの設定から変更したい場合や、特定のトラフィックを特定のポリシーでルーティングしたい場合などは、オプションを利用したカスタマイズが必要です。この設定は、すべて MC 側のルータで行います。

1) ポリシーの記述方法
 個別のオプション設定例を紹介する前に、パフォーマンス ルーティングの詳細なポリシーの記述方法について説明します。ポリシーの書き方には 2 通りあります。

1-1) 記述方法 1 – oer master コマンドでの指定
oer master コマンドの下に 1 つずつポリシーを記述していく方法です。すべてのトラフィックに対して同じポリシーが適用されるため、全トラフィックに対して同一のポリシーを適用する場合や、アプリケーションタイプを指定しない場合に使用します。

Router_MC(config)# oer master
Router_MC(config-oer-mc)# ポリシー 1
Router_MC(config-oer-mc)# ポリシー 2
Router_MC(config-oer-mc)# ポリシー 3
Router_MC(config-oer-mc)# ポリシー 4
Router_MC(config-oer-mc)# ポリシー 5
<=MC としての詳細設定開始

1-2) 記述方法 2 – oer-map コマンドを使った指定
トラフィックの種別ごとに個別にポリシーやアクションを設定したい場合や、音声のような特定のアプリケーションを想定した計測用トラフィックの生成が必要な場合は、oer-mapコマンドを使用します。

書き方としてはまず、access-list または prefix-list でパケットの条件を指定します。oer-map コマンドで oer-map 名を指定したら、match コマンドで先に指定したパケットの条件を指定します。次に、条件に合致したパケットに対して適用するポリシーを指定します。これを必要な条件の数だけ繰り返します。最後に、oer master の下で、policy-rules コマンドを使用して oer-map 名を指定します。

次の例は、prefix-list を使用してパケットの条件を指定した後、FOO という名前の oer-map を書いて、条件ごとのポリシーを指定し、oer master の下で policy-rules でこの oer-map を指定しています。

記述方法 2 – oer-map コマンドを使った指定

※ 画像をクリックすると、大きく表示されます。popup_icon


2) 計測方法を変更する
パフォーマンス ルーティングでは、トラフィックの計測のために NetFlow と IP SLA の機能を利用しています。計測にどちらの機能を利用するか、または両方の機能を組み合わせるかを、計測モードとして指定することができます。 UDP トラフィック(音声など)を計測したい場合や、特定の IP アドレス/ポート番号を計測したい場合、経路の切り替えを高速化したい場合などは、計測モードを変更してください。

2-1) 計測モードを変更する
計測モードには、次のような種類があります。

 
Passive 実際に流れているトラフィックを計測する。検出できるトラフィックは TCP のみ。
Active 計測用のトラフィックを生成して計測する。TCP と UDP のいずれも計測できる。
Passive と Active の組み合わせ Both デフォルトのモード。最初に Passive で実トラフィックを検知し、検知されたトラフィックの宛先に対し、Active で計測用トラフィックを生成して計測する。検出できるトラフィックは TCP のみ。
Fast 基本的にActive計測であり、常にすべての経路で計測用トラフィックを生成する。BandWidthを計測する目的でのみPassiveを併用する。
Active throughput 基本的にActive計測であり、使用中の経路でのみ計測用トラフィックを生成する。BandWidthを計測する目的でのみPassiveを併用する。

Acitve モードと Active Throughput モードの違いは、トラフィックごとに使用している帯域の算出を行うかどうかにあります。Active モードの場合は、IP SLA の機能を利用して計測用トラフィックを生成し、回線のパフォーマンスを計測するだけですが、Active Throughput モードの場合は、さらに、Passive 計測の機能の一部を利用して、トラフィックごとの帯域を計測して表示することが可能になります。

 計測モードの変更は、oer master の下で mode monitor コマンドを使って指定します。

なお、Active モードで tcp/udp/jitter を計測する場合は、それを受けるルータまたはスイッチで ip sla responder を有効にしておく必要があります。Active モードでも echo の場合はこのコマンドは必要ありません。

2-2) 特定の TCPトラフィックを計測する
IP アドレス/ポート番号を指定するなど、特定の TCP トラフィックを計測したい場合は、Active モードまたは Active Throughput モードを使用します。この場合、mode monitor コマンドで計測方法を変更するだけでなく、生成する計測用トラフィックを指定する必要があります。

 ここでは、192.168.100.2 の IP アドレスのポート番号 8080 宛てに計測用 TCP トラフィックを生成する場合を取り上げます。192.168.100.2 のアドレスを持つ機器で、ip sla responder コマンドを設定しておく必要があります。

特定の TCPトラフィックを計測する

2-3) 音声トラフィックを計測する
音声トラフィックを計測したい場合は、Active モードを使用します。さらに、先に説明した oer-map の形式で指定する必要があります。この oer-map の中で、set active-probe コマンドを使用して計測用のトラフィックを指定します。

以下の設定例は、10.81.0.26 の IP アドレスの 16480 番ポートに対して g729a のコーデックで計測用トラフィックを生成して jitter の値を計測しています。また、set probe frequency コマンドで、プローブの送出間隔を 30 秒(デフォルトは 60 秒)に変更しています。10.81.0.26 のアドレスを持つ機器では、ip sla responder コマンドを設定しておく必要があります。

音声トラフィックを計測する

※ 画像をクリックすると、大きく表示されます。popup_icon


3) ポリシーを変更する
ポリシーとは、「何をもって回線の品質を判断するかの判断基準」のことです。ポリシー設定の用途には、この基準に違反すれば他の経路に切り替えるという利用方法と、複数の経路の品質を比較する際の基準として利用する方法の 2 種類があります。複数のポリシーを設定して優先順位を指定することも可能です。

 デフォルトでは、経路変更のポリシーは次のように設定されています

  • 5 分間の Delay 平均値が 60 分間の Delay 平均値に比べて、50% 増えた場合に経路を変更する
  • External 回線の利用率が 75% を超えた場合に経路を変更する  

回線比較に使用するポリシーの順位は以下のとおりです。複数ある回線の中から一番性能の良い回線を選ぶ場合は、以下の順で比較を行い、性能の良い回線が見つかった時点で比較を止めます。

 
Reachability 常に最優先のポリシーとして使用される(変更不可)。トラフィック クラス単位で適用されるポリシーで、パケット ロスの発生率で判断する。
Delay Passive 計測の場合は、TCP の SYN から ACK までの時間。Active 計測の場合は、プローブ パケットのラウンドトリップ時間。
Range 複数回線間での利用率の差。Range が大きくなると、差が小さくなるように、特定のトラフィックを移動させる。
Utilization 回線の利用率または帯域。

 優先順位を変更できない Reachability のポリシーを除外すると、Delay の優先順位が一番高く設定されています。このような場合、Delay がポリシーに合致しているうちは、それ以下(Range 以下)のポリシーが違反となってもすぐに経路は変更されません。ただし、Utilization がポリシー違反になると、ポリシーの優先順位にかかわらず、経路変更が行われます。

3-1) しきい値を変更する
設定可能なポリシーは以下のとおりです。

しきい値を変更する

しきい値の変更の設定例は次のとおりです。oer master の直下でコマンドを記述した場合はすべてのトラフィックに、oer map の下で記述した場合はトラフィック種別毎に異なるポリシーを適用します。

しきい値を変更する

3-2) ポリシーの優先順位を変更する
設定した複数のポリシーの比較の順序は、ポリシーの priority 値によって決まります。この値が小さいものから比較が行われ、最も値が大きなものが最後に比較されます。また、priority 値を指定するときには、variance 値を同時に設定します。variance とは回線を比較するときの許容範囲を示し、variance の範囲内であれば比較した回線のパフォーマンスに大差はないと判断します。

 priority と variance がどのように作用するか、具体的に見てみましょう。たとえば、Exit-A、Exit-B、Exit-C の 3 回線があり、それぞれ次のようなパフォーマンス値だったとします。

Exit-A  delay が 80 ms  jitter が 3ms
Exit-B  delay が 85 ms jitter が 1ms
Exit-C  delay が 100 ms  jitter が 5ms

そして、プライオリティ値と variance 値が次のように設定されていたと想定します。

delay priority 1 variance 10
jitter priority 2 variance 10

この場合、ポリシーの優先順位に従ってまず delay の比較を行い、delay の値が一番小さい回線、今回のケースでは Exit-A を比較の基準に選びます。このとき、delay の variance は 10% と設定されているため、delay の値が 80ms から 88ms(80×1.1)の間の値の回線は delay の値に大差ないとみなされ、優劣をつけません。Exit-B の delay は 85ms で許容範囲内であるため、delay において Exit-A と Exit-B は大差ないと判断されます。一方、100ms の Exit-Cはパフォーマンスが悪いと判断され、ここで検討対象から除外されます。

 次に、残った Exi-A と Exit-B について、次の priority 値のポリシーである jitter の比較を行います。ここでは、jitter の値が最も小さい回線 Exit-B が基準となります。jitter の variance は 10% であるため、1ms から 1.1ms(1×1.1)の間は大差ないとみなされます。Exit-A は 3ms であるため、Exit-A はパフォーマンスの悪い回線と判断され検討対象から外れ、最終的に Exit-B が一番パフォーマンスの良い回線と判断されます。

 priority と variance のデフォルト値と、変更するための設定例を以下に示します。

  デフォルト プライオリティ Variance
Reachability 0 – 変更不可 20%
Delay 11 20% - 変更可能
Loss なし 20% - 変更可能
Jitter なし 20% - 変更可能
MOS なし 不可
Range 12 不可
Utilization 13 20% - 変更可能
Cost なし 20% - 変更不可


ポリシーの優先順位を変更する

3-3) 回線間のロードバランシングを行う
Range ポリシーは、複数回線間の利用率の差を表します。たとえば、Exit-A の帯域利用率が 70%、Exit-B の帯域利用率が 25% の場合、2 回線の利用率の差は 70% − 25% = 45% となります。たとえば、あらかじめ max-range-utilization を 20% に設定しておき、Range ポリシーの優先順位を上げておくと、このケースをポリシー違反と判断して Exit-A のトラフィックを Exit-B に移動させて利用率を均等にしようとします。このように、Range を利用することで、実際の利用帯域に応じたダイナミックなロードバランスを実施できるようになります。

4) 経路切り替えのモードを変更する
常に最も品質の良い経路に切り替えるのか、現在使用している回線がポリシーに違反した場合にのみ経路を切り替えるのかを指定します。デフォルトでは、使用している回線がポリシーに合致している間は、よりパフォーマンスの良い他の回線があっても切り替えを行わない設定になっています。
経路切り替えのモードは、mode select-exit に対して good と best の 2 種類あります。

 
mode select-exit good デフォルト。使用している回線がポリシーに合致している間は(他にパフォーマンスの良い回線があっても)切り替えを行わない。
mode select-exit best 他にもっと良い回線がないか定期的に検討し、最も品質の良い回線に切り替える。


best モードを選択する場合は、定期的な検討を行う期間を指定する periodic timer の設定が必要です。デフォルトでは 0 になっているため、periodic timer を設定しないと定期的なパフォーマンス検討が行われません。

5) 特定トラフィックのみを制御する
データセンター宛てのトラフィックのみを最適化したい場合など、特定の宛先やアプリケーションについてのみパフォーマンス ルーティングを実行したいケースがあります。このような場合は、no learn コマンドでトラフィックの学習を完全に停止します。no learn コマンドを入力しないと、Netflow の機能が動作し、流れているトラフィックが自動的に検知されてパフォーマンス ルーティングの対象となってしまいます。ただし、Netflow の機能を停止すると Passive モードや Both モードを利用できないため、Active モードを使用する必要があります。

 192.168.100.0 宛てのトラフィックのみを制御する場合の設定例は次のようになります。

特定トラフィックのみを制御する


6. パフォーマンス ルーティングの管理

パフォーマンス ルーティングの管理において一番役立つのが syslog のメッセージです。代表的なパフォーマンス ルーティングの syslog メッセージの見方を示します。

Discovered Exit for prefix <prefix/masklen>, BR <border-ip>, i/f <interface-name>
BR から受信した Netflow データから、現在トラフィックが使用している出口を検出したときに表示されます。

Route changed <prefix/masklen>, BR <border-ip>, i/f <interface-name>, Reason <text>, OOP Reason <text>
プレフィックスの経路を代替パスにルート変更したときに表示されます。Reason には、そのパスが通信経路から除外された理由が示されます。OOP Reason には、このパス選択をトリガーした理由が示されます。たとえば Reason Delay, OOP Timer Expired は、タイマーの時間が経過してパス選択が起動され、Delay により通信経路から除外されたことを示します。

Uncontrol prefix <prefix/masklen>, <text>
パフォーマンス ルーティングがプレフィックスの制御を止めた場合に表示されます。select-exit mode が good で、ポリシーに合致するパスが見つからない場合などに表示されるメッセージです。

Passive ABS Delay OOP <prefix/masklen>, delay <num>, BR <border-ip>, i/f <interface-name>
Passive モードで計測された Delay が閾値を超えたために OOP になった場合に表示されます。

Passive REL Delay OOP <prefix/masklen>, delay <num>, BR <border-ip>, i/f <interface-name>, relative change <num>, prev BR <border-ip> i/f <interface-name>
Passive モードで計測された Delay の直近 60 分間の平均値と直近 5 分間の平均値を比べ、値が大幅に増加したために OOP になった場合に表示されます。


7. 設計時の注意点

パフォーマンス ルーティング設計時に注意するべき点を紹介します。なお、最新の注意点については必ず最新の IOS ドキュメントで確認してください。

  • MC と BR の構成に関する注意点は以下の通りです。
    •  必ず 1 台以上の MC と 1 台以上の BR が必要
    •  1 台の MC でコントロールできる BR は最大 10 台
    •  MC あたり少なくとも 2 つのexternal インターフェイスが必要
    •  BR あたり少なくとも 1 つの external インターフェイスと 1 つの internal インターフェイスが必要
    •  1 台の MC でコントロールできる external インターフェイスは最大 200(以前は最大 20 でしたが 12.4(15)T で 200 に拡張されました)
    •  MC/BR 間は TCP で通信が可能となっている必要がある
    •  MC はルーティング機能を持たなくても構わない
  • BR の Passive トラフィック計測の対象は internal インターフェイスと external インターフェイスの間を流れるトラフィックのみです。ループバック インターフェイスからのトラフィック(ping など)は対象外です。
  • BR で CEF を ON にする必要があります。
  • パフォーマンス ルーティングの最新機能を使う場合は、IOS バージョンに注意が必要です。

PfR-DMVPN / mGRE integration  12.4(24)T
PfR-EIGRP integration  15.0M
PfR-OSPF integration (PIRO)  12.4(24)T

  • 1 回のプロフィールで学習できるフローは最大 2500 です。
  • MC でコントロールできるプレフィックス数は無制限です(以前は最大プレフィックス数は 5000 でしたが、12.4(20)T から制限がなくなりました)。
  • 制限ではありませんが、トラブルを避けるために MC と BR は同じ IOS バージョンを使用してください。IOS のバージョンが異なると MC/BR 間のセッションを確立できなかったり、確立できてもうまく動作しないことがあります。フィーチャ セットは MC だけの場合も BR だけの場合も、パフォーマンス ルーティングに対応したものが必要となります。

8. サンプル コンフィグ

パフォーマンス ルーティングのサンプル構成とその時の設定例を示します。

ネットワーク概要

  • 本社と支社は WAN を経由して接続されており、WAN 上では VPN 方式として DMVPN を使用している。
  • ネットワークのパフォーマンスは、支社から本社に向けて流れる実 TCP トラフィックを測定する(フォルトの both モードを使用)。
  • ルーティング プロトコルは OSPF または EIGRP を使用する。
ネットワーク概要

サンプル コンフィグ

サンプル コンフィグ

ラボなどでテストする際は、以下の 2 点に注意してください。

1) テスト用に送信するトラフィックは、TCP や UDP など実際の環境を想定したトラフィックを生成してください。Both モード(デフォルト)や Passive モードでは TCP トラフィックを検出して計測を開始するため、ping トラフィックではパフォーマンス ルーティングが動作しません。
2) テスト用に送信するトラフィックは、必ず internal 宣言したインターフェイスから入り、external 宣言したインターフェイスから出るトラフィックを生成してください。ルータのループバック アドレスを基点とするトラフィックのような、宣言したインターフェイスを経由しないトラフィックはパフォーマンス ルーティングの対象となりません。

本設定の補足
1) Cisco 1812J のようなルータ製品で、LAN 側が VLAN インターフェイスとなる場合、internal インターフェイスとして VLAN インターフェイスを指定することも可能です。
2) Tunnel インターフェイスを External インターフェイスとして使用する場合は、bandwidth コマンドで帯域を正確に設定してください。Tunnel インターフェイスのスピードはデフォルトで 100kbps と設定されているため、設定を行わないと回線の利用率が正確に計算されません。

動作確認 1(トラフィックを検知した直後の画面)

動作確認 1(トラフィックを検知した直後の画面)

動作確認 2(ルーティング テーブルによる処理で使用している回線を検出した画面)

動作確認 2(ルーティング テーブルによる処理で使用している回線を検出した画面)

動作確認 3(ポリシーに合致していると認識した画面)

動作確認 3(ポリシーに合致していると認識した画面)

※ 上記サンプル コンフィグ作成にあたり使用した IOS:12.4(24) T2 Advanced IP Services 以上


9. パフォーマンス ルーティングをサポートする製品群と IOS

 パフォーマンス ルーティングをサポートしている製品群と IOS は次のとおりです(2010 年 4 月現在)。なお、パフォーマンス ルーティングは、現在も機能拡張が行われており、拡張機能によっては特定の IOS バージョン以上が必要になる場合があります。

  • Cisco890 シリーズ:IOS12.4(22)YB 以上
  • Cisco 1800 シリーズ〜Cisco 7301:12.4(15) T 以上
  • Cisco ISR G2 シリーズ:15.0M 以上
  • ASR シリーズ:Release 2.6.1 (BRのみ)
  • Cisco 7600 シリーズ:Cisco IOS 12.2(33)SRB 以上(passive の TCP モニタリングはできません)
  • Cisco Catalyst 6500 シリーズ:Cisco IOS 12.2(33)SXH 以上(BR のみ/passive の TCP モニタリングはできません)

パフォーマンス ルーティングをサポートする IOS フィーチャセット

  • 12.4T まで
    対応した IOS フィーチャセットが必要です。ライセンスはありません。
12.4T まで

  • 15.0M 以上
    対応した IOS フィーチャセットが必要です。ライセンスはありません。
15.0M 以上


10. よくある質問と回答

Q. MC と BR 間の通信で使用するプロトコルは何ですか?
A. シスコの独自プロトコルです。通信で使用するポート番号はコマンドで指定可能です。デフォルトのポート番号は TCP3949 です。

Q. MC と BR 間の通信は、どちらから開始されますか?
A. BR 側から開始されます。

Q. MC と BR 間は、何秒経つとお互いにダウンしていると認識しますか?
A. デフォルトで 60 秒です。Keepalive コマンドで変更可能です。

Q. パフォーマンス ルーティングは CCP で設定可能ですか?
A. CCP でのパフォーマンス ルーティングの設定は、CCP1.3 から対応しています。

Q. パフォーマンス ルーティングは非対称ルーティング(行きのパケットと戻りのパケットが違うルートを通る)をサポートしていますか?
A. はい、サポートしています。戻りのパケットは、必ず external 定義されているインターフェイスから入ってくる必要がありますが、この条件を満たしていれば、出ていったインターフェイスと同じインターフェイスを通る必要はありません。

Q. パフォーマンス ルーティングを管理するための MIB はありますか?
A. ありません。CLI と Syslog で情報が取得できますので、これらと市販のネットワーク管理製品を活用ください。

Q. パフォーマンス ルーティングと OER の違いは何ですか?
A. パフォーマンス ルーティングは、かつて OER(Optimized Edge Routing)と呼ばれていた機能を拡張した機能で、開発の途中で OER からパフォーマンス ルーティングに名称が変更されました。このため、現在でもコマンドなどで OER という言葉がそのまま使われています。

Q. 以前、パフォーマンス ルーティングのフェーズに Learning/Enforce というフェーズがあったと記憶しているのですが?
A. Learning は pofile に、Enforce は Control に名称が変更されました。いずれも機能は変わっていません。

Q. MC がダウンするとどうなりますか? また MC の冗長化は可能ですか?
A. MC がダウンするとパフォーマンス ルーティングは停止しますが、従来のルーティング テーブルに基づいたルーティングが継続されます。MC を冗長化したい場合は、HSRP を使用して MC を冗長化できます。


11. 参考資料

1) 書籍
Cisco ネットワーク構築教科書 [設定編]」(インプレス ジャパン)
2) ウェブサイト
Performance Routing (PfR) Design Guide [英語]
Cisco IOS Performance Routing Configuration Guide, Release 15.1 [英語]
Cisco IOS Optimized Edge Routing Command Reference [英語]

お問い合わせ