不对称路由的 SYN ACK 问题
Resolution
问题
不对称路由的常见问题有:
- 网站仅加载部分
- 应用程序不工作
原因
默认情况下, TCP 拒绝非 SYN 标志设置为 "是"。这意味着必须通过相同的防火墙启动连接才能允许应用程序数据。如果 syn 数据包通过一个防火墙进入, 并且 syn/ack 数据包通过另一个防火墙退出网络, 则 syn/ack 数据包将被拒绝, 因为连接的第一个数据包使用了不同的防火墙。
检查非 syn tcp 的 flow_tcp_non_syn_drop 全局计数器.
>> 显示计数器全球 |匹配删除
名称值速率严重性类别方面说明
-----------------------------------------------------------------------------------
flow_rcv_err 1705 0 下降流分析数据包丢弃: 流级接收错误
flow_rcv_dot1q_tag_err 7053 0 丢弃流分析数据包丢弃: 802.1q 标记未配置
flow_no_interface 7053 0 丢弃流分析数据包丢失: 接口无效
flow_ipv6_disabled 20459 0 丢弃流分析数据包: 在接口上禁用 IPv6
flow_tcp_non_syn_drop 156 0 丢弃流会话数据包: 没有会话匹配的非 syn tcp
flow_fwd_l3_mcast_drop 14263 0 丢弃流转发数据包: 没有 IP 多播路由
flow_parse_l4_cksm 1 0 丢弃流分析数据包: TCP/UDP 校验和失败
flow_host_decap_err 31 0 丢弃流管理数据包: 从控制平面腐蚀开封错误
flow_host_service_deny 90906 0 丢弃流管理设备控制会话被拒绝
flow_lion_rcv_err 1700 0 丢弃流卸载数据包: 从卸载处理器接收错误
运行 "显示计数器全局 | 匹配" 下拉命令多次查看放置计数器 (值字段) 递增.
验证当前设置:
> 显示会话信息
-------------------------------------------------------------------------------
支持的会话数: 262143
活动会话数: 1
活动 TCP 会话数: 0
活动 UDP 会话数: 0
活动 ICMP 会话数: 0
活动 BCAST 会话数: 0
活动 MCAST 会话数: 0
预测会话数: 0
会议表利用率: 0%
自系统启动创建的会话数: 7337
数据包率: 8/秒
吞吐量: 3 Kbps
-------------------------------------------------------------------------------
会话超时
TCP 默认超时: 3600 秒
3路握手前 TCP 会话超时: 5 秒
在鳍/RST 之后的 TCP 会话超时:30 秒
UDP 默认超时:30 秒
ICMP 默认超时: 6 秒
其他 IP 默认超时:30 秒
在丢弃状态的会话超时:
TCP:90 秒, UDP:60 秒, 其他 IP 协议:60 秒
-------------------------------------------------------------------------------
会议加速老化: 启用
加速的老化阈值: 80%的利用率
缩放系数: 2 X
-------------------------------------------------------------------------------
设置会话
TCP-拒绝非 SYN 第一个数据包: 是的
硬件会话卸载: 是
IPv6 防火墙: 没有
-------------------------------------------------------------------------------
应用滴的扫描参数:
确定应用程序的超时时间:10 秒
开始扫描的资源利用率阈值: 80%
扫描缩放因子超过常规老化: 8
-------------------------------------------------------------------------------
解决办法
有两个此问题的变通方法:
- 更改网络体系结构以消除非对称路由, 这样所有返回通信都将通过与通信源相同的防火墙。
- 关闭选项 (tcp 拒绝-非 syn) 以拒绝第一个数据包不是 syn 数据包的连接
运行以下命令暂时禁用 TCP 拒绝非 SYN (直到重新启动)
>> 设置会话 tcp 拒绝-非 syn no
运行以下命令以永久禁用该选项:
>>配置
# 设置 deviceconfig 设置会话 tcp 拒绝-非 syn no
#提交
运行以下命令以确认是否将为防火墙上的非 SYN tcp 数据包建立会话
> 显示会话信息
. . . .
--------------------------------------------------------------------------------
会话设置
TCP 拒绝非 SYN第一个数据包: False
硬件会话卸载: True
IPv6 防火墙: 真
所有者︰ panagent