常见网络故障及排查思路和方法论
2024-10-13 21:12:21 11 举报
AI智能生成
总结了常见网络故障现象及问题排查思路和方法论,不定期进行更新。如有建议可在评论区留言。 【另外,初始价格50元,后续每被克隆5次,价格上调10元。】
作者其他创作
大纲/内容
发现网络故障
ping 失败
Ping IP 失败
Ping 同一网段的IP地址,如网关不通
ping 命令后的地址填写错误
本地未配置IP地址
该目标地址实际不存在
MAC地址冲突
IP地址冲突
现象:ping丢包 50% 左右,即隔一个包就丢一个
Windows 自带或第三方防火墙没关闭
网络环路/广播风暴
现象1:相关网络设备的CPU负载接近满载
现象2:MAC地址漂移现象
……
Ping 不同网段的IP地址不通
网关没设置
安全策略相关因素
复杂的网络中间有很多安全设备,有种安全策略就是允许用指定的DNS服务器才允许访问网络。
有的服务器/PC/安全设备禁止回复 ICMP Ping echo 报文,导致看起来ping 不通
处理方法:,使用nMAP,mobaxterm等扫描工具、Telnet XX端口或TCP-ping 工具软件tcping64.exe http://blog.51cto.com/wujianwei/2274120
案例1:局域网A ping B 能通,B ping A 不通
A可能禁ping或开启防火墙软件,Windows自带防火墙,特别是windows.在A上查看ARP table,确认是否显示B的MAC地址
非连续网络问题
比如安装KVM后服务器生成192.168.122.X/24 网络。此时办公网络也是192.168.122.X/24网络 , 这2个网络之间还有有个192.168.200.X/24 网络,即服务器的外网网络。 最终导致从办公网络ping不通服务外网地址。
VPN 。不同分公司的局域网LAN 网关都是192.168.1.1 ,造成无法互通
IP或MAC地址冲突
网络环路/广播风暴
现象1:相关网络设备的CPU负载接近满载
传输路径上有节点缺少指向该IP的静态路由
……
Ping 域名www.baidu.com 失败
未设置有效的DNS服务器 cat /etc/resolv.conf
目标网站挂了或拼写错误域名
Ping丢包
Ping 同一网段的IP地址后丢包
丢包很有规律,比如50%丢包
IP地址冲突
Linux 服务器上ip addr 命令查看RX/TX有丢包 (或命令 ifconfig -a -s)
网卡故障
中间链路引起的丢包
中间链路(网线/光纤/无线链路存在物理问题)或节点的物理故障
被中间节点安全策略拦截
拥塞触发了交换机QoS策略后被丢包
查看QoS流量统计信息
inbound = outbuond ,则说明该设备上未发生丢包。eg :华为交换机命令(如果存在多个接口则要人工累加计算):
display traffic policy statistics interface gigabitethernet 0/0/2 inbound verbose rule-base
display traffic policy statistics interface gigabitethernet 0/0/2 outbound verbose rule-base
(用ACL 关联了ICMP流量,所以该命令统计的是ICMP)
display traffic policy statistics interface gigabitethernet 0/0/2 inbound verbose rule-base
display traffic policy statistics interface gigabitethernet 0/0/2 outbound verbose rule-base
(用ACL 关联了ICMP流量,所以该命令统计的是ICMP)
inbound ≠ outbound ,则说明该设备上发生丢包 。
-m参数设置在短时间内连续发出大量Ping报文,依据这种现象可以推测可能是ICMP报文限速导致的Ping丢包。
<SwitchB> display current-configuration | include icmp rate-limit
icmp rate-limit enable
icmp rate-limit total threshold 10 #该命令限制每秒只能处理10个ping 包,超过的则被丢弃
<SwitchB> display current-configuration | include icmp rate-limit
icmp rate-limit enable
icmp rate-limit total threshold 10 #该命令限制每秒只能处理10个ping 包,超过的则被丢弃
流量过大/遭到网络攻击 ,超过QoS 策略中的CAR值的流量被丢弃
思科交换机
Router1#show interface Serial0/0/0
Input queue: 76/75/5553/0 (size/max/drops/flushes); Total output drops: 1760
Queueing strategy: weighted fair
Output queue: 0/1000/64/0 (size/max total/threshold/drops)
接口 ethernet0/0 的输入队列中存在 76 个数据包。队列深度是 75 个数据包,自上次清除接口计数器以来,已发生了 5553 次丢弃事件
Input queue: 76/75/5553/0 (size/max/drops/flushes); Total output drops: 1760
Queueing strategy: weighted fair
Output queue: 0/1000/64/0 (size/max total/threshold/drops)
接口 ethernet0/0 的输入队列中存在 76 个数据包。队列深度是 75 个数据包,自上次清除接口计数器以来,已发生了 5553 次丢弃事件
注意别看错输出和输入队列
如果输出队列一直是满的,并且,如果根本没有从该接口发送出任何数据包,您必须检查接口上是否存在硬件故障。
Accton AOS 交换机
Vty-0#show interfaces counters
0 Discard Input
0 Discard Output
0 Discard Input
0 Discard Output
端口的出方向配置限速或者整形发送的流量超过限速或者整形的阈值
查看QoS CAR阈值
多个端口向一个端口发送流量流量叠加之和超过发送端口的带宽
存在突发网络流量。在某个时刻端口流量超过端口的带宽。
高速率端口向低速率端口发送流量流量超过低速率端口的带宽
比如40G 上行口接收到发往某10G
高负荷运转引起丢包
CPU、内存、硬盘、网卡接近满载
云网络/Linux内核丢包
高层应用服务不可用
浏览器不可访问网页
需检查DNS设置
SSH连接问题
openssh-server 服务没安装或禁止root远程访问
Ping的延时相关问题
微软psping64工具可用于帮助测量和统计延时
影响延时的因素
路由跳数
报文经过的路由跳数多导致延时高
网络流量
网络带宽不够 -> 拥塞 -> 响应延迟
流量过大时,某些网络设备处理内存不够
安全策略
设备为了防止网络中常见的Ping攻击对设备造成影响,将ICMP报文的处理优先级降到最低,ICMP报文传送和处理都排在最后,所以延时就比较大
CPU转发
流量上送SDN控制器
举例: 未匹配交换机本地流表的数据会封装到Openflow Packer-in消息中,交给ONOS 控制器/CPU处理转发,导致Spine-leaf内部转发延时大于1ms 。如果是ASIC转发,延时一般小于1ms
过多中间节点进行了分片
使用Ping测量网络延时有以下几个注意点:
- 对于延迟测试,指定源地址和出接口测试结果更加准确。
- 通过Ping获取的延迟时间是报文发送和报文接收的总时间,单向的网络延时是总时间的一半。
- 通过Ping结果,能够发现网络有很大的抖动,这种抖动是由于设备的控制模块处理接收和发送报文需要时间导致的。这些抖动不会影响到设备的业务转发,所以不需要担心。
- 当网络中有大量的协议报文或者数据报文在处理时,Ping报文需要和其他报文共享资源,此时会引入更大的延迟,甚至会导致Ping丢包。
- 如果测量多跳的网络时,需要注意一下负载均衡。不同的路径得到的网络延迟会不一样。
- 延迟以毫秒(ms)为单位,小于1ms的时仍然显示为1ms。
性能问题的相关举例
TCP的性能问题
微软psping64工具可用于测量和统计延时
影响TCP性能的协议因素:
(1)TCP连接建立握手
(2)TCP慢启动拥塞控制;
(3)数据聚集的Nagle算法;
(4)用于捎带确认的TCP延迟确认机制。
(5)TIME_WAIT时延和端口耗尽。
1、2可通过长连接避免,3可使用TCP_NODELAY避免,4可通过调整内核栈参数避免,但调整需谨慎,5通常只在性能测试环境出现。
其中最后一个TIME_WAIT是TCP协议中特有的因素,主动正常关闭连接的一方都会出现这个状态,
(1)TCP连接建立握手
(2)TCP慢启动拥塞控制;
(3)数据聚集的Nagle算法;
(4)用于捎带确认的TCP延迟确认机制。
(5)TIME_WAIT时延和端口耗尽。
1、2可通过长连接避免,3可使用TCP_NODELAY避免,4可通过调整内核栈参数避免,但调整需谨慎,5通常只在性能测试环境出现。
其中最后一个TIME_WAIT是TCP协议中特有的因素,主动正常关闭连接的一方都会出现这个状态,
UDP的性能问题
丢包导致整个UDP 段重传
RDMA性能变低
丢包引起 。相关参数设置需要优化等
测网络吞吐性能
用iperf/netperf工具进行测量
注意检查有没有被限速(QoS)
打开网页变很慢
网络拥塞。可能原因:有人开BT下载、看视频等。
QoS策略将低优先级流量丢弃
转至上方的"查看QoS流量统计信息"
网络性能基准测试
Flent
特殊的 Ping 回显
DUP
在Ping的回显信息中如果出现(DUP!)时,表示设备收到了序列号相同的Echo Reply报文。出现这种现象说明当前网络环境有问题,需要检查网络环境,比如重复IP地址,网卡重复发包等。
当路由器接收到一个超过其外出链路MTU大小且设置了DF位
- 对于IPv4数据报,它将产生一个ICMPv4“destination unreachable,fragmentation needed but DF bit set”(目的不可到达,需分片但DF位已设置)的出错消息。
- IPv6路由器不执行分片,每个IPv6数据报于是隐含一个DF位。当IPv6路由器接收到一个超过其外出链路MTU大小的IPv6数据报时,它将产生一个ICMPv6 “packet too big”的出错消息。
- IPv4的DF位和IPv6隐含DF位可用于路径MTU发现。
定位故障/分析故障
定位故障(网络中断、丢包等)影响范围
- 全网性网络故障:可定位故障源在出口或核心区域;
- 小范围网络故障:可定位故障源在离故障源最近的相应设备或链路;
- 单点性网络故障:可定位故障源在故障源自身。
分段定位法
从PC到网关
- 从用户端PC到接入交换机
- 从接入交换机到汇聚层交换机
- 从汇聚层交换机到核心交换机
- 从核心交换机到防火墙
- 从防火墙到路由器
- 从路由器到出口网关
从网关到PC
从网关到运营商
PC直连运营商线路进行ping
设备替换法
换PC/VM、网线、接入交换机、核心交换机、网关
要判断网络的故障点,首先就要了解整个详细的网络拓扑图
定位故障是TCP/IP的哪一层问题
从顶向下逐层排查
应用层 -> 物理层
……
从底向上逐层排查
物理层 -> 应用层
物理层故障举例
PC/服务器网卡物理故障或驱动是否安装成功
查看帧校验是否有报错 / FCS errors / CRC errors / Linux Tx/Rx errors
网络设备接口有问题
AOS交换机License 到期,大部分端口会物理down
网线/光纤跳线相关
简易光纤故障判断步骤
1. 测试光功率是否在指标要求范围之内,如果出现无光或者光功率小的现象。处理方法:
A. 检查光功率选择的波长和测量单位(dBm)
B. 清洁光纤联结器端面,光模组光口。
C. 检查光纤联结器端面是否发黑和划伤,光纤联结器是否存在折断,更换光纤联结器做互换性试验
D. 检查光纤联结器是否存在小的弯折。
E. 热插拔光模组可以重新插拔测试。
F. 同一埠更换光模组或者同一光模组更换埠测试。
B. 清洁光纤联结器端面,光模组光口。
C. 检查光纤联结器端面是否发黑和划伤,光纤联结器是否存在折断,更换光纤联结器做互换性试验
D. 检查光纤联结器是否存在小的弯折。
E. 热插拔光模组可以重新插拔测试。
F. 同一埠更换光模组或者同一光模组更换埠测试。
2. 光功率正常但是链路无法通,检查link灯。
Link 灯亮
线缆可能插到错误的物理端口或设备了
特别是防火墙等安全设备,存在多个WAN/LAN口
Link 灯不亮
光纤Rx/Tx插反了,将光纤收发调换一下再插
可能光纤弯曲度过大或断裂
将怀疑有问题的线缆用2台PC或服务器直连ping测试
AOS 交换机可以查看统计信息ES-3052G-1#show interfaces counters ethernet 1/48
3. 检查线缆是否有问题
光纤过长或出现破损
查看帧校验是否有报错 / FCS errors
根据相关标准:网线最长100米,多模光纤OM4最长550百米,OM2最长85米 (万兆传输)
重新拔插线缆(光纤链路不建议多次拔插,光纤可以通过肉眼看到可见光,但有失明风险,不要使用该方法,尽量使用测试仪器,比如光功率计)
检查网络设备的端口是否被人为关闭
简易网线故障判断步骤
检查link灯状态
Link 灯亮
金黄色千兆,暗黄色百兆
Link 灯不亮
很可能是线缆没插好或没插到noshutdown 的port
用测线仪测试网线。没有测线仪则目视检查水晶头中压线质量
网线过长或出现破损
见下方“网络设备的端口被关闭”
检查网线和强电电缆是否近距离并行
查看数据校验是否有报错 / FCS errors / CRC errors / Linux Tx/Rx errors
网络设备的端口被关闭
PC:网卡被禁用
交换机:端口状态 admin down /shutdown
光模块不被识别
换为兼容该交换机的光模块
更换新的线缆后再看故障是否仍然存在
更换端口拔插确认是否是线缆问题。
线缆接头接触不良或松脱
光模块异常/使用不当
查看光模块诊断信息DDM
如激光器温度是否在正常范围
两端光模块收发光功率是否过低、尾纤质量问题 或链路过长
即使在有保护套的情况下也要注意光纤不能过度弯曲和环绕。 不仅容易损坏,更重要的是会增加光传输的衰减情况
用红光笔、ODTR等检测跳线是否断裂
连接头有灰尘或污损
检测光纤连接器端面污染时选择光纤显微镜
用无水酒精/无尘棉 清洁
该厂商的光模块有识别码( 比如华为华三 ),不兼容其它厂商的交换机,交换机此时端口状态为 down
同一根光纤2端光模块必须来自相同厂商。但即使相同厂商都不一定兼容:中兴光模块在一台交换机上自环为up,但仍然不通
可以使用DOC/AOC cable
单模光纤错用了多模光模块,或多模光纤错用的单模模块(还有波长参数也要一致)
混用造成光模块诊断信息DDM可能不准,如光功率不精确.
单模光纤颜色多为黄色,连接头多为蓝色或绿色,适用波长为1310nm/1550nm
多模颜色OM1 OM2多为橙色、OM3 OM4多为水蓝色,连接头多位灰白色,适用波长为850nm/1310nm
COMBO 光电复用口模式设置不正确
注意Combo光口和Combo电口不能同时工作
千兆电口模块速率不会自适应为百兆
设备异常或掉电
(注意指示灯可能还是正常亮的)
①查看状态灯,包括 电源指示灯、状态灯、报警灯、风扇灯等;
②感知设备的温度,检查设备是否温度过高。
①查看状态灯,包括 电源指示灯、状态灯、报警灯、风扇灯等;
②感知设备的温度,检查设备是否温度过高。
重启大法
eg.企业小机房内,服务器无法开机,是服务器故障了吗?检查发现机柜三个PDU中的一个上游供电接口松动
机房跳闸或停电
造成大范围网络故障
UPS或备用电源没有起作用
机房物理环境异常
①温度要求:15℃~30℃
②相对湿度要求:40%~65%
③洁净度要求: ≤ 1.3×105 (灰尘粒子直径≥5μm)
④抗干扰要求:远离强功率高频大电流设备
⑤交流电源要求:100-240V~/50-60Hz
⑥设备之间保持良好通风闪热
②相对湿度要求:40%~65%
③洁净度要求: ≤ 1.3×105 (灰尘粒子直径≥5μm)
④抗干扰要求:远离强功率高频大电流设备
⑤交流电源要求:100-240V~/50-60Hz
⑥设备之间保持良好通风闪热
运营商光缆被挖断
造成大范围网络故障
用PC直连运营商入户线路进行测试
数据链路层举例
MAC地址冲突
交换机端口line protocol is down / oper down
由于速率\双工不匹配
异厂家对接甚至会出现双工或速率自动协商失败,导致接口物理down 。出现这种情况要手工配置为全双工和速率
STP block 了端口
STP检测到环路禁用端口
VLAN ID/Access/Trunk 配置错误
eg:同网段但被划分在不同VLAN
未给vlan interface 分配端口,会让该port status=up, protocol=down
ARP相关的问题
设备认为遭到大量ARP报文攻击,上送CPU的ARP报文数超过CPCAR值,导致部分ARP报文被丢弃,Ping丢包。
设备配置了ARP安全功能,如ARP Miss的源抑制、ARP速率抑制等,会导致ARP学习很慢,Ping丢包。
存在错误的静态ARP表项。原因有:链路刚断开一会 ;或网段存在冲突,导致没获取到IP地址对应的mac ;也可能是有部分设备的ARP代理功能被关闭;防arp flood 的安全策略阻止了arp或arp-proxy 报文 ;因为有环形线路,arp-proxy 延时较大,将正确的mac表项覆盖……
Windows: arp -a -v ,错误状态的表项被标记为 “无效”
Linux 或交换机: 能看到INCOMPLETE 的arp表项。 arp -a -n
发生二层环路/广播风暴
现象举例:交换机端口指示灯一起同步闪烁;PC ping外网丢包极其严重;PC上网特别慢甚至无法上网;无法登录设备或登陆后特别慢:某些接口统计信息中组播、广播的比例特别高 ;在MAC表看到mac 地址偏移现象 …… (匹配异常现象数量越多,则网络中存在二层环路可能性越大。)
排除方法:通过关闭端口寻找照成环路的网线或者端口;或在交换机查看mac address table ,确认某个MAC 地址从多个端口出现进行确认
原因很多:蠕虫病毒、交换机端口故障、网卡故障、链路冗余而没有启用生成树协议(STP)、网线线序错误等
解决方法:通过开启生成树来解决该问题,特别是虚拟机、云化环境
链路MTU 相关
帧的长度>接口MTU,交换机直接丢弃!且不告诉源主机吧?这种情况最难以排查,如果traceroute
可以看到端对端是通的,而发送UDP数据或ping 大包就是会失败。 pathMTU发现
可以看到端对端是通的,而发送UDP数据或ping 大包就是会失败。 pathMTU发现
vxlan 场景
- 如果中间路径MTU不好改(比如有运营商设备) ,那么改本地网卡MTU1450
在DC中,可设置为9K MTU和jumbo帧传输
中间节点改了默认MTU, 源节点关闭PMTUD ,再加上特殊的ACL和备份链路导致中间节点分片后的2部分发送到不同链路上,数据包最终无法重组被丢弃 。
解决方法:
打开源节点路径MTU探测;
靠近源节点的路由器的TCP的SYN 报文的MSS 调小,让TCP报文可通信
将所有路由器MTU调大,但是运营商的路由器不会让你改的
打开源节点路径MTU探测;
靠近源节点的路由器的TCP的SYN 报文的MSS 调小,让TCP报文可通信
将所有路由器MTU调大,但是运营商的路由器不会让你改的
虚拟机拥有公网IP后, 编译ONOS时下载buck 的包无法下载,下载的数据为0。
将公网IP 所在网卡MTU 从1500-> 1450 ,就可以下载了。
网络层故障举例
针对Openstack 虚拟机
缺少安全组规则
缺少floating IP
未配置路由器网关接口
针对VMware Station虚拟机ping不通外面,注意是桥接网络或NAT网络设置
编辑-网络编辑器 中手动选择网卡、重置网络 。 仍然无法解决则关闭VM后重启物理机
参见“发现网络故障”
单双工、速率不匹配
网线质量差或PC网卡故障,造成一端不能达到千兆
电口协商不一致,如一端自协商一端非自协商
光模块(包括电口模块)不会自适应速率,必须手动配置速率
OF-DPA系统的交换机插电口模块时需要手动配置
/etc/accton/ofdpa.conf, 把要1G的port ,设置成1000 : port_speed_1=1000
常用网络排错工具
详见下方“网络TS工具”
DHCP 相关的问题
DHCP 服务器不可达
DHCP服务器和PC不在一个网段时,未对PC所在VLAN开启DHCP-relay
配置不正确
ACL 白名单中增加DHCP允许规则
DHCP中继和DHCP服务器之间不能否配置NAT功能
ICMP问题常见故障现象:
Ping设备时,一旦Ping速度比较快就会丢包,速度慢下来就不会丢包。
Ping大包时出现规律性丢包。
Ping设备时,会出现Ping通几个报文后Ping不通,大约两分钟左右又可以Ping通,Ping通几个报文后又Ping不通。
Ping设备时,一旦Ping速度比较快就会丢包,速度慢下来就不会丢包。
Ping大包时出现规律性丢包。
Ping设备时,会出现Ping通几个报文后Ping不通,大约两分钟左右又可以Ping通,Ping通几个报文后又Ping不通。
主要原因:
设备受到ICMP报文攻击,上送CPU的ICMP报文数超过CPCAR值,导致部分ICMP报文被丢弃,Ping丢包。
设备配置ICMP攻击防护功能,超过大小限制的ICMP报文被丢弃,Ping丢包。
设备配置ICMP限速功能,超过速度限制的ICMP报文被丢弃,Ping丢包。
设备受到ICMP报文攻击,上送CPU的ICMP报文数超过CPCAR值,导致部分ICMP报文被丢弃,Ping丢包。
设备配置ICMP攻击防护功能,超过大小限制的ICMP报文被丢弃,Ping丢包。
设备配置ICMP限速功能,超过速度限制的ICMP报文被丢弃,Ping丢包。
NAT 相关问题
IPsec AH无法穿越NAT 。传输模式下的ESP可以穿越NAT
端口回流问题: 能ping通 但http无法访问 http://blog.51cto.com/melodyyayun/956326
IPv6 相关问题
每当路由器或接口卡被替换时,一 定要记得修改参考旧路由器 EUI-64 格式 IPv6地址的路由表项
传输层故障举例
TCP 会话的滑动窗口忽大忽小导致丢包或TCP性能低下
1G/10G混合组网时:多个Gb --> 10G 总速度为正常,但是10G --> Gb 的总速率就极低
流控flow control 机制 802.3X -> PFC
MTU 导致TCP分片
用户在使用路由器访问Internet时,经常会反馈不能访问网页(或部分网页)以及使用Outlook收发邮件(这些应用是基于TCP或UDP的),但进行Ping包时没有问题,这时候检查配置时也没有错误。
NAT 支持IP分段,但不支持TCP分段。
考虑最常用的NAPT模式,当NAT网关收到Server端发来的IP分片时,由于只有第一个TCP分片中包含传输层信息(端口,协议等),后续的TCP分片到NAT网关时,NAT网关将无法直接根据本分片信息还原出原来的内网IP,需要NAT特殊处理甚至重组分片(虚拟重组,真正的重组是在Client上进行的),这无疑对时延和带宽是有影响的。笔者遇到过公网上手机FTP性能测试,TCP分片穿越NAT的场景和不分片穿越NAT场景FTP速率近10倍的差距。
考虑最常用的NAPT模式,当NAT网关收到Server端发来的IP分片时,由于只有第一个TCP分片中包含传输层信息(端口,协议等),后续的TCP分片到NAT网关时,NAT网关将无法直接根据本分片信息还原出原来的内网IP,需要NAT特殊处理甚至重组分片(虚拟重组,真正的重组是在Client上进行的),这无疑对时延和带宽是有影响的。笔者遇到过公网上手机FTP性能测试,TCP分片穿越NAT的场景和不分片穿越NAT场景FTP速率近10倍的差距。
NAT 穿越技术
应用层网关(ALG)
中间件技术 ,eg :UPnP技术
所以通常不要设置过大的MSS 以避免NAT对性能造成影响
TCP/IP连接时建立的过程中会协商很多参数的,其中TCP MSS参数就是用于协商TCP报文大小的,如果协商出来的TCP MSS的参数值小于设备的MTU-40的值时,TCP报文在设备上就不会被分片,否则就会出现报文分片并导致上述现象的发生,因此,为了避免上述情况的发生,一定要保证协商的TCP MSS参数小于设备的MTU的值。为此,思科,华为等路由器上有一个设置TCP MSS值的命令,eg:思科的ip tcp adjust-mss 1300
Cisco 官方扩展阅读:解决 GRE 和 Ipsec 中的 IP
分段、MTU、MSS 和 PMTUD 问题
分段、MTU、MSS 和 PMTUD 问题
网络层 DF bit 被设置。 则不管ping 大包还是TCP大包都会失败
源主机的目的地主机的PMTUD 被关闭
如果MTU主动探测机制PMTUD被关闭,则中间节点不是默认MTU的话就会导致故障 。比如有GRE隧道,IPsec 隧道的情况,或者人为修改中间节点MTU
对于UDP协议而言,UDP本身是无连接的协议,对数据包的到达顺序以及是否正确到达不甚关心,所以一般UDP应用对分片没有特殊要求。
对于TCP协议而言就不一样了,这个协议是面向连接的协议,对于TCP协议而言它非常在意数据包的到达顺序以及是否传输中有错误发生。所以有些特殊TCP应用对分片有要求---IP 包首部开启 分片位(DF bit)。这就要求探测出路径MTU ,然后令MSS=MTU-40
对于TCP协议而言就不一样了,这个协议是面向连接的协议,对于TCP协议而言它非常在意数据包的到达顺序以及是否传输中有错误发生。所以有些特殊TCP应用对分片有要求---IP 包首部开启 分片位(DF bit)。这就要求探测出路径MTU ,然后令MSS=MTU-40
MTU=1500.
计算MSS需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460
计算MSS需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460
分片和丢包影响UDP
为了纠正网络问题,有时候需要重新配置网卡的默认IP包大小。经常会发生路由的最大IP包大小比网卡的小。TCP协议可以自适应,但是UDP协议不行(会导致分片丢包,然后重传)。所以NFS over UDP特别要注意设置MTU的大小。可以用命令*tracepath*来看网络上的MTU值,用ifconfig命令来看网卡的MTU值,要使两者匹配。(大部分网络都是1500,除非设置了支持大包)时,IP包在用UDP协议传输时会分片。大量IP包分片会消耗网络两端大量的CPU资源,而且还会导致网络通信更不稳定(因为完整的RPC在UDP分片的任何一个包丢失时都得整个RPC重传)。
一般来说,路由器的接口缓冲区的大小有一个经验法则(rule-of-thumb):B = C * RTT,C是链路速率,RTT是平均报文往返之间。这个经验法则的主要目的是最大化TCP效率,最大化网络接口带宽利用率。
最近的一些研究认为(sizing router buffers, Guido Appenzler, Isaac Keslassy, Nick McKeown),其实路由器不需要那么大的内存,每个端口只需要缓冲几十个报文就足够了,这样用NP或ASIC内嵌的RAM就够了,不用配置外部RAM。他主要依据是以前的经验法则是根据单TCP流来推算的,有研究者认为之前模型不对,实际的骨干路由器上是有很多TCP流的,因此应该按照 B = C * RTT / sqrt(N)来计算,N是TCP流数量。但是另外一些研究则认为这个结论不对,路由器上不能只考虑TCP,还有很多急于 UDP的语音和视频应用。反正在教授们之间,这个问题至今仍然没有一致的意见。工程师已经不再争论这个问题了,就按照B = C * RTT来设计,成本可以接受,而且也比较安全。
MTU=40 Bytes+MSS
以太网 MTU 一般为1500 Bytes,MSS一般为1460 Bytes;
以太网 MTU 一般为1500 Bytes,MSS一般为1460 Bytes;
TCP连接闪断,不排除是中间节点故障。
查看TCP连接断开的状态
如果连接已经建立
time wait
本地主动断开
time closed
对方断开
如果连接未建立
查看网络层、链路层等底层是否有故障。比如在服务器或交换机配置镜像口抓包
应用层故障解决
应用层服务如Web服务器、邮件服务器、ssh 服务器、Samba 服务器等连不上。
telnet 可以很快缩小问题的范围。
查看TCP连接的状态
Linux 系统的 software update 服务使用apt update 方式更新了该服务,但某些服务不会自动启动
eg. docker 容器异常全部挂掉。因为dockerd 被更新了
配置问题
最近有无更改配置?
最近是否停电或设备掉电
设备上之前的配置未保存,在来电重启后配置自然丢失
检查配置
缺少配置IP,网关,DNS,静态或缺省路由等
配置错误上述内容。要检查本地配置,中间节点配置和目的节点的配置
网络TS工具
ping 的使用
用ping检查连通的步骤:
- ipconfig/all ,查看本地网络设置
- ping 127.0.0.1 ,查看本地TCPIP是否设置正确
- ping 本机IP, 查看本地的IP地址设置是否正确
- ping 本网网关或本网IP地址,为了检查硬件设备,
- ping本地DNS
- ping远程IP地址
目标路由不可达(Destination Unreachable)
路由问题。 可能需要在本地增加缺省路由
ACL只放行SSH流量。本地开debug后能看到(源节点发administratively prohibited unreachable)
解决方案是在 access-list 命令中添加以下行:Router4(config)#access-list 100 permit icmp any any
请求超时(Request time out)
中间节点的接口/设备down
缺少回程路由。数据是双向的,要关注流量的往返。需要在远端终点和中间节点检查是否有节点缺少指向源IP的回程路由
中间节点缺少目标路由。路由器的行为是逐跳的,沿着到目标网络的路径,每个路由器都必须有指向目标的路由
当节点递归查找路由表时,被递归出来的下一跳也要存在于路由表
查看arp 条目是否带incomplete 失败标记
Vlan tag 不一致被丢弃而失败.
ARP 代理未正常工作
该失败条目中的 IP 地址配错了
……
ARP 代理未正常工作
该失败条目中的 IP 地址配错了
……
Telnet
加上端口号。端口可由namp等扫描工具获取
Ping的通但是web、ssh 、kvm等应用服务连上,但有无法登上服务器去查看时 ,可用telnet 命令加上该服务的端口号,缩小故障范围
Error 1 - 连接挂起:
telnet samba.example.com 445
Trying 172.31.25.31...
telnet samba.example.com 445
Trying 172.31.25.31...
两个可能的原因:
- 你和服务器之间有个路由器宕掉了。
- 防火墙拦截了你的请求。
Error 2 - DNS 问题
telnet samba.example.com 445
Server lookup failure: samba.example.com:445, Name or service not known
Server lookup failure: samba.example.com:445, Name or service not known
Error 3 - 服务器没有侦听端口:
telnet samba.example.com 445
Trying 172.31.25.31...
telnet: Unable to connect to remote host: Connection refused
telnet samba.example.com 445
Trying 172.31.25.31...
telnet: Unable to connect to remote host: Connection refused
- 你确定连接的是正确的服务器?
- 你的应用服务器没有侦听预期的端口。在服务器上运行 netstat -plunt 来查看它究竟在干什么并看哪个端口才是对的。
- 应用服务器没有开机或服务没有运行。这经常发生在你启动应用服务器之后。在服务器运行 ps auxf 来查看服务
Error 4 - 连接被服务器关闭:
telnet samba.example.com 445
Trying 172.31.25.31...
Connected to samba.example.com.
Escape character is '^]'.
Connection closed by foreign host.
telnet samba.example.com 445
Trying 172.31.25.31...
Connected to samba.example.com.
Escape character is '^]'.
Connection closed by foreign host.
这种错误发生在连接成功建立但是应用服务器建立的安全措施一连上就将其结束。
最后一行 Connection closed by foreign host. 意味着连接被服务器主动终止。
为了修复这个问题,需要查看应用服务器的安全设置确认你的 IP 或用户允许连接。
最后一行 Connection closed by foreign host. 意味着连接被服务器主动终止。
为了修复这个问题,需要查看应用服务器的安全设置确认你的 IP 或用户允许连接。
成功的 telnet 连接示例 :
telnet samba.example.com 445
Trying 172.31.25.31...
Connected to samba.example.com.
Escape character is '^]'.
Trying 172.31.25.31...
Connected to samba.example.com.
Escape character is '^]'.
Wireshark
图形化显示,可读性更好
使用 wireshark 查看Tcpdump命令输出的详细内容:
# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
Windows
arp -a , arp -a -v , 查看arp 条目是否带incomplete 失败标记
Tcping64.exe Psping64.exe工具
ipconfig /all !查看网卡信息
ipconfig /release !网卡信息复位
ipconfig /renew !重获取IP地址(DHCP环境下)
ipconfig /flushdns !刷新DNS缓存
ipconfig /release !网卡信息复位
ipconfig /renew !重获取IP地址(DHCP环境下)
ipconfig /flushdns !刷新DNS缓存
Route print
Mobaxterm 内置节点和端口扫描工具
arp –a !查看ARP信息 (PC上查看IP-MAC绑定信息是否跳动变化,若是的话则是ARP攻击-有伪造相同的MAC地址冲突)
arp -d !重置网卡ARP信息
arp -d !重置网卡ARP信息
tracert/mtr/traceroute
mtr有图形化界面
tracert , traceroute 特别适合有多个gateway 时排障,比如有VPN gateway
nmap,mobaxterm等扫描工具
用 NMAP 探测操作系统版本、MAC/IP信息、TCP/UDP端口
Tcpdump
抓0~ 任意大小的包(否则默认抓是大于64KB的包)
tcpdump -s 0
tcpdump -s 0
网络设备
Debug 命令 (可能导致高 cpu 使用率。这可能
导致严重的性能下降或网络中断。不要打开调试功能超过 5 到 10 秒)
导致严重的性能下降或网络中断。不要打开调试功能超过 5 到 10 秒)
debug ip packet detail
观察ICMP code
tracepath 路径MTU探测工具
tracepath baidu.com
Linux服务器网络故障案例
安装KVM后生成virbr0网卡 ,详见最上方“发现网络故障”--“非连续网络问题 ”
iptables 防火墙
Linux 常用工具软件
netstat
REDHAT :查看进程号所占用的端口号:netstat –nltp|grep 进程pid
ubuntu:查看进程占用端口号:netstat -anp|grep pid
ubuntu:查看进程占用端口号:netstat -anp|grep pid
lsof
Linux下查看某端口号所归属的进程: lsof –i:端口号
ss
套接字信息查询
ss -ltn 查看当前打开状态的tcp sockets 连接
排障小结:检查IP地址、掩码、网关、缺省路由、DNS设置
小结:
针对物理链路故障,故障的解决的办法一般是更换物理器件,器件更换后故障即可恢复。查看网络统计信息有无error或丢包
数据链路层故障,常用排查手段是检查ARP表,MAC表
网络层故障,常用排查手段是检查路由表
最近有无更改配置,有无断电重启?
0 条评论
下一页