ICMPリダイレクトとは

ICMPリダイレクトメッセージとは、ルータがIPパケットの送信元ホストに対して、宛先IPアドレスに対する適切なネクストホップアドレスを通知するためのメッセージです。

ICMPリダイレクトの動作

ICMPリダイレクトによって、送信元ホストに宛先IPアドレスへの適切なネクストホップを通知します。具体的には、ルータはIPパケットをルーティングするときに、パケットを受信したインタフェースとパケットを出力するインタフェースが同じになるときに、ICMPリダイレクトメッセージを送信します。

図 ICMPリダイレクトメッセージを送信するトリガー
図 ICMPリダイレクトメッセージを送信するトリガー

以下のネットワーク構成でICMPリダイレクトメッセージの動作を考えます。

図 ICMPリダイレクトメッセージの例 ネットワーク構成
図 ICMPリダイレクトメッセージの例 ネットワーク構成

このネットワーク構成で、ホストから192.168.2.2へIPパケットを送信すると、R1はICMPリダイレクトメッセージをホストへ送信します。

  1. ホストのデフォルトゲートウェイとして、R1の192.168.12.1のIPアドレスが指定されています。そのため、ホストから192.168.2.2宛てにパケットを送信すると、まず、デフォルトゲートウェイの192.168.12.1へ転送します。
  2. R1は、受信したパケットの宛先IPアドレスとルーティングテーブルを照合します。192.168.2.0/24の経路情報に一致し、R2(192.168.12.2)へと転送します。パケットの転送はできますが、転送経路が効率的ではありません。ホストから直接ルータ2へ転送するほうが効率的な転送経路です。
  3. ホストに対して、宛先IPアドレスに対する効率的な転送経路を通知するためにR1はICMPリダイレクトメッセージをホストへ送信します。ホストからのパケットを受信したインタフェース(IF1)とパケットを出力するインタフェース(IF1)が同じになっているのがICMPリダイレクトメッセージを送信するトリガーです。ホスト(192.168.12.100)に対して、宛先(192.168.2.2)にパケットを送信するときには192.168.12.2へ転送するように通知します。
  4. ICMPリダイレクトメッセージを受信すると、ホストはルーティングテーブルに宛先IPアドレスの情報を自動的に追加します。
  5. 以降、ホストはIPアドレス192.168.2.2宛てのIPパケットをR2(192.168.12.2)へ転送します。
図 ICMPリダイレクトメッセージの送信
図 ICMPリダイレクトメッセージの送信
図 ICMPリダイレクトメッセージ受信後の動作
図 ICMPリダイレクトメッセージ受信後の動作

Notice

  • ICMPリダイレクトメッセージによって追加されるホストのルーティングテーブルのルート情報は/32のホストルートになります。
  • ホストのファイアウォールでブロックされたり、OSでICMPリダイレクトメッセージが無効化されているとICMPリダイレクトメッセージによるルート情報は追加されません。
  • セキュリティを強化するために、ICMPリダイレクトメッセージによるルート情報の追加は無効化したほうがよいです。
  • 一定時間でICMPリダイレクトメッセージによって追加されたルート情報は削除されます。(Windowsでは10分間)

ICMPリダイレクトメッセージの設定(Cisco)

Ciscoルータは、デフォルトでインタフェースに以下のコマンドが入っていて、ICMPリダイレクトメッセージの送信が有効化されています。

ICMPリダイレクト送信の有効化

(config)#interface <interface-name>
(config-if)#ip redirects

<interface-name> : インタフェース名

ICMPリダイレクトメッセージの送信を無効化するには、no ip redirectsコマンドを入力します。

ICMPリダイレクト送信の無効化

(config)#interface <interface-name>
(config-if)#no ip redirects

<interface-name> : インタフェース名

ICMPリダイレクトメッセージの送信の有効/無効はshow ip interfaceコマンドでわかります。

ICMPリダイレクト送信の確認 show ip interface

R1#show ip interface fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
  Internet address is 192.168.12.1/24
  Broadcast address is 255.255.255.255
  Address determined by setup command
  MTU is 1500 bytes
  Helper address is not set
  Directed broadcast forwarding is disabled
  Outgoing access list is not set
  Inbound  access list is not set
  Proxy ARP is enabled
  Local Proxy ARP is disabled
  Security level is default
  Split horizon is enabled
  ICMP redirects are always sent
  ICMP unreachables are always sent
  ICMP mask replies are never sent
-- omitted --
 

TCP/IP