不对称路由为什么会出问题
网关冗余组网中,去程与回程不必走同一条路径:主设备承载大部分流量时,回程完全可能经由备设备。对普通转发没有问题,但状态化设备(防火墙、NAT、会话同步类装置)只看单向流量就会丢包——TCP 三次握手只能看到一半,连接建立不起来,而 ICMP 却能正常通。
基本信息
| 高发场景 | 状态化防火墙串联在网关路径、策略路由、多出口组网 |
|---|---|
| 典型症状 | ICMP 通而 TCP 建链失败,或单向通 |
| 排查工具 | traceroute / tracert、两端路由表与策略表对比 |
| 设计手段 | 会话同步、状态化设备成对部署、路径显式规划 |
| 文档要求 | 把单向与双向路径画清楚,作为设计与验收依据 |
典型使用场景
- 业务报『能 ping 通但打不开网页』:判断是否为路径不对称
- 防火墙双机部署:确认会话同步是否覆盖全部转发场景
- 新增出口链路:评估是否引入新的不对称路径
- 切换演练:验证主备切换后回程路径是否随之收敛
- 策略调整前评审:把去程与回程的路径都画出来
核对路径
核对路径
tracert <目标> # Windows:观察首跳与完整路径
traceroute <目标> # Linux:同上,注意首跳是哪个网关
traceroute -n <目标> # 不做反向解析,输出更干净
# 两端设备上查看路由与策略
show ip route 0.0.0.0 # Cisco:默认路由指向哪里
display ip routing-table 0.0.0.0 # 华为:默认路由与出接口
# 关键对比:去程首跳设备与回程流量实际经过的设备是否一致症状与判读
| 症状 | 可能原因 | 验证方向 |
|---|---|---|
| ICMP 通、TCP 不通 | 回程路径被状态化设备拦截 | 对比去程与回程路径上的设备 |
| 切换后部分业务报错 | 两端策略表不一致,切换后命中不同策略 | 逐条对比两端的 ACL 与策略 |
| 单方向大流量丢包 | 回程链路上行带宽不足 | 核对回程路径的容量 |
| 内网正常、跨区异常 | 跨区出口处的路径不对称 | 分段 traceroute 定位分支点 |
『ICMP 正常但 TCP 建链失败』是不对称路由的典型信号:先对比两端的路由表与策略表,再顺着 traceroute 逐跳核对,不要先在终端侧改配置。
组网设计阶段就把单向与双向路径画出来并留档:路径信息一旦缺失,后续排查只能靠现场猜测,代价远高于设计阶段多画一张图。