1.
准备与安全注意事项
步骤概述:在动手前准备好远程控制手段和变更回滚方案。
- 备份配置:在 /etc/network/interfaces、/etc/netplan、/etc/NetworkManager/system-connections/ 或防火墙配置(iptables/nftables)进行任何改动前,先导出配置文件:cp -a /etc/network/interfaces /root/interfaces.bak。
- 远程控制:确认有控制台访问(IPMI、iLO、VNC 或云服务商控制台),若没有先申请,避免在无控制台的情况下断网导致无法回滚。
- 通知相关方:通知上游ISP及重要客户,并安排维护窗口(如需断网)。
2.
初步诊断:确认故障范围
目的:判断问题是本机、机房、上游还是全球路由问题。
- 本地测试:登录服务器执行 ping -c 4 8.8.8.8(测试外网连通)及 ping -c 4 <本机网关IP>(测试链路)。
- 路由追踪:执行 traceroute -n 8.8.8.8 或 traceroute -n <影响外网目的IP>,观察在哪一跳开始丢包或超时。
- 远端检查:从外部机器(家里电脑或云上其他节点)执行对该原生IP的 ping/traceroute,看是否在互联网可达。
3.
检查网卡与链路状态(Linux 级)
确认物理与驱动层是否正常。
- 查看接口:ip addr show eth0(或替换为实际接口名),确认IP是否存在且状态为 UP。
- 查看路由与网关:ip route show,确认默认路由指向正确网关。
- 接口状态与统计:ethtool eth0 或 ethtool -S eth0 检查链路速度、错误计数与协商信息。
- dmesg/系统日志:dmesg | grep -i eth0 或 journalctl -k | tail,查看是否有驱动/PHY 错误。
4.
ARP、邻居与MAC冲突排查
ARP 问题会导致 IP 无法在二层被正确解析。
- 查看 ARP 表:ip neigh show,找出网关和重要对端的 MAC 是否正确。
- 清除 ARP:sudo ip neigh flush all,然后重新 ping 网关让 ARP 重建。
- MAC 冲突:如果看到别的 MAC 使用本机 IP,马上与机房交换机管理员沟通,可能是虚拟机/容器网络误配置或上游误宣告。
5.
防火墙与安全组检查
本地防火墙或上游ACL可能导致不可达。
- iptables 检查:iptables -L -n -v 或 nft list ruleset,查看是否有 DROP/REJECT 规则影响外界访问。
- 临时放通:为排查,暂时 flush iptables(iptables-save > /root/fw.bak; iptables -F)或放行 ICMP/TCP 端口再测试。
- 云/机房安全组:在控制面板确认是否有安全组/ACL 将流量拒绝。
6.
BGP 与上游路由排查(针对原生IP)
原生IP常由机房通过 BGP 宣告,路由问题需查看全网视角。
- 本地查看路由表:ip route show table main,确认是否接收到正确的 BGP 路由(若使用本地 BGP)。
- 网上查看:使用 RIPE 或其他 Looking Glass(lg.ring.nlnog.net 等)查询目标 IP 的路由是否在全球被宣布。
- 联系上游:如果你的机房不再宣布该前缀,联系机房/上游运营商确认 BGP 会话状态和是否因黑洞/策略下线。
7.
抓包分析:定位丢包与流向
通过 tcpdump 抓包可以看到流量是否到达服务器及回应。
- 抓取 ICMP:tcpdump -i eth0 icmp -n -w /root/icmptest.pcap,同时从外部 ping 本机。
- 分析结果:若服务器看不到外部 ICMP,则问题发生在机房/上游;若看到但外部不看到回应,可能是出站被阻或回复使用了错误源IP/路由。
- 查看 SYN/ACK:对 TCP 服务使用 tcpdump 'tcp port 80' 观察三次握手是否完成。
8.
接口重启与网络服务重启
在确认无其他风险后可做重启操作。
- 临时重启接口:ip link set dev eth0 down;ip link set dev eth0 up。
- 重启网络服务:systemctl restart networking 或 netplan apply 或 nmcli connection reload,视发行版而定。
- 注意:若没有控制台且重启后无法远程,请准备控制台回滚方案。
9.
机房/交换层检查与交换机排障
若服务器接口显示链路但外网不可达,可能交换层问题。
- 请求机房工程师检查光纤/光口与上行设备端口的链路灯与端口统计(show interfaces counters errors)。
- 要求对方在交换机上查看该端口的 MAC 学习、速率与端口安全配置(比如 port-security 或 BPDU guard)。
- 如需,要求交换机重置端口(shutdown/ no shutdown)或替换 SFP、网线。
10.
ISP/上游沟通流程与信息准备
与上游定位问题时,提供标准化信息能加速处理。
- 必备信息:受影响 IP/网段、发生时间、traceroute 输出(带时间戳)、本地接口状态(ip addr/ethtool)、抓包文件。
- 请求内容:确认上游是否有黑洞/ACL/黑名单、是否撤销 BGP 宣告、是否进行了流量清洗。
- 升级流程:如一线无果,要求联系 NOC 或工程师进行更高优先级的排查并告知 SLA 要求。
11.
临时恢复措施与故障切换
在无法快速恢复原生IP时考虑应急方案。
- 临时IP:申请机房或云商的临时 IP/浮动 IP,或使用 NAT 出口将服务临时移至可达 IP。
- DNS 切换:对客户服务可通过降低 DNS TTL 并将域名指向备用 IP 完成快速切换。
- 负载/备份:如果有跨区域备份可切换流量到越南以外的备机。
12.
恢复后检查与预防措施
故障恢复后要做收尾与预防,避免复发。
- 日志归档:保存故障期间的所有抓包、traceroute 与 syslog,写成 RCA(Root Cause Analysis)。
- 自动报警:配置基于 ping/traceroute 的外部监控(如 Zabbix、Prometheus + Blackbox)并设置告警阈值。
- 路由与备份:与机房协商多上游或不同物理链路备份,考虑 BGP 多宿或使用 Anycast/浮动 IP 方案。
13.
常见问答 1
问题:我的越南服务器原生IP无法被外网访问,但本机能 ping 通网关,这种情况如何定位?
回答:这通常说明二层到网关链路正常但上游路由或过滤有问题。先在服务器上抓包(tcpdump)确认外部包是否到达,再用 traceroute 从外部和内部分别追踪。如果服务器看不到外部 ICMP,问题在机房或上游;若看到外部包但回复在外部不可见,检查路由表、源地址策略、防火墙及上游是否对你的前缀做了黑洞或 ACL。
14.
常见问答 2
问题:怀疑是 BGP 宣告问题,如何快速确认越南机房是否仍在宣布我的前缀?
回答:使用公开 Looking Glass(如 RIPE、Hurricane Electric Looking Glass)查询你的前缀的 route 查看是否被全球路由器接受。示例:在 HE LG 搜索你的前缀,查看 AS PATH 和下一跳。如果大多数 LG 都没有该前缀,说明是机房/上游没有宣告或被下线,需要联系 NOC 检查 BGP 会话与路由策略。
15.
常见问答 3
问题:短时间内频繁出现原生IP不可达,应如何长期防范?
回答:建议建立多层防护:1) 与不同上游建立 BGP 多宿或使用浮动 IP;2) 部署外部监控并自动告警;3) 与机房约定紧急响应流程和SLA;4) 定期测试路由和链路冗余演练;5) 在服务层面准备热备或跨区灾备以保证业务连续性。
来源:越南服务器原生ip故障排查与恢复操作手册