ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测

到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发,ICMP虽然不

是路由协议,但是有时它也可以指导数据包的流向(使数据流向正确的网关)。ICMP协议通过ICMP重定向数据包(类型5、代码0:网络重定向)达到这个

目的。

案例1:

图1  ICMP重定向

如图1所示,主机PC要ping路由器R2的loopback

0地址:192.168.3.1,主机将判断出目标属于不同的网段,因此它要将ICMP请求包发往自己的默认网关192.168.1.253(路由器R1

的E0接口)。但是,这之前主机PC首先必须发送ARP请求,请求路由器R1的E0(192.168.1.253)的MAC地址。

当路由器R1收到此ARP请求包后,它首先用ARP应答包回答主机PC的ARP请求(通知主机PC:路由器R1自己的E0接口的MAC地址)。然后,

它(路由器R1)将此ICMP请求转发到路由器R2的E0接口:192.168.1.254(要求路由器R1正确配置了到网络

192.168.3.0/24的路由)。此外,路由器R1还要发送一个ICMP重定向消息给主机PC,通知主机PC对于主机PC请求的地址的网关

是:192.168.1.254。

路由器R2此时会发送一个ARP请求消息请求主机PC的MAC地址,而主机PC会发送ARP应答消息给路由器R2。最后路由器R2通过获得的主机PC的MAC地址信息,将ICMP应答消息发送给主机PC。

ICMP重定向包的内容如图2、图3所示。注意图2 ICMP包头中的Type和Code字段的值和含义。

图2  ICMP重定向包

图3  ICMP重定向包-续

如果还有后续的ICMP请求包,则除了ARP消息,所有的事件序列和上面的叙述相同。如图9所示。

图4  ICMP重定向事件序列

案例2:

如上图所示,假设有主机Host1,路由器RT1和RT2,Host1的网关指向RT1的以太口Host1。RT1、RT2的以太口在一个网段内

RT1和RT2通过广域网连接至Intranet,Intranet上有一台主机Host2。RT1、RT2、Intranet内路由器运行动态路由协

议。正常情况下RT1和RT2上都有到10.0.0.0/8这个网段都会有两条路由,分别通过广域网接口直接出去和通过以太口经由另一台路由器出去,但只

有经过广域网接口的这条路由会进到路由表中。Host1访问Host2的时候IP包被发到RT1,经过广域网转发出去

如果RT1的广域网链路down掉,则RT1上另一条路由就会进到路由表中,到达10.0.0./8这个网段的下一跳便是RT2的以太口。此时如果

Host1需要和Host2通信,Host1仍然会将IP包发送到RT1的以太口上,RT1查路由表,得知下一跳是RT2的以太口,这时RT1会将该报文

从以太口转发到RT2的以太口,同时向Host1发送一条ICMP重定向报文,使Host1在路由表上加一条主机路由:目标地址是10.0.0.1/8,

下一跳是1.1.1.3,这样Host1到Host2以后的IP包就会被直接发送到RT2的以太口。

总结:

ICMP 重定向报文的接收者必须查看三个IP地址:

导致重定向的IP地址,即ICMP重定向报文的数据位于IP数据报的首部

发送重定向报文的路由器的IP地址,包含重定向信息的IP数据报中的源地址

应该采用的路由器IP地址在ICMP报文中的4 ~ 7字节

关于ICMP重定向报文有很多规则:

首先,重定向报文只能由路由器生成,而不能由主机生成。

另外,重定向报文是为主机而不是为路由器使用的。假定路由器和其他一些路由器共同参与某一种选路协议,则该协议就能消除重定向的需要。

在4.4,B,S,D系统中,当主机作为路由器使用时,要进行下列检查,在生成,ICMP,重定向报文之前这些条件都要满足,

出接口必须等于入接口

用于向外传送数据报的路由不能被ICMP重定向报文创建或修改过,而且不能是路由器的默认路由

数据报不能用源站选路来转发

内核必须配置成可以发送重定向报文

另外,一台4.4,B,S,D主机收到,ICMP,重定向报文后,在修改路由表之前要作一些检查,这是为了防止路由器或主机的误操作,以及恶意用户的破坏,导致错误地修改系统路由表

新的路由器必须直接与网络相连接,

重定向报文必须来自当前到目的地所选择的路由器,

重定向报文不能让主机本身作为路由器,

被修改的路由必须是一个间接路由,

关于重定向最后要指出的是,路由器应该发送的只是对主机的重定向,代码1或3,而不是对网络的重定向。子网的存在使得难于准确指明何时应发送对网络的重定向而不是对主机的重定向,只当路由器发送了错误的类型时,一些主机才把收到的对网络的重定向当作对主机的重定向来处理。

icmp重定向实验ensp_ICMP重定向案例相关推荐

  1. Linux shell 学习笔记(11)— 理解输入和输出(标准输入、输出、错误以及临时重定向和永久重定向)

    1. 理解输入和输出 1.1 标准文件描述符 Linux 系统将每个对象当作文件处理.这包括输入和输出进程.Linux 用文件描述符(file descriptor)来标识每个文件对象.文件描述符是一 ...

  2. 输入重定向,输出重定向,管道相关内容及实现方法

    近期,通过实现shell了解了输入重定向,输出重定向,管道- 用自己的话总结定义: 输入重定向:把<右边的文件的内容输入到<左边的命令中. 输出重定向:把运行>左边命令得出的结果输入 ...

  3. linux shell数据重定向(输入重定向与输出重定向)详细分析

    转载自: linux shell数据重定向(输入重定向与输出重定向)详细分析 - 程默 - 博客园 http://www.cnblogs.com/chengmo/archive/2010/10/20/ ...

  4. 重定向java_JAVA 中 重定向

    1.request.getRequestDispatcher("/Login.jsp").forward(request, response); 三.重定向与转发的区别: 1.重定 ...

  5. 什么是301重定向与301重定向怎么做

    上一次在URL是什么意思与统一URL优化中谈到统一URL.优化网站可以使用301重定向的方法.现在我们可以交流一下"什么是301重定向,301重定向怎么做",还有什么时候什么情况下 ...

  6. Linux笔记之浅析linux重定向——输出重定向与输入重定向

    重定向 大多数 UNIX 系统命令从你的终端接受输入,并将所产生的输出发送回到您的终端. 一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端. 同样,一个命令通常将其输出写入到标 ...

  7. 302重定向与301重定向

    302重定向与301重定向 302重定向 表示 临时重定向,常常用于页面跳转,就是咱们在一个页面登陆,然后登陆成功,就会跳转到另一个页面,这个就是302跳转. 比如响应头中的Location = xx ...

  8. linux 地址重定向,Linux重定向(输入输出重定向)详解

    我们知道,Linux 中标准的输入设备默认指的是键盘,标准的输出设备默认指的是显示器.而本节所要介绍的输入.输出重定向,完全可以从字面意思去理解,也就是: 输入重定向:指的是重新指定设备来代替键盘作为 ...

  9. 华农java实验7_关于开展2019-2020-1学期创新性实验、双百案例课程任务落实的通知...

    各学院: 根据教学安排,学校计划开展2019-2020-1学期创新性实验.双百案例课程任务落实工作,现就有关事项通知如下: 一.任务落实 1.课程性质.创新性实验.双百案例课程归属创新创业教育类课程. ...

最新文章

  1. 66319d电源使用说明书_矿用防爆交换机如何正确安装调试和使用?
  2. leetcode39 --- combinationSum
  3. 微服务架构到底是什么鬼?
  4. 应急管理部等四部门联合督导 烟花爆竹安全生产工作
  5. unityios开发--Scorll View控件 .
  6. 【Vue】—数组对象变更检测
  7. mysql count null_一个不可思议的MySQL慢查分析与解决
  8. Hadoop集群部署模型纵览3
  9. 视频抠像软件Imagineer Systems Mokey
  10. 服务器架构模式BS和CS的特点与区别
  11. t480 拆触摸板_thinkpad t470怎么关闭触摸板?
  12. 【微信小程序】background-image设置背景图片不显示的解决办法
  13. 软件工程实训有必要吗_软件工程专业有没有必要考研
  14. 【博弈论】bzoj1022[SHOI2008]小约翰的游戏John
  15. 华为od面试java经历
  16. 通过一个具体的例子,讲解 SAP BDC 技术的使用步骤
  17. Jquery Md5加密解密
  18. 深度好玩!10 个有趣且易上手的 AI 项目(附 Python 源代码)
  19. 完整的连接器设计手册_干货 I 关于PCB设计倒角需要了解的一切
  20. typedef and define

热门文章

  1. 计算机辅助教学发展方向,第11章计算机辅助教学的发展方向.ppt
  2. 2018年点击量最高的10个网站域名——头歌
  3. 基于BookStack构建知识管理平台
  4. ASP.NET Web 网站
  5. 恒瑞医药卡瑞利珠单抗七大瘤种获2022版中国临床肿瘤学会诊疗指南19项推荐
  6. 从短信到纸飞机:数据图形化的有趣例子
  7. Window + Ubuntu双系统安装教程
  8. 免费报名丨中国社会媒体处理旗舰会议SMP 2022日程公布,图灵奖得主领衔,近百场报告等你来!...
  9. Vue组件的八个钩子函数
  10. 招银网络二面:什么是序列化?常见的序列化协议有哪些?