シスコ・ルーターには,フレームリレー特有の帯域制御の機能があります。
フレームリレー・トラフィックシェーピング(FRTS)と呼ばれる機能です。
フレームリレー・インタフェース上でのシェーピングを実践してみましょう。
●シェーピングとは?
シェーピングとはQoSの機能の一つで,送り出すトラフィックを一定量に絞るしくみのことです。
多くのケースでは,フレームリレーで使える帯域幅は,LANの帯域幅より細くなります。
そこで,LANから出て行こうとするトラフィックの量を調整して一定量で出してやります。
ルーターに大量のパケットが到着したとき,パケット廃棄するのではなく,バッファに少しの間溜めておいて,時間を置いてから出してやります。
こうすることで,決められた帯域幅で通信できるようにするわけです。
●設定前の状態
最初に,FRTSの設定前の状態を見ておきましょう。
今回,FRTSを設定するのは,RouterAのSerial0/0インタフェースです。
設定前のSerial0/0のPVC100の状態は,以下です。
RouterA#show frame-relay pvc 100
PVC Statistics for interface Serial0/0 (Frame Relay DTE)
DLCI = 100, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0/0
input pkts 2 output pkts 2 in bytes 106
out bytes 106 dropped pkts 0 in pkts dropped 0
out pkts dropped 0 out bytes dropped 0
in FECN pkts 0 in BECN pkts 0 out FECN pkts 0
out BECN pkts 0 in DE pkts 0 out DE pkts 0
out bcast pkts 1 out bcast bytes 34
pvc create time 00:00:34, last time pvc status changed 00:00:34
ステータスが「ACTIVE」になっており,PVCが正常に動作しているのがわかります。
●FRTSの設定
では,RouterAのSerial0/0にFRTSの設定をしてみましょう。
FRTSの設定は,3ステップです。
【FRTSの設定の流れ】
@インタフェースでFRTSを有効にする
Aマップクラス作る
B作ったマップクラスをインタフェースに適用する
実際の設定は,以下です。
RouterB(config)#interface serial 0/0
RouterB(config-if)#frame-relay traffic-shaping ←@
RouterB(config)#map-class frame-relay FRTS ←A
RouterB(config-map-class)#frame-relay cir 56000
RouterB(config-map-class)#frame-relay bc 7000
RouterB(config)#interface serial 0/0
RouterB(config-if)#frame-relay class FRTS ←B
FRTSでは,マップクラスでいろいろなパラメータを設定できます(Aの部分です)。
ここでは,「CIR=56000ビット」,「Bc=7000」という二つのパラメータを設定しています。
【FRTSのマップクラスで設定できる主なパラメータ】
・CIR:認定情報レート(デフォルトは56000ビット/秒)
・Bc:認定バーストサイズ
・Be:超過バーストサイズ(デフォルトは0ビット)
・minCIR:BECN受信時の最低保障レート(デフォルトはCIRの半分=28000ビット/秒)
・adaptive-shaping becn:BECN受信時の速度調整(デフォルトはオフ)
FRTSのシェーピングは,「トークンバケット」と呼ばれる概念を使います。
その際,これらのパラメータを使います。
それぞれのパラメータの意味は,以下を参考にして下さい。
■トラフィックシェーピング(フレームリレーの設定とトラブルシューティング)
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/125/12-j.shtml#topic10
■フレームリレー トラフィック シェーピングの設定
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/125/traffic_shaping_6151-j.html
【FRTSのパラメータの関係】
FRTSの基本的な考え方としては,「Tc時間の間にBcビットのデータを送出できる」ということです。
この「Tc時間の間にBcビットを送出」したときの送信レートがCIRになります。
つまり,「CIR=Bc/Tc」,「Tc=Bc/CIR」という公式が成り立ちます。
上記の公式からもわかるように,TcはBcとCIRとによって自動的に決まります。
ただし,Tcの値は,10ミリ秒〜125ミリ秒の範囲までと決まっています。
ちなみに125ミリ秒というのは,1秒間を8分割した間隔です(0.125秒)。
また,(Bc+Be)/Tcは,AR(アクセスレート)を超えることはできません(超えたものは必ず廃棄されます)。
アクセスレートは,Serialインタフェースの場合,clockrateコマンドの速度です。
ここでは,「Be=(AR−CIR)×Tc」という公式が成り立ちます。
(今回のケースはBE=0なので,Beは考えません。)
今回は,「CIR=56000」,「Bc=7000」の二つのパラメータを設定しました。
これにより,minCIR=28000ビット/秒(minCIR=CIR/2),Tc=0.125秒(Tc=Bc/CIR)が決まります。
このケースを図にすると,以下のような感じです。

●設定後(トラフィック送出前)
では,上記のコマンドを設定した後のRouterAの様子を見てみましょう。
show traffic-shapeコマンドを使います。
RouterA#show traffic-shape
Interface Se0/0
Access Target Byte Sustain Excess Interval Increment Adapt
VC List Rate Limit bits/int bits/int (ms) (bytes) Active
100 56000 875 7000 0 125 875 -
設定したパラメータが反映されているのがわかります。
この表示の見方は,以下のページが参考になります。
■show traffic-shape コマンド(フレームリレー トラフィック シェーピングのための show コマンド)
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/125/framerelay_ts_cmd-j.html#second
次に,PVCの様子を見てみます。
RouterA#show frame-relay pvc 100
PVC Statistics for interface Serial0/0 (Frame Relay DTE)
DLCI = 100, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0/0
input pkts 36 output pkts 17 in bytes 2314
out bytes 1226 dropped pkts 0 in pkts dropped 0
out pkts dropped 0 out bytes dropped 0
in FECN pkts 0 in BECN pkts 0 out FECN pkts 0
out BECN pkts 0 in DE pkts 0 out DE pkts 0
out bcast pkts 1 out bcast bytes 34
pvc create time 00:02:55, last time pvc status changed 00:02:55
cir 56000 bc 7000 be 0 byte limit 875 interval 125
mincir 28000 byte increment 875 Adaptive Shaping none
pkts 17 bytes 1226 pkts delayed 0 bytes delayed 0
shaping inactive
traffic shaping drops 0
Queueing strategy: fifo
Output queue 0/40, 0 drop, 0 dequeued
FRTSを有効にしたことによって,新たに赤字の部分が出現しました。
また,設定した項目が反映されているのもわかります(青字の部分)。 この表示の見方は,以下のページが参考になります。
■show frame-relay pvc コマンド(フレームリレー トラフィック シェーピングのための show コマンド)
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/125/framerelay_ts_cmd-j.html#first
●トラフィックを流してみる
この状態で,本当にトラフィックが56000ビット/秒にシェーピングされるのかを確かめてみましょう。
トラフィック配信ツール「Iperf」を使って,RouterA側のPCからRouterB側のPCに,1Mビット/秒のトラフィックを10秒間送信します。
「Iperf」の使い方は,「トラフィック配信ツールでQoSの検証」を参照して下さい。
トラフィックを流したら,再びPVCの状態を見てみます。
RouterA#show frame-relay pvc 100
PVC Statistics for interface Serial0/0 (Frame Relay DTE)
DLCI = 100, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0/0
input pkts 52 output pkts 128 in bytes 16336
out bytes 148900 dropped pkts 765 in pkts dropped 0
out pkts dropped 765 out bytes dropped 1149030
late-dropped out pkts 765 late-dropped out bytes 1149030
in FECN pkts 0 in BECN pkts 0 out FECN pkts 0
out BECN pkts 0 in DE pkts 0 out DE pkts 0
out bcast pkts 1 out bcast bytes 34
pvc create time 00:05:45, last time pvc status changed 00:05:45
cir 56000 bc 7000 be 0 byte limit 875 interval 125
mincir 28000 byte increment 875 Adaptive Shaping none
pkts 128 bytes 148900 pkts delayed 103 bytes delayed 145344
shaping inactive
traffic shaping drops 0
Queueing strategy: fifo
Output queue 0/40, 765 drop, 103 dequeued
「pkts delayed」という項目に「103」とあります。
これは,シェーピングによって遅れて送出したパケットの数が103個あったことを示しています。
トラフィックを受け取ったRouterB側のPCで動作させたIperfの結果を見てみましょう。

これは,トラフィックを受信した際の帯域を表すグラフです。
横軸が経過時間で,縦軸が受信ビットです。
19秒の間に平均して54.3kビット/秒を受信したことがわかります。
これはCIRとして設定した56kビット/秒とほぼ一致しており,確かにシェーピングが効いていることがわかります。 |