目录
一、网络层的功能
二、IP数据包格式
IP数据包格式(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分)
版本号(4):指IP协议版本。并且通信双方使用的版本必须一致,目前我们使用的是IPv4,表示为0100
首部长度(4):IP数据包的包头长度+
优先级与服务类型(8):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现 QoS(服务质量)的要求。
注:定义IP数据包是否优先传送
总长度(16):定义IP数据包的总长度,最长为 65535 字节,包括包头和数据。
注: iP头部数据段可能20字节也有可能多总长度加上数据段长度,最长为 65535 字节
标识符(16):该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包
标志(3):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出
段偏移量(13):在一个分片序列中如何将各分片连接起来,按什么顺序连接起来
TTL生命周期(8):可以防止一个数据包在网络中无限循环的转发下去,每经过一个路由器-1,当TTL的值为0时,该数据包将被丢弃
协议号(8):封装的上层哪个协议,ICMP:1 TCP:6 UDP:17
首部校验和(16):这个字段只检验数据报的首部,不包括数据部分。这是因为数据报没经过一次路由器,都要重新计算一下首部校验和(因为一些字段如生存时间、标志、片偏移等可能发生变化)
源地址(32):源IP地址,表示发送端的IP地址
目标地址(32):目标IP地址,表示接收端的IP地址
可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据
注:根据实际情况可变长
三、ICMP协议
1.功能
作为网络管理员,必须知道网络设备之间的连接状况,因此就需要有一种机制来侦测或
通知网络设备之间可能发生的各种各样的情况,这就是 ICMP 协议的作用。ICMP 协议
(Internet Control Message Protocol)的全称是“Internet 控制消息协议”,主要用于在
IP 网络中发送控制消息,提供可能发生在通信环境中的各种问题的反馈。通过这些反馈信
息管理员就可以对所发生的问题做出判断,然后采取适当的措施去解决。
ICMP报文有两种类型:差错报告报文和查询报文。
2.ICMP协议的封装
四、Ping命令
1.基本用法
ping <目标 IP 地址或域名>
2.常见选项
3.Ping不通的几种情况
1、当主机有一个默认网关时,如果他ping其他网段的地址,到不了的话,显示的是request timeout(此时他把icmp包发给网关,至于后面的事他就不管,如果没有包回应,就显示request timeout)
2、当一个主机没有默认网关时或者配置了网关但是和网关不通时,如果他ping其他网段的地址,显示的是Destination host unreachable(此时他发送arp请求包请求网关的mac地址)
3、当一个路由器ping他路由表中没有的地址时,显示的是request timeout(此时不发任何包)
4、当路由器ping一个路由表中存在地址时,如果没有回应,则显示的也是 reuqest timeout (此时发送arp请求包,请求目标IP的mac地址)
**PING**:这是命令的开始,后面跟着目标地址。
**64 bytes from ...**:这是从目标主机返回的响应,包括数据包的大小和来源地址。
**icmp_seq=X**:这是发送的数据包的序列号(从 1 开始)。
**ttl=Y**:这是 Time To Live(TTL)值,表示数据包在达到目标之前可以经过的路由器数量。
**time=Z ms**:这是数据包往返的时间(以毫秒为单位)。
**statistics**:这是命令结束时显示的总统计信息,包括发送和接收的数据包数量、丢失的数据包数量、平均往返时间等。
注意:
tracert命令:
在命令行中输入“tracert ”并在后面加入一个IP地址,可以查询从本机到该IP地址所在的电脑要经过的路由器及其IP地址
Linux:traceroute IP/域名
五、ARP协议概述
1.定义
ARP协议即地址解析协议,是TCP/IP协议族中的一个重要协议。它的主要功能是根据目标设备的IP地址查询对应的物理地址(MAC地址),以确保数据在局域网内能够准确传输到目标设备。
2.工作原理
工作原理(结合交换机原理)
1、两台局域网主机互相通信为例讲解原理
ARP解析过程
(1)当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2匹配的MAC地址
(2)如果PC1缓存中没有找到响应的条目,它将询问主机PC2的MAC地址,从而将ARP请求帧广播到本地网络的所有主机。该帧中包括源主机PC1的IP、MAC地址,本地网络中的所有主机都接收到ARP请求,并且检查是否与自己的IP地址相匹配。如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。
(3)主机PC2确定ARP请求中得IP地址与自己的IP地址匹配,则将主机PC1的地址和MAC地址添加到本地缓存表中。
(4)主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(数据帧为单播)。
(5)主机PC1收到PC2发挥的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,默认ARP缓存表有效期120s。当超过该有效期后,则将重复上面过程。主机PC2的MAC地址一旦确定,主机PC1就能向主机PC2发送IP信息
通俗易懂的例子:
想你有一个朋友,你知道他的名字(这可以看作是IP地址),但你不知道他的电话号码(这可以看作是MAC地址)。
如果你想给他打电话,你需要知道他的电话号码。但是,你手上没有他的电话号码,只有他的名字。
这时候,你可以问你的朋友圈或者其他人:“请问有谁知道[朋友的名字]的电话号码是多少?”这就是ARP协议在计算机网络中所做的事情。
在计算机网络中,每台设备都有一个IP地址和一个MAC地址。当一台设备想要与另一台设备通信时,它知道目标设备的IP地址,但不知道目标设备的MAC地址。
这时,它会向网络中的其他设备发送一个ARP请求,询问:“请问有谁知道IP地址为[目标IP]的设备的MAC地址是多少?”
网络中的其他设备会检查自己的ARP缓存表(这是一个存储IP地址和对应MAC地址的表),看看是否有这个IP地址的记录。如果有,它会直接回复这个请求,告诉请求者目标设备的MAC地址。
如果没有设备在ARP缓存表中找到这个IP地址的记录,那么请求会被广播到整个网络。网络中的每一台设备都会收到这个请求,但只有目标设备会回复这个请求,告诉请求者自己的MAC地址。
一旦请求者收到了目标设备的MAC地址,它就会把这个MAC地址存入自己的ARP缓存表中,以便下次通信时直接使用。同时,它也会使用这个MAC地址来构建数据包,并发送给目标设备。
所以,简单来说,ARP协议就像是一个电话簿查询系统,帮助我们找到目标设备的MAC地址,从而实现网络通信。
ARP协议(Address Resolution Protocol)确实是通过广播来查询目标主机的MAC地址的。下面我用一个通俗易懂的方式来解释这个过程:
在局域网中,当一台设备电脑A想要和另一台设备电脑B通信时,它知道电脑B的IP地址,但不知道电脑B的MAC地址(每台网络设备在数据链路层都有一个唯一的MAC地址)。
为了获取这个MAC地址,电脑A会向整个局域网发送一个广播消息,这个消息就叫做ARP请求。这个ARP请求的内容大致是:“请问IP地址为XXX.XXX.XXX.XXX(电脑B的IP地址)的设备的MAC地址是多少?”
局域网中的所有设备都会收到这个广播消息,但是只有知道电脑B的MAC地址的设备(或者更确切地说,是电脑B自己)会回应这个请求。电脑B会发送一个ARP响应给电脑A,告诉它自己的MAC地址是什么。
当电脑A收到这个ARP响应后,它就知道了电脑B的MAC地址,然后它就可以使用这个MAC地址来构建数据包,并发送给电脑B了。
同时,电脑A还会把这个IP地址和MAC地址的对应关系保存在自己的ARP缓存表中,以便下次通信时直接使用,而不需要再次发送ARP请求。
所以,简单来说,ARP协议就是通过广播的方式来查询目标主机的MAC地址,从而实现了网络通信中IP地址到MAC地址的解析。
3.Windows系统中的ARP命令
arp -a ###查看arp缓存表
arp -d [IP] ###删除arp缓存表
arp -s IP MAC ###删除arp静态绑定
六、ARP攻击原理
攻击者会伪造ARP数据包,向局域网内的其他设备发送虚假的ARP响应。这些ARP响应中包含的信息可能是:
攻击者将自己的MAC地址与网关的IP地址绑定,使得其他设备在发送数据时,都将数据发送给攻击者,而不是真正的网关。
攻击者将其他设备的MAC地址与错误的IP地址绑定,导致这些设备无法正常通信。
七、ARP欺骗原理
监听ARP请求:
攻击者首先监听网络中的ARP请求,获取目标IP地址和相对应的MAC地址信息
伪造ARP响应:
当攻击者监听到ARP请求后,它会伪造一个ARP响应。在这个伪造的ARP响应中,攻击者会将自己的MAC地址作为响应的目标MAC地址,并将请求中的IP地址作为响应的源IP地址。这样,当其他设备收到这个伪造的ARP响应时,它们就会错误地认为攻击者的MAC地址是目标IP地址对应的MAC地址。
截获或篡改通信数据:
由于设备将数据包发送到攻击者的MAC地址,攻击者就可以截获这些数据包,并进行分析、篡改或转发等操作。攻击者还可以利用ARP欺骗进行中间人攻击(Man-in-the-Middle Attack),进一步窃取敏感信息或进行其他恶意操作。
八、ARP故障处理
故障判断
1.检查设备IP和网关:
打开命令提示符,输入ipconfig,查看当前设备的IP地址和网关地址
2.网络连通性测试:
打开两个命令提示符窗口
在一个窗口中输入ping 网关IP-t,进行网络 连通性检测
如果出现连续3个以上的“请求超时”或“Request time out”,则可能存在ARP问题
3.查看ARP缓存
在另一个命令提示符窗口中输入arp-a,查看ARP缓存信息
检查网关对应的条目是否存在,以及物理地址是否一致
故障原因
1.ARP欺骗:攻击者发送伪造的ARP应答报文,导致目标主机发送的信息无法到达预期的主机或到达错误的主机
2.ARP表顶数量过大:静态ARP和动态ARP表项数量超过设备处理能力,可能导致ARP学习失败或网络性能下降
3.ARP广播功能未使能:在子接口下未使能ARP广播功能,可能导致ARP学习失败
4.ARP请求报文被丢弃:对方设备可能由于攻击、限速机制等原因丢弃ARP请求报文
故障处理
1.检查ARP广播功能:确保子接口下已使能ARP广播功能
2.检查ARP表顶数量:执行 display arp statistics all 命令查看ARP表项统计信息,排查ARP攻击或网络用户过多导致的ARP表项数量异常
3.提高ARP学习速度:如果现网用户较多,ARP表项数量超过500条属于正常现象,可以通过执行相关命令提高ARP学习的速度
4.防御ARP欺骗:使用ARP绑定技术(如静态ARP绑定、动态ARP绑定等)来防止ARP欺骗攻击
5.网络优化和监控:使用网络优化工具对网络进行监控和管理,及时发现并解决ARP故障
总结
ARP故障分析涉及对故障现象的识别、故障原因的判断以及故障处理措施的采取。通过合理的故障判断和处理步骤,可以有效解决ARP故障,保障网络的稳定运行。