借记卡/信用卡密码键盘终端 15 分钟后断开网络。出现一次错误后重新连接

借记卡/信用卡密码键盘终端 15 分钟后断开网络。出现一次错误后重新连接

我们拥有 HP Procurve 网络和大约 20 个标准借记/信用卡密码键盘终端,如今几乎每个商店都能看到这些终端。它们直接连接到 LAN,并且只通过 SSL/443 与支付站点通信。中间没有软件或服务器。

问题是,这些设备通常在第一次尝试使用时会出现 TCP 连接失败。然后它们会连续工作一小时。但是,如果让它们闲置 10 - 15 分钟(大约),它们会抛出一次初始错误。

最初,它们都来自同一家公司,我们认为这与他们的设置或品牌/型号有关。但最近,我们安装了一些来自完全不同供应商的新设备,使用不同类型的密码键盘……它们都出现了同样的错误。

我们尝试过静态与 DHCP IP 寻址。我们将外部支付站点添加到特殊防火墙规则中,允许它们无需进行正常威胁检查即可退出。我们在各种 Vlan 上尝试过它们。我们尝试将它们连接到各种类型的区域交换机。甚至尝试过每 3 分钟 ping 一次它们的计划批处理文件(自制的保持活动状态)。没有任何区别。就网络问题而言,这些设备都连接到与附近的现金计算机/打印机完全相同的 vlan 和区域交换机 - 我们没有遇到任何其他问题。现金系统运行完整的客户端/服务器/数据库应用程序,如果由于该区域的网络状况不佳而出现相同的断开连接问题,我们会很快得知。

我即将解决的最新理论与 arp 缓存超时有关,但我才刚刚开始。

希望得到一些帮助...也欢迎疯狂的想法。

W。

答案1

我以前也遇到过类似的问题。我遇到的问题与我的设备通过 NAT 设备建立连接有关,然后该连接空闲了太长时间(没有发送任何内容,也没有接收任何内容)。连接的两端都不知道,但中间的 NAT 设备由于不活动而决定关闭连接。然后当流量试图穿越 NAT 时,数据包被丢弃,因为 NAT 规则不再存在。

您的设备可能正在做类似的事情。我的解决方案是在两个设备之间使用保持活动数据包。它会每 60 秒发送一个数据包,这解决了我的问题(系统已经运行了好几年而不需要触碰)。简单地从同一个 LAN ping 任一设备不足以保持 NAT 规则。设备必须定期相互通信。

但是,如果不了解您的特定系统,就很难说这是否适用于您。

希望这可以帮助。

答案2

问题是,这些设备通常在第一次尝试使用时会出现 TCP 连接失败。然后它们会连续工作一小时。但是,如果让它们闲置 10 - 15 分钟(大约),它们会抛出一次初始错误。

我建议的第一件事是获取手册副本或与供应商联系,以了解设备产生的错误究竟意味着什么。我浪费了时间寻找第 3/4 层问题,结果错误实际上意思是其他意思。并非所有供应商都正确或一致地使用术语。

听起来好像设备没有正确发送处理或保持活动状态。如果没有数据通过您的 TCP 连接,它最终将被关闭。为了防止这种情况,一个端点(或两个端点)可以发送保持活动数据包以防止连接被终止。我知道这可以用 TCP(第 4 层)来完成,大概也可以用 SSL/TLS(第 7 层)来完成。

在这些设备和您的基础设施之间放置一个数据包嗅探器,并记录从工作到不工作的所有流量。然后查看它并找到它所连接的设备或服务器在哪里启动终止序列,然后看看紧接着发生了什么。还要查看设备抛出“TCP 连接失败”错误的时间点。它是否试图使用它认为已建立但服务器认为已终止的连接?这里也发生了一些奇怪的事情 - 如果连接未建立,您的信用卡设备不会抛出错误,而是应该尝试创建一个新连接(显然第二次成功了)。

最后,如果您使用的是 NAT,请考虑为这些设备之一提供直接的非 NAT 连接以进行测试(再次进行数据包捕获)。NAT 可能会对依赖于端到端原则并且没有考虑广泛使用 NAT 或其他有状态设备对连接的干扰。

如果您使用代理,请确保它不参与或已正确配置以处理这些设备。我们有许多设备或进程足够智能,可以使用其主机操作系统的 WPAD 设置,但不会使用其 HTTP/HTTPS 请求提交运行它们的用户帐户的 Active Directory 凭据,并且代理希望所有连接都经过身份验证,因此该过程将在客户端悄悄失败。

相关内容