icmp重定向

5.ICMPv4协议分析与实践

孤人 提交于 2019-12-28 04:42:37
ICMPv4 协议分析与实践 1. 概述 1.1 ICMP 简介 ICMP(Internet Control Message Protocol) : 用于 IP 中发送控制消息( 不可靠 ),提供可能发生在通信环境中的各种问题反馈,通常用于返回的错误信息或是分析路由。 依靠 IP 完成任务,但一般不用于在两点之间传输数据,通常不由网络程序直接使用,除了 ping 和 traceroute 1.2 ICMPv4 报文格式 类型 说明 代码 3 目的不可达消息 0 网络不可达 1 主机不可达 2 协议不可达 3 端口不可达 4 需要分片,但是设置了 DF 5 源路由失败 5 重定向消息 0 对网络重定向 1 对主机重定向 2 对服务类型和网络重定向 3 对服务类型和主机重定向 8/0 ping 请求和 ping 应答 11 超时消息 0 传输超时,即 TTL 为 0(tracetoute 原理) 1 分片重组超时,重组定时器超时了,还有分片没到达 12 参数问题消息 0 IP 首部有问题,包括各种差错 1 缺少必需的选项(已废弃) 2 长度错误,总长度无效 1.3 不会产生 ICMPv4 报文的情况 源地址不是单个主机的数据报,即零地址、回环地址、广播地址或组播地址 目的地址是 IPv4 广播或组播地址 ICMPv4 差错报文 不是第一个分片的其他分片 作为链路层广播的数据报 2.

ICMP:Internet控制报文协议

浪子不回头ぞ 提交于 2019-12-26 01:58:37
一、简介 IP协议本身没有为终端系统提供直接的方法来发现那些发往目的地址失败的IP数据包。此外,IP没有提供直接的方式来获取诊断信息(例如,哪些路由器在沿途中被使用了或使用一种方法来估计往返时间)。为解决这些不足之处,将一个特殊的Internet控制报文协议(Internet Control Message Protocol,ICMP)与IP结合使用,以便提供与IP协议层配置和IP数据包处置相关的诊断和控制信息。 ICMP通常被认为是IP层的一部分,它需要在所有IP实现中存在。它使用IP协议进行传输。因此,确切地说,它既不是一个网络层协议,也不是一个传输层协议,二是位于两者之间。 ICMP负责传递可能需要注意的差错和控制报文。ICMP报文通常是由IP层本身、上层的传输协议(TCP/UDP等),甚至某些情况下是用户应用触发执行的。请注意, ICMP并不为IP网络提供可靠性,它只是表明了某些类别的故障和配置信息 。最常见的丢包(路由器缓冲区溢出)并不会触发任何的ICMP信息,由其他协议如TCP来处理这种情况。 鉴于ICMP能够影响重要的系统功能操作和获取配置信息,黑客们已经在大量攻击中使用ICMP报文。由于担心这些攻击,网路管理员经常会用防火墙封阻ICMP报文,特别是在边界路由器上。如果ICMP被封锁,大量的诊断程序(例如ping、traceroute)将无法正常工作。 1

图解TCPIP-ICMP

。_饼干妹妹 提交于 2019-12-22 23:23:23
ICMP 1.确认IP包是否成功送达目标地址 2.通知IP包被废弃的具体原因 3.改善网络设置 4.类型(0回送应答echo reply;3目标不可达Destination Unreachable;) 常见类型: 3.Destination Unreachable Message 5.ICMP Redirect Message 路由器发现发送端主机使用了次优路径发送数据,就会返回ICMP重定向(ICMP Redirect Message),包含了最合适的路由信息和源数据 ICMP 超时信息(ICMP Time Exceeded Message) 1.IP包中有一个字段叫TTL(TIme to Live,生存周期),每经过一个路由,就会减1,直到减到0,被丢弃.此时就会发送超时消息. 2.IP生存周期是为了避免IP包发生循环转发的状况 ICMP回送消息 1.判断发送的数据包是否已经成功到大对端一种消息 2.可以发送回送请求消息(ICMP Echo Request Message,类型8) 3.接收(ICMP Echo Reply Message 类型0) 4.Ping命令就是利用此消息实现的 来源: CSDN 作者: Claroja 链接: https://blog.csdn.net/claroja/article/details/103523875

ICMP TYPE CODE

时光怂恿深爱的人放手 提交于 2019-12-21 06:17:19
TYPE CODE Description Query Error 0 0 Echo Reply——回显应答(Ping应答) x 3 0 Network Unreachable——网络不可达 x 3 1 Host Unreachable——主机不可达 x 3 2 Protocol Unreachable——协议不可达 x 3 3 Port Unreachable——端口不可达 x 3 4 Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特 x 3 5 Source routing failed——源站选路失败 x 3 6 Destination network unknown——目的网络未知 x 3 7 Destination host unknown——目的主机未知 x 3 8 Source host isolated (obsolete)——源主机被隔离(作废不用) x 3 9 Destination network administratively prohibited——目的网络被强制禁止 x 3 10 Destination host administratively prohibited——目的主机被强制禁止 x 3 11 Network unreachable for TOS——由于服务类型TOS

ICMP协议详解

坚强是说给别人听的谎言 提交于 2019-12-14 17:22:21
ICMP协议详解 ICMP协议是一个网络层协议。 一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。 所以我们就需要一种协议来完成这样的功能–ICMP协议。 ICMP协议的功能 ICMP协议的功能主要有: 1. 确认IP包是否成功到达目标地址 2. 通知在发送过程中IP包被丢弃的原因 如下图所示: 我们需要注意几点: 1.ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议 2. ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6 ICMP的报文格式 ICMP报文包含在IP数据报中,IP报头在ICMP报文的最前面。一个ICMP报文包括IP报头(至少20字节)、ICMP报头(至少八字节)和ICMP报文(属于ICMP报文的数据部分)。当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。ICMP报头如下图所示。 如下图: 字段说明: 类型 说明 类型 占一字节,标识ICMP报文的类型,从类型值来看ICMP报文可以分为两大类。第一类是取值为1~127的差错报文,第2类是取值128以上的信息报文 代码 占一字节,标识对应ICMP报文的代码。它与类型字段一起共同标识了ICMP报文的详细类型 校验和

LwIP之ICMP协议

随声附和 提交于 2019-12-12 10:03:13
ICMP(网际控制报文协议),ICMP数据包是封装在IP数据包中的,由于IP不是为可靠传输服务设计的,ICMP的目的主要是用于在TCP/IP网络中发送和控制消息。主要应用有Ping、Traceroute和MTU测试。 ICMP报文的种类有三大种类,即ICMP差错报文、控制报文、请求/应答报文,各大类型报文又分为多种类型报文。 差错报文: (1) 特点: 1.ICMP差错报文都是有路由器发送到源主机的。 2.ICMP报文只提供IP数据报的差错报告,并不采取处理措施,差错处理由应用程序处理。 3.传输过程中可能丢失、损坏,甚至被抛弃。 4.ICMP差错报文是伴随着抛弃出错的IP数据报而产生的。 5.为了防止广播风暴,以下情况不会产生ICMP差错报文。 1)ICMP差错报文 2)目的地址是广播或多播 3)链路层广播的数据报 4)不是IP分片的第一片 5)源地址是零地址、回送地址、广播地址或多播地址 (2)信息不可达报文: 1.目的机硬件故障或关机 2.目标地址不存在 3.网关不知道去往目的机的路径 (3)超时报文: 1.为了避免无限制的在网中循环,IP协议采用 1)在数据报头设置TTL域 2)对分片数据报采用定时器技术 2.当报文超时出现时,路由器或目的机立即丢弃该数据报,并向信源机发送超时报文 控制报文: (1)拥塞控制与源站控制报文: 1

iptables网络防火墙和SNAT原理实战

独自空忆成欢 提交于 2019-12-06 20:48:23
网络防火墙 iptables/netfilter网络防火墙: (1) 充当网关 (2) 使用filter表的FORWARD链 注意的问题: (1) 请求-响应报文均会经由FORWARD链,要注意规则的方向性 (2) 如果要启用conntrack机制,建议将双方向的状态为ESTABLISHED的报文直接放行 实战演练: 环境准备: A主机:192.168.37.6(NAT模式,做内网) B主机:192.168.37.7(NAT模式),172.16.0.7(桥接模式)B主机作为防火墙 C主机:172.16.0.17(桥接模式,做外网) (1)在A主机修改IP地址 [root@centos7network-scripts]#cat ifcfg-ens33 DEVICE=ens33 BOOTPROTO=static IPADDR=192.168.37.6 PREFIX=24 GATEWAY=192.168.37.7 ONBOOT=yes (2)修改B主机的NAT模式IP地址配置文件 [root@centos7network-scripts]#cat ifcfg-ens33 DEVICE=ens33 BOOTPROTO=none IPADDR=192.168.37.7 PREFIX=24 ONBOOT=yes GATEWAY=192.168.34.2 DNS1=114.114.114.114

深入浅出网工第二个协议---Internet控制报文协议ICMP

蹲街弑〆低调 提交于 2019-12-06 18:34:40
ICMP简介 ICMP(Internet Control Message Protocol)是网络层的一个重要协议 ICMP的作用:用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用 ICMP协议中用到的报文类型:Echo-Request和Echo-Reply 两种报文 使用的都是单播报文 ICMP错误报告 ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。比如,如果网络中发生了环路,导致报文在网络中循环,最终TTL超时,这种情况下网络设备会发送TTL超时消息给发送端设备。又比如如果目的不可达,则中间的网络设备会发送目的不可达消息给发送端设备。 小结: 注意:ICMP定义了多种消息类型,用于不同的场景 有些消息不需要Code字段来描述具体类型参数,仅用Type字段表示消息类型。 有些ICMP消息使用Type字段定义消息大类,用Code字段表示消息的具体类型。 ICMP重定向 主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,因为此转发路径是更优的路径。所以RTB会向主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文

Linux tee命令使用详解分享

浪尽此生 提交于 2019-12-06 13:51:52
  tee命令主要被用来向standout(标准输出流,通常是命令执行窗口)输出的同时也将内容输出到文件,下面是tee的man 信息   read from standard input and write to standard output and files   下面我们通过几个应用场景来熟悉tee命令。   场景1: 如何使用tee命令(http://jlyy0831.com)   tee命令格式是:   1、tee [OPTION]... [FILE]...   从man文件的定义了解 tee从标准输入流读取数据,所以这里我们使用一个简单的命令产生输出流作为tee的输入流,这里就选用ping命令,   [mysql@localhost ~]$ ping baidu.com   PING baidu.com (220.181.57.216) 56(84) bytes of data.   64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=1 ttl=128 time=30.1 ms   64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=2 ttl=128 time=33.1 ms   64 bytes from 220.181.57.216 (220

网络相关的命令工具研究报告

橙三吉。 提交于 2019-12-05 15:21:08
对于Linux下ifconfig命令的随笔 我们知道,linux下有很多命令,大体上可以分为如下几类: 文件管理 文档编辑 文件传输 磁盘管理 磁盘维护 网络通讯 系统管理 系统设置 备份压缩 设备管理 我们现在具体分析一下网络通讯里头的一个命令:ping。 1.ping命令有什么作用 Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中Ping是一个十分好用的TCP/IP工具。它主要的功能是用来检测网络的连通情况和分析网络速度。 2.ping命令背后的ICMP协议 Linux ping命令用于检测主机。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。所以,在进一步说明ping命令之前,我们不妨先了解下ICMP协议。 2.1为什么会有ICMP协议? 在IP通信中,经常有数据包到达不了对方的情况。原因是,在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个丢弃了。或者,虽然到达了对方,但是由于搞错了端口号,服务器软件可能不能接受它。这时,在错误发生的现场,为了联络而飞过来的信鸽就是ICMP 报文。在IP 网络上,由于数据包被丢弃等原因,为了控制将必要的信息传递给发信方。 ICMP 协议是为了辅助IP 协议,交换各种各样的控制信息而被制造出来的。可以说