网络排查MAC地址User-Agent公网IPDHCPNAT
实验室网络排查手记:从 MAC 到 UA,再到公网 IP
一次看似普通的“偶发断网+设备漂移”问题,最后从三条线索逐步合拢:MAC 地址、User-Agent 以及公网 IP。和很多排查一样,真正困难的不在“命令会不会用”,而在“证据是否被保留、线索能否贯通”。
现象与假设
- 现象:部分设备会在每天某个时间段掉线 1-2 分钟,随后恢复;且日志里出现“同一内网 IP 对应不同设备”的情况。
- 初始假设:
- DHCP 租约或地址池冲突;
- 交换机端口安全策略造成 MAC 学习异常;
- NAT 映射抖动导致外部观测“看起来像换了设备”。
线索一:MAC 地址表与前缀识别
- 我把掉线窗口的交换机 MAC 地址表导出,对照设备资产表。很快发现某些端口在短时间内学习到两个不同的 MAC。进一步查询 MAC 的 OUI(组织唯一标识)前缀,能大概判断厂商与设备类型,缩小了范围。
- 这一步我还用“随机 MAC 生成器”造了一批不同前缀的样例,用来测试脚本对“单播/多播、UAA/LAA 位”的校验是否健壮,避免误判。
可用工具:
线索二:User-Agent 拆解环境差异
- 业务侧日志里有 UA,我把出问题的访问记录全部抽出来。解析 UA 后发现,故障窗口里同一账号出现不同浏览器内核版本与不同操作系统指纹,结合登录时间与地理位置,几乎可以确认“并非同一终端”。
- 这说明并非“账号问题”,而是网络层面出现地址飘移,从而把“外网看起来像不同设备”的假象叠加到业务侧。
可用工具:
线索三:公网 IP、NAT 与出口策略
- 我让在场同事在故障时段前后访问“我的公网 IP”,记录 IPv4 与映射 IPv6 值,结果显示出口 NAT 在短窗口内切到了备用线路,导致对外 IP 突然变化。
- 结合路由器日志,恰好对应“主线路丢包阈值触发切换→短时回切→再次切换”的波动,解释了“偶发断网+设备漂移”的观感。
可用工具:
根因与修复
- 根因一:交换机某些端口开启了安全策略但阈值偏低,导致短时学习两个 MAC 就触发限制,表现为链路抖动。
- 根因二:出口线路健康检查阈值设置过于敏感,导致 NAT 频繁在主备之间切换。
- 处理:
- 调整端口安全策略阈值,并对关键端口固定 MAC;
- 优化健康检查参数,引入平滑窗口;
- 对外提供服务的系统增加“来源 IP 变更容忍窗口”,并以 UA+指纹做更稳健的会话识别。
经验沉淀
- 保留证据:把交换机 MAC 表、出口路由 NAT 映射、业务 UA 日志在同时间轴对齐,一次性复盘;
- 建立基线:记录“正常日”的 UA 分布、公网 IP 列表与 MAC-端口映射,异常时就有对比;
- 自动化:写脚本定时抓取并生成差异报告,别等出问题才翻日志;
- 协作:网络侧与业务侧的日志要能“串起来看”,尤其是时区与时间戳要统一。