丢包是网络中最常见的问题,也是网工最会遇到的问题,下面我从多维度介绍常见丢包问题点及检查办法。
一、丢包检查步骤:
1、确认丢包行为
2、检查丢包位置
3、查找丢包问题
简单判别办法:我们多次去ping目的网段及周围的多个网段,我们还可以带着源地址去ping,如是一种流量丢包,比如带源地址去ping就丢包,那么大概率是有路由策略,或者策略路由。如果是都丢包,那可能性很多,物理层,数据链路层,2.5层,网络层,传输层,应用层,安全等等。
二、丢包检查办法
1、使用ping/tracert等简单命令去检查
2、流量统计
display traffic-statistics ip source X.X.X.X destination X.X.X.X
如果中间有多个节点,也可以使用MQC去逐一配置,以确保能够准确定位问题。
三、可能导致丢包的问题
1、物理层面
设备有没有开启?
模块(或接口灯)是否在闪?
光衰是否达标?(可用命令看 display transceiver interface 接口 verbose查看)主要查看返回值中的Current Rx Power(dBM):一般来说,-20\~-30dBm是一个常见的接收功率范围。如果实际测量的Current Rx Power(dBM)值超出正常范围,可能是由于多种原因造成的,例如:对端端口的发光功率低、端口问题、光纤被折等。
网线是否超长?
cpu,内存使用率是否超高?(华为可用命令display cpu-usage查看交换机的CPU使用率,?display memory-usage查看交换机的内存使用情况和利用率。
2、数据链路层
大部分数据链路层都可以通过CRC(循环冗余校验错)检查。
在接口视图下执行命令display this,检查设置的错误报文告警阈值是否过低。
常见的CRC故障:
物理层故障:这可能导致帧的尺寸小于64个字节,并且出现CRC错误,导致产生残帧。
双工模式不匹配:设备可能工作在半双工或全双工模式,如果模式不匹配,可能会导致CRC错误。
?链路的使用率过高:当链路的使用率过高时,可能会导致数据传输过程中的错误,从而引发CRC错误。
主机NIC故障:如果主机的网络接口卡(NIC)出现故障,可能会导致帧的尺寸超过正常范围(如大于1518个字节),从而引发超长帧错误。
stp 是否正确?是否有没配置STP造成的广播风暴,配置了STP的是否因为新加交换机造成根变动导致接口阻塞。
汇聚跟接入的端口是否频繁up/down?然后导致一直在发送?tc,导致端口一直在discarding状态。
3、2.5层
arp是否正常?如果网络设备端口故障、设备过载等,可能会导致ARP代理丢包。网络中是否存在大量的ARP请求或响应,导致网络拥堵,网络中是否存在ARP欺骗攻击也可能导致ARP代理丢包。
MPLS是否有问题?标签分配问题也可能导致丢包。如果路由器无法正确地为数据包分配标签,可能会导致数据包在传输过程中被错误地处理,从而导致丢包。在MPLS网络中,如果队列管理不当,可能会导致数据包的延迟或丢包。例如,如果路由器中的队列已满,新的数据包可能会被丢弃。
4、网络层(此项因为涉及面较广,只提供思路)
来回路径是否一致?大部分防火墙有首包检测,来回路径不一致会导致丢包。可以尝试开启防火墙的回话同步,避免这个问题。
浮动静态路由是否正常?特别是浮动静态路由中间采用了光端机的情况,非常容易导致丢包(例如一端光端机损坏)。
双点双向引入是否正确?特别针对ISIS对OSPF的双点双向,会有大量的问题,检查tag等配置是否正确是关键点
MTU是否一致?MTU也是常见导致丢包的情况,查看两端MTU是否一致。
是否因vrrp主备切换导致?设备配置错误、地址冲突问题、出口频繁切换、网络收敛问题都会造成丢包,需一一检查。
5、传输层
是否存在tcp全局同步?
是否存在tcp流量饿死?
是否存在ddos攻击?
6、应用层
考虑应用软件导致的丢包
如果觉得对您有用,还望给个赞,您的赞是我持续写作的动力!也欢迎私信交流。