ICMP协议和Tracert工作原理

本文详细介绍了ICMP协议在网络诊断中的应用,如ping和traceroute的工作原理,以及其在网络安全中的角色,包括常见的ICMP网络攻击及其防范策略。

ICMP协议

使用基于 ICMP 协议来实现的命令 ping,traceroute 来判断网络是否连通。

ICMP是 Internet Control Message Protocol 的缩写,即互联网控制消息协议。它用于 TCP/IP 网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,使网络管理者可以对所发生的问题作出诊断,然后采取适当的措施解决问题。

虽然 ICMP 是网络层协议,但是它不像 IP 协议和 ARP 协议一样直接传递给数据链路层,而是先封装成 IP 数据包然后再传递给数据链路层。所以在 IP 数据包中如果协议类型字段的值是 1 的话,就表示 IP 数据是 ICMP 报文。IP 数据包就是靠这个协议类型字段来区分不同的数据包的。

ICMP报文格式

1、ICMP报文的前4个字节是统一的格式,共有三个字段:即类型,代码和检验和

2、ICMP所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。其它字段都ICMP报文类型不同而不同。

3、8位类型和8位代码字段一起决定了ICMP报文的类型

Tracert工作原理:

1.首先tracert送出3个TTL是1的IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1,此时TTL等于0.

2. 所以该路由器会将此数据包丢掉,并送回一个ICMP time exceeded消息(TTL超时消息),里面包括发IP包的源地址,IP包的所有内容及路由器的IP地址

3. tracert 收到这个消息后,便知道这个路由器存在于这个路径上,接着tracert 再送出另一个TTL是2 的数据包,发现第2 个路由器.....以此类推

4. 当数据包到达目的地后,该主机则不会送回ICMP time exceeded消息

5. 一旦到达目的地,由于tracert通过UDP数据包向不常见端口(30000以上)发送数据包,因此会收到「ICMP port unreachable」消息,故可判断到达目的地。

Tracert每次发送三个数据包的原因是为了避免有时候网络不稳定而造成的丢包,所以发送三个,为了保证数据包能够正常到达。


ICMP网络攻击

ICMP消息最初开发出来是为了管理IP网络,经常被网络管理员用作网络故障诊断工具。然而,如今ICMP消息被滥用,甚至被用作网络攻击。出于网络安全考虑或其他需要,需要执行一定的过滤策略让它变得安全一些。大部分ICMP需要被丢弃,也有小部分ICMP消息对于网络正常工作是很关键的,必须被允许通过。本章介绍常见的ICMP消息名及对应的消息类型和消息码,常被用作网络攻击的有哪些ICMP消息,以及如何通过ACL防止这类攻击。

ICMP Echo和Echo reply类型消息在Dos攻击中经常被用到。攻击者向目标设备长时间、连续、大量地发送ICMP echo,对方收到后会回应一个echo-reply。大量的ICMP数据包会形成“ICMP风暴”或称为“ICMP洪流”,使得目标设备耗费大量的CPU资源,疲于奔命。这种攻击被称为拒绝服务(DoS)攻击。

但这两类消息也是很重要的,例如网络管理员经常用于检测网络可达性的ping命令。Ping的原理就是ICMP Echo报文的发送和Echo reply报文的回复。因此,需要确保有限数量的这些消息通过ACL。此时,可配置ACL规则控制Echo和Echo reply消息的传播范围,并对ICMP包进行带宽限制(或限制ICMP包的数量),控制其在一定的范围内。

Redirect

基于重定向(redirect)的路由欺骗技术:攻击者通过模拟路由器地址,发送ICMP REDIRECT报文给目标主机,主机的缺省网关可能被改变,被置为攻击者的地址,导致信息流全部丢失或者都经过攻击者能控制的网关,从而形成攻击。

避免ICMP重定向欺骗的最简单方法是将设备配置成不处理ICMP重定向消息。

Unreachable

攻击者模拟给特定路由器持续发送网络上某主机/端口/网段不可达的ICMP报文,通过路由器将无法访问这个主机/端口/网段,仿佛这个主机/端口/网段被从网络上“摘除”一样。

避免ICMP不可达攻击的最简单方法是将设备配置成不处理ICMP不可达消息。

TTL-exceeded

源端发送IP报文时,TTL被设置为某个值。在网络传输过程中,每经过一跳,TTL减1。如果某个网络节点收到TTL=0的数据包时,会丢弃该数据包并回应ICMP的TTL-Exceeded消息给源端。

攻击者通过发送大量数据包,这些数据包的TTL在目标设备将被减为0,使得目标设备疲于回应ICMP的TTL-Exceeded消息给源端,最终导致目标设备瘫痪。

Request

一般黑客在入侵之前,要先对目标主机进行详尽的分析,找出主机可以利用的安全漏洞或弱点,然后乘虚而入。利用ICMP各类Request消息可以搜集目标主机的信息。

例如,入侵者对某一个IP地址,或网段范围内执行一轮自动Ping(发送ICMP Echo Request报文),以确定目标系统是否存在。

再如,入侵者向目的系统发送Timestamp-request报文,请求返回目的系统的日期和时间。可以获得目标系统所在的时区

    尽管讲解概念如果同学们是初初相识,真有点晦涩难懂,本人讲解概念的同时,尽量结合实操来讲,这样即加固了概念,同时让同学不会感觉到太烦闷,其实对这些重要基础概念的理解,正是学习过《计算机网络原理》,与直接上手做事的人的区别所在。     古人云,腹有诗书气自华,只要先搞懂了原理,学有所成,今后别人讨论网络底层问题的时候,才能够抑扬顿挫底气十足,不怯场!# 网络层首部     初探十二段内容介绍     ipv4ipv6 版本号表示;首部长度     区分服务,给数据包添加标识 QoS     总长度 Total Length;标识Identification;标志Flags     生存时间 TTL     协议号;首部校验     实训抓包验证诸项内容# ICMP 差错报告报文格式     数据包类型(详解列表:类型值代码)     TTL耗尽报告-1     主机不可到达(Destination unreachable)-2     路由重定向(Redirect)-3     给应用程序返回差错报告-4     实例讲解:使用ping命令测试网络判断出问题范围     跟踪数据包路径主要命令介绍:tracertpathping# ARP 协议     arp 协议本网段与跨网段的工作原理     arp 欺骗的两个目的,阻断连接或截获数据包     arp 欺骗的工作原理阐述,创建阻断连接的实验环境     arp 欺骗演示工具,网络执法官     arp 欺骗防止或阻止措施:         手工绑定两端通信主机的mac地址 -a         同时修改mac地址ip地址;安装运行wireshark工具 -b         在路由器中绑定通信主机mac地址 -c# 搭建流媒体服务     提供点对点服务:采用TCP协议,而非IGMP协议     提供多播视频:根据多播地址切换频道(IGMP协议-UDP)     根据多播IP地址,参照预定规则,合成多播MAC地址     阐述IGMP跨网段运行方式,与创建跨网段环境     启用多播路由:实现流媒体跨网段转发视频,同时抓包查看ICMP数据包特性# 习题详解    网络协议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值