常见故障包括丢包、高延迟、链路抖动、BGP路由不收敛、接口错误以及物理问题(光纤/光模块)。初步排障流程建议采用“外部到内部、网络层到链路层”的思路:
首先核对承运商状态公告、工单与维护窗口;使用承运商Looking Glass或NOC上报信息确认是否为链路侧故障。
执行
检查接口统计(errors, drops, CRC)、光模块收发功率、SFP型号与MTU设置;同时查看队列/丢包(txdrop/rxdrop)与QoS策略是否触发。
定位丢包/抖动需要结合主动探测与被动采样:主动探测用MTR/ICMP/UDP/TCP探针,被动采样用sFlow/tcpdump和设备接口计数。
长时间运行MTR并导出CSV,观察丢包是否集中在某一跳;使用大小不同的ICMP包(-s)判断是否为MTU导致的碎片丢包。
在怀疑的设备上用tcpdump抓取有问题时间段流量,分析重传、RST、重复ACK等TCP特征以判断是拥塞还是硬件问题。
通常延迟波动(抖动)>10ms且丢包率>0.5%应触发告警;逐跳丢包出现在内部跃点则优先排查内部交换/队列策略。
工具组合建议:采集与可视化分别采用Prometheus+Grafana或Zabbix/LibreNMS,主动测试可用ThousandEyes或自建探针,告警与日志用ELK/Graylog。
必须监控:延迟(RTT)、丢包率、抖动、链路利用率、接口错误(CRC/Frame/Discard)、BGP会话状态与路由前缀数量。
在多可用区放置探针进行对等测量(从不同AS和PoP探测到目标),通过合成交易(synthetic)检测应用层感知的网络质量。
设置分级告警(info/warn/critical),对短时抖动做抑制避免告警风暴;对BGP flaps使用阈值+持续时间判定。
BGP问题诊断要查看会话(state)、路由接收/发布的属性,并分析路由决策。常用命令:show bgp summary、show ip bgp
确认BGP会话为Established;查看AS path、MED、local-preference、community,确认路由是否被本地策略过滤或打标签(community)影响。
临时利用prefix-list/route-map调整local-pref或做社区标记实验,观察路由执行路径变化;在非高峰进行路由撤销或黑洞测试时要谨慎。
使用公有Looking Glass与路由监察工具检测是否存在路由泄露或AS路径异常;对疑似泄露的前缀可申请承运商帮助过滤或公告。
自动化与流程化并重:自动化用于快速恢复(自动重启、切换链路、调整route-preference),流程化用于人工核验与升级(runbook、告警分级)。
实现脚本化的健康检查与自愈动作:当检测到接口错误或BGP邻居down时,自动收集日志、抓包并触发临时路由策略(BGP prepend或优先走备用链路)。
告警要包含上下文(相关接口、历史波动、影响范围)并做去噪(抑制短时抖动);使用自动聚合减少重复告警并提供一次性诊断报告。
建立详细的runbook与SOP,定期演练灾难恢复与切换流程;集成告警至协作平台(Slack/Teams)并配合On-call轮班减少响应时间。