show runの最後の方にある 「Control-Plane」の用途を説明します。
はじめに、「xxx-Plane」について簡単に記載します。
Cisco IOS, IOS XE, and IOS XRには「Data-Plane」「Control-Plane」「Management-Plane」
の3つがあります。
1.「Data-Plane」
ルータを経由してスイッチングされるパケットを担う機構です。(ユーザのパケット)
2.「Control-Plane」
ルーティング制御パケット(OSPF,BGP)やARP,BFD,ICMPなどの制御パケットをやり取りを担う機構です。これらは目的別にでCPUが処理されます。
3.「Management-Plane」
主にデバイスマネジメントパケットであるNMP,SSH,FTP等の転送を担う機構になります。
- Control Plane Policing の主な利点
DOS攻撃などからルータを保護できる(インターネット境界にいる機器)
特定のインターフェイスにACLを設定する必要がない
- Control Plane Policing 利用用途
多くの場合、インターネット境界にいるルータに対するDOS攻撃の保護の為に設定される事が多い
- Control Plane 補足
CoPP単体でブロードキャスト制御はできない
ControlPPlaneのイメージ
※機器によりアーキテクチャは違います。
データパケットは(下の青矢印)左から入ってきて、右から出ていきます。
一方、BGP Hello やSNMPパケット等は上部のControl planeに入ってくるイメージです。
検証構成 (Cisco Modeling Labs利用)
ルータのloopbackアドレスにPingをすることで、Control planeを通るようにして
CoPPの効果を検証する事にします。
設定内容
permit icmp host 10.1.1.100 host 5.5.5.5
match access-group name CoPP_ACL
class CoPP_CLASS
police 8000 conform-action transmit exceed-action drop
service-policy input CoPP
control-planeカウンタクリア
QoS設定時のpolicy-mapのカウンタは「show policy-map interface」ですが、control-planeカウンタを見る場合は、「show policy-map control-plane」になります。
「clear control-plane *」 で最初にカウンターをクリアします。
show ログ
Router#show policy-map control-plane
Control Plane
Service-policy input: CoPP
Class-map: CoPP_CLASS (match-all)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name CoPP_ACL
police:
cir 8000 bps, bc 1500 bytes
conformed 0 packets, 0 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
drop
conformed 0000 bps, exceeded 0000 bps
Class-map: class-default (match-any)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: any
ACL 「deny icmp host 10.1.1.100 host 5.5.5.5」
ルータはPingパケットに対しreplyを返します。結果ping応答アリになります。
Router#show policy-map control-plane
Control Plane
Service-policy input: CoPP
Class-map: CoPP_CLASS (match-all)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name CoPP_ACL
police:
cir 8000 bps, bc 1500 bytes
conformed 0 packets, 0 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
drop
conformed 0000 bps, exceeded 0000 bps
Class-map: class-default (match-any)
321 packets, 252220 bytes
5 minute offered rate 5000 bps, drop rate 0000 bps
Match: any
ACL 「permit icmp host 10.1.1.100 host 5.5.5.5」で検証
ルータがPingパケットを破棄します。結果ping応答ナシになります。
Router#show policy-map control-plane
Control Plane
Service-policy input: CoPP
Class-map: CoPP_CLASS (match-all)
56 packets, 44128 bytes
5 minute offered rate 1000 bps, drop rate 0000 bps
Match: access-group name CoPP_ACL
police:
cir 8000 bps, bc 1500 bytes
conformed 28 packets, 1736 bytes; actions:
transmit
exceeded 28 packets, 42392 bytes; actions:
drop
conformed 0000 bps, exceeded 1000 bps
Class-map: class-default (match-any)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: any
まとめ
・CoPPはルータ自身へのパケット対し、制御し主にCPUを守る役目をします。
・ACLの設定上、通常のACLとは逆になるのが特徴と思われます。
「deny」でPing応答あり ※CoPPに該当しないから
「permit」でPing応答なし ※CoPPに該当するから
・CoPP利用することにより、ポートACLやVLAN ACLと同じ効果をもたらすことができます。
・service-policy inputだけでなく、IOSによってはservice-policy output可能です。