首页 文章

几个munute之后,Azure VM出站TCP连接中断

提问于
浏览
2

我有一个在Azure Cloud 中运行Windows Server 2012R2的虚拟机 . 本机具有静态分配的私有和公共IP地址 . 在那台机器上,我正在运行 client 应用程序(Jenkins Agent是具体的) . 此客户端打开与其 server (Jenkins Master)的TCP连接,该连接在Azure Cloud 之外运行(在某些公共IP地址之后) . TCP连接 Build 得很好 .

为了使这个连接保持活动,客户端和服务器每4-5分钟相互“ping”一次 . 这种“ping”是通过打开的TCP连接交换多个TCP包来完成的 .

经过一段随机时间间隔后,客户端无法再访问服务器,服务器无法再到达客户端 . 因此,客户端和服务器端都会引发连接超时异常 .

为了分析这个问题,我正在跟踪正在运行 on Windows Server in Azure cloud (客户端应用程序正在运行的地方)的Wireshark的这种通信 . 虽然通信运行良好,Wireshark显示TCP流量在以下之间交换: - 客户端的 private IP地址/ local 端口 - 服务器的公共IP地址/端口

这似乎是完全合乎逻辑的,因为Azure机器(客户端)不知道其公共IP地址和公共可见端口(在应用NAT之后) .

当问题开始发生时,我看到客户端和服务器都在发送TCP重传数据包,这意味着它们都没有收到TCP:ACK数据包到某些先前发送的TCP:PSH数据包 . 最奇怪的是,客户端计算机正在从服务器接收这些TCP重新传输,但问题是:这些程序包不会发送到客户端的私有IP /本地帖子 . 这些包在Wireshark中显示为发送到 client's public IP and publicly visible port !显然客户端应用程序没有't receive these packages because machine'的NIC /驱动程序丢弃它们(这也是预期的) .

问题:有没有人知道为什么发送到Azure机器(客户端)的公共IP地址和公开可见端口的TCP响应有时会到达机器本身而不将NAT转换应用于该内容?!

1 回答

  • 0

    在跟踪状态3天后,没有发现任何问题再次发生!所以我正在解决这个问题:更频繁的客户端/服务器ping(即保持连接活动)肯定能解决这个Azure问题 .

相关问题