Cisco製品におけるicmp redirectとCoPP機能の有効化時の制約
icmp redirect機能とはL3デバイスがパケットの送信元ホストに、特定の宛先ネットワークに対する最適なゲートウェイアドレスを通知する事が出来る機能です。
一般的にはセキュリティ上も有効化されることは珍しい機能ですが、デフォルトで有効になってしまっているため、無効化するのを忘れて運用されている場合があります。
#WindowsファイアウォールでICMPをブロックしている場合はWindows端末でicmp redirect機能によるルーティングの書き換えは発生しません。
このicmp redirectとコントロール プレーン ポリシング(CoPP)機能が有効化されている場合、注意が必要です。
コントロール プレーン ポリシング(CoPP)とは、ネットワーク機器のCPUを守る機能であり、多くのネットワーク機器はデータ転送を行なう「データプレーン」とルーティングなどのソフトウェア処理を行なう「コントロールプレーン」の二階層に分かれます。
ルータが保有するIPアドレス宛のパケットや非IPはコントロールプレーンで処理されるため、上記の宛先に大量のパケットを送付すれば、ルータのCPU使用率を上昇させ、DOS攻撃が成立してしまいます。CoPPではコントロールプレーン向けのパケットを制限することでルータのCPU使用率を下げることが可能です。
このCoPPとicmp redirectを有効化しているどのような注意(弊害)があるかというとCiscoにはicmp redirectを送信出来ないと受信したパケットを処理出来ない仕様があります。つまり、icmp redirect機能を有効化することでicmp redirectメッセージの送信にコントロールプレーンの処理が行われ、CoPPによりコントロールプレーンで処理する流量を制限されます。その結果、icmp redirectメッセージの送信が一定数(CoPPの制限値)に達するとそれ以降のメッセージが送信されず、パケットも処理されなくなります。
経験則ですがicmp redirect機能が必須とされる要件はあまり見受けられず、CoPPはCPU負荷を上げないためにも無効化することは難しいため、素直にicmp redirectを無効化するほうが良いと考えています。icmp redirectは各SVIかRouted Portにて以下のコマンドで無効化出来ます。
(config-if)#no ip redirect