Azure应用网关TLS协商卡在Client Hello阶段的跨区域访问故障求助
Azure应用网关TLS协商卡在Client Hello阶段的跨区域访问故障求助
各位大佬好,最近碰到一个非常棘手的跨区域访问问题,想请大家帮忙分析下可能的原因:
我们有一个部署在英国的Azure应用网关,对外提供HTTPS服务。目前全球大部分区域(包括英国本地及其他地区)的用户都能正常访问,但新加坡的某个客户站点出现了奇怪的访问差异——部分设备(平板、Linux服务器等)完全无法访问,Windows笔记本/台式机却能正常打开服务。
用curl和openssl测试时,发现TLS握手过程在发送Client Hello之后就直接卡住了,最终报错。测试日志如下:
* Trying xx.xx.xx.xx... * TCP_NODELAY set * Expire in 200 ms for 4 (transfer 0x1c628b0) * Connected to xx.xxx.xxx (xx.xx.xx.xx) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * TLSv1.3 (OUT), TLS handshake, Client hello (1): * OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to xx.xxx.xxx:443 * Closing connection 0 curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to xx.xxx.xxx:443
我们做了一些排查:
- 测试了其他类似服务(AWS负载均衡、另一个项目的Azure应用网关、CloudFlare CDN等),新加坡客户站点的所有设备都能正常访问,排除了客户网络对特定云服务的普遍限制;
- 初步怀疑是常见的TLS/MTU不匹配问题,但尝试调整客户端MTU时发现,只有把MTU降到极低的96才能正常访问,这显然不符合常规MTU问题的表现;
- 为了验证是否是区域部署的问题,我们在新加坡本地部署了一个测试用的Azure应用网关,仅提供简单静态页面,结果同样出现了相同故障——部分设备无法完成TLS握手;
- 网上有观点认为是数据包阻塞,但我们在不同设备、不同测试条件下都能稳定复现问题,且客户IT团队表示他们的网络配置是行业标准配置,暂时没找到阻塞相关的证据;
- 这个新加坡站点并不是我们服务的最远访问点,但其他更远的站点都能正常访问,距离因素似乎也不成立。
实在找不到头绪了,想请教各位有没有遇到过类似的情况,或者有什么排查方向可以推荐?
备注:内容来源于stack exchange,提问作者Paul Ridgway
相关产品推荐
相关产品推荐

