ICMP/ARP协议解析及ARP欺骗

网络 网络管理
ICMP是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。

ICMP

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

ICMP协议的功能只要有:

  • 确认IP包是否到达目标地址
  • 通知在发送过程中IP包被丢弃的原因

ICMP的报文分为两类,一类是ICMP询问报文;一类是ICMP差错报告报文

ICMP/ARP协议解析及ARP欺骗

常见ICMP类型

不发送ICMP差错报文的情况:

  • 对于第一个ip分片后的所有ip分片报文不发送ICMP差错报文
  • 对具有组播地址的数据报不发送ICMP报文
  • 对具有特殊地址(127.0.0.0或0.0.0.0)不发送ICMP差错报文

ICMP 协议多应用在 ping 和 tracert 命令:

  • ping 命令使用 ICMP 回送请求和应答报文:在网络可达性测试中使用的分组网间探测命令 ping 能产生 ICMP 回送请求和应答报文。目的主机收到 ICMP 回送请求报文后立刻回送应答报文,若源主机能收到 ICMP 回送应答报文,则说明到达该主机的网络正常。
  • 路由分析诊断 tracert 使用了 ICMP时间超过报文:tracert 命令主要用来显示数据包到达目的主机所经过的路径。通过执行一个 tracert 到对方主机的命令,返回数据包到达目的主机所经历的路径详细信息,并显示每个路径所消耗的时间。

举个例子:

ICMP/ARP协议解析及ARP欺骗

ICMP Destination Unreachalbe

看下回送请求和回送应答的报文

ICMP/ARP协议解析及ARP欺骗

icmp request

ICMP/ARP协议解析及ARP欺骗

icmp reply

ARP协议

地址解析协议(Address Resolution Protocol),只要通过目标设备的IP地址,查询目标设备的MAC地址。

通信过程:

  • 主机A要和主机B进行通信,首先要知道主机B的mac地址,所以会发送ARP广播
  • 其他主机收到后,发现找的不是自己,就会丢弃
  • 主机B拆包后,发现找的是自己,会进行单播回应,并记录在自己的ARP缓存表中

ICMP/ARP协议解析及ARP欺骗

ARP解析

ICMP/ARP协议解析及ARP欺骗

ARP表

代理ARP

代理ARP一般就是通过网关设备,使用自己的 MAC 地址来对另一设备的ARP请求作出应答。

为什么需要代理ARP?

先要了解,路由器的重要功能之一就是隔离广播域,阻止广播包扩散,否则会造成网络风暴。

ARP请求是个广播包,如果目标地址在同一个局域网内,就会收到应答。但是如果目标地址不在同一个局域网,该如何处理?路由器就提供了代理ARP解决这个问题。

ICMP/ARP协议解析及ARP欺骗

代理ARP

两台主机PC1和PC2,PC1发送ARP请求PC2的MAC地址时,由于路由器不转发广播包,ARP请求只能到达路由器。如果路由器启用了代理ARP功能,并知道PC2属于它连接的网络,那么路由器就用自己接口的MAC地址代替PC2的MAC地址来对主机PC1进行ARP应答。

RARP协议

反向地址转换协议(Reverse Address Resolution Protocol)允许局域网的物理机器从网关服务器的ARP表或者缓存上请求其 IP 地址。即:根据其MAC地址寻找IP地址。

ICMP/ARP协议解析及ARP欺骗

RARP

免费ARP

在获取或变更IP地址时,向外发出一个ARP,但请求的目标IP为本地。

一个主机可以通过它来确定另一个主机是否设置了相同的 IP地址。正常情况下发送免费ARP请求不会收到ARP应答,如果收到了一个ARP应答,则说明网络中存在与本机相同的IP地址的主机,发生了地址冲突。

ARP欺骗

通过广播向局域网的其他主机广播一个伪造的网关MAC地址和IP地址对应表,局域网其他主机收到这个伪造的信息之后就会更新自己的ARP表。这样,当这些主机向外发送报文时,虽然会根据正确的网关的IP地址发包,但实际上却发送到了一个错误的MAC地址上,导致数据包无法发送出去,从而出现无法上网等情况。

可以通过设置静态的MAC->IP对应表,不再接收广播收到的ARP信息。

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2013-04-01 10:12:39

2011-04-06 10:23:46

2013-09-17 09:08:07

ARP欺骗IP

2009-06-29 17:49:48

2010-07-06 16:22:01

2010-06-28 16:12:43

ARP协议

2010-06-12 17:33:31

2012-12-13 10:34:35

ARP欺骗

2009-07-13 11:47:58

2010-06-09 15:30:51

2010-09-16 16:06:37

2010-09-16 15:39:18

2013-09-18 09:27:57

2011-04-06 10:31:53

2010-06-21 17:51:53

Linux Arp命令

2011-04-06 10:36:21

2010-06-17 17:57:32

ARP协议

2010-09-07 10:44:14

2009-01-11 10:30:00

2009-12-17 10:14:14

点赞
收藏

51CTO技术栈公众号