计算机网络问答 03:生产排障、性能与架构取舍
041 DNS 记录已经修改,但部分用户仍访问旧 IP,应该怎么排查?
难度: 实战
查看参考答案
结论: 先确认权威数据,再沿递归器、本地缓存、应用缓存和连接复用逐层查找旧值来源。
原因: 权威更新不会主动清除已缓存答案,客户端还可能复用到旧 IP 的持久连接或经过 CDN。
边界: 不同地区和运营商的递归器状态不同,强制刷新本机不能代表所有用户;回滚也要考虑同样传播延迟。
排查或示例: 从受影响客户端记录递归器、查询结果、TTL、连接远端 IP 和响应边缘节点,再决定等待、失效或回滚。
042 域名解析正确但 TCP 连接超时,下一步如何定位?
难度: 实战
查看参考答案
结论: 把问题限定在目标地址选择、路由、防火墙、NAT、监听和返回路径,使用双端证据判断 SYN 停在哪一段。
原因: 解析只提供地址,不保证该地址可达;超时通常表示未收到 SYN-ACK 或 RST,可能是静默丢弃。
边界: 客户端超时不能单独证明服务端未监听,非对称路由、安全组和中间 ACL 都可能丢弃报文。
排查或示例: 客户端抓包确认 SYN,服务端抓包确认是否到达,再检查监听 Socket、防火墙计数器和回程路由。
043 connection refused 和 connection timeout 通常分别意味着什么?
难度: 实战
查看参考答案
结论: refused 常表示目标明确返回 RST 或拒绝,timeout 则表示在期限内没有得到期望响应。
原因: 端口未监听时主机常回 RST;防火墙静默丢弃、路由黑洞和回包丢失更容易表现为超时。
边界: 代理、负载均衡和不同操作系统可能返回不同错误,错误文本只是线索而非最终根因。
排查或示例: 结合抓包区分 RST、ICMP 不可达和重复 SYN,并核对返回报文来自真实目标还是中间设备。
044 服务器 ping 不通但 HTTPS 正常,是否矛盾?
难度: 实战
查看参考答案
结论: 不矛盾,ICMP Echo 和 TCP 443 可以应用不同安全策略、限速和路径。
原因: ping 测试的是 ICMP 控制报文,HTTPS 依赖传输连接、TLS 和 HTTP,它们的协议与端口完全不同。
边界: 反过来 ping 成功也不能证明 HTTPS 正常;监控系统应直接探测业务协议而不是只探测 ICMP。
排查或示例: 分别记录 ping、TCP connect、TLS handshake 和 HTTP 状态,便可证明是哪一层允许或失败。
045 只有部分客户端出现 TLS 证书错误,可能有哪些原因?
难度: 实战
查看参考答案
结论: 优先检查不同入口节点证书不一致、SNI 差异、信任库差异、客户端时间和中间代理。
原因: 负载均衡后的某个节点可能部署旧证书,旧客户端也可能不信任新链或不支持所选算法。
边界: 一次浏览器成功不能证明所有边缘和客户端都正确,证书链构建还受本地信任与缓存影响。
排查或示例: 采集失败客户端的目标 IP、SNI、完整证书链、错误码和时间,再逐个直连入口节点比较。
046 反向代理返回 502 和 504 时应该如何区分?
难度: 实战
查看参考答案
结论: 502 通常表示代理收到无效上游响应或无法正确建立上游通信,504 更强调等待上游响应超时。
原因: 两者都发生在代理与上游链路,需要结合代理错误日志、连接状态和上游处理时间判断。
边界: 不同代理产品的触发条件和状态映射可能不同,不能只凭状态码断定应用一定崩溃。
排查或示例: 对齐代理请求 ID、上游连接错误、DNS、TCP/TLS 时间和应用日志,区分连接失败、协议错误和处理超时。
047 CDN 返回旧内容时,如何判断问题出在缓存还是源站?
难度: 实战
查看参考答案
结论: 比较边缘响应的缓存状态、Age、验证器和直接回源结果,确认旧表示存在哪一层。
原因: 边缘可能按不同缓存键保存多个版本,源站也可能因多实例或数据库副本返回不一致内容。
边界: 直接修改 hosts 绕过 CDN 会改变 Host、TLS 和路由,测试必须保持请求语义一致。
排查或示例: 携带相同 Host 和请求头分别查询多个边缘与受控源站,记录 ETag、Age、Via 和内容哈希。
048 网络延迟突然升高,如何区分排队、路由变化和服务端变慢?
难度: 实战
查看参考答案
结论: 同时对比网络 RTT、逐跳路径、丢包重传、服务端处理时间和队列指标,避免只看端到端耗时。
原因: 排队常伴随负载时段 RTT 膨胀,路由变化可能改变跳数和地域,服务端慢则网络握手可正常而 TTFB 增长。
边界: traceroute 每跳延迟受 ICMP 限速影响,单个中间跳高延迟但后续正常不一定代表转发慢。
排查或示例: 保存基线,按时间关联 ping、mtr、BGP 或路径信息、TCP 握手和应用 trace 的阶段耗时。
049 抓包看到大量 TCP Retransmission 就一定是网络丢包吗?
难度: 实战
查看参考答案
结论: 不一定,真实丢包、乱序、抓包点漏包、校验卸载和分析器启发式判断都可能产生重传标记。
原因: 分析工具根据序列号时间线推断重传,如果抓包从连接中途开始或丢失原包,结论可能失真。
边界: 双端同时看到相同缺口和重复确认时证据更强;发送端本机抓包还要考虑 TSO、GSO 等卸载。
排查或示例: 对齐双端序列号、ACK、SACK、接口丢包计数和交换设备计数器,再判断丢包发生位置。
050 客户端临时端口耗尽会表现为什么?
难度: 实战
查看参考答案
结论: 新建出站连接可能失败或等待,而已有连接仍可继续工作,主机上会出现大量连接或 TIME_WAIT。
原因: 同一源地址连接同一目标时可用四元组组合有限,高频短连接和长超时会加速消耗。
边界: 扩大端口范围只能缓解,连接泄漏、缺少池化和单一目标集中仍需修复;NAT 后还可能有额外端口上限。
排查或示例: 统计各状态连接、目标分布、新建连接率和端口范围,优先启用连接复用并控制超时。
051 NAT 会话表或端口耗尽如何定位?
难度: 实战
查看参考答案
结论: 观察 NAT 设备活动映射、创建失败、端口分配和超时,并关联内部源与外部目标流量。
原因: 大量短连接、UDP 长超时或少量公网 IP 都可能消耗映射;回包无法匹配时表现为间歇性连接失败。
边界: 主机本地端口充足不代表边界 NAT 有容量,多层 NAT 还可能在不同设备分别耗尽。
排查或示例: 从客户端、NAT 日志和目标端抓取同一流,核对转换前后五元组与失败计数,再扩容或优化复用。
052 什么是路径 MTU 黑洞,为什么小请求正常而大响应失败?
难度: 实战
查看参考答案
结论: 路径中某段 MTU 更小且必要的 ICMP 太大消息被丢弃时,发送端无法降低包大小,形成黑洞。
原因: 小报文低于路径 MTU 可以通过,大报文带 DF 或 IPv6 报文则反复丢失,TCP 连接看似建立却无法推进。
边界: 隧道会增加额外头部并降低有效 MTU,简单 ping 默认小包不能排除此问题。
排查或示例: 使用不同大小且禁止分片的探测、检查 ICMP 和隧道 MTU,必要时在入口执行 MSS clamping。
053 非对称路由为什么会导致有状态防火墙或负载均衡异常?
难度: 困难
查看参考答案
结论: 请求和响应经过不同状态设备时,返回路径上的设备可能看不到建立状态,从而丢弃合法回包。
原因: 有状态设备依据双向报文维护连接表,ECMP、策略路由和多出口可能让两个方向分离。
边界: 纯路由网络可以容忍非对称路径,但 NAT、连接跟踪和代理通常需要更严格的路径一致性。
排查或示例: 双端 traceroute 与抓包并结合防火墙会话表,核对入出接口、下一跳和路由策略。
054 负载均衡后请求分布不均可能有哪些原因?
难度: 困难
查看参考答案
结论: 连接级调度、长连接、会话保持、权重、健康状态和后端处理速度都可能造成不均。
原因: 轮询连接不等于轮询每个请求;HTTP/2、WebSocket 和数据库连接会在单连接承载大量工作。
边界: 请求数相等也不代表 CPU、响应时间或数据量相等,必须选择符合业务成本的负载指标。
排查或示例: 同时比较前端连接、每连接请求数、后端权重、健康检查和资源指标,再调整算法或拆分长连接。
055 接口 TTFB 很高,如何判断是网络问题还是应用处理慢?
难度: 困难
查看参考答案
结论: 拆分 DNS、连接、TLS、请求发送、服务端排队处理和首字节返回时间,再与服务端 trace 对齐。
原因: 网络问题可能增加连接与传输阶段,应用慢通常表现为握手正常而 requestStart 到 responseStart 间隔大。
边界: 代理缓冲、队列和跨区下游调用会同时影响 TTFB,单看浏览器一个数字不能定位具体服务。
排查或示例: 使用 Navigation Timing、反向代理上游计时和分布式追踪共享请求 ID,定位等待发生在哪个边界。
056 面对 SYN Flood,SYN Cookie 能解决所有问题吗?
难度: 困难
查看参考答案
结论: 不能,SYN Cookie 可降低半连接状态占用,但链路带宽、CPU、防火墙和后端其他资源仍可能耗尽。
原因: 它把部分握手状态编码进序列号,在 ACK 返回时再恢复,从而减少 SYN 队列压力。
边界: 具体选项能力和实现有边界,DDoS 防护还需要上游清洗、限速、容量和监控的组合。
排查或示例: 同时观察入口带宽、SYN/ACK 比例、半连接队列、CPU 和上游丢弃,再决定 Cookie、限速或清洗策略。
057 接入 VPN 后是否可以取消应用认证和细粒度授权?
难度: 困难
查看参考答案
结论: 不可以,VPN 只建立网络层或链路层受保护通道,应用仍需验证主体并执行最小权限。
原因: 网络位置不能稳定代表用户身份,终端失陷、凭据共享和横向移动都可能发生在 VPN 内部。
边界: 零信任也不意味着完全没有网络分段;身份、设备状态、网络策略和应用授权应形成多层控制。
排查或示例: 即使服务只暴露给 VPN,也应使用 TLS、用户或服务身份、授权策略和审计日志。
058 生产环境抓包有哪些安全和隐私边界?
难度: 困难
查看参考答案
结论: 抓包应最小化范围、时长和字段,经过授权并安全保存,因为报文可能包含凭据、个人信息和业务数据。
原因: 即使 TLS 加密,IP、端口、长度和时序仍可能敏感;在终止 TLS 的主机抓包还可能看到明文。
边界: 不能为了排障无限期全量采集,数据保留、访问控制和脱敏要求应遵循组织政策。
排查或示例: 优先用过滤器限定五元组和时间窗,采集后加密传输、限制访问并按约定及时删除。
059 网络服务应监控哪些关键指标?
难度: 困难
查看参考答案
结论: 至少覆盖可用性、DNS 与连接成功率、握手延迟、RTT、丢包重传、吞吐、错误码和协议协商。
原因: 只监控设备在线无法反映用户请求路径,分层指标能把名称、路径、传输、安全和应用故障区分开。
边界: 指标需要按地区、运营商、协议版本和目标拆分,同时控制标签基数并保留可关联的日志或 trace。
排查或示例: 为 HTTPS 建立 DNS、TCP、TLS、TTFB 和完整请求探针,再把异常与服务端和网络设备指标关联。
060 请给出一套可复用的网络故障定位方法。
难度: 困难
查看参考答案
结论: 先明确时间、范围和变化,再按 DNS、路由与链路、传输、TLS、应用逐层验证,并形成可证伪假设。
原因: 分层顺序能避免把应用错误误判为网络故障,也能让每一步产生抓包、日志、计数器或主动探测证据。
边界: 实际路径可能含代理、NAT、CDN 和多协议回退,因此必须画出真实数据流并同时检查返回方向。
排查或示例: 记录受影响客户端和目标,复现后对齐 dig、路由、连接、TLS、curl 与服务端 trace;一次只改变一个变量。