目次
ICMPリダイレクトとは
ICMPリダイレクトメッセージとは、ルータがIPパケットの送信元ホストに対して、宛先IPアドレスに対する適切なネクストホップアドレスを通知するためのメッセージです。
ICMPリダイレクトの動作
ICMPリダイレクトによって、送信元ホストに宛先IPアドレスへの適切なネクストホップを通知します。具体的には、ルータはIPパケットをルーティングするときに、パケットを受信したインタフェースとパケットを出力するインタフェースが同じになるときに、ICMPリダイレクトメッセージを送信します。
以下のネットワーク構成でICMPリダイレクトメッセージの動作を考えます。
このネットワーク構成で、ホストから192.168.2.2へIPパケットを送信すると、R1はICMPリダイレクトメッセージをホストへ送信します。
- ホストのデフォルトゲートウェイとして、R1の192.168.12.1のIPアドレスが指定されています。そのため、ホストから192.168.2.2宛てにパケットを送信すると、まず、デフォルトゲートウェイの192.168.12.1へ転送します。
- R1は、受信したパケットの宛先IPアドレスとルーティングテーブルを照合します。192.168.2.0/24の経路情報に一致し、R2(192.168.12.2)へと転送します。パケットの転送はできますが、転送経路が効率的ではありません。ホストから直接ルータ2へ転送するほうが効率的な転送経路です。
- ホストに対して、宛先IPアドレスに対する効率的な転送経路を通知するためにR1はICMPリダイレクトメッセージをホストへ送信します。ホストからのパケットを受信したインタフェース(IF1)とパケットを出力するインタフェース(IF1)が同じになっているのがICMPリダイレクトメッセージを送信するトリガーです。ホスト(192.168.12.100)に対して、宛先(192.168.2.2)にパケットを送信するときには192.168.12.2へ転送するように通知します。
- ICMPリダイレクトメッセージを受信すると、ホストはルーティングテーブルに宛先IPアドレスの情報を自動的に追加します。
- 以降、ホストはIPアドレス192.168.2.2宛てのIPパケットをR2(192.168.12.2)へ転送します。
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
- TCP/IPの階層
- IP(Internet Protocol) ~データを送り届ける~
- ICMP ~きちんとIPで転送できますか?~
- Ping ~きちんとデータは届きますか?~
- Windows OSのPingコマンド
- トレースルート ~データはどのルータを通っていますか?~
- tracertコマンド(Windows OS)
- ICMPリダイレクト
- トラブルはどこ? ~Pingとトレースルート~
- ARP ~IPアドレスとMACアドレスを対応付け~
- ARPフォーマット
- Gratuitous ARP(GARP)
- ポート番号 ~どのアプリケーションのデータなの?
- TCPの概要
- TCPの動作
- UDPの概要
- アプリケーションのデータが届くまでのまとめ
- DNS ~宛先IPアドレスを求める~
- nslookupコマンド ~DNSの名前解決の確認~
- DHCP ~IPアドレスを自動割り当て~
- Cisco IOS DHCPサーバの設定と確認コマンド
- Ciscoルータ DHCPサーバの設定例
- DHCPリレーエージェント
- DHCPリレーエージェントの設定例[Cisco]
- DHCPサーバ配置のまとめ
- TCP/IPの設定のまとめ
- ipconfigコマンド ~Windows OSのTCP/IP設定を確認~
- Linux(Ubuntu)でのTCP/IP設定の確認コマンド
- Webサイト
- HTMLとCSS ~Webページを作る~
- URL ~Webサイト(Webページ)のアドレス~
- HTTP ~HTMLファイルを転送する~
- Webアプリケーション ~Webブラウザだけあればいい~
- HTTP Cookie
- Webアプリケーションのセッション管理
- Webプロキシサーバ ~Webアクセスを代わりに~
- Webアクセスのまとめ
- 電子メール
- SMTP ~電子メール送信用プロトコル~
- POP3 ~メール受信用プロトコル~
- IMAP4 ~メールサーバ上でメールを管理~
- 電子メールのまとめ
- FTP ~代表的なファイル転送プロトコル~
- TFTP ~簡易的なファイル転送プロトコル~
- Windows10/11のTFTPクライアント
- ネットワークのトラブルの切り分け手順