今度は苦手な人も多いQoSに関する解説です。
すべてのルータからすべての表記IPアドレスにはreachableです。
さて、R4の172.16.24.3からR3へのLoopbackに対する通信のうち、
1000~1300byteのtrafficはIP precedence 4に設定します。
1000~1300byteのICMP trafficは無条件にdropします。
300~500byteのtrafficについてはcir 8000 bc 2000 be 1000で許可します。
exceedするものについてはdropします。
300~500byteのICMP trafficについては制限しませんが、DSCP値ad22に設定します。
うざいっすね。
条件が多い。
あーうざい。
僕はQoSをとても苦手としています。
何故なら設定する事多いしわかりにくいし、
verificationができない事も多いから!
とはいえ、設定しないわけにもいきませんので設定することにします。
pingとおるかな?
R4#ping 172.16.103.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.103.1, timeout is 2 seconds:
!!!!!
通りますね。
まず、QoSを設定するときにあるあるとしては、
条件、分類、class、policyの命名で混乱しがち。
せっかくなので、メモ帳をうまーく使って命名します。
今回は大きいパケットについてはlargeのLAを付ける事とします。
小さいパケットについてはsmallのSMを付ける事とします。
ICMPパケットについてはわかりやすくICMPを付けたいと思います。
さて、QoSを組み立てるにあたって、今回の条件を整理します。
処理しなければいけないパケットとしては4種類あることがわかります。
1000~1300byteのICMPパケット
1000~1300byteのIPパケット
300~500byteのICMPパケット
300~500byteのIPパケット
ですね。
こいつらの分類と命名をどうするかというと...
1000~1300byteのICMPパケット⇒無条件drop⇒LA-ICMP
1000~1300byteのIPパケット⇒precedence 4⇒LA
300~500byteのICMPパケット⇒AF22⇒SM-ICMP
300~500byteのIPパケット⇒police⇒SM
こんな風にすることにします。
QoSに引っ掛けてくイメージとしては、
必要であれば引っ掛けるアドレスをACLで書いて
クラスを書いて
ポリシーで条件指定して
インターフェースに適用、という流れが一般的だと思います。
今回はACLの適用が必要でしょうか。
トラフィックのタイプが2種類ありますね。
ICMPとICMP以外のトラフィックです。
それぞれにポリシーを適用する必要がありますので、
ICMPをACLで引っ掛けておきましょう。
ip access-list ext ICMP
per icmp host 172.16.24.3 host 172.16.103.1 echo
24.3のアドレスから103.1宛のICMPを引っ掛ける事にします。
アドレスを引っ掛けたら今度はこいつをclassに引っ掛けていきましょう。
class-map match-all LA-ICMP
match access-group name ICMP
match packet length min 1000 max 1300
!
class-map match-all SM-ICMP
match access-group name ICMP
match packet len min 300 max 500
!
access-group ICMPに当てはまるアドレスで
パケット長300~500byteのものがclass SM-ICMPに定義します。
match packet length というような書き方をするんですね。
minが最小でmaxが最大で...
皆まで言うなという声が聞こえてきそうですね。
エンジニアの人は怖い人が多いので苦手です。
技術の話になると急にみんな真剣になって揚げ足を取り始めるので、
僕は技術の話をしないようにしています。
めんどくさいしうるさいからですね。
めんどくさいのでさっさと帰りますね。
難しい話は他の人におまかせおまかせ。
さて、大きく脱線しました。
QoSの設定です。
ICMPのclassを定義したので残りのtrafficについても定義します。
こっちは余裕です。
class-map LA
match packet len min 1000 max 1300
!
class-map SM
match packet len min 300 max 500
!
こんだけでいい訳ですね。
ICMP以外ですから、こんだけでおkですね。
最終的にclass-mapの見え方はこんな感じですね。
!
class-map match-all LA
match packet length min 1000 max 1300
class-map match-all SM
match packet length min 300 max 500
class-map match-all SM-ICMP
match access-group name ICMP
match packet length min 300 max 500
class-map match-all LA-ICMP
match access-group name ICMP
match packet length min 1000 max 1300
!
このclassをpolicyにぶち込んでいきます。
policyはLAとSMがあるのでLA-SMとします。
!
policy-map LA-SM
class LA-ICMP
drop
⇒LA-ICMPは無条件にdropなのでdrop actionですね。
class SM-ICMP
set dscp af22
⇒SM-ICMPにはAF22を設定するんでしたね。
class LA
set ip precedence 4
⇒LAはip precedenceを4にします。
class SM
police cir 8000 bc 2000 be 1000
conform-action transmit
exceed-action transmit
violate-action drop
⇒cirといえばpolicingですね。
!
と、ここまで設定したら、満足する人が多いようです。
ていうか、僕ですね。
忘れずにインターフェースに適用しておきましょう。
!
interface f0/1
service-policy input LA-SM
!
これで設定は完了です。
あとはverificationですね。
showコマンドで設定を確認します。
R2#show policy-map
Policy Map LA-SM
Class LA-ICMP
drop
Class SM-ICMP
set dscp af22
Class LA
set ip precedence 4
Class SM
police cir 8000 bc 2000 be 1000
conform-action transmit
exceed-action transmit
violate-action drop
設定されているようですね。
R2#show class-map
Class Map match-all LA (id 3)
Match packet length min 1000 max 1300
Class Map match-all SM (id 4)
Match packet length min 300 max 500
Class Map match-all SM-ICMP (id 2)
Match access-group name ICMP
Match packet length min 300 max 500
Class Map match-any class-default (id 0)
Match any
Class Map match-all LA-ICMP (id 1)
Match access-group name ICMP
Match packet length min 1000 max 1300
class mapも設定されているようですね。
よかったよかった。
それでは、R4からpingを打ってみましょう。
R4#ping 172.16.103.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.103.1, timeout is 2 seconds:
!!!!!
ノーマルPingには影響ないですね。
policy-map intもみておきましょう。
R2#show policy-map interface
FastEthernet0/1
Service-policy input: LA-SM
Class-map: LA-ICMP (match-all)
25 packets, 31350 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: access-group name ICMP
Match: packet length min 1000 max 1300
drop
Class-map: SM-ICMP (match-all)
26020 packets, 11974333 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: access-group name ICMP
Match: packet length min 300 max 500
QoS Set
dscp af22
Packets marked 26020
Class-map: LA (match-all)
20 packets, 26280 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: packet length min 1000 max 1300
QoS Set
precedence 4
Packets marked 20
Class-map: SM (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: packet length min 300 max 500
police:
cir 8000 bps, bc 2000 bytes, be 1000 bytes
conformed 0 packets, 0 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
violated 0 packets, 0 bytes; actions:
drop
conformed 0 bps, exceed 0 bps, violate 0 bps
Class-map: class-default (match-any)
1091 packets, 94340 bytes
5 minute offered rate 2000 bps, drop rate 0 bps
Match: any
じゃあ無条件ドロップのpingを打ってみましょう。
R4#ping 172.16.103.1 size 1300
Type escape sequence to abort.
Sending 5, 1300-byte ICMP Echos to 172.16.103.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
R4#
ドロップしましたね。
policy-map上でLA-ICMPがカウントアップしているはずです。
Class-map: LA-ICMP (match-all)
30 packets, 37920 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: access-group name ICMP
Match: packet length min 1000 max 1300
drop
カウントアップしとりますなあ。
SM-ICMPのほうを打ってみましょう。
こっちはAF22がカウントアップするはずですね。
Class-map: SM-ICMP (match-all)
26020 packets, 11974333 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: access-group name ICMP
Match: packet length min 300 max 500
QoS Set
dscp af22
Packets marked 26020
R4#ping 172.16.103.1 size 400
Type escape sequence to abort.
Sending 5, 400-byte ICMP Echos to 172.16.103.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/20/48 ms
R4#
問題なく飛びますね。
マップマップと。。。
Class-map: SM-ICMP (match-all)
26025 packets, 11976403 bytes
5 minute offered rate 1000 bps, drop rate 0 bps
Match: access-group name ICMP
Match: packet length min 300 max 500
QoS Set
dscp af22
Packets marked 26025
うん、カウントアップしてますね。
オッケ。
ぐっじょぶ。
疲れますね。QoS。
0 件のコメント:
コメントを投稿