キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

PfRを使用したロードバランス

概要


PfR(OER)は通常のルーティングプロトコルを使用しているだけでは分からない遅延、ジッタ、パケットロスなどを検知し適切なパスに切り替えることができます。

例えば2つの異なるISPとBGPで接続している環境でVoIPのようなリアルタイム性の高い通信をする場合を考えます。ベストパスとして選択しているISPのネットワークで遅延が発生したとすると、もう一方のISPを経由した方が良い場合でもBGPが確立されていれば引き続きベストパスを使い続けます。

PfRを使用すればトラフィックを計測しこのような状況を検知することが出来ます。トラフィックの計測は境界ルータ(以下、BR)が行います。BRは計測から収集した情報をマスターコントローラ(以下、MC)と呼ばれるルータに送ります。MCはBRから収集した情報を予め設定したポリシーと照合しどのパスが適切かを計算します。


詳細は以下のドキュメントを参照してください。

"Cisco Performance Routing"

http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6554/ps6599/ps8787/prod_qas0900aecd806c4f03.html

"Cisco IOS Optimized Edge Routing Overview"

http://www.cisco.com/en/US/docs/ios/oer/configuration/guide/oer-overview.html




設定例


この設定例ではPfRを用いてどのようにロードバランスを行うことが出来るかを示します。

構成は以下の通りで1台のルータでMC、BR両方の役割を担います。また、2つのISPと接続します。

pfr.jpg

デフォルトルートをそれぞれのISPに対して等コストで持つように設定します。ここでは簡単にスタティックで設定します。


ip route 0.0.0.0 0.0.0.0 10.1.1.10

ip route 0.0.0.0 0.0.0.0 20.1.1.10


ここでは使用しませんが、OSPFなどのルーティングプロトコルを使って等コストのルートをもらうのでも本質的には同じです。


そして、ルーティングテーブルはPfR動作前は以下のようになります。


EDGE_RTR#show ip route

Gateway of last resort is 20.1.1.10 to network 0.0.0.0

     1.0.0.0/24 is subnetted, 1 subnets

C       1.1.1.0 is directly connected, Loopback0

     20.0.0.0/24 is subnetted, 1 subnets

C       20.1.1.0 is directly connected, FastEthernet1/1

     10.0.0.0/24 is subnetted, 1 subnets

C       10.1.1.0 is directly connected, FastEthernet1/0

C    192.168.1.0/24 is directly connected, FastEthernet2/0

S*   0.0.0.0/0 [1/0] via 20.1.1.10

                      [1/0] via 10.1.1.10


次にPfRの設定を示します。ここでロードバランスをさせるために使用する基準(ポリシー)としてそれぞれのパスの帯域の使用率を用います。


interface Loopback0

ip address 1.1.1.1 255.255.255.0

!--- MC/BRを指定するために使用、以下の設定で示すようにMC/BRで共有します。


key chain OER

key 1

  key-string oerkey

!--- MC/BRの認証の設定(1台に集約する場合でも必要)



!---MC part:

oer master

max-range-utilization percent 2

!--- 後述する外部リンクの許容量の2%に達したらPfRが機能し始める(ロードバランスする)ことを示します(2%は極端な値ですが、ここで示す設定が少しのトラフィックでも機能するように便宜上小さい値を設定しています)。


logging

!

border 1.1.1.1 key-chain OER

!--- BRを指定します。ここではBRも共存するのでloopbackを指定します。

  interface FastEthernet1/1 external

!--- ISPと接続しているインターフェイス(外部リンク)を指定します。上の図では10.1.1.0のネットワークに属しています。

   max-xmit-utilization absolute 5

!--- この外部リンクの最大の許容量を5Kbpsにします。便宜上小さい値にしています。

  interface FastEthernet1/0 external

!--- もうひとつの外部リンクを指定します。上の図では20.1.1.0のネットワークに属しています。

   max-xmit-utilization absolute 50

!--- 一方、こちらは50Kbpsが最大許容量とします。

  interface FastEthernet2/0 internal

!--- ISPへのトラフィックが入ってくるインターフェイスを指定します。


!

learn

  throughput

  periodic-interval 0

!--- 常にprefix learningを行うようにしています。上で示した極端な数値同様、便宜上の値です。

  aggregation-type prefix-length 32  

!--- MCがprefixを自動集約したときのマスクが32bitとしています。

mode route control

mode route metric static tag 2000  

!--- MCが自動集約したprefixはタグ 2000が付加されます。

mode select-exit best   

!--- 常にベストな外部リンクが選択されるようにします。

resolve range priority 1   

!--- 利用率のレンジが最も優先的に最適化されます。

resolve utilization priority 2 variance 1

!---  リンクの使用率をその次に優先的に最適化されます。


!--- BR part:

oer border

local Loopback0

!--- MCと同じくLoopback0を指定します。

master 1.1.1.1 key-chain OER



次にLAN側からトラフィックをISPに向けて流します。宛先IPアドレスは100.100.100.100とします。

Fa1/1の最大利用率は少なく設定したため、すぐに設定したポリシーに合わなくなりOut of Policy(OOP)となります。


EDGE_RTR#show oer master prefix

EDGE_RTR#


%OER_MC-5-NOTICE: Load OOP BR 1.1.1.1, i/f Fa1/1,  load 24 policy 5

%OER_MC-5-NOTICE: Exit 1.1.1.1 intf Fa1/1 OOP, Tx BW 24, Rx BW 24, Tx Load 0, Rx Load 0

EDGE_RTR#show oer master prefix

Prefix                  State     Time Curr BR         CurrI/F         Protocol

                      PasSDly  PasLDly   PasSUn   PasLUn  PasSLos  PasLLos

                      ActSDly  ActLDly   ActSUn   ActLUn      EBw      IBw

--------------------------------------------------------------------------------

100.100.100.100/32   DEFAULT*      @29 1.1.1.1         Fa1/1           U

                            U        U        0        0        0        0

                            U        U        0        0       25       25

EDGE_RTR#

%OER_MC-5-NOTICE: Discovered Exit for prefix 100.100.100.100/32, BR 1.1.1.1, i/f Fa1/1

EDGE_RTR#show oer border routes static

Flags Network            Parent             Tag

CE    100.100.100.100/32 0.0.0.0/0          2000

EDGE_RTR#show ip route 100.100.100.100

Routing entry for 100.100.100.100/32

  Known via "static", distance 1, metric 0

  Tag 2000

  Routing Descriptor Blocks:

  * 10.1.1.10

      Route metric is 0, traffic share count is 1

      Route tag 2000



上のshowコマンドの出力結果にあるように、100.100.100.100/32 へのスタティックルートが追加されています。また設定した通りこのエントリにはルートタグとして2000が付与されています。これはredistributionやfilteringに使うことができます。

ここで注目すべき点は100.100.100.100/32がFa0/1経由となることです(showコマンドの出力は下記)。これは始めに使用されたFa1/1が程なくOOPとなったものの、代替リンクとしてポリシーに適合する(In Policy)Fa1/0が見つかったためです。


更に今度は200.200.200.200宛のトラフィックを流します。この場合はFa1/0が始めから使用されます。



%OER_MC-5-NOTICE: Load OOPBR 1.1.1.1, i/f Fa1/0,  load 53 policy 50

%OER_MC-5-NOTICE: Exit 1.1.1.1 intf Fa1/0 OOP, Tx BW 53, Rx BW 53, Tx Load 0, Rx Load 0

New learned prefixes:

Prefix                  State     Time Curr BR         CurrI/F         Protocol

                      PasSDly  PasLDly   PasSUn   PasLUn  PasSLos  PasLLos

                      ActSDly  ActLDly   ActSUn   ActLUn      EBw      IBw

--------------------------------------------------------------------------------

200.200.200.200/32   DEFAULT*      @74 1.1.1.1          Fa1/0        U

                            U        U        0        0        0        0

                           U        U        0        0       29       28

100.100.100.100/32   INPOLICY        0 1.1.1.1          Fa1/0       STATIC

                            U        U        0        0        0        0

                            U        U        0        0        0        0

%OER_MC-5-NOTICE: Discovered Exit for prefix 200.200.200.200/32, BR 1.1.1.1, i/f Fa1/0

EDGE_RTR#show oer border routes static

Flags: C - Controlled by oer, X - Path is excluded from control,

       E - The control is exact, N - The control is non-exact

Flags Network            Parent             Tag

CE    100.100.100.100/32 0.0.0.0/0          2000

CE    200.200.200.200/32 0.0.0.0/0          2000

EDGE_RTR#show ip route

     200.200.200.0/32 is subnetted, 1 subnets

S       200.200.200.200 [1/0] via 20.1.1.10

     1.0.0.0/24 is subnetted, 1 subnets

C       1.1.1.0 is directly connected, Loopback0

     100.0.0.0/32 is subnetted, 1 subnets

S       100.100.100.100 [1/0] via 10.1.1.10

     20.0.0.0/24 is subnetted, 1 subnets

C       20.1.1.0 is directly connected, FastEthernet1/1

     10.0.0.0/24 is subnetted, 1 subnets

C       10.1.1.0 is directly connected, FastEthernet1/0

C    192.168.1.0/24 is directly connected, FastEthernet2/0

S*   0.0.0.0/0 [1/0] via 20.1.1.10

                    [1/0] via 10.1.1.10



先ほどと同様にPfRによって新たに学習したスタティックルートが追加されています。

バージョン履歴
改訂番号
1/1
最終更新:
‎07-01-2010 03:21 AM
更新者:
 
ラベル(1)
タグ(2)