1.
初步收集与判断(接到告警后的第一分钟内)
- 目的:确认故障范围与影响面,避免盲目改动。
- 步骤:1) 确认告警内容(哪些IP/哪个机房/哪些服务不可达)。2) 用本地或监控节点执行 ping -c 5 <目标IP> 与 traceroute -n <目标IP> 记录结果。3) 登录监控系统查看流量、丢包率、带宽突变与告警时间线。4) 标注是否为全网不可达还是部分路径问题。
2.
检查本地与服务器端网络状态
- 目的:排除宿主/节点本地配置或链路异常。
- 步骤:1) 登录受影响服务器,执行 ip addr show / ip link show / ethtool eth0 检查接口状态与错误统计。2) ip route show 与 ip route get <目标IP> 确认路由条目与下一跳。3) netstat -rn 或 ip route 查看默认网关。4) ss -tanp 或 netstat -anp 确认服务端口是否正常监听。
3.
链路层与邻居检查(ARP、MAC、MTU)
- 目的:发现二层问题如ARP冲突、MAC漂移或MTU导致分片。
- 步骤:1) arp -n / ip neigh show 查看邻居状态,若为 STALE/FAILED 使用 ip neigh flush dev eth0 或 ip neigh replace。2) 检查交换机端口与VLAN配置(联系机房工程师)。3) ping 使用不同大小包测试 MTU:ping -M do -s 1472 <目标IP>。
4.
使用 traceroute/mtr 定位网络跳点
- 目的:找出丢包或延迟突增的跃点。
- 步骤:1) traceroute -n <目标IP> / mtr -r -c 100 <目标IP>,保存输出。2) 对多个源点(机房不同机柜或外部测试节点)重复,以确认是否为特定上游或地理路径问题。3) 若中途某跳丢包严重,记录该IP与AS号。
5.
抓包并分析流量(tcpdump/tshark)
- 目的:确认是否有异常包、RST、ICMP不可达或被防火墙丢弃。
- 步骤:1) 在问题服务器上运行 tcpdump -i eth0 host <目标IP> and port 80 -w /tmp/cap.pcap(或只抓ICMP/TCP)。2) 本地或使用tshark/wireshark分析,查看是否有RST/ICMP type3/TTL expired。3) 检查是否存在黑洞中间路由器返回 ICMP unreachable。
6.
检查主机防火墙与安全策略(iptables/nftables/安全组)
- 目的:排除本机或上层ACL阻断。
- 步骤:1) iptables -L -v -n 或 nft list ruleset,查看是否有意外DROP规则。2) 若使用云或机房安全组,登录控制台复核入/出规则。3) 临时允许全部相关流量(在维护窗口)以判断是否规则导致故障。
7.
路由与BGP状态检查(适用于原生IP使用BGP的情况)
- 目的:确认前缀是否被正确宣布与传播。
- 步骤:1) 在路由器或BGP守护进程运行 show ip bgp summary / vtysh -c 'show ip bgp' 查看邻居状态。2) 使用公共BGP查看器(bgp.he.net、RIPE RIS)查询前缀可见性。3) 若BGP邻居不在,重启BGP会话或联系上游ISP获取日志并请求reset或soft reset。
8.
联系上游/机房并提交证据(工单模板与关键数据)
- 目的:与运营商协作解决链路或中间路由问题。
- 步骤:1) 准备:影响前缀列表、故障时间、traceroute/mtr输出、tcpdump样本、BGP邻居状态。2) 在工单中清晰说明是否需要清ARP、检查交换机转发表、重启对端接口或BGP reset。3) 要求上游提供链路侧错误计数、光口报警与BGP日志。
9.
快速恢复措施(在无法短时间修复时的应对)
- 目的:尽量恢复访问与业务连续性。
- 步骤:1) 启用备用出口:从另一个POP或备用ISP重新宣布前缀(BGP announce from backup)或切换到备用IP。2) 使用NAT临时将流量通过工作正常的出网口转发(iptables DNAT/SNAT),并做好会话迁移说明。3) 调整负载均衡,将流量切到健康节点。
10.
永久修复与验证
- 目的:解决根因并验证恢复效果。
- 步骤:1) 根据上游反馈修复链路或交换配置、消除BGP不稳定、修正ACL。2) 重启相关网络服务或设备,执行多点ping/traceroute与外部视角验证(使用多个独立检测点)。3) 持续观察至少24小时,确认丢包/延迟回归正常。
11.
日志归档与事后分析(避免同类故障)
- 目的:沉淀经验,制定防范措施。
- 步骤:1) 保存所有抓包、traceroute、BGP输出与工单记录到故障库。2) 编写故障报告:原因、恢复过程、耗时、改进措施(例如冗余链路、监控告警调整、BGP社区配置)。3) 实施改进并在非生产时窗进行验证。
12.
常用命令与检查清单(便于复制粘贴执行)
- 快速参考:ping -c 5 IP;traceroute -n IP;mtr -r -c 100 IP;tcpdump -i eth0 host IP -w /tmp/cap.pcap;ip addr show;ip route get IP;ip neigh show;vtysh -c 'show ip bgp summary'。
- 建议:将这些命令放入运维知识库与脚本,以便一键采集故障证据。
13.
问:当BGP可见但用户仍无法访问时我该如何排查?
答:先用 traceroute/mtr 确认到达哪个跃点丢包,再在受影响主机做 tcpdump 抓包查看是否有 ICMP unreachable 或 TCP RST;排除本机防火墙与应用监听问题;如跳点在上游,提交包含 traceroute 与抓包的证据给上游请求检查交换/光口。
14.
问:如何在不影响生产的情况下做临时绕行?
答:可通过两种方式:1) 在 BGP 层从备用 POP 宣告前缀并适当调低本地优先级;2) 使用机房内 NAT/SNAT 将出口流量经健康出口转发(短期方案),注意会话与源地址变化对业务的影响并提前通知。
15.
问:提交给机房/上游工单需要提供哪些关键信息?
答:必须包含:受影响 IP/前缀、故障开始时间、traceroute/mtr 输出、抓包样本(pcap)、本端接口与路由表、BGP 邻居状态与 dumps,以及期望的检查项(例如清ARP、检查对端接口、BGP reset)。
来源:故障处理韩国站群原生IP出现网络故障时的排查流程与恢复方案